diff --git a/patches/unapplied/server/0947-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0945-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 88% rename from patches/unapplied/server/0947-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0945-Call-BlockGrowEvent-for-missing-blocks.patch index 69fc87cf3f..a3c48d3fff 100644 --- a/patches/unapplied/server/0947-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0945-Call-BlockGrowEvent-for-missing-blocks.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Call BlockGrowEvent for missing blocks Call the event for pitcher crops and sniffer egg diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index aca205d641b4a87d093b140585cf04fa4fefca86..1641453fd17938bc8fcdba7f89a0515ebeef20c5 100644 +index ba94ff948ccaddc16d3452306722759c115bb90a..acaa13f195467c3ebe70677b8440a88369d41b06 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -@@ -123,7 +123,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl +@@ -130,7 +130,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl int i = Math.min(state.getValue(AGE) + amount, 4); if (this.canGrow(world, pos, state, i)) { BlockState blockState = state.setValue(AGE, Integer.valueOf(i)); @@ -19,10 +19,10 @@ index aca205d641b4a87d093b140585cf04fa4fefca86..1641453fd17938bc8fcdba7f89a0515e world.setBlock(pos.above(), blockState.setValue(HALF, DoubleBlockHalf.UPPER), 3); } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index ecb8224beb0ee65855c7529b69ea56b7b6674664..fab44502b3e22eb8d1311068f88290ce31adb437 100644 +index 6c025c0fac9bd6373b99e374b773ca626d47ee6d..02939518ead6463e677ecf5b045ec89aae154e8c 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -65,8 +65,13 @@ public class SnifferEggBlock extends Block { +@@ -72,8 +72,13 @@ public class SnifferEggBlock extends Block { @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!this.isReadyToHatch(state)) { diff --git a/patches/unapplied/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0946-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 90% rename from patches/unapplied/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0946-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index dd20a78c1f..404b63c45b 100644 --- a/patches/unapplied/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0946-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7376d3acb27edd7209916e9e9df4ce9b9514e50c..4d2443f40dc2e1b38b7c80e7b5f9ca7a4f84c107 100644 +index 97a32d1d4bc4042c72c488eee92dff69f8336464..d1d81ad90ee1c007b46c9afd1f4e918af2834d38 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -361,7 +361,11 @@ public final class CraftServer implements Server { +@@ -356,7 +356,11 @@ public final class CraftServer implements Server { } this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile()); this.commandsConfiguration.options().copyDefaults(true); diff --git a/patches/unapplied/server/0949-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0947-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/unapplied/server/0949-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0947-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/unapplied/server/0950-Fix-sniffer-removeExploredLocation.patch b/patches/server/0948-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/unapplied/server/0950-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0948-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/unapplied/server/0951-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0949-Add-method-to-remove-all-active-potion-effects.patch similarity index 86% rename from patches/unapplied/server/0951-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0949-Add-method-to-remove-all-active-potion-effects.patch index 27b5f10678..51910df176 100644 --- a/patches/unapplied/server/0951-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0949-Add-method-to-remove-all-active-potion-effects.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1ad5a4703f7164bb530262e1459dc73302cc8e48..6be370a2be88aac6e229210ef625380171504693 100644 +index c7381ceae2d15738b72d6bb48ea7d40f7de11c3e..ba2cd9c4cdbd5ddab1300320d7e0ede4d4b7a31a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -503,6 +503,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -504,6 +504,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return effects; } diff --git a/patches/unapplied/server/0952-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0950-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 91% rename from patches/unapplied/server/0952-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0950-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch index d1bb2bb57c..f54a8ab1ea 100644 --- a/patches/unapplied/server/0952-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch +++ b/patches/server/0950-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ab4cf79e297ada08a0a5e2cbf294a70f9e87c635..c737c5d62407337d3db2899cfc01713a058a6467 100644 +index f37ac6edc60545600ccd22bfac072585d11b449b..4b457cbfc56e55e0ae0fee5b69e2e75349702aab 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -368,6 +368,7 @@ public class Main { diff --git a/patches/unapplied/server/0953-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0951-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/unapplied/server/0953-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0951-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/unapplied/server/0954-Properly-Cancel-Usable-Items.patch b/patches/server/0952-Properly-Cancel-Usable-Items.patch similarity index 89% rename from patches/unapplied/server/0954-Properly-Cancel-Usable-Items.patch rename to patches/server/0952-Properly-Cancel-Usable-Items.patch index 7d7430930d..28c1d29215 100644 --- a/patches/unapplied/server/0954-Properly-Cancel-Usable-Items.patch +++ b/patches/server/0952-Properly-Cancel-Usable-Items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index e8ad6a1e497f399c5d8cd6a6ec192ddc932e3fb9..1a895a511d8bb20bcaf6ae5534ca70529d65951e 100644 +index f58386e952d29a16d160b628a23efbe102791277..82f26186156a487f29ad3abff3f68852e5b8a1f9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,10 +34,10 @@ index e8ad6a1e497f399c5d8cd6a6ec192ddc932e3fb9..1a895a511d8bb20bcaf6ae5534ca7052 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dc50f0c4514cc239a4639a03e4edbda5c258b867..8b0bcaa4239a0966cf7b7676525c1ab69c25f534 100644 +index 28c61453d37132f9bab143202b7d59d368020f6a..09e5d0790b87a4747dd50eb790cdd1ce83de2550 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1924,6 +1924,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1951,6 +1951,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (cancelled) { @@ -46,10 +46,10 @@ index dc50f0c4514cc239a4639a03e4edbda5c258b867..8b0bcaa4239a0966cf7b7676525c1ab6 return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 371f6d2539eac7161a86bb64763b4ee228eccbdf..6d4d46163ffcffa98f400c2656703eb5c4818f40 100644 +index f359f63ac8cf3133b63096dad4e3142c6c4b1cbf..bed0a01be1703aad8fbfa549d5799e3f84759f32 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3811,6 +3811,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } diff --git a/patches/unapplied/server/0955-Add-event-for-player-editing-sign.patch b/patches/server/0953-Add-event-for-player-editing-sign.patch similarity index 94% rename from patches/unapplied/server/0955-Add-event-for-player-editing-sign.patch rename to patches/server/0953-Add-event-for-player-editing-sign.patch index d8b7be275f..1455982bd4 100644 --- a/patches/unapplied/server/0955-Add-event-for-player-editing-sign.patch +++ b/patches/server/0953-Add-event-for-player-editing-sign.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6e2c62336537fba187fbbb47c1f52f935683c0d5..21b3be35da5636fa726f36f569142de5d16ac1f3 100644 +index ef2f9cae4b06a020f0b9209b69316733df055438..d4df53d022eb58cf43d787ed84bd94fdf1684d69 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -502,7 +502,7 @@ public final class ItemStack { +@@ -523,7 +523,7 @@ public final class ItemStack { try { if (world.getBlockEntity(SignItem.openSign) instanceof SignBlockEntity tileentitysign) { if (world.getBlockState(SignItem.openSign).getBlock() instanceof SignBlock blocksign) { @@ -18,10 +18,10 @@ index 6e2c62336537fba187fbbb47c1f52f935683c0d5..21b3be35da5636fa726f36f569142de5 } } finally { diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 1a1f57cad2eeb5fa1d57e6a07e201ee77065ec90..0c1c6fbcf625da4a28514e0d040deb6c98ba9507 100644 +index 8d7295a949280f233d12d24894cd9dd07af1e325..28cba43e42354b87e08ef87b70c274a2fdc0bb48 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java -@@ -115,7 +115,7 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo +@@ -118,7 +118,7 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo } else if (flag2) { return InteractionResult.SUCCESS; } else if (!this.otherPlayerIsEditingSign(player, tileentitysign) && player.mayBuild() && this.hasEditableText(player, tileentitysign, flag1)) { @@ -30,7 +30,7 @@ index 1a1f57cad2eeb5fa1d57e6a07e201ee77065ec90..0c1c6fbcf625da4a28514e0d040deb6c return this.getInteractionResult(flag); } else { return InteractionResult.PASS; -@@ -167,16 +167,33 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo +@@ -170,16 +170,33 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo return blockpropertywood; } diff --git a/patches/unapplied/server/0956-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0954-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/unapplied/server/0956-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0954-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/unapplied/server/0957-Improve-command-function-perm-level-checks.patch b/patches/server/0955-Improve-command-function-perm-level-checks.patch similarity index 86% rename from patches/unapplied/server/0957-Improve-command-function-perm-level-checks.patch rename to patches/server/0955-Improve-command-function-perm-level-checks.patch index 5d912059ff..3413470663 100644 --- a/patches/unapplied/server/0957-Improve-command-function-perm-level-checks.patch +++ b/patches/server/0955-Improve-command-function-perm-level-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve command function perm level checks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 0112035219b21550ca14fa1755c43a5547ca4136..56ae02aab93b9a698e9d2f07a0448aa4767169d9 100644 +index 20b2cbbc73f6420b6ace9746016527b90d9f01b9..14f4c0a93372a58cf36dc95265b5e210ea1605e5 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -212,8 +212,14 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy +@@ -206,8 +206,14 @@ public class CommandSourceStack implements ExecutionCommandSource optional = HoneycombItem.getWaxed(iblockdata); if (optional.isPresent()) { @@ -36,7 +36,7 @@ index c0baec6ae9bd90410f47aa04d7c7704233375d1a..e9b748a81ec223a701b56d2dc890c9eb worldserver.setBlockAndUpdate(blockposition, (BlockState) optional.get()); worldserver.levelEvent(3003, blockposition, 0); stack.shrink(1); -@@ -1153,6 +1167,12 @@ public interface DispenseItemBehavior { +@@ -1161,6 +1175,12 @@ public interface DispenseItemBehavior { if (!worldserver.getBlockState(blockposition1).is(BlockTags.CONVERTABLE_TO_MUD)) { return this.defaultDispenseItemBehavior.dispense(pointer, stack); } else { @@ -50,10 +50,10 @@ index c0baec6ae9bd90410f47aa04d7c7704233375d1a..e9b748a81ec223a701b56d2dc890c9eb for (int k = 0; k < 5; ++k) { worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 81066d1d4e7a5818018469d5659c15dc2d5a43bf..e51a54275aeab85158ee9685b2f6d0f5f3a0b58a 100644 +index 4c14bcf9396b4ee9649c4647b485797f6fce06f3..e4551a6d984928457af4fb6cc2d0bf3673ef8fb1 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2102,6 +2102,32 @@ public class CraftEventFactory { +@@ -2101,6 +2101,32 @@ public class CraftEventFactory { } // Paper end diff --git a/patches/unapplied/server/0960-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0958-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 81% rename from patches/unapplied/server/0960-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0958-Don-t-load-chunks-for-supporting-block-checks.patch index 12f1d28c61..a9cb5d558c 100644 --- a/patches/unapplied/server/0960-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0958-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e8a21de2434aa089079827eca16d803993d05c65..bf77b0dae2ca25437df7386d2196da24d681e2ed 100644 +index dfa077ad2e632bc71be41917d5923edae12f7738..36a6eb05f983f0137590c8ed1ec154affd9cdbd3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1356,7 +1356,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1361,7 +1361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/unapplied/server/0961-Optimize-player-lookups-for-beacons.patch b/patches/server/0959-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/unapplied/server/0961-Optimize-player-lookups-for-beacons.patch rename to patches/server/0959-Optimize-player-lookups-for-beacons.patch diff --git a/patches/unapplied/server/0962-Add-Sign-getInteractableSideFor.patch b/patches/server/0960-Add-Sign-getInteractableSideFor.patch similarity index 93% rename from patches/unapplied/server/0962-Add-Sign-getInteractableSideFor.patch rename to patches/server/0960-Add-Sign-getInteractableSideFor.patch index 0a4aadfb36..4f30795f22 100644 --- a/patches/unapplied/server/0962-Add-Sign-getInteractableSideFor.patch +++ b/patches/server/0960-Add-Sign-getInteractableSideFor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Sign#getInteractableSideFor diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index e34f7426df5d6c94fcc4101b28702e6c1d9fccff..9eea2982e92e9bc7a53962dc6b21de60f9e5a4c7 100644 +index 6a876198008d4c6487e96989c38c331b71818ad3..68f95a8eb4aa659e62394bf98ecd5f5d46879cbf 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -@@ -64,13 +64,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C +@@ -66,13 +66,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C } public boolean isFacingFrontText(net.minecraft.world.entity.player.Player player) { diff --git a/patches/unapplied/server/0963-Array-backed-synched-entity-data.patch b/patches/server/0961-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/unapplied/server/0963-Array-backed-synched-entity-data.patch rename to patches/server/0961-Array-backed-synched-entity-data.patch diff --git a/patches/unapplied/server/0964-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0962-fix-item-meta-for-tadpole-buckets.patch similarity index 92% rename from patches/unapplied/server/0964-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0962-fix-item-meta-for-tadpole-buckets.patch index b8d4f28c59..0680b00a7e 100644 --- a/patches/unapplied/server/0964-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0962-fix-item-meta-for-tadpole-buckets.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index b72da22c626ff5c41e877209d9a5a2939526d18f..9469b0d5d8a46ac17c3998a4b537a4feb1deb3b0 100644 +index 5f6b93be9e81df8fae9a5ab160a232b65ce7b8bc..c77634ec9c4e7a9eaacc81de7f95e9452b393a52 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -355,6 +355,7 @@ public final class CraftItemFactory implements ItemFactory { +@@ -358,6 +358,7 @@ public final class CraftItemFactory implements ItemFactory { case COD_BUCKET: case PUFFERFISH_BUCKET: case SALMON_BUCKET: @@ -17,10 +17,10 @@ index b72da22c626ff5c41e877209d9a5a2939526d18f..9469b0d5d8a46ac17c3998a4b537a4fe case GLOW_ITEM_FRAME: case PAINTING: diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index b758cf51923f9e227c287680287dc18525bed4a0..ff9e42299d46764cd53f72c730716102c6b8aa3c 100644 +index 220ccd03d6f326b3747602e0e4e7ffee8173dc03..3660ad55cc7e1f6e571887aac9c0215803f1ce41 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -@@ -600,6 +600,7 @@ public final class CraftItemStack extends ItemStack { +@@ -603,6 +603,7 @@ public final class CraftItemStack extends ItemStack { case COD_BUCKET: case PUFFERFISH_BUCKET: case SALMON_BUCKET: diff --git a/patches/unapplied/server/0965-Suppress-Item-Meta-Validation-Checks.patch b/patches/server/0963-Suppress-Item-Meta-Validation-Checks.patch similarity index 96% rename from patches/unapplied/server/0965-Suppress-Item-Meta-Validation-Checks.patch rename to patches/server/0963-Suppress-Item-Meta-Validation-Checks.patch index feaea33cab..ee326bb6ed 100644 --- a/patches/unapplied/server/0965-Suppress-Item-Meta-Validation-Checks.patch +++ b/patches/server/0963-Suppress-Item-Meta-Validation-Checks.patch @@ -47,10 +47,10 @@ index f393e0844889c967d9e83d9a1e73c134fcb6e33b..f8996ee643a46db301577f6c523f24e9 CraftMetaArmor(Map map) { super(map); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index f6d2785b05b4c0a4393be706a90d7cc4388399bf..2510297df2f6ca80672c1dcbd35c0b1e0ce18ccb 100644 +index cbf1a518406bf478811c737e6dabf0a8c451d16c..039197efb05432b8139fbabe92338572c1bf078e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -489,7 +489,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -490,7 +490,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { continue; } diff --git a/patches/unapplied/server/0966-Fix-BanList-API.patch b/patches/server/0964-Fix-BanList-API.patch similarity index 97% rename from patches/unapplied/server/0966-Fix-BanList-API.patch rename to patches/server/0964-Fix-BanList-API.patch index 35256cb2e9..f4c1287f4f 100644 --- a/patches/unapplied/server/0966-Fix-BanList-API.patch +++ b/patches/server/0964-Fix-BanList-API.patch @@ -208,10 +208,10 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index adc90af7ee07ce5f714bfc92b870c4d78e5c6dc9..daf519f6eb367ef2404d33929e69fe44b6f8bb07 100644 +index 4c4594e96c57ae374bcf2d70004bd12d1da1b758..d252f0313b1d73758782249060e7c57afb5c5418 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1641,23 +1641,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1648,23 +1648,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override @@ -240,7 +240,7 @@ index adc90af7ee07ce5f714bfc92b870c4d78e5c6dc9..daf519f6eb367ef2404d33929e69fe44 if (kickPlayer) { this.kickPlayer(reason); } -@@ -1665,12 +1665,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1672,12 +1672,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override @@ -256,10 +256,10 @@ index adc90af7ee07ce5f714bfc92b870c4d78e5c6dc9..daf519f6eb367ef2404d33929e69fe44 } diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java -index 533d143969592f9a4f4d1ea1660474264150f211..c08006a010606fac5d290889a3ad9fdf9008ee72 100644 +index 6422c58907ee289359a11054fec1e4de6f495ae3..bc6151cfeb7ace4755414614723ee830081094af 100644 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java -@@ -31,7 +31,7 @@ import org.bukkit.profile.PlayerProfile; +@@ -28,7 +28,7 @@ import org.bukkit.profile.PlayerProfile; import org.bukkit.profile.PlayerTextures; @SerializableAs("PlayerProfile") @@ -268,7 +268,7 @@ index 533d143969592f9a4f4d1ea1660474264150f211..c08006a010606fac5d290889a3ad9fdf @Nonnull public static GameProfile validateSkullProfile(@Nonnull GameProfile gameProfile) { -@@ -126,7 +126,7 @@ public final class CraftPlayerProfile implements PlayerProfile, com.destroystoky +@@ -123,7 +123,7 @@ public final class CraftPlayerProfile implements PlayerProfile, com.destroystoky } @Override @@ -277,7 +277,7 @@ index 533d143969592f9a4f4d1ea1660474264150f211..c08006a010606fac5d290889a3ad9fdf return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor } -@@ -285,4 +285,71 @@ public final class CraftPlayerProfile implements PlayerProfile, com.destroystoky +@@ -277,4 +277,71 @@ public final class CraftPlayerProfile implements PlayerProfile, com.destroystoky // Paper - diff on change return profile; } diff --git a/patches/unapplied/server/0967-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0965-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/unapplied/server/0967-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0965-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/unapplied/server/0968-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0966-Fix-possible-NPE-on-painting-creation.patch similarity index 90% rename from patches/unapplied/server/0968-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0966-Fix-possible-NPE-on-painting-creation.patch index 65c5275ad6..79b881dbab 100644 --- a/patches/unapplied/server/0968-Fix-possible-NPE-on-painting-creation.patch +++ b/patches/server/0966-Fix-possible-NPE-on-painting-creation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix possible NPE on painting creation diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 7ef90fbdbcdb12ae0f3837fb003112115ab7ecfe..4289cce80f9861b809062a29c0d89b9dbd0ba8cd 100644 +index 096e1cc920f5f48fe59b9419827c3cbb7adefe14..ee8819884868b70f2a3644141eca1d92abe2b7a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -917,6 +917,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -951,6 +951,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { AABB bb = (ItemFrame.class.isAssignableFrom(clazz)) ? net.minecraft.world.entity.decoration.ItemFrame.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height) : HangingEntity.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height); @@ -16,7 +16,7 @@ index 7ef90fbdbcdb12ae0f3837fb003112115ab7ecfe..4289cce80f9861b809062a29c0d89b9d List list = (List) this.getHandle().getEntities(null, bb); for (Iterator it = list.iterator(); !taken && it.hasNext(); ) { net.minecraft.world.entity.Entity e = it.next(); -@@ -943,7 +944,8 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -977,7 +978,8 @@ public abstract class CraftRegionAccessor implements RegionAccessor { if (Painting.class.isAssignableFrom(clazz)) { if (this.isNormalWorld() && randomizeData) { entity = net.minecraft.world.entity.decoration.Painting.create(world, pos, dir).orElse(null); diff --git a/patches/unapplied/server/0969-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0967-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/unapplied/server/0969-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0967-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/unapplied/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0968-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 75% rename from patches/unapplied/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0968-ExperienceOrb-should-call-EntitySpawnEvent.patch index fea6aa1a5f..f9729a3590 100644 --- a/patches/unapplied/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0968-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,18 +5,18 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e51a54275aeab85158ee9685b2f6d0f5f3a0b58a..df3feea9ed025bd7be39dfe1f1e1fdc4c1e77035 100644 +index e4551a6d984928457af4fb6cc2d0bf3673ef8fb1..8f78b9e714c472f59f3abf565c53bd87a6811674 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -722,7 +722,10 @@ public class CraftEventFactory { - } else if (entity instanceof net.minecraft.world.entity.ExperienceOrb) { - net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity; +@@ -737,7 +737,10 @@ public class CraftEventFactory { + // Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above) + if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; - if (radius > 0) { + // Paper start - Call EntitySpawnEvent for ExperienceOrb entities. + event = CraftEventFactory.callEntitySpawnEvent(entity); + if (radius > 0 && !event.isCancelled() && !entity.isRemoved()) { -+ // Paper end ++ // Paper end // Paper start - Maximum exp value when merging - Whole section has been tweaked, see comments for specifics final int maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue; final boolean mergeUnconditionally = world.paperConfig().entities.behavior.experienceMergeMaxValue <= 0; diff --git a/patches/unapplied/server/0971-Don-t-tick-signs.patch b/patches/server/0969-Don-t-tick-signs.patch similarity index 82% rename from patches/unapplied/server/0971-Don-t-tick-signs.patch rename to patches/server/0969-Don-t-tick-signs.patch index 759f4ef4d2..7d9da1c24e 100644 --- a/patches/unapplied/server/0971-Don-t-tick-signs.patch +++ b/patches/server/0969-Don-t-tick-signs.patch @@ -9,10 +9,10 @@ Minecraft now ticks signs in order to validate the playerWhoMayEdit field. This private net.minecraft.world.level.block.entity.SignBlockEntity playerWhoMayEdit diff --git a/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java b/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java -index 6c9d163b9f857806461dc72e54713f1a4f3a5c31..0bd8ea3143b2e9755d492af4596622d1dca1afaf 100644 +index cee371fde78e7e95e166b138d9437e5e8087f7c7..90fe181d035e43c4cc220cbb984f8f8c7fd29602 100644 --- a/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java -@@ -144,6 +144,6 @@ public class CeilingHangingSignBlock extends SignBlock { +@@ -154,6 +154,6 @@ public class CeilingHangingSignBlock extends SignBlock { @Nullable @Override public BlockEntityTicker getTicker(Level world, BlockState state, BlockEntityType type) { @@ -21,10 +21,10 @@ index 6c9d163b9f857806461dc72e54713f1a4f3a5c31..0bd8ea3143b2e9755d492af4596622d1 } } diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 0c1c6fbcf625da4a28514e0d040deb6c98ba9507..614777d15bcf4141a89d0a0f7bd880526c668ffd 100644 +index 28cba43e42354b87e08ef87b70c274a2fdc0bb48..ade170b4c76ad4a36eb2fba831d438642c096205 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java -@@ -207,6 +207,6 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo +@@ -210,6 +210,6 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo @Nullable @Override public BlockEntityTicker getTicker(Level world, BlockState state, BlockEntityType type) { @@ -33,10 +33,10 @@ index 0c1c6fbcf625da4a28514e0d040deb6c98ba9507..614777d15bcf4141a89d0a0f7bd88052 } } diff --git a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java b/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java -index d818d3ea6d28aa6ffb62127d4efd585d6f2935d1..ae232311f12c72ff62d3d18f25e3ebf46ce1ace2 100644 +index 32a463104593ecf00d44c449edda24a13ac8224e..484a2a689f240f1916e911459111782e91c20940 100644 --- a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java -@@ -167,6 +167,6 @@ public class WallHangingSignBlock extends SignBlock { +@@ -177,6 +177,6 @@ public class WallHangingSignBlock extends SignBlock { @Nullable @Override public BlockEntityTicker getTicker(Level world, BlockState state, BlockEntityType type) { @@ -45,10 +45,10 @@ index d818d3ea6d28aa6ffb62127d4efd585d6f2935d1..ae232311f12c72ff62d3d18f25e3ebf4 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index 9eea2982e92e9bc7a53962dc6b21de60f9e5a4c7..38cde466714e5663cd416b6afd5d2558e139ec09 100644 +index 68f95a8eb4aa659e62394bf98ecd5f5d46879cbf..bc01970c5ef9cde4a75394d6977837e924a38463 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -@@ -367,6 +367,12 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C +@@ -365,6 +365,12 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @Nullable public UUID getPlayerWhoMayEdit() { diff --git a/patches/unapplied/server/0972-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0970-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 89% rename from patches/unapplied/server/0972-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0970-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch index 45166cba2a..392fad1ce8 100644 --- a/patches/unapplied/server/0972-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch +++ b/patches/server/0970-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make Amethyst throw both Spread and Grow Events diff --git a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java -index 4dae2a98070affd84bc4523a927dc9cbfe7379c6..2548244c089dff583c8c424dcaa5504caedf3f10 100644 +index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..ee24eac5e37a2fd0c8c37365ea10d03749beb9a7 100644 --- a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java -@@ -38,7 +38,13 @@ public class BuddingAmethystBlock extends AmethystBlock { +@@ -45,7 +45,13 @@ public class BuddingAmethystBlock extends AmethystBlock { if (block != null) { BlockState iblockdata2 = (BlockState) ((BlockState) block.defaultBlockState().setValue(AmethystClusterBlock.FACING, enumdirection)).setValue(AmethystClusterBlock.WATERLOGGED, iblockdata1.getFluidState().getType() == Fluids.WATER); diff --git a/patches/unapplied/server/0973-Add-whitelist-events.patch b/patches/server/0971-Add-whitelist-events.patch similarity index 100% rename from patches/unapplied/server/0973-Add-whitelist-events.patch rename to patches/server/0971-Add-whitelist-events.patch diff --git a/patches/unapplied/server/0974-Implement-PlayerFailMoveEvent.patch b/patches/server/0972-Implement-PlayerFailMoveEvent.patch similarity index 75% rename from patches/unapplied/server/0974-Implement-PlayerFailMoveEvent.patch rename to patches/server/0972-Implement-PlayerFailMoveEvent.patch index 05065fe7c6..cb0d92fefa 100644 --- a/patches/unapplied/server/0974-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0972-Implement-PlayerFailMoveEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d160000a98ea8c 100644 +index 09e5d0790b87a4747dd50eb790cdd1ce83de2550..c01d38b673303b06ad0a932641446b1a8f4fda8c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1292,8 +1292,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1317,8 +1317,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); final double toX = d0; // Paper - OBFHELPER double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); final double toY = d1; double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER @@ -19,8 +19,8 @@ index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d16000 if (this.player.isPassenger()) { this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1); -@@ -1359,8 +1359,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - } +@@ -1385,8 +1385,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } // Paper start - Prevent moving into unloaded chunks if (this.player.level().paperConfig().chunks.preventMovingIntoUnloadedChunks && (this.player.getX() != toX || this.player.getZ() != toZ) && !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position())))) { + // Paper start - Add fail move event @@ -34,24 +34,33 @@ index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d16000 } // Paper end -@@ -1369,9 +1375,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1395,9 +1401,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { - // CraftBukkit end -+ // Paper start - Add fail move event -+ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY, -+ toX, toY, toZ, toYaw, toPitch, true); -+ if (!event.isAllowed()) { -+ if (event.getLogWarning()) - ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d6, d7, d8}); - this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot()); + if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { + // CraftBukkit end ++ // Paper start - Add fail move event ++ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY, ++ toX, toY, toZ, toYaw, toPitch, true); ++ if (!event.isAllowed()) { ++ if (event.getLogWarning()) + ServerGamePacketListenerImpl.LOGGER.warn("{} moved too quickly! {},{},{}", new Object[]{this.player.getName().getString(), d6, d7, d8}); + this.teleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot()); + return; ++ } ++ // Paper end + } + } + } +@@ -1436,6 +1449,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + from = event.getFrom(); + this.internalTeleport(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch(), Collections.emptySet()); return; + } + // Paper end } + // Paper end } - -@@ -1436,8 +1449,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1463,8 +1478,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag2 = false; if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot @@ -67,7 +76,7 @@ index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d16000 } // Paper start - optimise out extra getCubes -@@ -1450,6 +1470,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1477,6 +1499,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (didCollide || !axisalignedbb.equals(newBox)) { // note: only call after setLocation, or else getBoundingBox is wrong teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox); @@ -83,7 +92,7 @@ index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d16000 } // else: no collision at all detected, why do we care? } if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes -@@ -1538,6 +1567,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1565,6 +1596,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/unapplied/server/0975-Folia-scheduler-and-owned-region-API.patch b/patches/server/0973-Folia-scheduler-and-owned-region-API.patch similarity index 98% rename from patches/unapplied/server/0975-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0973-Folia-scheduler-and-owned-region-API.patch index 0c1306f2d5..69958ec486 100644 --- a/patches/unapplied/server/0975-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0973-Folia-scheduler-and-owned-region-API.patch @@ -1121,10 +1121,10 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fff00b3706a97ba71a80f2ba39577b229325e02..1bac9f7894321b5710f5475f6598ec9f3ccd94d3 100644 +index 69f21266bb0a7c42ba4e12b71acf12a4ee99bd1a..2a122872ebe3d079db5170bb49b0614c30c5df4f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1466,6 +1466,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { super(type, world); -@@ -393,6 +394,7 @@ public class ItemFrame extends HangingEntity { +@@ -388,6 +389,7 @@ public class ItemFrame extends HangingEntity { } private void onItemChanged(ItemStack stack) { diff --git a/patches/unapplied/server/0985-Fix-custom-statistic-criteria-creation.patch b/patches/server/0983-Fix-custom-statistic-criteria-creation.patch similarity index 88% rename from patches/unapplied/server/0985-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0983-Fix-custom-statistic-criteria-creation.patch index d027126175..4f6d00f22d 100644 --- a/patches/unapplied/server/0985-Fix-custom-statistic-criteria-creation.patch +++ b/patches/server/0983-Fix-custom-statistic-criteria-creation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix custom statistic criteria creation diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index ef317919818f9387dc394dd703fc028eaf37ec63..4d66a9f24d718de4c6862b20ccb7240332523db4 100644 +index 7cfb8ffd7d107aef20a86d044b453c49e9f59b7f..c0e36388652e89059c91117722945645119a5738 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -617,6 +617,12 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -614,6 +614,12 @@ public final class CraftMagicNumbers implements UnsafeValues { net.minecraft.core.Holder biomeBase = cra.getHandle().registryAccess().registryOrThrow(net.minecraft.core.registries.Registries.BIOME).getHolderOrThrow(net.minecraft.resources.ResourceKey.create(net.minecraft.core.registries.Registries.BIOME, org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(biomeKey))); cra.setBiome(x, y, z, biomeBase); } diff --git a/patches/unapplied/server/0986-Bandaid-fix-for-Effect.patch b/patches/server/0984-Bandaid-fix-for-Effect.patch similarity index 95% rename from patches/unapplied/server/0986-Bandaid-fix-for-Effect.patch rename to patches/server/0984-Bandaid-fix-for-Effect.patch index 3954656da2..08395f1368 100644 --- a/patches/unapplied/server/0986-Bandaid-fix-for-Effect.patch +++ b/patches/server/0984-Bandaid-fix-for-Effect.patch @@ -45,10 +45,10 @@ index 5a5a8945c786e16ff0df62494ddd1ac85c42b53f..63f9735d356dafd579cee4423d3037eb case COMPOSTER_FILL_ATTEMPT: datavalue = ((Boolean) data) ? 1 : 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3df9f69e4297ef0f412191f8a0c1cb17311f4de3..44d6a7373fe0c7b6afff31e149174367e9873bf9 100644 +index c77fec78636805a496ecea3e56f26290dbcbffff..abb14719496971a780650782bdce17c638c7b270 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1376,7 +1376,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1382,7 +1382,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { public void playEffect(Location loc, Effect effect, T data, int radius) { if (data != null) { Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect); @@ -58,10 +58,10 @@ index 3df9f69e4297ef0f412191f8a0c1cb17311f4de3..44d6a7373fe0c7b6afff31e149174367 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index daf519f6eb367ef2404d33929e69fe44b6f8bb07..17e2a26d5136b23898bdd15ef6a9d5b7ace65c8e 100644 +index d252f0313b1d73758782249060e7c57afb5c5418..082350f866eaef5fc8f98ebc217aa02cdcab5a46 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -868,7 +868,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -875,7 +875,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { Preconditions.checkArgument(effect != null, "Effect cannot be null"); if (data != null) { Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect); diff --git a/patches/unapplied/server/0987-SculkCatalyst-bloom-API.patch b/patches/server/0985-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/unapplied/server/0987-SculkCatalyst-bloom-API.patch rename to patches/server/0985-SculkCatalyst-bloom-API.patch diff --git a/patches/unapplied/server/0988-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0986-API-for-an-entity-s-scoreboard-name.patch similarity index 86% rename from patches/unapplied/server/0988-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0986-API-for-an-entity-s-scoreboard-name.patch index aa9667e2e3..568b4beee3 100644 --- a/patches/unapplied/server/0988-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0986-API-for-an-entity-s-scoreboard-name.patch @@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index acdac5b9b9990b1f8c25effe6b8882746284d9d9..fb7f5d8a7a691de04cf1525b356621688fd6af54 100644 +index 3b730c298c0e902bd1888d69e426513c57514c93..c4343cbdea19a0dd671ed136a6a19ebf831ce8ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1506,4 +1506,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1550,4 +1550,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return !this.getHandle().level().noCollision(this.getHandle(), aabb); } // Paper End - Collision API diff --git a/patches/unapplied/server/0989-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0987-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 73% rename from patches/unapplied/server/0989-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0987-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 42d9c41142..d147593a77 100644 --- a/patches/unapplied/server/0989-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0987-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -38,33 +38,33 @@ index c081842b4416d15342cbfc583ef367901dab2b7e..4d406ced4a1996b8883574ce0b785dc1 // Paper end diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 8907396dc21dbfb31ff15286a7daa2110f6e34c0..8ef4b33c09c64c417e9b0d259550d7f78d1cec14 100644 +index 1f7586b71c579d48de32a307c0ce543130f0851b..bf14dbec0a08370364bf652ababadac27917b7f1 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -532,7 +532,17 @@ public class ServerChunkCache extends ChunkSource { - if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled - // re-set mob counts - for (ServerPlayer player : this.level.players) { -- Arrays.fill(player.mobCounts, 0); -+ // Paper start - per player mob spawning backoff -+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { -+ player.mobCounts[ii] = 0; +@@ -539,7 +539,17 @@ public class ServerChunkCache extends ChunkSource { + if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled + // re-set mob counts + for (ServerPlayer player : this.level.players) { +- Arrays.fill(player.mobCounts, 0); ++ // Paper start - per player mob spawning backoff ++ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { ++ player.mobCounts[ii] = 0; + -+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? -+ if (newBackoff < 0) { -+ newBackoff = 0; ++ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? ++ if (newBackoff < 0) { ++ newBackoff = 0; ++ } ++ player.mobBackoffCounts[ii] = newBackoff; + } -+ player.mobBackoffCounts[ii] = newBackoff; -+ } -+ // Paper end - per player mob spawning backoff - } - spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); - } else { ++ // Paper end - per player mob spawning backoff + } + spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); + } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 113089a7d087ecb0508b5f05e708dca1c3296735..47eb7f632c71714903c8bac45ef6080fb58cd6d2 100644 +index cca1f44ba8cefcc0ee3e6dadd175bd67b311b2de..25772043f3b4483b9f5e32ba9489da52add6941a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -253,6 +253,7 @@ public class ServerPlayer extends Player { +@@ -260,6 +260,7 @@ public class ServerPlayer extends Player { public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length; public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper // Paper end - mob spawning rework diff --git a/patches/unapplied/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0988-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 92% rename from patches/unapplied/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0988-Deprecate-and-replace-methods-with-old-StructureType.patch index 7845dd4959..565a24bbde 100644 --- a/patches/unapplied/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/server/0988-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8de06dd9fb058c5b02f4ffe0d14d0bd7205dbdeb..356107688a5d40d1c462b164f61af82f4dfd3926 100644 +index b64d08d5fed98a919fcdfda1592a1f825525075d..782bb8ca67517dde5dba8f0a133eb8699353dd01 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1918,6 +1918,11 @@ public final class CraftServer implements Server { +@@ -1950,6 +1950,11 @@ public final class CraftServer implements Server { ServerLevel worldServer = ((CraftWorld) world).getHandle(); Location structureLocation = world.locateNearestStructure(location, structureType, radius, findUnexplored); @@ -20,7 +20,7 @@ index 8de06dd9fb058c5b02f4ffe0d14d0bd7205dbdeb..356107688a5d40d1c462b164f61af82f BlockPos structurePosition = CraftLocation.toBlockPosition(structureLocation); // Create map with trackPlayer = true, unlimitedTracking = true -@@ -1928,6 +1933,31 @@ public final class CraftServer implements Server { +@@ -1960,6 +1965,31 @@ public final class CraftServer implements Server { return CraftItemStack.asBukkitCopy(stack); } diff --git a/patches/unapplied/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0989-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 92% rename from patches/unapplied/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0989-Don-t-tab-complete-namespaced-commands-if-send-names.patch index 93fe609c51..e113c877e3 100644 --- a/patches/unapplied/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch +++ b/patches/server/0989-Don-t-tab-complete-namespaced-commands-if-send-names.patch @@ -11,10 +11,10 @@ This patch prevents server from sending namespaced commands when player requests tab-complete only commands. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2553942e143e5acd0dc6158434d160000a98ea8c..b016f84ed1e99286073daf148612896ae470d222 100644 +index c01d38b673303b06ad0a932641446b1a8f4fda8c..e49a4044710cabb8a74d9aa83b28bddf025af1f2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -806,6 +806,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -809,6 +809,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { diff --git a/patches/unapplied/server/0992-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0990-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 85% rename from patches/unapplied/server/0992-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0990-Properly-handle-BlockBreakEvent-isDropItems.patch index 27c381efc3..8808e90bd1 100644 --- a/patches/unapplied/server/0992-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0990-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -9,25 +9,25 @@ food consumption, turtle egg count decreases, ice to water conversions and beehive releases diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 1a895a511d8bb20bcaf6ae5534ca70529d65951e..282dcf4c1b2de40810832dbdd3ff1ba1ce444fd6 100644 +index 82f26186156a487f29ad3abff3f68852e5b8a1f9..511221a686c1d2cad3b4abf79ee32b26058dad27 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -433,8 +433,8 @@ public class ServerPlayerGameMode { 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 -- block.playerDestroy(this.level, this.player, pos, iblockdata, tileentity, itemstack1); -+ if (flag && flag1 /* && event.isDropItems() */) { // CraftBukkit - Check if block should drop items // Paper - fix drops not preventing stats/food exhaustion -+ block.playerDestroy(this.level, this.player, pos, iblockdata, tileentity, itemstack1, event.isDropItems()); // Paper +- block.playerDestroy(this.level, this.player, pos, iblockdata1, tileentity, itemstack1); ++ if (flag && flag1 && event.isDropItems()/* && event.isDropItems() */) { // CraftBukkit - Check if block should drop items // Paper - fix drops not preventing stats/food exhaustion ++ block.playerDestroy(this.level, this.player, pos, iblockdata1, tileentity, itemstack1, event.isDropItems()); // Paper } // return true; // CraftBukkit diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index 5cf7b0d0331a8f10aea6dd607193795054a299dd..4b4a6b081ffedc7f637fa1e1726391d8e0fee0a1 100644 +index 6e7a9f68aa3a5084c8eea9fd8721272260734289..7d1f3c367efcf8def56b961993136e02e05ba59c 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -@@ -77,8 +77,8 @@ public class BeehiveBlock extends BaseEntityBlock { +@@ -84,8 +84,8 @@ public class BeehiveBlock extends BaseEntityBlock { } @Override @@ -39,10 +39,10 @@ index 5cf7b0d0331a8f10aea6dd607193795054a299dd..4b4a6b081ffedc7f637fa1e1726391d8 BeehiveBlockEntity tileentitybeehive = (BeehiveBlockEntity) blockEntity; diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 6c6532e1e73154ab5e6cb18aea44d64870dbbf4f..d4cbff18adb62073a1dceb189043789620af6877 100644 +index 7ac98b4e8b6dcc23777732d377ee73ae5671ebef..4d50dd92a7f3187ee1d8edb926e7c273c8156549 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -416,10 +416,18 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -423,10 +423,18 @@ public class Block extends BlockBehaviour implements ItemLike { return this.defaultBlockState(); } @@ -62,10 +62,10 @@ index 6c6532e1e73154ab5e6cb18aea44d64870dbbf4f..d4cbff18adb62073a1dceb1890437896 public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) {} diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -index 9db66b393e057d93a8025b803ae0ad2a1bca61f6..030b38d5d5d2578d6ef482a239ef58787efa3b08 100644 +index 0f0750f8c790d0db72a0e6b277449a1461674890..81d2140351775ad55546af52eb635ccdc8509d89 100644 --- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -@@ -89,8 +89,8 @@ public class DoublePlantBlock extends BushBlock { +@@ -96,8 +96,8 @@ public class DoublePlantBlock extends BushBlock { } @Override @@ -75,12 +75,12 @@ index 9db66b393e057d93a8025b803ae0ad2a1bca61f6..030b38d5d5d2578d6ef482a239ef5878 + super.playerDestroy(world, player, pos, Blocks.AIR.defaultBlockState(), blockEntity, tool, includeDrops); // Paper } - protected static void preventCreativeDropFromBottomPart(Level world, BlockPos pos, BlockState state, Player player) { + protected static void preventDropFromBottomPart(Level world, BlockPos pos, BlockState state, Player player) { diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index 5fbdc96f29e29dfc092b9e84a988032db0fa36ab..04089e6f7d6e3d532b00585870283922b6be5246 100644 +index f05998e0af1e844f19bf86b74f652a9901088c37..4ab6997dad5b112f5105f786a6cee78c6c5667e8 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java -@@ -25,8 +25,8 @@ public class IceBlock extends HalfTransparentBlock { +@@ -33,8 +33,8 @@ public class IceBlock extends HalfTransparentBlock { } @Override @@ -92,10 +92,10 @@ index 5fbdc96f29e29dfc092b9e84a988032db0fa36ab..04089e6f7d6e3d532b00585870283922 this.afterDestroy(world, pos, tool); } diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index 845fa7e13e4a3416b504d0a4c5d5e0454d96b8ed..07157822659288e76b2fba34db8d5d566506f33b 100644 +index c79f3a8885a5ffc9ebac51992e63df14929d9f24..b0199e071cba4c7ad51799132d00b22b616953fc 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -@@ -166,8 +166,8 @@ public class TurtleEggBlock extends Block { +@@ -173,8 +173,8 @@ public class TurtleEggBlock extends Block { } @Override diff --git a/patches/unapplied/server/0993-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0991-Fire-entity-death-event-for-ender-dragon.patch similarity index 92% rename from patches/unapplied/server/0993-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0991-Fire-entity-death-event-for-ender-dragon.patch index 3c23429d1c..5401a9dbc6 100644 --- a/patches/unapplied/server/0993-Fire-entity-death-event-for-ender-dragon.patch +++ b/patches/server/0991-Fire-entity-death-event-for-ender-dragon.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fire entity death event for ender dragon diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 0edf0374c6890b2afdefc4b723f1f4501f4e7810..a288180da1996103eb7dc3bb87b4615f86630bb8 100644 +index 389c45748732781595b773bc033446ace06fcbb0..f56bb431be7d5f1a1b8edec41af1f3a28289316d 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -642,6 +642,15 @@ public class EnderDragon extends Mob implements Enemy { diff --git a/patches/unapplied/server/0994-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0992-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/unapplied/server/0994-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0992-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/unapplied/server/0995-Add-Listing-API-for-Player.patch b/patches/server/0993-Add-Listing-API-for-Player.patch similarity index 94% rename from patches/unapplied/server/0995-Add-Listing-API-for-Player.patch rename to patches/server/0993-Add-Listing-API-for-Player.patch index 41685b12d0..9b8ac69525 100644 --- a/patches/unapplied/server/0995-Add-Listing-API-for-Player.patch +++ b/patches/server/0993-Add-Listing-API-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index 32e3f347e2e025e2675e9410116386e472bd6a79..929483116d05a803d317ece7a44861af8bd36665 100644 +index aa1c6de4d6cb7bbca33d25895c54707d220ab62a..9810d62c99f5d7dfca61ddfbbc356aebad2f7001 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java @@ -29,12 +29,46 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet channels = new HashSet(); private final Map>> invertedVisibilityEntities = new HashMap<>(); @@ -124,7 +124,7 @@ index 17e2a26d5136b23898bdd15ef6a9d5b7ace65c8e..3b6b89954d30908ff5ed23acfacbb3ef private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; private double health = 20; -@@ -1981,7 +1982,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1988,7 +1989,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { otherPlayer.setUUID(uuidOverride); } // Paper end @@ -133,7 +133,7 @@ index 17e2a26d5136b23898bdd15ef6a9d5b7ace65c8e..3b6b89954d30908ff5ed23acfacbb3ef if (original != null) otherPlayer.setUUID(original); // Paper - uuid override } -@@ -2090,6 +2091,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2097,6 +2098,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (entity != null) ? this.canSee(entity) : false; // If we can't find it, we can't see it } diff --git a/patches/unapplied/server/0996-Configurable-Region-Compression-Format.patch b/patches/server/0994-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/unapplied/server/0996-Configurable-Region-Compression-Format.patch rename to patches/server/0994-Configurable-Region-Compression-Format.patch diff --git a/patches/unapplied/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/server/0995-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 92% rename from patches/unapplied/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/server/0995-Expose-clicked-BlockFace-during-BlockDamageEvent.patch index ad3be36883..333f6fae04 100644 --- a/patches/unapplied/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch +++ b/patches/server/0995-Expose-clicked-BlockFace-during-BlockDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose clicked BlockFace during BlockDamageEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 282dcf4c1b2de40810832dbdd3ff1ba1ce444fd6..25f7adf194a165fa28488f80b87382c08111f896 100644 +index 511221a686c1d2cad3b4abf79ee32b26058dad27..899439e0af639e8d9124522b3cb6a10601b17fe2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -253,7 +253,7 @@ public class ServerPlayerGameMode { @@ -18,7 +18,7 @@ index 282dcf4c1b2de40810832dbdd3ff1ba1ce444fd6..25f7adf194a165fa28488f80b87382c0 if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index df3feea9ed025bd7be39dfe1f1e1fdc4c1e77035..f73588370d731b58fe7acd51dd9dd3a12b222add 100644 +index 8f78b9e714c472f59f3abf565c53bd87a6811674..704ba208d5cbaef8bc2eb0a87d6fbb1be42e0460 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -652,13 +652,13 @@ public class CraftEventFactory { diff --git a/patches/unapplied/server/0998-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0996-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/unapplied/server/0998-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0996-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/unapplied/server/0999-Expand-Pose-API.patch b/patches/server/0997-Expand-Pose-API.patch similarity index 80% rename from patches/unapplied/server/0999-Expand-Pose-API.patch rename to patches/server/0997-Expand-Pose-API.patch index d93c899f29..03e4d05ac1 100644 --- a/patches/unapplied/server/0999-Expand-Pose-API.patch +++ b/patches/server/0997-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4516991a4d1299d7e93019a4b9bc227b4844e9ef..c655c6fee393c62ba79301f76baa72f9b1154a9a 100644 +index 703825e9956201ddf211816553a1f1b509e1592f..92508e9ea17d2ea00b4da20a249325c390442016 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -417,6 +417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean collidingWithWorldBorder; // Paper @@ -16,7 +16,7 @@ index 4516991a4d1299d7e93019a4b9bc227b4844e9ef..c655c6fee393c62ba79301f76baa72f9 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -701,6 +702,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -706,6 +707,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void onClientRemoval() {} public void setPose(net.minecraft.world.entity.Pose pose) { @@ -25,10 +25,10 @@ index 4516991a4d1299d7e93019a4b9bc227b4844e9ef..c655c6fee393c62ba79301f76baa72f9 if (pose == this.getPose()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index fb7f5d8a7a691de04cf1525b356621688fd6af54..0e6c7284b9aee6c5f2454a3a095ebf349f887740 100644 +index c4343cbdea19a0dd671ed136a6a19ebf831ce8ab..0349d9b6ad12e0a426cb1307be8633240b7426fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1243,6 +1243,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1251,6 +1251,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean isSneaking() { return this.getHandle().isShiftKeyDown(); } diff --git a/patches/unapplied/server/1000-More-DragonBattle-API.patch b/patches/server/0998-More-DragonBattle-API.patch similarity index 100% rename from patches/unapplied/server/1000-More-DragonBattle-API.patch rename to patches/server/0998-More-DragonBattle-API.patch diff --git a/patches/unapplied/server/1001-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0999-Deep-clone-unhandled-nbt-tags.patch similarity index 92% rename from patches/unapplied/server/1001-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0999-Deep-clone-unhandled-nbt-tags.patch index a3b749dd22..06631c1567 100644 --- a/patches/unapplied/server/1001-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0999-Deep-clone-unhandled-nbt-tags.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 2510297df2f6ca80672c1dcbd35c0b1e0ce18ccb..9105c420c0c8d2285f5f45c184d54e9a5c5fbc57 100644 +index 039197efb05432b8139fbabe92338572c1bf078e..8762a7a22723150a1a42b3459f3744b8235da142 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -304,7 +304,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private CompoundTag internalTag; @@ -17,7 +17,7 @@ index 2510297df2f6ca80672c1dcbd35c0b1e0ce18ccb..9105c420c0c8d2285f5f45c184d54e9a private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only -@@ -345,8 +345,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -346,8 +346,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.destroyableKeys = new java.util.HashSet<>(meta.destroyableKeys); } // Paper end @@ -30,7 +30,7 @@ index 2510297df2f6ca80672c1dcbd35c0b1e0ce18ccb..9105c420c0c8d2285f5f45c184d54e9a this.internalTag = meta.internalTag; if (this.internalTag != null) { -@@ -1394,7 +1396,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1395,7 +1397,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (this.hasAttributeModifiers()) { clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers); } diff --git a/patches/unapplied/server/1002-Add-PlayerPickItemEvent.patch b/patches/server/1000-Add-PlayerPickItemEvent.patch similarity index 94% rename from patches/unapplied/server/1002-Add-PlayerPickItemEvent.patch rename to patches/server/1000-Add-PlayerPickItemEvent.patch index 2a800c9ef9..cabef6e40e 100644 --- a/patches/unapplied/server/1002-Add-PlayerPickItemEvent.patch +++ b/patches/server/1000-Add-PlayerPickItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b016f84ed1e99286073daf148612896ae470d222..236ab643cdd65b3572860aedf1f5ac18ff96139a 100644 +index e49a4044710cabb8a74d9aa83b28bddf025af1f2..c8858b9f72f57356f47575c01cbb159d341e0825 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -943,7 +943,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -946,7 +946,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } diff --git a/patches/unapplied/server/1003-Improve-performance-of-mass-crafts.patch b/patches/server/1001-Improve-performance-of-mass-crafts.patch similarity index 96% rename from patches/unapplied/server/1003-Improve-performance-of-mass-crafts.patch rename to patches/server/1001-Improve-performance-of-mass-crafts.patch index cc705923b1..65946d4731 100644 --- a/patches/unapplied/server/1003-Improve-performance-of-mass-crafts.patch +++ b/patches/server/1001-Improve-performance-of-mass-crafts.patch @@ -34,7 +34,7 @@ index a7aa2a4845cbf5a0843dcb93f7bdc5501f62a145..4c8ce073094e55ea0df67fe02c0d1cc8 if (optional.isPresent()) { RecipeHolder recipeholder = (RecipeHolder) optional.get(); diff --git a/src/main/java/net/minecraft/world/inventory/ResultSlot.java b/src/main/java/net/minecraft/world/inventory/ResultSlot.java -index 525ba0bdc4c6782480930bea94f73a72efe6fc4c..2554f7b1d687f83f42d69bf8ab54336ba793e301 100644 +index 7b2ac37e8bd305919f04ded043e50f13b3fe4253..8c97a7269040436cacc65fd182fa8e5f931b6c16 100644 --- a/src/main/java/net/minecraft/world/inventory/ResultSlot.java +++ b/src/main/java/net/minecraft/world/inventory/ResultSlot.java @@ -59,7 +59,7 @@ public class ResultSlot extends Slot { @@ -47,7 +47,7 @@ index 525ba0bdc4c6782480930bea94f73a72efe6fc4c..2554f7b1d687f83f42d69bf8ab54336b for(int i = 0; i < nonNullList.size(); ++i) { ItemStack itemStack = this.craftSlots.getItem(i); diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 43aacadcf8be10432a61c83f69ee86580c86d0a3..388363948595247471fa4c3c6801fc493d61c0d0 100644 +index 93e7d350a4176250d9ae3f0e1e7e6a4197d613b0..b81e1802c8dcc8ebdef96d70088c18379598a66b 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -122,13 +122,16 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { diff --git a/patches/unapplied/server/1004-Allow-trident-custom-damage.patch b/patches/server/1002-Allow-trident-custom-damage.patch similarity index 75% rename from patches/unapplied/server/1004-Allow-trident-custom-damage.patch rename to patches/server/1002-Allow-trident-custom-damage.patch index dcbcba2af5..3b1f6db132 100644 --- a/patches/unapplied/server/1004-Allow-trident-custom-damage.patch +++ b/patches/server/1002-Allow-trident-custom-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow trident custom damage diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index cabcd68032649aa5ec5f1ac495a08a5af76f0f86..6c176933967f6ee98da3026f16a10efe4c3842fe 100644 +index 6272b0e1e332789b983a486ee25226e2a1c9fdda..42ebd91196ae420eee57f4380abc558555457163 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -65,7 +65,7 @@ public abstract class AbstractArrow extends Projectile { +@@ -66,7 +66,7 @@ public abstract class AbstractArrow extends Projectile { public AbstractArrow.Pickup pickup; public int shakeTime; public int life; @@ -18,24 +18,23 @@ index cabcd68032649aa5ec5f1ac495a08a5af76f0f86..6c176933967f6ee98da3026f16a10efe public SoundEvent soundEvent; @Nullable diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -index 454dd67920826b8b62c2654abfd43fc08c2648e4..a6bc277b6589dd7104566542733327822d6299a4 100644 +index cbe8593cecd84f1598649801bebcb46364044eef..01e8f6f36a17c484b825879c377f7d6cc08e1fda 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -@@ -33,11 +33,13 @@ public class ThrownTrident extends AbstractArrow { +@@ -34,10 +34,12 @@ public class ThrownTrident extends AbstractArrow { public ThrownTrident(EntityType type, Level world) { - super(type, world); + super(type, world, ThrownTrident.DEFAULT_ARROW_STACK); + this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper - this.tridentItem = new ItemStack(Items.TRIDENT); } public ThrownTrident(Level world, LivingEntity owner, ItemStack stack) { - super(EntityType.TRIDENT, owner, world); + super(EntityType.TRIDENT, owner, world, stack); + this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper - this.tridentItem = new ItemStack(Items.TRIDENT); - this.tridentItem = stack.copy(); this.entityData.set(ThrownTrident.ID_LOYALTY, (byte) EnchantmentHelper.getLoyalty(stack)); -@@ -128,7 +130,7 @@ public class ThrownTrident extends AbstractArrow { + this.entityData.set(ThrownTrident.ID_FOIL, stack.hasFoil()); + } +@@ -121,7 +123,7 @@ public class ThrownTrident extends AbstractArrow { @Override protected void onHitEntity(EntityHitResult entityHitResult) { Entity entity = entityHitResult.getEntity(); diff --git a/patches/unapplied/server/1005-Expose-hand-during-BlockCanBuildEvent.patch b/patches/server/1003-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/unapplied/server/1005-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/server/1003-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/unapplied/server/1006-Optimize-nearest-structure-border-iteration.patch b/patches/server/1004-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/unapplied/server/1006-Optimize-nearest-structure-border-iteration.patch rename to patches/server/1004-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/unapplied/server/1007-Implement-OfflinePlayer-isConnected.patch b/patches/server/1005-Implement-OfflinePlayer-isConnected.patch similarity index 90% rename from patches/unapplied/server/1007-Implement-OfflinePlayer-isConnected.patch rename to patches/server/1005-Implement-OfflinePlayer-isConnected.patch index 360f560710..0d2a017fd1 100644 --- a/patches/unapplied/server/1007-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/1005-Implement-OfflinePlayer-isConnected.patch @@ -23,10 +23,10 @@ index 9daec0782774ab51ea8091cb8ed9d0a106e34cfa..2bbc39c257965ad91ee360cdfcd3538a public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3b6b89954d30908ff5ed23acfacbb3ef9b8a6f03..e593e0bc9d207325a9e9d38296b29230a353077e 100644 +index ad602abca07e3a0d6e2889843c5849616f2c23a7..7b81dd72bc107648f2c0df19adeaa8ca7de7b204 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -274,6 +274,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -281,6 +281,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.server.getPlayer(this.getUniqueId()) != null; } diff --git a/patches/unapplied/server/1008-Fix-inventory-desync.patch b/patches/server/1006-Fix-inventory-desync.patch similarity index 100% rename from patches/unapplied/server/1008-Fix-inventory-desync.patch rename to patches/server/1006-Fix-inventory-desync.patch diff --git a/patches/unapplied/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/1007-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 92% rename from patches/unapplied/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/1007-Add-titleOverride-to-InventoryOpenEvent.patch index 08c433b261..20d0ecb9ab 100644 --- a/patches/unapplied/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/1007-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 47eb7f632c71714903c8bac45ef6080fb58cd6d2..67f03dd59ebcf74fae476b79a367778a9e942ed3 100644 +index 25772043f3b4483b9f5e32ba9489da52add6941a..695a103f2517f3e888e86e76f3615bd69b00a175 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1560,12 +1560,17 @@ public class ServerPlayer extends Player { +@@ -1572,12 +1572,17 @@ public class ServerPlayer extends Player { this.nextContainerCounter(); AbstractContainerMenu container = factory.createMenu(this.containerCounter, this.getInventory(), this); @@ -27,7 +27,7 @@ index 47eb7f632c71714903c8bac45ef6080fb58cd6d2..67f03dd59ebcf74fae476b79a367778a if (container == null && !cancelled) { // Let pre-cancelled events fall through // SPIGOT-5263 - close chest if cancelled if (factory instanceof Container) { -@@ -1587,7 +1592,7 @@ public class ServerPlayer extends Player { +@@ -1599,7 +1604,7 @@ public class ServerPlayer extends Player { } else { // CraftBukkit start this.containerMenu = container; @@ -37,10 +37,10 @@ index 47eb7f632c71714903c8bac45ef6080fb58cd6d2..67f03dd59ebcf74fae476b79a367778a this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 8a6095850cece3203eeae474dbf32090f698a32e..aefb9879b2edadfb4b21d80135d713b9d34c9941 100644 +index c6b3bc218ac440cc66dee97c21b3db4ad86938be..8a1e765363aeb61078fd23980d3856dc680cb05e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -357,12 +357,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -358,12 +358,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { Preconditions.checkArgument(windowType != null, "Unknown windowType"); AbstractContainerMenu container = new CraftContainer(inventory, player, player.nextContainerCounter()); @@ -58,7 +58,7 @@ index 8a6095850cece3203eeae474dbf32090f698a32e..aefb9879b2edadfb4b21d80135d713b9 //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper -@@ -438,7 +442,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -439,7 +443,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } // Trigger an INVENTORY_OPEN event @@ -70,7 +70,7 @@ index 8a6095850cece3203eeae474dbf32090f698a32e..aefb9879b2edadfb4b21d80135d713b9 if (container == null) { return; } -@@ -449,6 +456,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -450,6 +457,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { //String title = inventory.getTitle(); // Paper - comment net.kyori.adventure.text.Component adventure$title = inventory.title(); // Paper if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper @@ -79,7 +79,7 @@ index 8a6095850cece3203eeae474dbf32090f698a32e..aefb9879b2edadfb4b21d80135d713b9 if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f73588370d731b58fe7acd51dd9dd3a12b222add..5dc160b743534665c6b3efb10b10f7c36e2da5ab 100644 +index 704ba208d5cbaef8bc2eb0a87d6fbb1be42e0460..916b29914f77bed0dbfdcd5eae8a6ef22948b9b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1443,10 +1443,21 @@ public class CraftEventFactory { diff --git a/patches/unapplied/server/1010-Configure-sniffer-egg-hatch-time.patch b/patches/server/1008-Configure-sniffer-egg-hatch-time.patch similarity index 87% rename from patches/unapplied/server/1010-Configure-sniffer-egg-hatch-time.patch rename to patches/server/1008-Configure-sniffer-egg-hatch-time.patch index 6c035ed11f..4b20794de9 100644 --- a/patches/unapplied/server/1010-Configure-sniffer-egg-hatch-time.patch +++ b/patches/server/1008-Configure-sniffer-egg-hatch-time.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configure sniffer egg hatch time diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index fab44502b3e22eb8d1311068f88290ce31adb437..16c5be04658a66ff94f2aad8782e34f450e9a729 100644 +index 02939518ead6463e677ecf5b045ec89aae154e8c..cb431b6027019ca95879129e88967ee6ae03c313 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -@@ -56,7 +56,7 @@ public class SnifferEggBlock extends Block { +@@ -63,7 +63,7 @@ public class SnifferEggBlock extends Block { // Paper start private void rescheduleTick(ServerLevel world, BlockPos pos) { @@ -17,7 +17,7 @@ index fab44502b3e22eb8d1311068f88290ce31adb437..16c5be04658a66ff94f2aad8782e34f4 world.scheduleTick(pos, this, (baseDelay / 3) + world.random.nextInt(RANDOM_HATCH_OFFSET_TICKS)); // reschedule to avoid being stuck here and behave like the other calls (see #onPlace) } -@@ -99,7 +99,7 @@ public class SnifferEggBlock extends Block { +@@ -106,7 +106,7 @@ public class SnifferEggBlock extends Block { world.levelEvent(3009, pos, 0); } diff --git a/patches/unapplied/server/1011-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/1009-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/unapplied/server/1011-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/1009-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/unapplied/server/1012-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/1010-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/unapplied/server/1012-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/1010-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/unapplied/server/1013-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/1011-Add-slot-sanity-checks-in-container-clicks.patch similarity index 74% rename from patches/unapplied/server/1013-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/1011-Add-slot-sanity-checks-in-container-clicks.patch index 5aeb035c14..84a8dedb84 100644 --- a/patches/unapplied/server/1013-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/1011-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 236ab643cdd65b3572860aedf1f5ac18ff96139a..65bb221993147a558995b36fb835f7b82e0eb4bd 100644 +index c8858b9f72f57356f47575c01cbb159d341e0825..555555786d5be31d10a8aee5d8b1972e61806262 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2981,6 +2981,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2991,6 +2991,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { @@ -22,7 +22,7 @@ index 236ab643cdd65b3572860aedf1f5ac18ff96139a..65bb221993147a558995b36fb835f7b8 Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 3ef712299fe248602b0b117c0a8e285cdf4e05c2..aea228ea9fee51c25a03ce1c54bf9dff0741e053 100644 +index 9ee3c2e0dcfaa4280be4973479c6490ded33809c..96a2d06e8da8bf0f0a3b0af813bf79d448940a3a 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu { @@ -33,13 +33,3 @@ index 3ef712299fe248602b0b117c0a8e285cdf4e05c2..aea228ea9fee51c25a03ce1c54bf9dff slot = (Slot) this.slots.get(slotIndex); itemstack = this.getCarried(); if (AbstractContainerMenu.canItemQuickReplace(slot, itemstack, true) && slot.mayPlace(itemstack) && (this.quickcraftType == 2 || itemstack.getCount() > this.quickcraftSlots.size()) && this.canDragTo(slot)) { -@@ -597,7 +598,8 @@ public abstract class AbstractContainerMenu { - Slot slot2; - int j2; - -- if (actionType == ClickType.SWAP) { -+ if (actionType == ClickType.SWAP && (button == 40 || button >= 0 && button < 9)) { // Paper -+ if (slotIndex < 0 || button < 0) return; // Paper - slot2 = (Slot) this.slots.get(slotIndex); - itemstack1 = playerinventory.getItem(button); - itemstack = slot2.getItem(); diff --git a/patches/unapplied/server/1014-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/1012-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 89% rename from patches/unapplied/server/1014-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/1012-Call-BlockRedstoneEvents-for-lecterns.patch index dcb22051b6..aebbe3eb31 100644 --- a/patches/unapplied/server/1014-Call-BlockRedstoneEvents-for-lecterns.patch +++ b/patches/server/1012-Call-BlockRedstoneEvents-for-lecterns.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Call BlockRedstoneEvents for lecterns diff --git a/src/main/java/net/minecraft/world/level/block/LecternBlock.java b/src/main/java/net/minecraft/world/level/block/LecternBlock.java -index d8489fc7bbc57aa2a53026c79d2e2b2718b32912..2da67bd990b3f3762dfe089bf543cebac66378db 100644 +index f14f35e0f5a087845f7229a68e996feb06c946d4..38f68917119b30be2787363697a0501080362a90 100644 --- a/src/main/java/net/minecraft/world/level/block/LecternBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LecternBlock.java -@@ -171,6 +171,16 @@ public class LecternBlock extends BaseEntityBlock { +@@ -178,6 +178,16 @@ public class LecternBlock extends BaseEntityBlock { } private static void changePowered(Level world, BlockPos pos, BlockState state, boolean powered) { diff --git a/patches/unapplied/server/1015-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/1013-Allow-proper-checking-of-empty-item-stacks.patch similarity index 93% rename from patches/unapplied/server/1015-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/1013-Allow-proper-checking-of-empty-item-stacks.patch index e6510b371c..98467a90d4 100644 --- a/patches/unapplied/server/1015-Allow-proper-checking-of-empty-item-stacks.patch +++ b/patches/server/1013-Allow-proper-checking-of-empty-item-stacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow proper checking of empty item stacks diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index ff9e42299d46764cd53f72c730716102c6b8aa3c..654694515b4b9257a41c8623675fa3abc51a1cb7 100644 +index 3660ad55cc7e1f6e571887aac9c0215803f1ce41..f9ae1d0889e7f8ff8753d27619bfeb6e9c23f5fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -33,12 +33,19 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/unapplied/server/1016-Fix-silent-equipment-change-for-mobs.patch b/patches/server/1014-Fix-silent-equipment-change-for-mobs.patch similarity index 95% rename from patches/unapplied/server/1016-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/1014-Fix-silent-equipment-change-for-mobs.patch index 69b6c41e6e..2076c5ac6d 100644 --- a/patches/unapplied/server/1016-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/1014-Fix-silent-equipment-change-for-mobs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 1e997c1758ed86dc563983317ceb17e626b8dba7..956d05e2ae59978ea9623ca0e167c0afe0b87306 100644 +index 16d84042e2575418880897c728a99d1b8bbcdd15..5af48151159135b869ec4753bbcf79dd257c1570 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1058,13 +1058,20 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { @@ -47,10 +47,10 @@ index 8e9469fec42f7b6a132cf173f6f5a95777a29b3b..b319021b22c5dceba6199ed27814b2dc this.reassessWeaponGoal(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f2f93761985a78b563dd1eda57f9a08b1cc8893a..2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782 100644 +index 0afad3487a3939981abda6a2342e90683816a39f..396d32cde12ea7022714c4971ecbba3d215bb15b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1870,7 +1870,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1890,7 +1890,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end - optimize redstone (Alternate Current) // Paper start - notify observers even if grow failed public void checkCapturedTreeStateForObserverNotify(final BlockPos pos, final CraftBlockState craftBlockState) { diff --git a/patches/unapplied/server/1017-Fix-spigot-s-Forced-Stats.patch b/patches/server/1015-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/unapplied/server/1017-Fix-spigot-s-Forced-Stats.patch rename to patches/server/1015-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/unapplied/server/1018-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/1016-Add-missing-InventoryHolders-to-inventories.patch similarity index 98% rename from patches/unapplied/server/1018-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/1016-Add-missing-InventoryHolders-to-inventories.patch index c265ded09f..c57b31245d 100644 --- a/patches/unapplied/server/1018-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/1016-Add-missing-InventoryHolders-to-inventories.patch @@ -18,7 +18,7 @@ index da5ff65fade5cdf14fad3705c08b48896bc4c36d..d6cbe98e67fdbf8db46338a88ab1356d void setMaxStackSize(int size); diff --git a/src/main/java/net/minecraft/world/SimpleContainer.java b/src/main/java/net/minecraft/world/SimpleContainer.java -index 9d1ee40456a8d7001eee654a62e62cab2626305a..ecd6cb02ef326c8e1d7fba8138d806f3107b5ac0 100644 +index 061e870e0cdd5bf00351b7e8104361bce86809f3..0259d188e6e16384069bf2a1c6e0197fe631ab6b 100644 --- a/src/main/java/net/minecraft/world/SimpleContainer.java +++ b/src/main/java/net/minecraft/world/SimpleContainer.java @@ -30,7 +30,7 @@ public class SimpleContainer implements Container, StackedContentsCompatible { @@ -57,10 +57,10 @@ index 9d1ee40456a8d7001eee654a62e62cab2626305a..ecd6cb02ef326c8e1d7fba8138d806f3 public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index aea228ea9fee51c25a03ce1c54bf9dff0741e053..82f18790b9dc55b039ae03600a80a46d56a87521 100644 +index 96a2d06e8da8bf0f0a3b0af813bf79d448940a3a..97426fe50149123e6a94989ee98c6d0aad4ca1cb 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -@@ -1025,4 +1025,15 @@ public abstract class AbstractContainerMenu { +@@ -1028,4 +1028,15 @@ public abstract class AbstractContainerMenu { this.stateId = this.stateId + 1 & 32767; return this.stateId; } diff --git a/patches/unapplied/server/1019-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/1017-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/unapplied/server/1019-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/1017-Do-not-read-tile-entities-in-chunks-that-are-positio.patch