diff --git a/patches/server/0688-Optimise-random-block-ticking.patch b/patches/server/0688-Optimise-random-block-ticking.patch index 479884d90b..8aeca11a5c 100644 --- a/patches/server/0688-Optimise-random-block-ticking.patch +++ b/patches/server/0688-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 81381a4b401046b2ea76627814c740dca73b9592..8144c2f519876a3e33150e4fbebea3aadaf5ce31 100644 +index 81381a4b401046b2ea76627814c740dca73b9592..5d0ea7d1cd52469f9951b5b4db2daa0f9ab1b7d8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -856,6 +856,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -128,7 +128,7 @@ index 81381a4b401046b2ea76627814c740dca73b9592..8144c2f519876a3e33150e4fbebea3aa } } } // Paper -@@ -906,54 +915,60 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -906,36 +915,37 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.popPush("tickBlocks"); timings.chunkTicksBlocks.startTiming(); // Paper if (randomTickSpeed > 0) { @@ -190,14 +190,16 @@ index 81381a4b401046b2ea76627814c740dca73b9592..8144c2f519876a3e33150e4fbebea3aa timings.chunkTicksBlocks.stopTiming(); // Paper gameprofilerfiller.pop(); - } +@@ -943,17 +953,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting -- public void tickPrecipitation(BlockPos pos) { + public void tickPrecipitation(BlockPos pos) { - BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos); - BlockPos blockposition2 = blockposition1.below(); -+ public void tickPrecipitation(BlockPos.MutableBlockPos blockposition1, final LevelChunk chunk) { // Paper - optimise chunk ticking -+ // Paper start - optimise chunk ticking ++ // Paper start - optimise chunk ticking ++ tickPrecipitation(pos.mutable(), this.getChunkAt(pos)); ++ } ++ public void tickPrecipitation(BlockPos.MutableBlockPos blockposition1, final LevelChunk chunk) { + int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition1.getX() & 15, blockposition1.getZ() & 15) + 1; + int downY = normalY - 1; + blockposition1.setY(normalY); @@ -218,7 +220,7 @@ index 81381a4b401046b2ea76627814c740dca73b9592..8144c2f519876a3e33150e4fbebea3aa if (i > 0 && biomebase.shouldSnow(this, blockposition1)) { BlockState iblockdata = this.getBlockState(blockposition1); -@@ -971,12 +986,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -971,12 +989,13 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0691-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0691-Detail-more-information-in-watchdog-dumps.patch index ca73156fd8..b3502d266d 100644 --- a/patches/server/0691-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0691-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 8144c2f519876a3e33150e4fbebea3aadaf5ce31..844a708fa64fa023370f6a5ac386956f56b0545a 100644 +index 5d0ea7d1cd52469f9951b5b4db2daa0f9ab1b7d8..baa70699c3f8960b39af38502f40d43c8580e9ab 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1237,7 +1237,26 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1240,7 +1240,26 @@ public class ServerLevel extends Level implements WorldGenLevel { } @@ -106,7 +106,7 @@ index 8144c2f519876a3e33150e4fbebea3aadaf5ce31..844a708fa64fa023370f6a5ac386956f ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper -@@ -1277,7 +1296,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1280,7 +1299,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } // } finally { timer.stopTiming(); } // Paper - timings - move up diff --git a/patches/server/0695-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0695-Fix-merchant-inventory-not-closing-on-entity-removal.patch index f4c3466440..c9a5242d9e 100644 --- a/patches/server/0695-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0695-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 844a708fa64fa023370f6a5ac386956f56b0545a..4df6572f2babbaeece0c62750cc913a78af9c282 100644 +index baa70699c3f8960b39af38502f40d43c8580e9ab..b9b7896c2f850f9a02900932ea9255dc0aa07e26 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2680,6 +2680,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2683,6 +2683,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/unapplied/server/0735-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0735-Configurable-max-block-light-for-monster-spawning.patch similarity index 91% rename from patches/unapplied/server/0735-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0735-Configurable-max-block-light-for-monster-spawning.patch index 59eb60edd7..c7f4c136fd 100644 --- a/patches/unapplied/server/0735-Configurable-max-block-light-for-monster-spawning.patch +++ b/patches/server/0735-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 6e0bd0eab0b06a4ac3042496bbb91292544e9f3c..e4218acaaf7d3aef0fb31f5597fb1af32aa2c8b5 100644 +index 036d79baf372f4900681fee366bcd91c99474e5f..127a344f35e194fc7b1a0783c75291fab929fe19 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 { diff --git a/patches/unapplied/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 94% rename from patches/unapplied/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index 913048fffc..8e2d63bd62 100644 --- a/patches/unapplied/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0736-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch @@ -27,10 +27,10 @@ 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 b9896fd8e96a908637ce1edf9413166192903ce7..cdcf11fb9e4690d74b30fe0ade842d6574464624 100644 +index cda90023ad662e8875365eac98ec69f476dcb42d..b9025fcc6a4db9533cdc42034c9e77323d0785fa 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 -@@ -146,15 +146,15 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -159,15 +159,15 @@ public class PistonBaseBlock extends DirectionalBlock { } // CraftBukkit start @@ -55,7 +55,7 @@ index b9896fd8e96a908637ce1edf9413166192903ce7..cdcf11fb9e4690d74b30fe0ade842d65 // PAIL: checkME - what happened to setTypeAndData? // CraftBukkit end world.blockEvent(pos, this, b0, enumdirection.get3DDataValue()); -@@ -237,6 +237,13 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -250,6 +250,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); @@ -69,7 +69,7 @@ index b9896fd8e96a908637ce1edf9413166192903ce7..cdcf11fb9e4690d74b30fe0ade842d65 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()); -@@ -263,6 +270,13 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -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))) { this.moveBlocks(world, pos, enumdirection, false); } else { diff --git a/patches/unapplied/server/0737-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0737-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/unapplied/server/0737-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0737-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/unapplied/server/0738-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0738-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/unapplied/server/0738-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0738-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/unapplied/server/0739-Fix-bees-aging-inside-hives.patch b/patches/server/0739-Fix-bees-aging-inside-hives.patch similarity index 96% rename from patches/unapplied/server/0739-Fix-bees-aging-inside-hives.patch rename to patches/server/0739-Fix-bees-aging-inside-hives.patch index 646f563356..6adfc7fc04 100644 --- a/patches/unapplied/server/0739-Fix-bees-aging-inside-hives.patch +++ b/patches/server/0739-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 9d4152f9fde93a832f263c793955d327f1e078f7..cf09525efd2d53bf884cd6ec3b0b9229715895eb 100644 +index 8c4fba5369e5e25f144291c43e086b7417b013aa..dfd364ac4b7551a13c4c6c100b5e62c0dfb10595 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/unapplied/server/0740-Bucketable-API.patch b/patches/server/0740-Bucketable-API.patch similarity index 100% rename from patches/unapplied/server/0740-Bucketable-API.patch rename to patches/server/0740-Bucketable-API.patch diff --git a/patches/unapplied/server/0741-Validate-usernames.patch b/patches/server/0741-Validate-usernames.patch similarity index 85% rename from patches/unapplied/server/0741-Validate-usernames.patch rename to patches/server/0741-Validate-usernames.patch index 4ea7843114..5f2ffd33bc 100644 --- a/patches/unapplied/server/0741-Validate-usernames.patch +++ b/patches/server/0741-Validate-usernames.patch @@ -5,10 +5,10 @@ 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 2e73c94f74be95a7d6ba58d5151c3090253bb9c6..3a177569b9aa8d641252d0169bea8be739344318 100644 +index 0c4fb4a7d4fcdc6d724beb13a16bd729a3c525cd..20ba13c06edf125ba216d1ca8794868abcd8f916 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -61,6 +61,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -63,6 +63,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, public GameProfile authenticatedProfile; // Paper - public private final String serverId; private ServerPlayer player; // CraftBukkit @@ -16,7 +16,7 @@ index 2e73c94f74be95a7d6ba58d5151c3090253bb9c6..3a177569b9aa8d641252d0169bea8be7 public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection) { this.state = ServerLoginPacketListenerImpl.State.HELLO; -@@ -132,10 +133,38 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -134,10 +135,38 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, return this.requestedUsername != null ? this.requestedUsername + " (" + s + ")" : s; } @@ -43,8 +43,8 @@ index 2e73c94f74be95a7d6ba58d5151c3090253bb9c6..3a177569b9aa8d641252d0169bea8be7 @Override public void handleHello(ServerboundHelloPacket packet) { Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]); - Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]); -+ // Paper start - validate usernames + Validate.validState(Player.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]); ++ // Paper start - validate usernames -- TODO: Do we need this? + if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) { + if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) { + ServerLoginPacketListenerImpl.this.disconnect("Failed to verify username!"); @@ -56,10 +56,10 @@ index 2e73c94f74be95a7d6ba58d5151c3090253bb9c6..3a177569b9aa8d641252d0169bea8be7 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 9010da755303a9c5bb9a2fbacaf6bcfd6db9e3af..7a305967fa532eb9eb4e6cfdb5d80f4192181d42 100644 +index c92545e3cd199c7e123f65d42ca8976d2da27509..1e15c3576b6b506335c66a4ca0a47f3aa178c72a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -681,7 +681,7 @@ public abstract class PlayerList { +@@ -679,7 +679,7 @@ public abstract class PlayerList { for (int i = 0; i < this.players.size(); ++i) { entityplayer = (ServerPlayer) this.players.get(i); diff --git a/patches/unapplied/server/0742-Make-water-animal-spawn-height-configurable.patch b/patches/server/0742-Make-water-animal-spawn-height-configurable.patch similarity index 88% rename from patches/unapplied/server/0742-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0742-Make-water-animal-spawn-height-configurable.patch index 9e90672eb5..697ffe061e 100644 --- a/patches/unapplied/server/0742-Make-water-animal-spawn-height-configurable.patch +++ b/patches/server/0742-Make-water-animal-spawn-height-configurable.patch @@ -5,10 +5,10 @@ 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 36c4f9a8d3b56dd28f6291cc6958b00364f7a394..cd2ce5bcb8c30e4657cd0e340d80544c7e805905 100644 +index 27624b080e025d943b9c99627568f7dd66165548..827912174ee08cd19249797d351887149b25c880 100644 --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -@@ -78,6 +78,10 @@ public abstract class WaterAnimal extends PathfinderMob { +@@ -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; diff --git a/patches/unapplied/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 94% rename from patches/unapplied/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 4821830d4a..8f37266b00 100644 --- a/patches/unapplied/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0743-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 f7c1d07c95f7b67e32bd6679af88612aec74f54f..9d4c9368fcc3a44e452c1b71b5bdb43d097132d2 100644 +index 0a23cfeaba071c2179de1931caa86bc46462c338..bc181f3f59eef3f2f3645e3facb37d5e4a605d34 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -550,7 +550,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); @@ -18,10 +18,10 @@ index f7c1d07c95f7b67e32bd6679af88612aec74f54f..9d4c9368fcc3a44e452c1b71b5bdb43d 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 dbddca7d3188c7729d276159f2fb05300fdd97ed..43877a44ff5c0af7ff4819b63d234af6d9c32b11 100644 +index 77ca534fda8bf1a36e51e857dcbc1d4f5fe5c6de..92acff9a1079b7fa4d3781f423b17fe67b7fe495 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1225,7 +1225,7 @@ public final class CraftServer implements Server { +@@ -1257,7 +1257,7 @@ public final class CraftServer implements Server { List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = iregistry.get(actualDimension); @@ -31,10 +31,10 @@ index dbddca7d3188c7729d276159f2fb05300fdd97ed..43877a44ff5c0af7ff4819b63d234af6 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 e45d6bcf2d604b7412f8c19469ee6f0f9a5e727a..fec640da33879e09a8564e2c579dd0f0302d809d 100644 +index 3a5843b50a5cc5110bf484f9697674e5bfc9699f..fe895166c0526ff30d6941f1bf4d419f30801320 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 { +@@ -206,6 +206,29 @@ public class CraftWorld extends CraftRegionAccessor implements World { public int getPlayerCount() { return world.players().size(); } diff --git a/patches/unapplied/server/0744-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0744-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/unapplied/server/0744-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0744-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/unapplied/server/0745-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0745-Add-new-overload-to-PersistentDataContainer-has.patch similarity index 100% rename from patches/unapplied/server/0745-Add-new-overload-to-PersistentDataContainer-has.patch rename to patches/server/0745-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/unapplied/server/0746-Multiple-Entries-with-Scoreboards.patch b/patches/server/0746-Multiple-Entries-with-Scoreboards.patch similarity index 92% rename from patches/unapplied/server/0746-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0746-Multiple-Entries-with-Scoreboards.patch index d3d92906dd..db517fb063 100644 --- a/patches/unapplied/server/0746-Multiple-Entries-with-Scoreboards.patch +++ b/patches/server/0746-Multiple-Entries-with-Scoreboards.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Multiple Entries with Scoreboards 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 ee37ec0de1ca969144824427ae42b0c81434a1b4..4ebe22ac20f1a98694cc3bec570ef5bbf06f00aa 100644 +index e52644010dc2cf41bbf508b16b8ec2f0003e9d0b..b25f0e0a4ea12de2606d273e7c1ee534002c8d5a 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java @@ -42,6 +42,12 @@ public class ClientboundSetPlayerTeamPacket implements Packet +Date: Mon, 2 Aug 2021 11:24:39 -0400 +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 +--- 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 { + return checkMobSpawnRules(type, world, spawnReason, pos, random); + } + +- if (world.getBiome(pos).is(BiomeTags.ALLOWS_SURFACE_SLIME_SPAWNS) && pos.getY() > 50 && pos.getY() < 70 && random.nextFloat() < 0.5F && random.nextFloat() < world.getMoonBrightness() && world.getMaxLocalRawBrightness(pos) <= random.nextInt(8)) { ++ // Paper start - Replace rules for Height in Swamp Biome ++ 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 + return checkMobSpawnRules(type, world, spawnReason, pos, random); + } + +@@ -347,7 +351,10 @@ public class Slime extends Mob implements Enemy { + ChunkPos chunkcoordintpair = new ChunkPos(pos); + 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) { ++ // 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 + return checkMobSpawnRules(type, world, spawnReason, pos, random); + } + } diff --git a/patches/unapplied/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch similarity index 89% rename from patches/unapplied/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index 5d3797471d..633d55f59f 100644 --- a/patches/unapplied/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0749-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch @@ -5,10 +5,10 @@ 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 3a177569b9aa8d641252d0169bea8be739344318..5ff49a0f2f42b63d606c7d9205c0e63fe39e163f 100644 +index 20ba13c06edf125ba216d1ca8794868abcd8f916..5c767318ff3f589ecebb9608ce173fa578e330a5 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -326,7 +326,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -322,7 +322,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, // Paper start com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); diff --git a/patches/unapplied/server/0750-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0750-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/unapplied/server/0750-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0750-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/unapplied/server/0751-Kick-on-main-for-illegal-chat.patch b/patches/server/0751-Kick-on-main-for-illegal-chat.patch similarity index 65% rename from patches/unapplied/server/0751-Kick-on-main-for-illegal-chat.patch rename to patches/server/0751-Kick-on-main-for-illegal-chat.patch index da30a2123a..c37b822edf 100644 --- a/patches/unapplied/server/0751-Kick-on-main-for-illegal-chat.patch +++ b/patches/server/0751-Kick-on-main-for-illegal-chat.patch @@ -6,11 +6,13 @@ Subject: [PATCH] Kick on main for illegal chat Makes the PlayerKickEvent fire on the main thread for illegal characters or chat out-of-order errors. +TODO: Check all the missing schedule on mains? (1.20.3) + diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5911fc7009a4bdf99f8016d440fbeb1ae9b44441..69d72c411ad6d8f9ee35bd71307d088c17564aa0 100644 +index 01b4ee8cd74df6a2cedb81a6182fc4f8864f6e0e..c382924927685c4c210bd05c8e4a9d51430df3e9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2022,7 +2022,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2049,7 +2049,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -18,9 +20,9 @@ index 5911fc7009a4bdf99f8016d440fbeb1ae9b44441..69d72c411ad6d8f9ee35bd71307d088c this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper - add cause + }); // Paper - push to main for event firing } else { - Optional optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); + Optional optional = this.tryHandleChat(packet.lastSeenMessages()); -@@ -2055,7 +2057,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2081,7 +2083,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -28,15 +30,15 @@ index 5911fc7009a4bdf99f8016d440fbeb1ae9b44441..69d72c411ad6d8f9ee35bd71307d088c this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper + }); // Paper - push to main for event firing } else { - Optional optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages()); + Optional optional = this.tryHandleChat(packet.lastSeenMessages()); -@@ -2141,7 +2145,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { - if (!this.updateChatOrder(timestamp)) { - ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); +@@ -2137,7 +2141,9 @@ 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()) { + this.server.scheduleOnMain(() -> { // Paper - push to main - this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes + this.disconnect(exception.getComponent(), exception.kickCause); // Paper - kick event causes + }); // Paper - push to main - return Optional.empty(); } else { - Optional optional = this.unpackAndApplyLastSeen(acknowledgment); + this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED)); + } diff --git a/patches/unapplied/server/0752-Multi-Block-Change-API-Implementation.patch b/patches/server/0752-Multi-Block-Change-API-Implementation.patch similarity index 95% rename from patches/unapplied/server/0752-Multi-Block-Change-API-Implementation.patch rename to patches/server/0752-Multi-Block-Change-API-Implementation.patch index fd0dcd7a25..84a59fe56e 100644 --- a/patches/unapplied/server/0752-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0752-Multi-Block-Change-API-Implementation.patch @@ -24,10 +24,10 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a public void write(FriendlyByteBuf buf) { buf.writeLong(this.sectionPos.asLong()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1b677c30a0d4fb03676698b6ea2c775b8474835d..5dc7ec4275ca7377ba25f508c2ffdb0427ca441f 100644 +index feb92e1e0a5688fdf2adcfebd6a80b5f772aff7d..d73f94b37472da28a8c3dda9574d95954033785b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -881,6 +881,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -888,6 +888,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/unapplied/server/0753-Fix-NotePlayEvent.patch b/patches/server/0753-Fix-NotePlayEvent.patch similarity index 92% rename from patches/unapplied/server/0753-Fix-NotePlayEvent.patch rename to patches/server/0753-Fix-NotePlayEvent.patch index 5104743fbe..5385ce97b2 100644 --- a/patches/unapplied/server/0753-Fix-NotePlayEvent.patch +++ b/patches/server/0753-Fix-NotePlayEvent.patch @@ -7,10 +7,10 @@ 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 3dac47c3761b48700298e9bf078597a1823892bd..910864cfeac085648e6c671b0f9480417324d36e 100644 +index 43fbdca9422b679c210bc556e2d48ad37babbe8b..f32334f9e0f13a227bef8ffb135dda82b2ec39f2 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -@@ -86,11 +86,12 @@ public class NoteBlock extends Block { +@@ -93,11 +93,12 @@ public class NoteBlock extends Block { private void playNote(@Nullable Entity entity, BlockState state, Level world, BlockPos pos) { if (((NoteBlockInstrument) state.getValue(NoteBlock.INSTRUMENT)).worksAboveNoteBlock() || world.getBlockState(pos.above()).isAir()) { // CraftBukkit start @@ -27,7 +27,7 @@ index 3dac47c3761b48700298e9bf078597a1823892bd..910864cfeac085648e6c671b0f948041 world.blockEvent(pos, this, 0, 0); world.gameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos); } -@@ -129,10 +130,14 @@ public class NoteBlock extends Block { +@@ -136,10 +137,14 @@ public class NoteBlock extends Block { @Override public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int type, int data) { NoteBlockInstrument blockpropertyinstrument = (NoteBlockInstrument) state.getValue(NoteBlock.INSTRUMENT); @@ -43,7 +43,7 @@ index 3dac47c3761b48700298e9bf078597a1823892bd..910864cfeac085648e6c671b0f948041 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); -@@ -151,7 +156,7 @@ public class NoteBlock extends Block { +@@ -158,7 +163,7 @@ public class NoteBlock extends Block { holder = Holder.direct(SoundEvent.createVariableRangeEvent(minecraftkey)); } else { diff --git a/patches/unapplied/server/0754-Freeze-Tick-Lock-API.patch b/patches/server/0754-Freeze-Tick-Lock-API.patch similarity index 76% rename from patches/unapplied/server/0754-Freeze-Tick-Lock-API.patch rename to patches/server/0754-Freeze-Tick-Lock-API.patch index 19d47698bb..55d03791bf 100644 --- a/patches/unapplied/server/0754-Freeze-Tick-Lock-API.patch +++ b/patches/server/0754-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 2d505eeff4ae0ba7417a2eab4dbe3adb47e3ca3e..0d3bbf0fd866a375d4db1b1819e0cca5f2d43a1f 100644 +index 92b2e09ff556b1aad835f5e8e67e9af324ed964a..8f3b6cbe715e30922191444833584ed17439b518 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -402,6 +402,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -407,6 +407,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 2d505eeff4ae0ba7417a2eab4dbe3adb47e3ca3e..0d3bbf0fd866a375d4db1b1819e0cca5 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -833,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -838,7 +839,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index 2d505eeff4ae0ba7417a2eab4dbe3adb47e3ca3e..0d3bbf0fd866a375d4db1b1819e0cca5 this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2433,6 +2434,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2456,6 +2457,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (fromNetherPortal) { nbt.putBoolean("Paper.FromNetherPortal", true); } @@ -33,9 +33,9 @@ index 2d505eeff4ae0ba7417a2eab4dbe3adb47e3ca3e..0d3bbf0fd866a375d4db1b1819e0cca5 + nbt.putBoolean("Paper.FreezeLock", true); + } // Paper end - return nbt; + return nbttagcompound; } catch (Throwable throwable) { -@@ -2577,6 +2581,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2600,6 +2604,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } @@ -46,23 +46,23 @@ index 2d505eeff4ae0ba7417a2eab4dbe3adb47e3ca3e..0d3bbf0fd866a375d4db1b1819e0cca5 } 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 e0e9a1a0becd4754f4ee1a53e7a91206da22ac45..6aec9841fbb41ba448b7c77723f7081b6dfba884 100644 +index f5f612c3114c10bff6cecea2900f3c8f79370fd4..b8c7f0077118825848bddee8279e252914929d35 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3450,7 +3450,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("freezing"); - if (!this.level().isClientSide && !this.isDeadOrDying()) { -+ if (!this.level().isClientSide && !this.isDeadOrDying() && !freezeLocked) { // Paper - Freeze Tick Lock API ++ if (!this.level().isClientSide && !this.isDeadOrDying() && !this.freezeLocked) { // Paper - Freeze Tick Lock API int i = this.getTicksFrozen(); 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 b17522b77382e8c781811ee4e176581ee1d40290..28cda0cc2e179b3f03d4bee3ca6c24c3f831214a 100644 +index c88cf1b476eb50a51c292f3c849513d653edde83..d4fffcc5bb746df8dc177780f15ff4dbca64c018 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -668,6 +668,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -675,6 +675,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().isFullyFrozen(); } @@ -79,4 +79,4 @@ index b17522b77382e8c781811ee4e176581ee1d40290..28cda0cc2e179b3f03d4bee3ca6c24c3 + // Paper end - Freeze Tick Lock API @Override public void remove() { - this.entity.discard(); + this.entity.pluginRemoved = true; diff --git a/patches/unapplied/server/0755-Dolphin-API.patch b/patches/server/0755-Dolphin-API.patch similarity index 100% rename from patches/unapplied/server/0755-Dolphin-API.patch rename to patches/server/0755-Dolphin-API.patch diff --git a/patches/unapplied/server/0756-More-PotionEffectType-API.patch b/patches/server/0756-More-PotionEffectType-API.patch similarity index 93% rename from patches/unapplied/server/0756-More-PotionEffectType-API.patch rename to patches/server/0756-More-PotionEffectType-API.patch index 5103da4ead..b813daa3d8 100644 --- a/patches/unapplied/server/0756-More-PotionEffectType-API.patch +++ b/patches/server/0756-More-PotionEffectType-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] More PotionEffectType API diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java -index 5beb6a971529149f17c6c5e0b0c50227a55e1884..59e2f63a031f37540ca7962209e4c2950b2b1eea 100644 +index 7055a051759bf01dd76cc53b74fe1e65c521403e..5f1fd633e10e3480d736a31ada7adb6194b8c3a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java -@@ -128,4 +128,51 @@ public class CraftPotionEffectType extends PotionEffectType { - return CraftRegistry.getMinecraftRegistry(Registries.MOB_EFFECT) - .getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow(); +@@ -139,4 +139,51 @@ public class CraftPotionEffectType extends PotionEffectType { + + return ((CraftPotionEffectType) bukkit).getHandle(); } + + // Paper start diff --git a/patches/unapplied/server/0757-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0757-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 92% rename from patches/unapplied/server/0757-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0757-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch index 9c5ece870b..42598199e1 100644 --- a/patches/unapplied/server/0757-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch +++ b/patches/server/0757-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 f7b71c01b4ee67cbec4e25a643cb29e7ec7cf660..48dcee0757af22dea954681689bb9fd12315bd37 100644 +index 75ba5a7fe002b5834f12e3a1159c15e6166c9c28..b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc 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 { diff --git a/patches/unapplied/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 97% rename from patches/unapplied/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch index 4cd5df5c18..53c484a819 100644 --- a/patches/unapplied/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0758-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 43877a44ff5c0af7ff4819b63d234af6d9c32b11..c88d51e7ab9068cf2d3ac82a0c84129b7d3af011 100644 +index 92acff9a1079b7fa4d3781f423b17fe67b7fe495..8684867f92637ba0f3b7db4f3cff5bc85ad7e15b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2078,6 +2078,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/unapplied/server/0759-Add-missing-structure-set-seed-configs.patch b/patches/server/0759-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/unapplied/server/0759-Add-missing-structure-set-seed-configs.patch rename to patches/server/0759-Add-missing-structure-set-seed-configs.patch diff --git a/patches/unapplied/server/0760-Implement-regenerateChunk.patch b/patches/server/0760-Implement-regenerateChunk.patch similarity index 96% rename from patches/unapplied/server/0760-Implement-regenerateChunk.patch rename to patches/server/0760-Implement-regenerateChunk.patch index 8098f3a77c..ca798783da 100644 --- a/patches/unapplied/server/0760-Implement-regenerateChunk.patch +++ b/patches/server/0760-Implement-regenerateChunk.patch @@ -6,10 +6,10 @@ 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 fec640da33879e09a8564e2c579dd0f0302d809d..4efa3adc6ccc511501b40b405c691d09c9954553 100644 +index fe895166c0526ff30d6941f1bf4d419f30801320..3405c349bb211e11caac131a2ba5c1bb4175b9f8 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; +@@ -145,6 +145,7 @@ import org.jetbrains.annotations.NotNull; public class CraftWorld extends CraftRegionAccessor implements World { public static final int CUSTOM_DIMENSION_OFFSET = 10; private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); @@ -17,7 +17,7 @@ index fec640da33879e09a8564e2c579dd0f0302d809d..4efa3adc6ccc511501b40b405c691d09 private final ServerLevel world; private WorldBorder worldBorder; -@@ -428,27 +429,61 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -429,27 +430,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/unapplied/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 90% rename from patches/unapplied/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch index 21962ca5e6..904d7fda26 100644 --- a/patches/unapplied/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0761-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,10 +8,10 @@ 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 9eb6ad597a0e2605eae367038d7541fe538f9a86..e615c8b5c1142f547af77dafb33a8772ab5e13c3 100644 +index 87b65caa8abf15317ad158e96548553a3c062e07..2848a373e5f719e3ecf7468c129d2ddc58808484 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -358,7 +358,7 @@ public final class ItemStack { +@@ -379,7 +379,7 @@ public final class ItemStack { int oldCount = this.getCount(); ServerLevel world = (ServerLevel) context.getLevel(); @@ -20,7 +20,7 @@ index 9eb6ad597a0e2605eae367038d7541fe538f9a86..e615c8b5c1142f547af77dafb33a8772 world.captureBlockStates = true; // special case bonemeal if (item == Items.BONE_MEAL) { -@@ -417,7 +417,7 @@ public final class ItemStack { +@@ -438,7 +438,7 @@ public final class ItemStack { world.capturedBlockStates.clear(); if (blocks.size() > 1) { placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ()); diff --git a/patches/unapplied/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 86% rename from patches/unapplied/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index bcf2a9d902..ecb830bd86 100644 --- a/patches/unapplied/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0762-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 c88d51e7ab9068cf2d3ac82a0c84129b7d3af011..52104be57466bcc08370f784ae57986d1f07998b 100644 +index 8684867f92637ba0f3b7db4f3cff5bc85ad7e15b..d51695f14ca8c3030f924974ebfa0baba6884924 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2255,6 +2255,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/unapplied/server/0763-Add-GameEvent-tags.patch b/patches/server/0763-Add-GameEvent-tags.patch similarity index 95% rename from patches/unapplied/server/0763-Add-GameEvent-tags.patch rename to patches/server/0763-Add-GameEvent-tags.patch index d095d9effe..33e9653974 100644 --- a/patches/unapplied/server/0763-Add-GameEvent-tags.patch +++ b/patches/server/0763-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 52104be57466bcc08370f784ae57986d1f07998b..82dd7501d8118ce106f3c9d52b275cb7ff1f4c86 100644 +index d51695f14ca8c3030f924974ebfa0baba6884924..a8dc0e654d063a1b0c24bf6be454a168776ea600 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2676,6 +2676,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 52104be57466bcc08370f784ae57986d1f07998b..82dd7501d8118ce106f3c9d52b275cb7 default -> throw new IllegalArgumentException(); } -@@ -2708,6 +2717,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/unapplied/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 76% rename from patches/unapplied/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 1c13cca49e..0510d485d7 100644 --- a/patches/unapplied/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0764-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,19 +9,20 @@ 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 9d4c9368fcc3a44e452c1b71b5bdb43d097132d2..c4f90c6fc7bdf7339720936ad2c781396e7d91c4 100644 +index bc181f3f59eef3f2f3645e3facb37d5e4a605d34..3b6b421c0749d676fe48a49a569f5a6013576730 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1288,6 +1288,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/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index e2e5b64812ee403be59b3586bf8b0334574c011f..c21bb08363e35866774871505a32a7c41e12cb45 100644 +index dac05caba1692025af8c930e7118b8b5706f7122..aabdd9bb57974758e66e52e913afe01a41d85b3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -599,7 +599,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -629,7 +629,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { // Paper end } else if (FallingBlock.class.isAssignableFrom(clazz)) { BlockPos pos = BlockPos.containing(x, y, z); @@ -24,10 +24,10 @@ index e2e5b64812ee403be59b3586bf8b0334574c011f..c21bb08363e35866774871505a32a7c4 if (Snowball.class.isAssignableFrom(clazz)) { entity = new net.minecraft.world.entity.projectile.Snowball(world, x, y, z); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4efa3adc6ccc511501b40b405c691d09c9954553..3281d65f71387a927d8b1eb8c83b554144a379ef 100644 +index 3405c349bb211e11caac131a2ba5c1bb4175b9f8..713e7600fb845cf8c4f0880ca10bad5cf04f100b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1399,7 +1399,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1405,7 +1405,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); @@ -41,7 +41,7 @@ index 4efa3adc6ccc511501b40b405c691d09c9954553..3281d65f71387a927d8b1eb8c83b5541 return (FallingBlock) entity.getBukkitEntity(); } -@@ -1408,7 +1413,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1414,7 +1419,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/unapplied/server/0774-Expose-furnace-minecart-push-values.patch b/patches/server/0774-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/unapplied/server/0774-Expose-furnace-minecart-push-values.patch rename to patches/server/0774-Expose-furnace-minecart-push-values.patch diff --git a/patches/unapplied/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 91% rename from patches/unapplied/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch index 9a608358db..8826989056 100644 --- a/patches/unapplied/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch +++ b/patches/server/0775-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch @@ -15,10 +15,10 @@ 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 df7e044a585579534b3cad260abd74c945911dff..cabcd68032649aa5ec5f1ac495a08a5af76f0f86 100644 +index ae4319c2532855315bc45995a39d7eb98961b939..6272b0e1e332789b983a486ee25226e2a1c9fdda 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -290,6 +290,19 @@ public abstract class AbstractArrow extends Projectile { +@@ -297,6 +297,19 @@ public abstract class AbstractArrow extends Projectile { } } diff --git a/patches/unapplied/server/0776-More-Projectile-API.patch b/patches/server/0776-More-Projectile-API.patch similarity index 98% rename from patches/unapplied/server/0776-More-Projectile-API.patch rename to patches/server/0776-More-Projectile-API.patch index 5cf60d9954..8c483dc3a1 100644 --- a/patches/unapplied/server/0776-More-Projectile-API.patch +++ b/patches/server/0776-More-Projectile-API.patch @@ -489,7 +489,7 @@ index 269af20a6d0d100909a0aea0bdba307ea0658f3e..d5f1681a476c8fe2ae128a84910f4bf0 public net.minecraft.world.entity.projectile.ThrownPotion getHandle() { return (net.minecraft.world.entity.projectile.ThrownPotion) this.entity; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java -index c628594b981f276acae7b9337100d811f919631b..c8b65210d2416b5a293cb4bcc1b71f56ed365cd7 100644 +index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076c2c8ee44 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java @@ -53,5 +53,15 @@ public class CraftTrident extends CraftArrow implements Trident { @@ -509,7 +509,7 @@ index c628594b981f276acae7b9337100d811f919631b..c8b65210d2416b5a293cb4bcc1b71f56 // 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 b0062d414cec76c47ab6b30738706d1e9ed3646c..f10d9922d5c6cf37ba64f520822a6668a86fd96d 100644 +index cc679e7042c5a5fba2ce34598f2c1eaf49bb065f..58dbb94f101103249028987eda7004c66aa8717b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -834,19 +834,19 @@ public class CraftEventFactory { @@ -560,7 +560,7 @@ index b0062d414cec76c47ab6b30738706d1e9ed3646c..f10d9922d5c6cf37ba64f520822a6668 } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 221a2ccc4bf840aa301931f26c1198b36ec317fe..5f8f601f5711f4e7aa3f3a6ca047fd75264d0d04 100644 +index 93a9d53c29d9b359d9d8618254085b7fcebe8cdf..4dd17b98239edcd7cefd3533a40152e2348e747a 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -300,12 +300,20 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/unapplied/server/0777-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0777-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/unapplied/server/0777-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0777-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/unapplied/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 89% rename from patches/unapplied/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 17ad7898aa..3f3ebac09c 100644 --- a/patches/unapplied/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0778-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,10 +7,10 @@ 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 69d72c411ad6d8f9ee35bd71307d088c17564aa0..df0aa82361cc7172c35f01c119912c5a936f19f9 100644 +index c382924927685c4c210bd05c8e4a9d51430df3e9..839d90d25d3358785e77489dc2e73fb8b596224d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -463,6 +463,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -466,6 +466,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(); diff --git a/patches/unapplied/server/0779-Implement-getComputedBiome-API.patch b/patches/server/0779-Implement-getComputedBiome-API.patch similarity index 86% rename from patches/unapplied/server/0779-Implement-getComputedBiome-API.patch rename to patches/server/0779-Implement-getComputedBiome-API.patch index c876be4301..212b84fe81 100644 --- a/patches/unapplied/server/0779-Implement-getComputedBiome-API.patch +++ b/patches/server/0779-Implement-getComputedBiome-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement getComputedBiome API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index c21bb08363e35866774871505a32a7c41e12cb45..5a94a06bb531fe7805b43b5033a1d6edeee3b883 100644 +index aabdd9bb57974758e66e52e913afe01a41d85b3f..681d29902a14b36e4b72e1ca530e131e1aaf273f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -221,6 +221,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -224,6 +224,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor { return CraftBiome.minecraftHolderToBukkit(this.getHandle().getNoiseBiome(x >> 2, y >> 2, z >> 2)); } @@ -23,10 +23,10 @@ index c21bb08363e35866774871505a32a7c41e12cb45..5a94a06bb531fe7805b43b5033a1d6ed public void setBiome(Location location, Biome biome) { this.setBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ(), biome); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 6027b675ca032d7c8f6d43624dcfca69d26849ff..8f588ce8de7304dbb48bca01ed331f65ba25fef8 100644 +index 068b3735b6c50a7a2053c7dc39856f728fb7218a..6d10396347b69d9243ab902ecc68ede93fa17b7d 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -339,6 +339,13 @@ public class CraftBlock implements Block { +@@ -340,6 +340,13 @@ public class CraftBlock implements Block { return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ()); } @@ -41,7 +41,7 @@ index 6027b675ca032d7c8f6d43624dcfca69d26849ff..8f588ce8de7304dbb48bca01ed331f65 public void setBiome(Biome bio) { this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio); diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java -index bb06ec1a0cee953860ce2933b892c2bdb94608b2..9b6b8eadd10b02e9a3089b3ba6e9a10a7d36c82c 100644 +index 423a853192c87eb81b79cb6f17866c4665cc1655..ca9bb98ccfc3863c2ba538953470ab9e2b8a2f29 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java @@ -165,6 +165,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe diff --git a/patches/unapplied/server/0780-Make-some-itemstacks-nonnull.patch b/patches/server/0780-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/unapplied/server/0780-Make-some-itemstacks-nonnull.patch rename to patches/server/0780-Make-some-itemstacks-nonnull.patch diff --git a/patches/unapplied/server/0781-Implement-enchantWithLevels-API.patch b/patches/server/0781-Implement-enchantWithLevels-API.patch similarity index 91% rename from patches/unapplied/server/0781-Implement-enchantWithLevels-API.patch rename to patches/server/0781-Implement-enchantWithLevels-API.patch index 03567d8a09..b5459454d4 100644 --- a/patches/unapplied/server/0781-Implement-enchantWithLevels-API.patch +++ b/patches/server/0781-Implement-enchantWithLevels-API.patch @@ -5,10 +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 50fa1f903b99edadaa3470c2a6e15a32ff23bc85..b72da22c626ff5c41e877209d9a5a2939526d18f 100644 +index 259489c7d0f4b5ce3e8f4294f4f853e9b51ded0b..5f6b93be9e81df8fae9a5ab160a232b65ce7b8bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -492,8 +492,7 @@ public final class CraftItemFactory implements ItemFactory { +@@ -495,8 +495,7 @@ public final class CraftItemFactory implements ItemFactory { } CraftItemStack craft = (CraftItemStack) itemStack; @@ -18,7 +18,7 @@ index 50fa1f903b99edadaa3470c2a6e15a32ff23bc85..b72da22c626ff5c41e877209d9a5a293 } // Paper start - Adventure -@@ -582,4 +581,21 @@ public final class CraftItemFactory implements ItemFactory { +@@ -585,4 +584,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/unapplied/server/0782-Fix-saving-in-unloadWorld.patch b/patches/server/0782-Fix-saving-in-unloadWorld.patch similarity index 83% rename from patches/unapplied/server/0782-Fix-saving-in-unloadWorld.patch rename to patches/server/0782-Fix-saving-in-unloadWorld.patch index 3f94c47b75..f44e177fe3 100644 --- a/patches/unapplied/server/0782-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0782-Fix-saving-in-unloadWorld.patch @@ -6,10 +6,10 @@ 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 9ac414484838a86d3dc7a1bde74e0e26606736a5..099b85c3663285cce34aee8777e933622e07d079 100644 +index ab8d2d5a8cde5174412e6c1c8d37816999ad09e2..2a8855aae6f67193c172cab997c1bcdac923d7ac 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1303,7 +1303,7 @@ public final class CraftServer implements Server { +@@ -1335,7 +1335,7 @@ public final class CraftServer implements Server { try { if (save) { diff --git a/patches/unapplied/server/0783-Buffer-OOB-setBlock-calls.patch b/patches/server/0783-Buffer-OOB-setBlock-calls.patch similarity index 95% rename from patches/unapplied/server/0783-Buffer-OOB-setBlock-calls.patch rename to patches/server/0783-Buffer-OOB-setBlock-calls.patch index d17173fb30..c3098333e9 100644 --- a/patches/unapplied/server/0783-Buffer-OOB-setBlock-calls.patch +++ b/patches/server/0783-Buffer-OOB-setBlock-calls.patch @@ -13,7 +13,7 @@ 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 a38e279c9b36e539c45f410da827056a80acc43c..78284a89900e6b3ee0c066d00ba3ddf043b63401 100644 +index 3f5ba2b2f01d8cc07c4200a60b1b08cb584b170e..49c7825156afd053df1b7721a63070b51427aff2 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 { diff --git a/patches/unapplied/server/0784-Add-TameableDeathMessageEvent.patch b/patches/server/0784-Add-TameableDeathMessageEvent.patch similarity index 94% rename from patches/unapplied/server/0784-Add-TameableDeathMessageEvent.patch rename to patches/server/0784-Add-TameableDeathMessageEvent.patch index b08801fd3d..53da18382c 100644 --- a/patches/unapplied/server/0784-Add-TameableDeathMessageEvent.patch +++ b/patches/server/0784-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 d33716ddab40185ff77625c20a8a107c18d1f76d..9fb11df7131f400e6e631146c32efccea83adf56 100644 +index 8f085654f3b9c540346fe4e56c71d572da7a897c..1999cda5876bb12283d8c91a1b3e737c0d27bc38 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 { diff --git a/patches/unapplied/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 91% rename from patches/unapplied/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 13a94d9cac..45b2a00e6e 100644 --- a/patches/unapplied/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -40,7 +40,7 @@ index 4253b3b1263a7ae5a2f5f3a34674dfea615a81ea..784a894688f98f9d0368a36d456c5c94 return; } diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -index 9be4e715faefc5f7972abf064bfff3c1c980f7fc..b0caf52d00d8cd76550ab116291f8e11144a5e59 100644 +index f4bc556e245179d0a4710e5255dd289aaafdceb7..d802985f1431be4332c07f0dab88feebedea4ce2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java @@ -67,8 +67,9 @@ public class EatBlockGoal extends Goal { @@ -144,12 +144,12 @@ index 2886f4437d8361cde39922b87e9cc8e5d386e0ad..2f80d484ad523860322483cebe92cf7c } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java -index 258d453c37b7aae09874b24f61351e35212a1a40..e9beebedf1d60e06e16c442b64d28d022a3e3164 100644 +index 87c66bf8fee56e77b25498d9b2524fe2b6fd6549..0ab1bbd7c8dc8e45f754434357898d8fc990a021 100644 --- a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java -@@ -272,7 +272,7 @@ public class ChorusFlowerBlock extends Block { +@@ -284,7 +284,7 @@ public class ChorusFlowerBlock extends Block { - if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile.getType().is(EntityTypeTags.IMPACT_PROJECTILES)) { + if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile.mayBreak(world)) { // CraftBukkit - if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) { + if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state @@ -157,23 +157,23 @@ index 258d453c37b7aae09874b24f61351e35212a1a40..e9beebedf1d60e06e16c442b64d28d02 } // CraftBukkit end 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 719c60316d6e22d8a6014fa491c904dec4bf2835..741aef7f4fbe1eba8db1eb4eb2ab255906863c66 100644 +index bf0e05be3db1952b311e3eb9ab4881b12ee9dfd7..e59f9b83606da83f15924477ea2a2c4b74e7d892 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -@@ -129,7 +129,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate +@@ -137,7 +137,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate - if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile instanceof ThrownTrident && projectile.getDeltaMovement().length() > 0.6D) { - // CraftBukkit start -- if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) { -+ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state - return; - } - // CraftBukkit end + if (projectile.mayInteract(world, blockposition) && projectile.mayBreak(world) && projectile instanceof ThrownTrident && projectile.getDeltaMovement().length() > 0.6D) { + // CraftBukkit start +- if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) { ++ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state + return; + } + // 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 ed90d126e317612f40b101b559a94aabf9ad7ee2..d73589ac6076f82f516c368acb17d280fb3c47e5 100644 +index 443a8a8e2f0791a1455193cb125e1560f5d1edab..8eaf1eaf0f739a12baf6e3e9fe32c007eaba20ae 100644 --- a/src/main/java/net/minecraft/world/level/block/TntBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java -@@ -156,7 +156,7 @@ public class TntBlock extends Block { +@@ -163,7 +163,7 @@ public class TntBlock extends Block { if (projectile.isOnFire() && projectile.mayInteract(world, blockposition)) { // CraftBukkit start @@ -183,10 +183,10 @@ index ed90d126e317612f40b101b559a94aabf9ad7ee2..d73589ac6076f82f516c368acb17d280 } // 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 b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449abcc209edb 100644 +index c01cc63497917b0c5d95424c060c69f3693fc871..b6105d178778b326c11b7d29c5e4d8aa2c3a3875 100644 --- a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java -@@ -30,7 +30,7 @@ public class WaterlilyBlock extends BushBlock { +@@ -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 (world instanceof ServerLevel && entity instanceof Boat) { // CraftBukkit start @@ -196,7 +196,7 @@ index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449ab } // 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 f10d9922d5c6cf37ba64f520822a6668a86fd96d..914fb155cbd79d0a1c4fbd5389ae3a15e76cad61 100644 +index 58dbb94f101103249028987eda7004c66aa8717b..2b0a969b185dd959067d8828254f9c48f5b49161 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1413,11 +1413,11 @@ public class CraftEventFactory { diff --git a/patches/unapplied/server/0786-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0786-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 87% rename from patches/unapplied/server/0786-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0786-fix-player-loottables-running-when-mob-loot-gamerule.patch index 7730bb996e..c157a83ae7 100644 --- a/patches/unapplied/server/0786-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0786-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 97054a83f90cd1dc440b7c319c91014b237e36dc..edd8eb7e9b4c676bd823a5081f3f23f8eda13eba 100644 +index eed929059c7ee445a9ae6dbf778c4e2638311ca0..b6142c9f4474749be495ca0638e7b45fad327ce1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -917,12 +917,14 @@ public class ServerPlayer extends Player { +@@ -924,12 +924,14 @@ public class ServerPlayer extends Player { } } } diff --git a/patches/unapplied/server/0787-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0787-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 80% rename from patches/unapplied/server/0787-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0787-Ensure-entity-passenger-world-matches-ridden-entity.patch index 87b71c3bce..032aa8b7ce 100644 --- a/patches/unapplied/server/0787-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0787-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 0d3bbf0fd866a375d4db1b1819e0cca5f2d43a1f..e36a167eb5efe4dab21e7b4e0e804d5ffea12b3a 100644 +index 8f3b6cbe715e30922191444833584ed17439b518..bd83e27310bb04f064120fe0be60e498a2e4468f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2820,7 +2820,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2849,7 +2849,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/unapplied/server/0788-Guard-against-invalid-entity-positions.patch b/patches/server/0788-Guard-against-invalid-entity-positions.patch similarity index 90% rename from patches/unapplied/server/0788-Guard-against-invalid-entity-positions.patch rename to patches/server/0788-Guard-against-invalid-entity-positions.patch index 1b4774419f..823f785196 100644 --- a/patches/unapplied/server/0788-Guard-against-invalid-entity-positions.patch +++ b/patches/server/0788-Guard-against-invalid-entity-positions.patch @@ -6,10 +6,10 @@ 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 e36a167eb5efe4dab21e7b4e0e804d5ffea12b3a..82311b1f91af8cf1bfdf6036e5ac4334716dfeaf 100644 +index bd83e27310bb04f064120fe0be60e498a2e4468f..f5fa686060d40b0e8eddb910464c31085c3ee7c1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4501,11 +4501,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4543,11 +4543,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } diff --git a/patches/unapplied/server/0789-cache-resource-keys.patch b/patches/server/0789-cache-resource-keys.patch similarity index 100% rename from patches/unapplied/server/0789-cache-resource-keys.patch rename to patches/server/0789-cache-resource-keys.patch diff --git a/patches/unapplied/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch similarity index 99% rename from patches/unapplied/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch rename to patches/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch index 26b7c6f5cf..44d65a775a 100644 --- a/patches/unapplied/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch +++ b/patches/server/0790-Allow-to-change-the-podium-for-the-EnderDragon.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow to change the podium for the EnderDragon 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 65e1aa3b2d3a8af997ccf8e259ca60e0fd73f34d..0edf0374c6890b2afdefc4b723f1f4501f4e7810 100644 +index c00d4b8e39ef90bb06098bee290203502bd4225b..389c45748732781595b773bc033446ace06fcbb0 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/unapplied/server/0791-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0791-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 96% rename from patches/unapplied/server/0791-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0791-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch index c631773db5..57d912648d 100644 --- a/patches/unapplied/server/0791-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch +++ b/patches/server/0791-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 48dcee0757af22dea954681689bb9fd12315bd37..f6002cb6565d5f3f1ed729892ca38c9b5a021387 100644 +index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..52c389472e013e658344496218689465350bf8a3 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/unapplied/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 85% rename from patches/unapplied/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch index c7c36d1add..dfa3c3ac08 100644 --- a/patches/unapplied/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch +++ b/patches/server/0792-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix StructureGrowEvent species for RED_MUSHROOM 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 b18fa69a040337d8ff29ab6f2a52870db57a010c..c9593c8c3b5e0502b33691ab6c5e14d389e7d0fe 100644 +index c04629ba46e9018967b98ca4438b4f21e7dafb52..5889cb1cdb64875f0d7a7c681808b45cdc661d8e 100644 --- a/src/main/java/net/minecraft/world/level/block/MushroomBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MushroomBlock.java -@@ -92,7 +92,7 @@ public class MushroomBlock extends BushBlock implements BonemealableBlock { +@@ -104,7 +104,7 @@ public class MushroomBlock extends BushBlock implements BonemealableBlock { return false; } else { world.removeBlock(pos, false); diff --git a/patches/unapplied/server/0793-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch similarity index 89% rename from patches/unapplied/server/0793-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch index 30492bd5ff..0c39a1fe93 100644 --- a/patches/unapplied/server/0793-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0793-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 df0aa82361cc7172c35f01c119912c5a936f19f9..17fe79afb31d58d8f444eca7285f77189bafa35d 100644 +index 839d90d25d3358785e77489dc2e73fb8b596224d..241ce01fb8a667108fe836b9ff395c0bd07c611c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3188,7 +3188,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3196,7 +3196,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/unapplied/server/0794-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0794-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 92% rename from patches/unapplied/server/0794-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0794-Use-username-instead-of-display-name-in-PlayerList-g.patch index 098bf69f0e..2952acaa5c 100644 --- a/patches/unapplied/server/0794-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0794-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 ba43aecf1a0cf7e2fabd8c01f0c75dc99592c264..80d1c6850e7ce3d48cf54297ffcf9f5a2903d216 100644 +index 8f558f515d495962bec621d795bf1ea363c0ddbe..5afafee10b32b7f09757b5d60ad58e35cd467c17 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1445,7 +1445,7 @@ public abstract class PlayerList { diff --git a/patches/unapplied/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0795-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 90% rename from patches/unapplied/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0795-Pass-ServerLevel-for-gamerule-callbacks.patch index 0f9f02d756..b9e040b84d 100644 --- a/patches/unapplied/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0795-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 ab7cd594731aaa7b36f80fde00eada52f9e913a5..72c685ed3ece3752e34fc0ae25c7278ec131a505 100644 +index a305557e97d8719f5f82e70794d15242364ce136..5264235c1547c78b8123e2efb07dcb77486cc5bf 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,10 +18,10 @@ index ab7cd594731aaa7b36f80fde00eada52f9e913a5..72c685ed3ece3752e34fc0ae25c7278e 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 17fe79afb31d58d8f444eca7285f77189bafa35d..ab0a3fed682f6b2cd5e60224c3a0d2a55c69efe8 100644 +index 241ce01fb8a667108fe836b9ff395c0bd07c611c..600362fdc2d7b1f1f5614018af3339165c24d8a2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2752,7 +2752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2760,7 +2760,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 @@ -31,10 +31,10 @@ index 17fe79afb31d58d8f444eca7285f77189bafa35d..ab0a3fed682f6b2cd5e60224c3a0d2a5 } break; diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d5b2a27ee 100644 +index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f2297147a 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java -@@ -51,7 +51,7 @@ public class GameRules { +@@ -52,7 +52,7 @@ public class GameRules { public static final GameRules.Key RULE_SENDCOMMANDFEEDBACK = GameRules.register("sendCommandFeedback", GameRules.Category.CHAT, GameRules.BooleanValue.create(true)); 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; @@ -43,7 +43,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -66,7 +66,7 @@ public class GameRules { +@@ -67,7 +67,7 @@ public class GameRules { public static final GameRules.Key RULE_MAX_ENTITY_CRAMMING = GameRules.register("maxEntityCramming", GameRules.Category.MOBS, GameRules.IntegerValue.create(24)); 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) -> { @@ -52,7 +52,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -81,7 +81,7 @@ public class GameRules { +@@ -83,7 +83,7 @@ public class GameRules { public static final GameRules.Key RULE_DISABLE_RAIDS = GameRules.register("disableRaids", GameRules.Category.MOBS, GameRules.BooleanValue.create(false)); 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) -> { @@ -61,7 +61,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -176,13 +176,13 @@ public class GameRules { +@@ -180,13 +180,13 @@ public class GameRules { ((GameRules.Type) type).callVisitor(consumer, (GameRules.Key) key); // CraftBukkit - decompile error } @@ -77,7 +77,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d T t0 = rules.getRule(key); this.getRule(key).setFrom(t0, server); -@@ -250,10 +250,10 @@ public class GameRules { +@@ -254,10 +254,10 @@ public class GameRules { private final Supplier> argument; private final Function, T> constructor; @@ -90,7 +90,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d this.argument = argumentType; this.constructor = ruleFactory; this.callback = changeCallback; -@@ -285,10 +285,10 @@ public class GameRules { +@@ -289,10 +289,10 @@ public class GameRules { public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper this.updateFromArgument(context, name, gameRuleKey); // Paper @@ -103,7 +103,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d if (server != null) { this.type.callback.accept(server, this.getSelf()); } -@@ -309,7 +309,7 @@ public class GameRules { +@@ -313,7 +313,7 @@ public class GameRules { protected abstract T copy(); @@ -112,7 +112,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d } public interface GameRuleTypeVisitor { -@@ -325,7 +325,7 @@ public class GameRules { +@@ -329,7 +329,7 @@ public class GameRules { private boolean value; @@ -121,7 +121,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d return new GameRules.Type<>(BoolArgumentType::bool, (gamerules_gameruledefinition) -> { return new GameRules.BooleanValue(gamerules_gameruledefinition, initialValue); }, changeCallback, GameRules.GameRuleTypeVisitor::visitBoolean); -@@ -353,7 +353,7 @@ public class GameRules { +@@ -357,7 +357,7 @@ public class GameRules { return this.value; } @@ -130,7 +130,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d this.value = value; this.onChanged(server); } -@@ -383,7 +383,7 @@ public class GameRules { +@@ -387,7 +387,7 @@ public class GameRules { return new GameRules.BooleanValue(this.type, this.value); } @@ -139,7 +139,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d this.value = rule.value; this.onChanged(server); } -@@ -393,7 +393,7 @@ public class GameRules { +@@ -397,7 +397,7 @@ public class GameRules { private int value; @@ -148,7 +148,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d return new GameRules.Type<>(IntegerArgumentType::integer, (gamerules_gameruledefinition) -> { return new GameRules.IntegerValue(gamerules_gameruledefinition, initialValue); }, changeCallback, GameRules.GameRuleTypeVisitor::visitInteger); -@@ -421,7 +421,7 @@ public class GameRules { +@@ -425,7 +425,7 @@ public class GameRules { return this.value; } @@ -157,7 +157,7 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d this.value = value; this.onChanged(server); } -@@ -472,7 +472,7 @@ public class GameRules { +@@ -476,7 +476,7 @@ public class GameRules { return new GameRules.IntegerValue(this.type, this.value); } @@ -167,10 +167,10 @@ index 2e240ad721928a9a68370114ba61c21884ef1472..1a72fc5368731be617f9cab72e9e756d this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3281d65f71387a927d8b1eb8c83b554144a379ef..70be0eb5dd0928ee24ec8dfb92f811c19b27cdd5 100644 +index 713e7600fb845cf8c4f0880ca10bad5cf04f100b..3f4145bef3ef0d0d54914c1f6ebd216622d9a747 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1977,7 +1977,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1983,7 +1983,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Paper end GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule)); handle.deserialize(event.getValue()); // Paper @@ -179,7 +179,7 @@ index 3281d65f71387a927d8b1eb8c83b554144a379ef..70be0eb5dd0928ee24ec8dfb92f811c1 return true; } -@@ -2018,7 +2018,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2024,7 +2024,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Paper end GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName())); handle.deserialize(event.getValue()); // Paper diff --git a/patches/unapplied/server/0797-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0796-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 89% rename from patches/unapplied/server/0797-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/server/0796-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch index 676f145bb4..bfe9c268ed 100644 --- a/patches/unapplied/server/0797-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch +++ b/patches/server/0796-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add pre-unbreaking amount to PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index e615c8b5c1142f547af77dafb33a8772ab5e13c3..f83c60f94d6eeec50aefa59a39f6230953fe5b7e 100644 +index 2848a373e5f719e3ecf7468c129d2ddc58808484..784fa09e7bba8b4997960f4804b90d38aaa0f247 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -617,10 +617,11 @@ public final class ItemStack { +@@ -638,10 +638,11 @@ public final class ItemStack { } } diff --git a/patches/unapplied/server/0798-WorldCreator-keepSpawnLoaded.patch b/patches/server/0797-WorldCreator-keepSpawnLoaded.patch similarity index 87% rename from patches/unapplied/server/0798-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0797-WorldCreator-keepSpawnLoaded.patch index 259109b250..609931ffb7 100644 --- a/patches/unapplied/server/0798-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0797-WorldCreator-keepSpawnLoaded.patch @@ -5,10 +5,10 @@ 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 099b85c3663285cce34aee8777e933622e07d079..fc4866d60368b60528dfc3e7cab7892f82680ec7 100644 +index 2a8855aae6f67193c172cab997c1bcdac923d7ac..d005bcd0a64c4a18697aec802732d4f06b7ed85a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1250,7 +1250,7 @@ public final class CraftServer implements Server { +@@ -1282,7 +1282,7 @@ public final class CraftServer implements Server { ServerLevel internal = (ServerLevel) new ServerLevel(this.console, this.console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11), worlddata.isDebugWorld(), j, creator.environment() == Environment.NORMAL ? list : ImmutableList.of(), true, this.console.overworld().getRandomSequences(), creator.environment(), generator, biomeProvider); @@ -17,7 +17,7 @@ index 099b85c3663285cce34aee8777e933622e07d079..fc4866d60368b60528dfc3e7cab7892f if (!(this.worlds.containsKey(name.toLowerCase(java.util.Locale.ENGLISH)))) { return null; -@@ -1262,6 +1262,7 @@ public final class CraftServer implements Server { +@@ -1294,6 +1294,7 @@ public final class CraftServer implements Server { internal.setSpawnSettings(true, true); // Paper - move up diff --git a/patches/unapplied/server/0799-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0798-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/unapplied/server/0799-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0798-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/unapplied/server/0800-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0799-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 87% rename from patches/unapplied/server/0800-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0799-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index 2b662c68c6..893840fdd5 100644 --- a/patches/unapplied/server/0800-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0799-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,11 +5,11 @@ 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 70107194d690eb51d77bc76f0d5830bba087c0b2..6cd4e043de742bd9c84dd6408dc80598aedaa3a4 100644 +index 236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66..bf9b185e3defb496022c20ec60a84a4f6f99d5be 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, iblockdata); + block.destroy(this.level, pos, iblockdata1); } + ItemStack mainHandStack = null; // Paper @@ -19,11 +19,11 @@ index 70107194d690eb51d77bc76f0d5830bba087c0b2..6cd4e043de742bd9c84dd6408dc80598 } else { ItemStack itemstack = this.player.getMainHandItem(); ItemStack itemstack1 = itemstack.copy(); - boolean flag1 = this.player.hasCorrectToolForDrops(iblockdata); + boolean flag1 = this.player.hasCorrectToolForDrops(iblockdata1); + mainHandStack = itemstack1; // Paper + isCorrectTool = flag1; // Paper - itemstack.mineBlock(this.level, iblockdata, pos, this.player); + 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 { if (flag && event != null) { @@ -40,10 +40,10 @@ index 70107194d690eb51d77bc76f0d5830bba087c0b2..6cd4e043de742bd9c84dd6408dc80598 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 61539bd963acf46f5f05865b235f9dbc05c771c3..5cf7b0d0331a8f10aea6dd607193795054a299dd 100644 +index f82cd3677da96d3cf051c983d08a8ff302400b18..6e7a9f68aa3a5084c8eea9fd8721272260734289 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -@@ -88,7 +88,7 @@ public class BeehiveBlock extends BaseEntityBlock { +@@ -95,7 +95,7 @@ public class BeehiveBlock extends BaseEntityBlock { this.angerNearbyBees(world, pos); } diff --git a/patches/unapplied/server/0748-Add-configurable-height-for-slime-spawn.patch b/patches/unapplied/server/0748-Add-configurable-height-for-slime-spawn.patch deleted file mode 100644 index a9aa51d551..0000000000 --- a/patches/unapplied/server/0748-Add-configurable-height-for-slime-spawn.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Doc -Date: Mon, 2 Aug 2021 11:24:39 -0400 -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 21311d67565443b4ef59f8676f616237d28a8084..48a420b7455f872c351e04be3918808e51b192ed 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/Slime.java -+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java -@@ -329,7 +329,11 @@ public class Slime extends Mob implements Enemy { - - public static boolean checkSlimeSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { - if (world.getDifficulty() != Difficulty.PEACEFUL) { -- if (world.getBiome(pos).is(BiomeTags.ALLOWS_SURFACE_SLIME_SPAWNS) && pos.getY() > 50 && pos.getY() < 70 && random.nextFloat() < 0.5F && random.nextFloat() < world.getMoonBrightness() && world.getMaxLocalRawBrightness(pos) <= random.nextInt(8)) { -+ // Paper start - Replace rules for Height in Swamp Biome -+ 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 - return checkMobSpawnRules(type, world, spawnReason, pos, random); - } - -@@ -340,7 +344,10 @@ public class Slime extends Mob implements Enemy { - ChunkPos chunkcoordintpair = new ChunkPos(pos); - 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) { -+ // 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 - return checkMobSpawnRules(type, world, spawnReason, pos, random); - } - } diff --git a/patches/unapplied/server/0795-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch b/patches/unapplied/server/0795-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch deleted file mode 100644 index 7f78aa076d..0000000000 --- a/patches/unapplied/server/0795-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Fri, 15 Apr 2022 17:09:28 -0700 -Subject: [PATCH] Fix slime spawners not spawning outside slime chunks - -Fixes MC-50647 by just checking if the spawn type is a SPAWNER -and then bypassing the spawn check logic if on slimes if it is. - -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 48a420b7455f872c351e04be3918808e51b192ed..b14979ab7bed34a37fceff5589ecb789bab31318 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/Slime.java -+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java -@@ -329,6 +329,11 @@ public class Slime extends Mob implements Enemy { - - public static boolean checkSlimeSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { - if (world.getDifficulty() != Difficulty.PEACEFUL) { -+ // Paper start - fix slime spawners; Fixes MC-50647 -+ if (spawnReason == MobSpawnType.SPAWNER) { -+ return random.nextInt(10) == 0; -+ } -+ // Paper end - // Paper start - Replace rules for Height in Swamp Biome - final double maxHeightSwamp = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.surfaceBiome.maximum; - final double minHeightSwamp = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.surfaceBiome.minimum;