aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjarne Koll <[email protected]>2024-08-09 22:05:50 +0200
committerGitHub <[email protected]>2024-08-09 22:05:50 +0200
commit77a5779e24b55fd900d337ac071a7e4327d735bf (patch)
treec034a7fb0587b3f849d91b92af95a3ee4324b3e8
parent4e6a2a13a3e1f6fa1067a7821d2f018339395533 (diff)
downloadPaper-77a5779e24b55fd900d337ac071a7e4327d735bf.tar.gz
Paper-77a5779e24b55fd900d337ac071a7e4327d735bf.zip
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11197)
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 2ec53f49 PR-1050: Fix empty result check for Complex Recipes 10671012 PR-1044: Add CrafterCraftEvent 4d87ffe0 Use correct method in JavaDoc ae5e5817 SPIGOT-7850: Add API for Bogged shear state 46b6d445 SPIGOT-7837: Support data pack banner patterns d5d0cefc Fix JavaDoc error b3c2b83d PR-1036: Add API for InventoryView derivatives 1fe2c75a SPIGOT-7809: Add ShieldMeta CraftBukkit Changes: 8ee6fd1b8 SPIGOT-7857: Improve ItemMeta block data deserialization 8f26c30c6 SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta 759061b93 SPIGOT-7855: Fire does not spread or burn blocks 00fc9fb64 SPIGOT-7853: AnvilInventory#getRepairCost() always returns 0 7501e2e04 PR-1450: Add CrafterCraftEvent 8c51673e7 SPIGOT-5731: PortalCreateEvent#getEntity returns null for nether portals ignited by flint and steel d53d0d0b1 PR-1456: Fix inverted logic in CraftCrafterView#setSlotDisabled 682a678c8 SPIGOT-7850: Add API for Bogged shear state fccf5243a SPIGOT-7837: Support data pack banner patterns 9c3bd4390 PR-1431: Add API for InventoryView derivatives 0cc6acbc4 SPIGOT-7849: Fix FoodComponent serialize with "using-converts-to" using null 2c5474952 Don't rely on tags for CraftItemMetas 20d107e46 SPIGOT-7846: Fix ItemMeta for hanging signs 76f59e315 Remove redundant clone in Dropper InventoryMoveItemEvent e61a53d25 SPIGOT-7817: Call InventoryMoveItemEvent for Crafters 894682e2d SPIGOT-7839: Remove redundant Java version checks 2c12b2187 SPIGOT-7809: Add ShieldMeta and fix setting shield base colours Spigot Changes: fb8fb722 Rebuild patches 34bd42b7 SPIGOT-7835: Fix issue with custom hopper settings
-rw-r--r--patches/api/0006-Adventure.patch4
-rw-r--r--patches/api/0053-Fix-upstream-javadocs.patch24
-rw-r--r--patches/api/0059-Shoulder-Entities-Release-API.patch4
-rw-r--r--patches/api/0075-Display-warning-on-deprecated-recipe-API.patch8
-rw-r--r--patches/api/0092-Add-openSign-method-to-HumanEntity.patch4
-rw-r--r--patches/api/0114-LivingEntity-Active-Item-API.patch4
-rw-r--r--patches/api/0117-InventoryCloseEvent-Reason-API.patch4
-rw-r--r--patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch12
-rw-r--r--patches/api/0166-Fix-Spigot-annotation-mistakes.patch44
-rw-r--r--patches/api/0185-Add-item-slot-convenience-methods.patch6
-rw-r--r--patches/api/0190-Potential-bed-API.patch4
-rw-r--r--patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch8
-rw-r--r--patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch4
-rw-r--r--patches/api/0220-Expose-LivingEntity-hurt-direction.patch4
-rw-r--r--patches/api/0236-Add-RegistryAccess-for-managing-registries.patch30
-rw-r--r--patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch4
-rw-r--r--patches/api/0329-More-PotionEffectType-API.patch4
-rw-r--r--patches/api/0352-Add-Player-getFishHook.patch4
-rw-r--r--patches/api/0392-Add-Shearable-API.patch53
-rw-r--r--patches/api/0430-Experimental-annotations-change.patch4
-rw-r--r--patches/api/0432-Improve-Registry.patch16
-rw-r--r--patches/api/0469-Fix-issues-with-recipe-API.patch24
-rw-r--r--patches/api/0472-General-ItemMeta-fixes.patch21
-rw-r--r--patches/api/0475-Registry-Modification-API.patch8
-rw-r--r--patches/api/0476-Introduce-registry-entry-and-builders.patch4
-rw-r--r--patches/api/0481-Fix-PickupStatus-getting-reset.patch (renamed from patches/api/0483-Fix-PickupStatus-getting-reset.patch)0
-rw-r--r--patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch27
-rw-r--r--patches/api/0482-Add-CrafterCraftEvent.patch97
-rw-r--r--patches/server/0003-Build-system-changes.patch4
-rw-r--r--patches/server/0004-Test-changes.patch16
-rw-r--r--patches/server/0005-Paper-config-files.patch6
-rw-r--r--patches/server/0009-MC-Utils.patch8
-rw-r--r--patches/server/0010-Adventure.patch22
-rw-r--r--patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch8
-rw-r--r--patches/server/0021-Hook-into-CB-plugin-rewrites.patch16
-rw-r--r--patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch6
-rw-r--r--patches/server/0026-Support-components-in-ItemMeta.patch10
-rw-r--r--patches/server/0033-Expose-server-build-information.patch4
-rw-r--r--patches/server/0070-Handle-Item-Meta-Inconsistencies.patch10
-rw-r--r--patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch4
-rw-r--r--patches/server/0108-Add-EntityZapEvent.patch4
-rw-r--r--patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch4
-rw-r--r--patches/server/0113-Add-ProjectileCollideEvent.patch13
-rw-r--r--patches/server/0146-Fix-this-stupid-bullshit.patch4
-rw-r--r--patches/server/0169-Add-ArmorStand-Item-Meta.patch8
-rw-r--r--patches/server/0176-Player.setPlayerProfile-API.patch4
-rw-r--r--patches/server/0192-WitchReadyPotionEvent.patch4
-rw-r--r--patches/server/0202-Add-entity-knockback-events.patch4
-rw-r--r--patches/server/0208-InventoryCloseEvent-Reason-API.patch8
-rw-r--r--patches/server/0217-Vanished-players-don-t-have-rights.patch4
-rw-r--r--patches/server/0235-Optimize-CraftBlockData-Creation.patch4
-rw-r--r--patches/server/0243-Improve-death-events.patch8
-rw-r--r--patches/server/0316-Improve-java-version-check.patch45
-rw-r--r--patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch4
-rw-r--r--patches/server/0349-Fix-item-duplication-and-teleport-issues.patch6
-rw-r--r--patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch4
-rw-r--r--patches/server/0379-Add-BlockStateMeta-clearBlockState.patch22
-rw-r--r--patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch4
-rw-r--r--patches/server/0384-Add-PrepareResultEvent.patch20
-rw-r--r--patches/server/0401-Add-BellRingEvent.patch4
-rw-r--r--patches/server/0405-Add-more-Evoker-API.patch (renamed from patches/server/0406-Add-more-Evoker-API.patch)0
-rw-r--r--patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch119
-rw-r--r--patches/server/0406-Add-methods-to-get-translation-keys.patch (renamed from patches/server/0407-Add-methods-to-get-translation-keys.patch)0
-rw-r--r--patches/server/0407-Create-HoverEvent-from-ItemStack-Entity.patch (renamed from patches/server/0408-Create-HoverEvent-from-ItemStack-Entity.patch)0
-rw-r--r--patches/server/0408-Cache-block-data-strings.patch (renamed from patches/server/0409-Cache-block-data-strings.patch)0
-rw-r--r--patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch (renamed from patches/server/0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch)0
-rw-r--r--patches/server/0410-Add-additional-open-container-api-to-HumanEntity.patch (renamed from patches/server/0411-Add-additional-open-container-api-to-HumanEntity.patch)0
-rw-r--r--patches/server/0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch (renamed from patches/server/0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch)0
-rw-r--r--patches/server/0412-Extend-block-drop-capture-to-capture-all-items-added.patch (renamed from patches/server/0413-Extend-block-drop-capture-to-capture-all-items-added.patch)0
-rw-r--r--patches/server/0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch (renamed from patches/server/0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch)0
-rw-r--r--patches/server/0414-Lazily-track-plugin-scoreboards-by-default.patch (renamed from patches/server/0415-Lazily-track-plugin-scoreboards-by-default.patch)0
-rw-r--r--patches/server/0415-Entity-isTicking.patch (renamed from patches/server/0416-Entity-isTicking.patch)0
-rw-r--r--patches/server/0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch (renamed from patches/server/0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch)0
-rw-r--r--patches/server/0417-Fix-Concurrency-issue-in-ShufflingList.patch (renamed from patches/server/0418-Fix-Concurrency-issue-in-ShufflingList.patch)0
-rw-r--r--patches/server/0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch (renamed from patches/server/0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch)0
-rw-r--r--patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch (renamed from patches/server/0420-Fix-for-large-move-vectors-crashing-server.patch)0
-rw-r--r--patches/server/0420-Optimise-getType-calls.patch (renamed from patches/server/0421-Optimise-getType-calls.patch)0
-rw-r--r--patches/server/0421-Villager-resetOffers.patch (renamed from patches/server/0422-Villager-resetOffers.patch)0
-rw-r--r--patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch (renamed from patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch)2
-rw-r--r--patches/server/0423-Fix-item-locations-dropped-from-campfires.patch (renamed from patches/server/0424-Fix-item-locations-dropped-from-campfires.patch)0
-rw-r--r--patches/server/0424-Fix-bell-block-entity-memory-leak.patch (renamed from patches/server/0425-Fix-bell-block-entity-memory-leak.patch)0
-rw-r--r--patches/server/0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch (renamed from patches/server/0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch)0
-rw-r--r--patches/server/0426-Add-getOfflinePlayerIfCached-String.patch (renamed from patches/server/0427-Add-getOfflinePlayerIfCached-String.patch)0
-rw-r--r--patches/server/0427-Add-ignore-discounts-API.patch (renamed from patches/server/0428-Add-ignore-discounts-API.patch)0
-rw-r--r--patches/server/0428-Toggle-for-removing-existing-dragon.patch (renamed from patches/server/0429-Toggle-for-removing-existing-dragon.patch)0
-rw-r--r--patches/server/0429-Fix-client-lag-on-advancement-loading.patch (renamed from patches/server/0430-Fix-client-lag-on-advancement-loading.patch)2
-rw-r--r--patches/server/0430-Item-no-age-no-player-pickup.patch (renamed from patches/server/0431-Item-no-age-no-player-pickup.patch)0
-rw-r--r--patches/server/0431-Beacon-API-custom-effect-ranges.patch (renamed from patches/server/0432-Beacon-API-custom-effect-ranges.patch)0
-rw-r--r--patches/server/0432-Add-API-for-quit-reason.patch (renamed from patches/server/0433-Add-API-for-quit-reason.patch)2
-rw-r--r--patches/server/0433-Add-Wandering-Trader-spawn-rate-config-options.patch (renamed from patches/server/0434-Add-Wandering-Trader-spawn-rate-config-options.patch)0
-rw-r--r--patches/server/0434-Add-Destroy-Speed-API.patch (renamed from patches/server/0435-Add-Destroy-Speed-API.patch)0
-rw-r--r--patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch (renamed from patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch)2
-rw-r--r--patches/server/0436-Add-LivingEntity-clearActiveItem.patch (renamed from patches/server/0437-Add-LivingEntity-clearActiveItem.patch)0
-rw-r--r--patches/server/0437-Add-PlayerItemCooldownEvent.patch (renamed from patches/server/0438-Add-PlayerItemCooldownEvent.patch)0
-rw-r--r--patches/server/0438-Significantly-improve-performance-of-the-end-generat.patch (renamed from patches/server/0439-Significantly-improve-performance-of-the-end-generat.patch)0
-rw-r--r--patches/server/0439-More-lightning-API.patch (renamed from patches/server/0440-More-lightning-API.patch)0
-rw-r--r--patches/server/0440-Climbing-should-not-bypass-cramming-gamerule.patch (renamed from patches/server/0441-Climbing-should-not-bypass-cramming-gamerule.patch)0
-rw-r--r--patches/server/0441-Add-missing-default-perms-for-commands.patch (renamed from patches/server/0442-Add-missing-default-perms-for-commands.patch)0
-rw-r--r--patches/server/0442-Add-PlayerShearBlockEvent.patch (renamed from patches/server/0443-Add-PlayerShearBlockEvent.patch)0
-rw-r--r--patches/server/0443-Limit-recipe-packets.patch (renamed from patches/server/0444-Limit-recipe-packets.patch)0
-rw-r--r--patches/server/0444-Fix-CraftSound-backwards-compatibility.patch (renamed from patches/server/0445-Fix-CraftSound-backwards-compatibility.patch)0
-rw-r--r--patches/server/0445-Player-Chunk-Load-Unload-Events.patch (renamed from patches/server/0446-Player-Chunk-Load-Unload-Events.patch)0
-rw-r--r--patches/server/0446-Optimize-Dynamic-get-Missing-Keys.patch (renamed from patches/server/0447-Optimize-Dynamic-get-Missing-Keys.patch)0
-rw-r--r--patches/server/0447-Expose-LivingEntity-hurt-direction.patch (renamed from patches/server/0448-Expose-LivingEntity-hurt-direction.patch)0
-rw-r--r--patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch (renamed from patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch)4
-rw-r--r--patches/server/0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch (renamed from patches/server/0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch)0
-rw-r--r--patches/server/0450-Add-TargetHitEvent.patch (renamed from patches/server/0451-Add-TargetHitEvent.patch)0
-rw-r--r--patches/server/0451-MC-4-Fix-item-position-desync.patch (renamed from patches/server/0452-MC-4-Fix-item-position-desync.patch)0
-rw-r--r--patches/server/0452-Additional-Block-Material-API.patch (renamed from patches/server/0453-Additional-Block-Material-API.patch)0
-rw-r--r--patches/server/0453-Fix-harming-potion-dupe.patch (renamed from patches/server/0454-Fix-harming-potion-dupe.patch)0
-rw-r--r--patches/server/0454-API-to-get-Material-from-Boats-and-Minecarts.patch (renamed from patches/server/0455-API-to-get-Material-from-Boats-and-Minecarts.patch)0
-rw-r--r--patches/server/0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch (renamed from patches/server/0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch)0
-rw-r--r--patches/server/0456-Fix-Not-a-string-Map-Conversion-spam.patch (renamed from patches/server/0457-Fix-Not-a-string-Map-Conversion-spam.patch)0
-rw-r--r--patches/server/0457-Add-PlayerFlowerPotManipulateEvent.patch (renamed from patches/server/0458-Add-PlayerFlowerPotManipulateEvent.patch)0
-rw-r--r--patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch (renamed from patches/server/0459-Fix-interact-event-not-being-called-sometimes.patch)0
-rw-r--r--patches/server/0459-Zombie-API-breaking-doors.patch (renamed from patches/server/0460-Zombie-API-breaking-doors.patch)0
-rw-r--r--patches/server/0460-Fix-nerfed-slime-when-splitting.patch (renamed from patches/server/0461-Fix-nerfed-slime-when-splitting.patch)0
-rw-r--r--patches/server/0461-Add-EntityLoadCrossbowEvent.patch (renamed from patches/server/0462-Add-EntityLoadCrossbowEvent.patch)0
-rw-r--r--patches/server/0462-Add-WorldGameRuleChangeEvent.patch (renamed from patches/server/0463-Add-WorldGameRuleChangeEvent.patch)0
-rw-r--r--patches/server/0463-Add-ServerResourcesReloadedEvent.patch (renamed from patches/server/0464-Add-ServerResourcesReloadedEvent.patch)0
-rw-r--r--patches/server/0464-Add-world-settings-for-mobs-picking-up-loot.patch (renamed from patches/server/0465-Add-world-settings-for-mobs-picking-up-loot.patch)0
-rw-r--r--patches/server/0465-Add-BlockFailedDispenseEvent.patch (renamed from patches/server/0466-Add-BlockFailedDispenseEvent.patch)6
-rw-r--r--patches/server/0466-Add-PlayerLecternPageChangeEvent.patch (renamed from patches/server/0467-Add-PlayerLecternPageChangeEvent.patch)2
-rw-r--r--patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch (renamed from patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch)2
-rw-r--r--patches/server/0468-Configurable-door-breaking-difficulty.patch (renamed from patches/server/0469-Configurable-door-breaking-difficulty.patch)0
-rw-r--r--patches/server/0469-Empty-commands-shall-not-be-dispatched.patch (renamed from patches/server/0470-Empty-commands-shall-not-be-dispatched.patch)0
-rw-r--r--patches/server/0470-Remove-stale-POIs.patch (renamed from patches/server/0471-Remove-stale-POIs.patch)0
-rw-r--r--patches/server/0471-Fix-villager-boat-exploit.patch (renamed from patches/server/0472-Fix-villager-boat-exploit.patch)2
-rw-r--r--patches/server/0472-Add-sendOpLevel-API.patch (renamed from patches/server/0473-Add-sendOpLevel-API.patch)4
-rw-r--r--patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch (renamed from patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch)31
-rw-r--r--patches/server/0474-Add-StructuresLocateEvent.patch (renamed from patches/server/0475-Add-StructuresLocateEvent.patch)0
-rw-r--r--patches/server/0475-Collision-option-for-requiring-a-player-participant.patch (renamed from patches/server/0476-Collision-option-for-requiring-a-player-participant.patch)0
-rw-r--r--patches/server/0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch (renamed from patches/server/0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch)0
-rw-r--r--patches/server/0477-Return-chat-component-with-empty-text-instead-of-thr.patch (renamed from patches/server/0478-Return-chat-component-with-empty-text-instead-of-thr.patch)0
-rw-r--r--patches/server/0478-Make-schedule-command-per-world.patch (renamed from patches/server/0479-Make-schedule-command-per-world.patch)0
-rw-r--r--patches/server/0479-Configurable-max-leash-distance.patch (renamed from patches/server/0480-Configurable-max-leash-distance.patch)0
-rw-r--r--patches/server/0480-Add-BlockPreDispenseEvent.patch (renamed from patches/server/0481-Add-BlockPreDispenseEvent.patch)6
-rw-r--r--patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch (renamed from patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch)2
-rw-r--r--patches/server/0482-Add-toggle-for-always-placing-the-dragon-egg.patch (renamed from patches/server/0483-Add-toggle-for-always-placing-the-dragon-egg.patch)0
-rw-r--r--patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch (renamed from patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch)2
-rw-r--r--patches/server/0484-Expand-EntityUnleashEvent.patch (renamed from patches/server/0485-Expand-EntityUnleashEvent.patch)4
-rw-r--r--patches/server/0485-Reset-shield-blocking-on-dimension-change.patch (renamed from patches/server/0486-Reset-shield-blocking-on-dimension-change.patch)0
-rw-r--r--patches/server/0486-Add-DragonEggFormEvent.patch (renamed from patches/server/0487-Add-DragonEggFormEvent.patch)0
-rw-r--r--patches/server/0487-Add-EntityMoveEvent.patch (renamed from patches/server/0488-Add-EntityMoveEvent.patch)0
-rw-r--r--patches/server/0488-added-option-to-disable-pathfinding-updates-on-block.patch (renamed from patches/server/0489-added-option-to-disable-pathfinding-updates-on-block.patch)0
-rw-r--r--patches/server/0489-Inline-shift-direction-fields.patch (renamed from patches/server/0490-Inline-shift-direction-fields.patch)0
-rw-r--r--patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch (renamed from patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch)4
-rw-r--r--patches/server/0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch (renamed from patches/server/0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch)0
-rw-r--r--patches/server/0492-living-entity-allow-attribute-registration.patch (renamed from patches/server/0493-living-entity-allow-attribute-registration.patch)0
-rw-r--r--patches/server/0493-fix-dead-slime-setSize-invincibility.patch (renamed from patches/server/0494-fix-dead-slime-setSize-invincibility.patch)0
-rw-r--r--patches/server/0494-Merchant-getRecipes-should-return-an-immutable-list.patch (renamed from patches/server/0495-Merchant-getRecipes-should-return-an-immutable-list.patch)0
-rw-r--r--patches/server/0495-Expose-Tracked-Players.patch (renamed from patches/server/0496-Expose-Tracked-Players.patch)0
-rw-r--r--patches/server/0496-Improve-ServerGUI.patch (renamed from patches/server/0497-Improve-ServerGUI.patch)0
-rw-r--r--patches/server/0497-fix-converting-txt-to-json-file.patch (renamed from patches/server/0498-fix-converting-txt-to-json-file.patch)2
-rw-r--r--patches/server/0498-Add-worldborder-events.patch (renamed from patches/server/0499-Add-worldborder-events.patch)0
-rw-r--r--patches/server/0499-Add-PlayerNameEntityEvent.patch (renamed from patches/server/0500-Add-PlayerNameEntityEvent.patch)0
-rw-r--r--patches/server/0500-Add-recipe-to-cook-events.patch (renamed from patches/server/0501-Add-recipe-to-cook-events.patch)0
-rw-r--r--patches/server/0501-Add-Block-isValidTool.patch (renamed from patches/server/0502-Add-Block-isValidTool.patch)0
-rw-r--r--patches/server/0502-Allow-using-signs-inside-spawn-protection.patch (renamed from patches/server/0503-Allow-using-signs-inside-spawn-protection.patch)0
-rw-r--r--patches/server/0503-Expand-world-key-API.patch (renamed from patches/server/0504-Expand-world-key-API.patch)0
-rw-r--r--patches/server/0504-Add-fast-alternative-constructor-for-Rotations.patch (renamed from patches/server/0505-Add-fast-alternative-constructor-for-Rotations.patch)0
-rw-r--r--patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch (renamed from patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch)2
-rw-r--r--patches/server/0506-forced-whitelist-use-configurable-kick-message.patch (renamed from patches/server/0507-forced-whitelist-use-configurable-kick-message.patch)0
-rw-r--r--patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch (renamed from patches/server/0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch)0
-rw-r--r--patches/server/0508-Expose-protocol-version.patch (renamed from patches/server/0509-Expose-protocol-version.patch)0
-rw-r--r--patches/server/0509-Enhance-console-tab-completions-for-brigadier-comman.patch (renamed from patches/server/0510-Enhance-console-tab-completions-for-brigadier-comman.patch)0
-rw-r--r--patches/server/0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch (renamed from patches/server/0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch)0
-rw-r--r--patches/server/0511-Add-bypass-host-check.patch (renamed from patches/server/0512-Add-bypass-host-check.patch)0
-rw-r--r--patches/server/0512-Set-area-affect-cloud-rotation.patch (renamed from patches/server/0513-Set-area-affect-cloud-rotation.patch)0
-rw-r--r--patches/server/0513-add-isDeeplySleeping-to-HumanEntity.patch (renamed from patches/server/0514-add-isDeeplySleeping-to-HumanEntity.patch)0
-rw-r--r--patches/server/0514-add-consumeFuel-to-FurnaceBurnEvent.patch (renamed from patches/server/0515-add-consumeFuel-to-FurnaceBurnEvent.patch)0
-rw-r--r--patches/server/0515-add-get-set-drop-chance-to-EntityEquipment.patch (renamed from patches/server/0516-add-get-set-drop-chance-to-EntityEquipment.patch)0
-rw-r--r--patches/server/0516-fix-PigZombieAngerEvent-cancellation.patch (renamed from patches/server/0517-fix-PigZombieAngerEvent-cancellation.patch)0
-rw-r--r--patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch (renamed from patches/server/0518-fix-PlayerItemHeldEvent-firing-twice.patch)0
-rw-r--r--patches/server/0518-Add-PlayerDeepSleepEvent.patch (renamed from patches/server/0519-Add-PlayerDeepSleepEvent.patch)0
-rw-r--r--patches/server/0519-More-World-API.patch (renamed from patches/server/0520-More-World-API.patch)0
-rw-r--r--patches/server/0520-Add-PlayerBedFailEnterEvent.patch (renamed from patches/server/0521-Add-PlayerBedFailEnterEvent.patch)0
-rw-r--r--patches/server/0521-Implement-methods-to-convert-between-Component-and-B.patch (renamed from patches/server/0522-Implement-methods-to-convert-between-Component-and-B.patch)0
-rw-r--r--patches/server/0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch (renamed from patches/server/0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch)0
-rw-r--r--patches/server/0523-Introduce-beacon-activation-deactivation-events.patch (renamed from patches/server/0524-Introduce-beacon-activation-deactivation-events.patch)0
-rw-r--r--patches/server/0524-Add-Channel-initialization-listeners.patch (renamed from patches/server/0525-Add-Channel-initialization-listeners.patch)0
-rw-r--r--patches/server/0525-Send-empty-commands-if-tab-completion-is-disabled.patch (renamed from patches/server/0526-Send-empty-commands-if-tab-completion-is-disabled.patch)0
-rw-r--r--patches/server/0526-Add-more-WanderingTrader-API.patch (renamed from patches/server/0527-Add-more-WanderingTrader-API.patch)0
-rw-r--r--patches/server/0527-Add-EntityBlockStorage-clearEntities.patch (renamed from patches/server/0528-Add-EntityBlockStorage-clearEntities.patch)0
-rw-r--r--patches/server/0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch (renamed from patches/server/0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch)0
-rw-r--r--patches/server/0529-Add-HiddenPotionEffect-API.patch (renamed from patches/server/0530-Add-HiddenPotionEffect-API.patch)0
-rw-r--r--patches/server/0530-Inventory-close.patch (renamed from patches/server/0531-Inventory-close.patch)0
-rw-r--r--patches/server/0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch (renamed from patches/server/0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch)0
-rw-r--r--patches/server/0532-Add-basic-Datapack-API.patch (renamed from patches/server/0533-Add-basic-Datapack-API.patch)0
-rw-r--r--patches/server/0533-Add-environment-variable-to-disable-server-gui.patch (renamed from patches/server/0534-Add-environment-variable-to-disable-server-gui.patch)0
-rw-r--r--patches/server/0534-Expand-PlayerGameModeChangeEvent.patch (renamed from patches/server/0535-Expand-PlayerGameModeChangeEvent.patch)0
-rw-r--r--patches/server/0535-ItemStack-repair-check-API.patch (renamed from patches/server/0536-ItemStack-repair-check-API.patch)0
-rw-r--r--patches/server/0536-More-Enchantment-API.patch (renamed from patches/server/0537-More-Enchantment-API.patch)0
-rw-r--r--patches/server/0537-Move-range-check-for-block-placing-up.patch (renamed from patches/server/0538-Move-range-check-for-block-placing-up.patch)0
-rw-r--r--patches/server/0538-Add-Mob-lookAt-API.patch (renamed from patches/server/0539-Add-Mob-lookAt-API.patch)0
-rw-r--r--patches/server/0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch (renamed from patches/server/0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch)0
-rw-r--r--patches/server/0540-Add-Unix-domain-socket-support.patch (renamed from patches/server/0541-Add-Unix-domain-socket-support.patch)0
-rw-r--r--patches/server/0541-Add-EntityInsideBlockEvent.patch (renamed from patches/server/0542-Add-EntityInsideBlockEvent.patch)4
-rw-r--r--patches/server/0542-Improve-item-default-attribute-API.patch (renamed from patches/server/0543-Improve-item-default-attribute-API.patch)0
-rw-r--r--patches/server/0543-Add-cause-to-Weather-ThunderChangeEvents.patch (renamed from patches/server/0544-Add-cause-to-Weather-ThunderChangeEvents.patch)0
-rw-r--r--patches/server/0544-More-Lidded-Block-API.patch (renamed from patches/server/0545-More-Lidded-Block-API.patch)0
-rw-r--r--patches/server/0545-Limit-item-frame-cursors-on-maps.patch (renamed from patches/server/0546-Limit-item-frame-cursors-on-maps.patch)0
-rw-r--r--patches/server/0546-Add-PlayerKickEvent-causes.patch (renamed from patches/server/0547-Add-PlayerKickEvent-causes.patch)0
-rw-r--r--patches/server/0547-Add-PufferFishStateChangeEvent.patch (renamed from patches/server/0548-Add-PufferFishStateChangeEvent.patch)0
-rw-r--r--patches/server/0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch (renamed from patches/server/0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch)0
-rw-r--r--patches/server/0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch (renamed from patches/server/0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch)0
-rw-r--r--patches/server/0550-Add-option-to-fix-items-merging-through-walls.patch (renamed from patches/server/0551-Add-option-to-fix-items-merging-through-walls.patch)0
-rw-r--r--patches/server/0551-Add-BellRevealRaiderEvent.patch (renamed from patches/server/0552-Add-BellRevealRaiderEvent.patch)0
-rw-r--r--patches/server/0552-Fix-invulnerable-end-crystals.patch (renamed from patches/server/0553-Fix-invulnerable-end-crystals.patch)0
-rw-r--r--patches/server/0553-Add-ElderGuardianAppearanceEvent.patch (renamed from patches/server/0554-Add-ElderGuardianAppearanceEvent.patch)0
-rw-r--r--patches/server/0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch (renamed from patches/server/0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch)0
-rw-r--r--patches/server/0555-Line-Of-Sight-Changes.patch (renamed from patches/server/0556-Line-Of-Sight-Changes.patch)0
-rw-r--r--patches/server/0556-add-per-world-spawn-limits.patch (renamed from patches/server/0557-add-per-world-spawn-limits.patch)0
-rw-r--r--patches/server/0557-Fix-potions-splash-events.patch (renamed from patches/server/0558-Fix-potions-splash-events.patch)4
-rw-r--r--patches/server/0558-Add-more-LimitedRegion-API.patch (renamed from patches/server/0559-Add-more-LimitedRegion-API.patch)0
-rw-r--r--patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch (renamed from patches/server/0560-Fix-PlayerDropItemEvent-using-wrong-item.patch)0
-rw-r--r--patches/server/0560-Missing-Entity-API.patch (renamed from patches/server/0561-Missing-Entity-API.patch)0
-rw-r--r--patches/server/0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch (renamed from patches/server/0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch)0
-rw-r--r--patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch (renamed from patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch)2
-rw-r--r--patches/server/0563-Fix-commands-from-signs-not-firing-command-events.patch (renamed from patches/server/0564-Fix-commands-from-signs-not-firing-command-events.patch)0
-rw-r--r--patches/server/0564-Add-PlayerArmSwingEvent.patch (renamed from patches/server/0565-Add-PlayerArmSwingEvent.patch)0
-rw-r--r--patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch (renamed from patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch)2
-rw-r--r--patches/server/0566-Don-t-apply-cramming-damage-to-players.patch (renamed from patches/server/0567-Don-t-apply-cramming-damage-to-players.patch)0
-rw-r--r--patches/server/0567-Rate-options-and-timings-for-sensors-and-behaviors.patch (renamed from patches/server/0568-Rate-options-and-timings-for-sensors-and-behaviors.patch)0
-rw-r--r--patches/server/0568-Add-missing-forceDrop-toggles.patch (renamed from patches/server/0569-Add-missing-forceDrop-toggles.patch)0
-rw-r--r--patches/server/0569-Stinger-API.patch (renamed from patches/server/0570-Stinger-API.patch)0
-rw-r--r--patches/server/0570-Add-System.out-err-catcher.patch (renamed from patches/server/0571-Add-System.out-err-catcher.patch)2
-rw-r--r--patches/server/0571-Prevent-AFK-kick-while-watching-end-credits.patch (renamed from patches/server/0572-Prevent-AFK-kick-while-watching-end-credits.patch)0
-rw-r--r--patches/server/0572-Allow-skipping-writing-of-comments-to-server.propert.patch (renamed from patches/server/0573-Allow-skipping-writing-of-comments-to-server.propert.patch)0
-rw-r--r--patches/server/0573-Add-PlayerSetSpawnEvent.patch (renamed from patches/server/0574-Add-PlayerSetSpawnEvent.patch)2
-rw-r--r--patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch (renamed from patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch)4
-rw-r--r--patches/server/0575-Optimize-entity-tracker-passenger-checks.patch (renamed from patches/server/0576-Optimize-entity-tracker-passenger-checks.patch)0
-rw-r--r--patches/server/0576-Config-option-for-Piglins-guarding-chests.patch (renamed from patches/server/0577-Config-option-for-Piglins-guarding-chests.patch)0
-rw-r--r--patches/server/0577-Add-EntityDamageItemEvent.patch (renamed from patches/server/0578-Add-EntityDamageItemEvent.patch)2
-rw-r--r--patches/server/0578-Optimize-indirect-passenger-iteration.patch (renamed from patches/server/0579-Optimize-indirect-passenger-iteration.patch)0
-rw-r--r--patches/server/0579-Configurable-item-frame-map-cursor-update-interval.patch (renamed from patches/server/0580-Configurable-item-frame-map-cursor-update-interval.patch)0
-rw-r--r--patches/server/0580-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/server/0581-Change-EnderEye-target-without-changing-other-things.patch)0
-rw-r--r--patches/server/0581-Add-BlockBreakBlockEvent.patch (renamed from patches/server/0582-Add-BlockBreakBlockEvent.patch)0
-rw-r--r--patches/server/0582-Option-to-prevent-data-components-copy-in-smithing-r.patch (renamed from patches/server/0583-Option-to-prevent-data-components-copy-in-smithing-r.patch)0
-rw-r--r--patches/server/0583-More-CommandBlock-API.patch (renamed from patches/server/0584-More-CommandBlock-API.patch)0
-rw-r--r--patches/server/0584-Add-missing-team-sidebar-display-slots.patch (renamed from patches/server/0585-Add-missing-team-sidebar-display-slots.patch)0
-rw-r--r--patches/server/0585-Add-back-EntityPortalExitEvent.patch (renamed from patches/server/0586-Add-back-EntityPortalExitEvent.patch)0
-rw-r--r--patches/server/0586-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/server/0587-Add-methods-to-find-targets-for-lightning-strikes.patch)0
-rw-r--r--patches/server/0587-Get-entity-default-attributes.patch (renamed from patches/server/0588-Get-entity-default-attributes.patch)0
-rw-r--r--patches/server/0588-Left-handed-API.patch (renamed from patches/server/0589-Left-handed-API.patch)0
-rw-r--r--patches/server/0589-Add-more-advancement-API.patch (renamed from patches/server/0590-Add-more-advancement-API.patch)4
-rw-r--r--patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch (renamed from patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch)4
-rw-r--r--patches/server/0591-Add-critical-damage-API.patch (renamed from patches/server/0592-Add-critical-damage-API.patch)8
-rw-r--r--patches/server/0592-Fix-issues-with-mob-conversion.patch (renamed from patches/server/0593-Fix-issues-with-mob-conversion.patch)0
-rw-r--r--patches/server/0593-Add-hasCollision-methods-to-various-places.patch (renamed from patches/server/0594-Add-hasCollision-methods-to-various-places.patch)0
-rw-r--r--patches/server/0594-Goat-ram-API.patch (renamed from patches/server/0595-Goat-ram-API.patch)0
-rw-r--r--patches/server/0595-Add-API-for-resetting-a-single-score.patch (renamed from patches/server/0596-Add-API-for-resetting-a-single-score.patch)0
-rw-r--r--patches/server/0596-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/server/0597-Add-Raw-Byte-Entity-Serialization.patch)0
-rw-r--r--patches/server/0597-Vanilla-command-permission-fixes.patch (renamed from patches/server/0598-Vanilla-command-permission-fixes.patch)0
-rw-r--r--patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (renamed from patches/server/0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch)0
-rw-r--r--patches/server/0599-Fix-GameProfileCache-concurrency.patch (renamed from patches/server/0600-Fix-GameProfileCache-concurrency.patch)0
-rw-r--r--patches/server/0600-Improve-and-expand-AsyncCatcher.patch (renamed from patches/server/0601-Improve-and-expand-AsyncCatcher.patch)0
-rw-r--r--patches/server/0601-Add-paper-mobcaps-and-paper-playermobcaps.patch (renamed from patches/server/0602-Add-paper-mobcaps-and-paper-playermobcaps.patch)0
-rw-r--r--patches/server/0602-Sanitize-ResourceLocation-error-logging.patch (renamed from patches/server/0603-Sanitize-ResourceLocation-error-logging.patch)0
-rw-r--r--patches/server/0603-Manually-inline-methods-in-BlockPosition.patch (renamed from patches/server/0604-Manually-inline-methods-in-BlockPosition.patch)0
-rw-r--r--patches/server/0604-Name-craft-scheduler-threads-according-to-the-plugin.patch (renamed from patches/server/0605-Name-craft-scheduler-threads-according-to-the-plugin.patch)0
-rw-r--r--patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (renamed from patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch)2
-rw-r--r--patches/server/0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (renamed from patches/server/0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch)0
-rw-r--r--patches/server/0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch (renamed from patches/server/0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch)0
-rw-r--r--patches/server/0608-Time-scoreboard-search.patch (renamed from patches/server/0609-Time-scoreboard-search.patch)0
-rw-r--r--patches/server/0609-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/server/0610-Oprimise-map-impl-for-tracked-players.patch)0
-rw-r--r--patches/server/0610-Add-missing-InventoryType.patch (renamed from patches/server/0611-Add-missing-InventoryType.patch)0
-rw-r--r--patches/server/0611-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/server/0612-Optimise-BlockSoil-nearby-water-lookup.patch)0
-rw-r--r--patches/server/0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/server/0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch)0
-rw-r--r--patches/server/0613-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/server/0614-Check-requirement-before-suggesting-root-nodes.patch)0
-rw-r--r--patches/server/0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/server/0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch)0
-rw-r--r--patches/server/0615-Add-packet-limiter-config.patch (renamed from patches/server/0616-Add-packet-limiter-config.patch)0
-rw-r--r--patches/server/0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/server/0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch)0
-rw-r--r--patches/server/0617-Ensure-valid-vehicle-status.patch (renamed from patches/server/0618-Ensure-valid-vehicle-status.patch)0
-rw-r--r--patches/server/0618-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/server/0619-Prevent-softlocked-end-exit-portal-generation.patch)0
-rw-r--r--patches/server/0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/server/0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch)0
-rw-r--r--patches/server/0620-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/server/0621-Don-t-log-debug-logging-being-disabled.patch)0
-rw-r--r--patches/server/0621-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/server/0622-fix-various-menus-with-empty-level-accesses.patch)0
-rw-r--r--patches/server/0622-Preserve-overstacked-loot.patch (renamed from patches/server/0623-Preserve-overstacked-loot.patch)0
-rw-r--r--patches/server/0623-Update-head-rotation-in-missing-places.patch (renamed from patches/server/0624-Update-head-rotation-in-missing-places.patch)0
-rw-r--r--patches/server/0624-prevent-unintended-light-block-manipulation.patch (renamed from patches/server/0625-prevent-unintended-light-block-manipulation.patch)0
-rw-r--r--patches/server/0625-Fix-CraftCriteria-defaults-map.patch (renamed from patches/server/0626-Fix-CraftCriteria-defaults-map.patch)0
-rw-r--r--patches/server/0626-Fix-upstreams-block-state-factories.patch (renamed from patches/server/0627-Fix-upstreams-block-state-factories.patch)0
-rw-r--r--patches/server/0627-Configurable-feature-seeds.patch (renamed from patches/server/0628-Configurable-feature-seeds.patch)0
-rw-r--r--patches/server/0628-Add-root-admin-user-detection.patch (renamed from patches/server/0629-Add-root-admin-user-detection.patch)0
-rw-r--r--patches/server/0629-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/server/0630-don-t-attempt-to-teleport-dead-entities.patch)0
-rw-r--r--patches/server/0630-Prevent-excessive-velocity-through-repeated-crits.patch (renamed from patches/server/0631-Prevent-excessive-velocity-through-repeated-crits.patch)0
-rw-r--r--patches/server/0631-Remove-client-side-code-using-deprecated-for-removal.patch (renamed from patches/server/0632-Remove-client-side-code-using-deprecated-for-removal.patch)0
-rw-r--r--patches/server/0632-Fix-Spigot-growth-modifiers.patch (renamed from patches/server/0633-Fix-Spigot-growth-modifiers.patch)0
-rw-r--r--patches/server/0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/server/0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch)0
-rw-r--r--patches/server/0634-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/server/0635-Add-PlayerItemFrameChangeEvent.patch)0
-rw-r--r--patches/server/0635-Optimize-HashMapPalette.patch (renamed from patches/server/0636-Optimize-HashMapPalette.patch)0
-rw-r--r--patches/server/0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (renamed from patches/server/0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch)0
-rw-r--r--patches/server/0637-Add-more-Campfire-API.patch (renamed from patches/server/0638-Add-more-Campfire-API.patch)0
-rw-r--r--patches/server/0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (renamed from patches/server/0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch)0
-rw-r--r--patches/server/0639-Forward-CraftEntity-in-teleport-command.patch (renamed from patches/server/0640-Forward-CraftEntity-in-teleport-command.patch)0
-rw-r--r--patches/server/0640-Improve-scoreboard-entries.patch (renamed from patches/server/0641-Improve-scoreboard-entries.patch)0
-rw-r--r--patches/server/0641-Entity-powdered-snow-API.patch (renamed from patches/server/0642-Entity-powdered-snow-API.patch)0
-rw-r--r--patches/server/0642-Add-API-for-item-entity-health.patch (renamed from patches/server/0643-Add-API-for-item-entity-health.patch)0
-rw-r--r--patches/server/0643-Configurable-max-block-light-for-monster-spawning.patch (renamed from patches/server/0644-Configurable-max-block-light-for-monster-spawning.patch)0
-rw-r--r--patches/server/0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (renamed from patches/server/0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch)0
-rw-r--r--patches/server/0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (renamed from patches/server/0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch)0
-rw-r--r--patches/server/0646-Bucketable-API.patch (renamed from patches/server/0647-Bucketable-API.patch)0
-rw-r--r--patches/server/0647-Validate-usernames.patch (renamed from patches/server/0648-Validate-usernames.patch)2
-rw-r--r--patches/server/0648-Make-water-animal-spawn-height-configurable.patch (renamed from patches/server/0649-Make-water-animal-spawn-height-configurable.patch)0
-rw-r--r--patches/server/0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (renamed from patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch)0
-rw-r--r--patches/server/0650-Add-config-option-for-worlds-affected-by-time-cmd.patch (renamed from patches/server/0651-Add-config-option-for-worlds-affected-by-time-cmd.patch)0
-rw-r--r--patches/server/0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch (renamed from patches/server/0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch)0
-rw-r--r--patches/server/0652-Multiple-Entries-with-Scoreboards.patch (renamed from patches/server/0653-Multiple-Entries-with-Scoreboards.patch)0
-rw-r--r--patches/server/0653-Reset-placed-block-on-exception.patch (renamed from patches/server/0654-Reset-placed-block-on-exception.patch)0
-rw-r--r--patches/server/0654-Add-configurable-height-for-slime-spawn.patch (renamed from patches/server/0655-Add-configurable-height-for-slime-spawn.patch)0
-rw-r--r--patches/server/0655-Fix-xp-reward-for-baby-zombies.patch (renamed from patches/server/0656-Fix-xp-reward-for-baby-zombies.patch)0
-rw-r--r--patches/server/0656-Multi-Block-Change-API-Implementation.patch (renamed from patches/server/0657-Multi-Block-Change-API-Implementation.patch)2
-rw-r--r--patches/server/0657-Fix-NotePlayEvent.patch (renamed from patches/server/0658-Fix-NotePlayEvent.patch)0
-rw-r--r--patches/server/0658-Freeze-Tick-Lock-API.patch (renamed from patches/server/0659-Freeze-Tick-Lock-API.patch)0
-rw-r--r--patches/server/0659-More-PotionEffectType-API.patch (renamed from patches/server/0660-More-PotionEffectType-API.patch)0
-rw-r--r--patches/server/0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (renamed from patches/server/0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch)0
-rw-r--r--patches/server/0661-API-for-creating-command-sender-which-forwards-feedb.patch (renamed from patches/server/0662-API-for-creating-command-sender-which-forwards-feedb.patch)0
-rw-r--r--patches/server/0662-Add-missing-structure-set-seed-configs.patch (renamed from patches/server/0663-Add-missing-structure-set-seed-configs.patch)0
-rw-r--r--patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch (renamed from patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch)2
-rw-r--r--patches/server/0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (renamed from patches/server/0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch)0
-rw-r--r--patches/server/0665-Add-GameEvent-tags.patch (renamed from patches/server/0666-Add-GameEvent-tags.patch)0
-rw-r--r--patches/server/0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (renamed from patches/server/0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch)0
-rw-r--r--patches/server/0667-Furnace-RecipesUsed-API.patch (renamed from patches/server/0668-Furnace-RecipesUsed-API.patch)0
-rw-r--r--patches/server/0668-Configurable-sculk-sensor-listener-range.patch (renamed from patches/server/0669-Configurable-sculk-sensor-listener-range.patch)0
-rw-r--r--patches/server/0669-Add-missing-block-data-mins-and-maxes.patch (renamed from patches/server/0670-Add-missing-block-data-mins-and-maxes.patch)0
-rw-r--r--patches/server/0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch (renamed from patches/server/0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch)0
-rw-r--r--patches/server/0671-Put-world-into-worldlist-before-initing-the-world.patch (renamed from patches/server/0672-Put-world-into-worldlist-before-initing-the-world.patch)0
-rw-r--r--patches/server/0672-Custom-Potion-Mixes.patch (renamed from patches/server/0673-Custom-Potion-Mixes.patch)2
-rw-r--r--patches/server/0673-Force-close-world-loading-screen.patch (renamed from patches/server/0674-Force-close-world-loading-screen.patch)2
-rw-r--r--patches/server/0674-Fix-falling-block-spawn-methods.patch (renamed from patches/server/0675-Fix-falling-block-spawn-methods.patch)0
-rw-r--r--patches/server/0675-Expose-furnace-minecart-push-values.patch (renamed from patches/server/0676-Expose-furnace-minecart-push-values.patch)0
-rw-r--r--patches/server/0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (renamed from patches/server/0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch)0
-rw-r--r--patches/server/0677-More-Projectile-API.patch (renamed from patches/server/0678-More-Projectile-API.patch)6
-rw-r--r--patches/server/0678-Fix-swamp-hut-cat-generation-deadlock.patch (renamed from patches/server/0679-Fix-swamp-hut-cat-generation-deadlock.patch)0
-rw-r--r--patches/server/0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch (renamed from patches/server/0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch)0
-rw-r--r--patches/server/0680-Implement-getComputedBiome-API.patch (renamed from patches/server/0681-Implement-getComputedBiome-API.patch)0
-rw-r--r--patches/server/0681-Make-some-itemstacks-nonnull.patch (renamed from patches/server/0682-Make-some-itemstacks-nonnull.patch)0
-rw-r--r--patches/server/0682-Implement-enchantWithLevels-API.patch (renamed from patches/server/0683-Implement-enchantWithLevels-API.patch)0
-rw-r--r--patches/server/0683-Fix-saving-in-unloadWorld.patch (renamed from patches/server/0684-Fix-saving-in-unloadWorld.patch)0
-rw-r--r--patches/server/0684-Buffer-OOB-setBlock-calls.patch (renamed from patches/server/0685-Buffer-OOB-setBlock-calls.patch)0
-rw-r--r--patches/server/0685-Add-TameableDeathMessageEvent.patch (renamed from patches/server/0686-Add-TameableDeathMessageEvent.patch)0
-rw-r--r--patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch (renamed from patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch)4
-rw-r--r--patches/server/0687-fix-player-loottables-running-when-mob-loot-gamerule.patch (renamed from patches/server/0688-fix-player-loottables-running-when-mob-loot-gamerule.patch)0
-rw-r--r--patches/server/0688-Ensure-entity-passenger-world-matches-ridden-entity.patch (renamed from patches/server/0689-Ensure-entity-passenger-world-matches-ridden-entity.patch)0
-rw-r--r--patches/server/0689-cache-resource-keys.patch (renamed from patches/server/0690-cache-resource-keys.patch)0
-rw-r--r--patches/server/0690-Allow-changing-the-EnderDragon-podium.patch (renamed from patches/server/0691-Allow-changing-the-EnderDragon-podium.patch)0
-rw-r--r--patches/server/0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch (renamed from patches/server/0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch)0
-rw-r--r--patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch (renamed from patches/server/0693-Prevent-tile-entity-copies-loading-chunks.patch)0
-rw-r--r--patches/server/0693-Use-username-instead-of-display-name-in-PlayerList-g.patch (renamed from patches/server/0694-Use-username-instead-of-display-name-in-PlayerList-g.patch)0
-rw-r--r--patches/server/0694-Expand-PlayerItemDamageEvent.patch (renamed from patches/server/0695-Expand-PlayerItemDamageEvent.patch)2
-rw-r--r--patches/server/0695-WorldCreator-keepSpawnLoaded.patch (renamed from patches/server/0696-WorldCreator-keepSpawnLoaded.patch)0
-rw-r--r--patches/server/0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch (renamed from patches/server/0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch)0
-rw-r--r--patches/server/0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (renamed from patches/server/0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch)0
-rw-r--r--patches/server/0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch (renamed from patches/server/0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch)0
-rw-r--r--patches/server/0699-Fire-CauldronLevelChange-on-initial-fill.patch (renamed from patches/server/0700-Fire-CauldronLevelChange-on-initial-fill.patch)0
-rw-r--r--patches/server/0700-fix-powder-snow-cauldrons-not-turning-to-water.patch (renamed from patches/server/0701-fix-powder-snow-cauldrons-not-turning-to-water.patch)0
-rw-r--r--patches/server/0701-Add-PlayerStopUsingItemEvent.patch (renamed from patches/server/0702-Add-PlayerStopUsingItemEvent.patch)0
-rw-r--r--patches/server/0702-Don-t-tick-markers.patch (renamed from patches/server/0703-Don-t-tick-markers.patch)0
-rw-r--r--patches/server/0703-Expand-FallingBlock-API.patch (renamed from patches/server/0704-Expand-FallingBlock-API.patch)0
-rw-r--r--patches/server/0704-Add-support-for-Proxy-Protocol.patch (renamed from patches/server/0705-Add-support-for-Proxy-Protocol.patch)0
-rw-r--r--patches/server/0705-Fix-OfflinePlayer-getBedSpawnLocation.patch (renamed from patches/server/0706-Fix-OfflinePlayer-getBedSpawnLocation.patch)0
-rw-r--r--patches/server/0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch (renamed from patches/server/0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch)0
-rw-r--r--patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch (renamed from patches/server/0708-Sanitize-sent-BlockEntity-NBT.patch)0
-rw-r--r--patches/server/0708-Disable-component-selector-resolving-in-books-by-def.patch (renamed from patches/server/0709-Disable-component-selector-resolving-in-books-by-def.patch)0
-rw-r--r--patches/server/0709-Prevent-entity-loading-causing-async-lookups.patch (renamed from patches/server/0710-Prevent-entity-loading-causing-async-lookups.patch)0
-rw-r--r--patches/server/0710-Throw-exception-on-world-create-while-being-ticked.patch (renamed from patches/server/0711-Throw-exception-on-world-create-while-being-ticked.patch)0
-rw-r--r--patches/server/0711-Dont-resent-entity-on-art-update.patch (renamed from patches/server/0712-Dont-resent-entity-on-art-update.patch)0
-rw-r--r--patches/server/0712-Add-WardenAngerChangeEvent.patch (renamed from patches/server/0713-Add-WardenAngerChangeEvent.patch)0
-rw-r--r--patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch (renamed from patches/server/0714-Add-option-for-strict-advancement-dimension-checks.patch)0
-rw-r--r--patches/server/0714-Add-missing-important-BlockStateListPopulator-method.patch (renamed from patches/server/0715-Add-missing-important-BlockStateListPopulator-method.patch)0
-rw-r--r--patches/server/0715-Nameable-Banner-API.patch (renamed from patches/server/0716-Nameable-Banner-API.patch)0
-rw-r--r--patches/server/0716-Don-t-broadcast-messages-to-command-blocks.patch (renamed from patches/server/0717-Don-t-broadcast-messages-to-command-blocks.patch)0
-rw-r--r--patches/server/0717-Prevent-empty-items-from-being-added-to-world.patch (renamed from patches/server/0718-Prevent-empty-items-from-being-added-to-world.patch)0
-rw-r--r--patches/server/0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch (renamed from patches/server/0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch)0
-rw-r--r--patches/server/0719-Add-Player-getFishHook.patch (renamed from patches/server/0720-Add-Player-getFishHook.patch)0
-rw-r--r--patches/server/0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch (renamed from patches/server/0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch)0
-rw-r--r--patches/server/0721-Add-various-missing-EntityDropItemEvent-calls.patch (renamed from patches/server/0722-Add-various-missing-EntityDropItemEvent-calls.patch)0
-rw-r--r--patches/server/0722-Fix-Bee-flower-NPE.patch (renamed from patches/server/0723-Fix-Bee-flower-NPE.patch)0
-rw-r--r--patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch (renamed from patches/server/0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch)0
-rw-r--r--patches/server/0724-More-Teleport-API.patch (renamed from patches/server/0725-More-Teleport-API.patch)4
-rw-r--r--patches/server/0725-Add-EntityPortalReadyEvent.patch (renamed from patches/server/0726-Add-EntityPortalReadyEvent.patch)0
-rw-r--r--patches/server/0726-Don-t-use-level-random-in-entity-constructors.patch (renamed from patches/server/0727-Don-t-use-level-random-in-entity-constructors.patch)0
-rw-r--r--patches/server/0727-Send-block-entities-after-destroy-prediction.patch (renamed from patches/server/0728-Send-block-entities-after-destroy-prediction.patch)0
-rw-r--r--patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch (renamed from patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch)2
-rw-r--r--patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch (renamed from patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch)2
-rw-r--r--patches/server/0730-Add-and-fix-missing-BlockFadeEvents.patch (renamed from patches/server/0731-Add-and-fix-missing-BlockFadeEvents.patch)0
-rw-r--r--patches/server/0731-Collision-API.patch (renamed from patches/server/0732-Collision-API.patch)0
-rw-r--r--patches/server/0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch (renamed from patches/server/0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch)0
-rw-r--r--patches/server/0733-Block-Ticking-API.patch (renamed from patches/server/0734-Block-Ticking-API.patch)0
-rw-r--r--patches/server/0734-Add-Velocity-IP-Forwarding-Support.patch (renamed from patches/server/0735-Add-Velocity-IP-Forwarding-Support.patch)0
-rw-r--r--patches/server/0735-Add-NamespacedKey-biome-methods.patch (renamed from patches/server/0736-Add-NamespacedKey-biome-methods.patch)0
-rw-r--r--patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch (renamed from patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch)2
-rw-r--r--patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch (renamed from patches/server/0738-Stop-large-look-changes-from-crashing-the-server.patch)0
-rw-r--r--patches/server/0738-Fire-EntityChangeBlockEvent-in-more-places.patch (renamed from patches/server/0739-Fire-EntityChangeBlockEvent-in-more-places.patch)0
-rw-r--r--patches/server/0739-Missing-eating-regain-reason.patch (renamed from patches/server/0740-Missing-eating-regain-reason.patch)0
-rw-r--r--patches/server/0740-Missing-effect-cause.patch (renamed from patches/server/0741-Missing-effect-cause.patch)0
-rw-r--r--patches/server/0741-Added-byte-array-serialization-deserialization-for-P.patch (renamed from patches/server/0742-Added-byte-array-serialization-deserialization-for-P.patch)0
-rw-r--r--patches/server/0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (renamed from patches/server/0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch)0
-rw-r--r--patches/server/0743-Call-BlockPhysicsEvent-more-often.patch (renamed from patches/server/0744-Call-BlockPhysicsEvent-more-often.patch)0
-rw-r--r--patches/server/0744-Configurable-chat-thread-limit.patch (renamed from patches/server/0745-Configurable-chat-thread-limit.patch)0
-rw-r--r--patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch (renamed from patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch)4
-rw-r--r--patches/server/0746-fix-Jigsaw-block-kicking-user.patch (renamed from patches/server/0747-fix-Jigsaw-block-kicking-user.patch)0
-rw-r--r--patches/server/0747-use-BlockFormEvent-for-mud-converting-into-clay.patch (renamed from patches/server/0748-use-BlockFormEvent-for-mud-converting-into-clay.patch)0
-rw-r--r--patches/server/0748-Add-getDrops-to-BlockState.patch (renamed from patches/server/0749-Add-getDrops-to-BlockState.patch)0
-rw-r--r--patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch (renamed from patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch)6
-rw-r--r--patches/server/0750-Remove-unnecessary-onTrackingStart-during-navigation.patch (renamed from patches/server/0751-Remove-unnecessary-onTrackingStart-during-navigation.patch)0
-rw-r--r--patches/server/0751-Fix-custom-piglin-loved-items.patch (renamed from patches/server/0752-Fix-custom-piglin-loved-items.patch)0
-rw-r--r--patches/server/0752-EntityPickupItemEvent-fixes.patch (renamed from patches/server/0753-EntityPickupItemEvent-fixes.patch)0
-rw-r--r--patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch (renamed from patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch)6
-rw-r--r--patches/server/0754-Add-PlayerInventorySlotChangeEvent.patch (renamed from patches/server/0755-Add-PlayerInventorySlotChangeEvent.patch)0
-rw-r--r--patches/server/0755-Elder-Guardian-appearance-API.patch (renamed from patches/server/0756-Elder-Guardian-appearance-API.patch)2
-rw-r--r--patches/server/0756-Allow-changing-bed-s-occupied-property.patch (renamed from patches/server/0757-Allow-changing-bed-s-occupied-property.patch)0
-rw-r--r--patches/server/0757-Add-entity-knockback-API.patch (renamed from patches/server/0758-Add-entity-knockback-API.patch)0
-rw-r--r--patches/server/0758-Detect-headless-JREs.patch (renamed from patches/server/0759-Detect-headless-JREs.patch)0
-rw-r--r--patches/server/0759-fix-entity-vehicle-collision-event-not-called.patch (renamed from patches/server/0760-fix-entity-vehicle-collision-event-not-called.patch)0
-rw-r--r--patches/server/0760-Add-EntityToggleSitEvent.patch (renamed from patches/server/0761-Add-EntityToggleSitEvent.patch)0
-rw-r--r--patches/server/0761-Add-fire-tick-delay-option.patch (renamed from patches/server/0762-Add-fire-tick-delay-option.patch)14
-rw-r--r--patches/server/0762-Add-Moving-Piston-API.patch (renamed from patches/server/0763-Add-Moving-Piston-API.patch)0
-rw-r--r--patches/server/0763-Ignore-impossible-spawn-tick.patch (renamed from patches/server/0764-Ignore-impossible-spawn-tick.patch)0
-rw-r--r--patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch (renamed from patches/server/0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch)0
-rw-r--r--patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch (renamed from patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch)4
-rw-r--r--patches/server/0766-Add-PrePlayerAttackEntityEvent.patch (renamed from patches/server/0767-Add-PrePlayerAttackEntityEvent.patch)0
-rw-r--r--patches/server/0767-ensure-reset-EnderDragon-boss-event-name.patch (renamed from patches/server/0768-ensure-reset-EnderDragon-boss-event-name.patch)0
-rw-r--r--patches/server/0768-Add-Player-Warden-Warning-API.patch (renamed from patches/server/0769-Add-Player-Warden-Warning-API.patch)2
-rw-r--r--patches/server/0769-More-vanilla-friendly-methods-to-update-trades.patch (renamed from patches/server/0770-More-vanilla-friendly-methods-to-update-trades.patch)0
-rw-r--r--patches/server/0770-Add-paper-dumplisteners-command.patch (renamed from patches/server/0771-Add-paper-dumplisteners-command.patch)0
-rw-r--r--patches/server/0771-check-global-player-list-where-appropriate.patch (renamed from patches/server/0772-check-global-player-list-where-appropriate.patch)0
-rw-r--r--patches/server/0772-Fix-async-entity-add-due-to-fungus-trees.patch (renamed from patches/server/0773-Fix-async-entity-add-due-to-fungus-trees.patch)0
-rw-r--r--patches/server/0773-ItemStack-damage-API.patch (renamed from patches/server/0774-ItemStack-damage-API.patch)2
-rw-r--r--patches/server/0774-Friction-API.patch (renamed from patches/server/0775-Friction-API.patch)0
-rw-r--r--patches/server/0775-Ability-to-control-player-s-insomnia-and-phantoms.patch (renamed from patches/server/0776-Ability-to-control-player-s-insomnia-and-phantoms.patch)0
-rw-r--r--patches/server/0776-Fix-premature-player-kicks-on-shutdown.patch (renamed from patches/server/0777-Fix-premature-player-kicks-on-shutdown.patch)0
-rw-r--r--patches/server/0777-Sync-offhand-slot-in-menus.patch (renamed from patches/server/0778-Sync-offhand-slot-in-menus.patch)0
-rw-r--r--patches/server/0778-Player-Entity-Tracking-Events.patch (renamed from patches/server/0779-Player-Entity-Tracking-Events.patch)0
-rw-r--r--patches/server/0779-Limit-pet-look-distance.patch (renamed from patches/server/0780-Limit-pet-look-distance.patch)0
-rw-r--r--patches/server/0780-fix-Instruments.patch (renamed from patches/server/0781-fix-Instruments.patch)2
-rw-r--r--patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch (renamed from patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch)8
-rw-r--r--patches/server/0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch (renamed from patches/server/0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch)0
-rw-r--r--patches/server/0783-Add-BlockLockCheckEvent.patch (renamed from patches/server/0784-Add-BlockLockCheckEvent.patch)0
-rw-r--r--patches/server/0784-Add-Sneaking-API-for-Entities.patch (renamed from patches/server/0785-Add-Sneaking-API-for-Entities.patch)2
-rw-r--r--patches/server/0785-Improve-logging-and-errors.patch (renamed from patches/server/0786-Improve-logging-and-errors.patch)0
-rw-r--r--patches/server/0786-Improve-PortalEvents.patch (renamed from patches/server/0787-Improve-PortalEvents.patch)0
-rw-r--r--patches/server/0787-Add-config-option-for-spider-worldborder-climbing.patch (renamed from patches/server/0788-Add-config-option-for-spider-worldborder-climbing.patch)0
-rw-r--r--patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch (renamed from patches/server/0789-Add-missing-SpigotConfig-logCommands-check.patch)0
-rw-r--r--patches/server/0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch (renamed from patches/server/0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch)0
-rw-r--r--patches/server/0790-Flying-Fall-Damage.patch (renamed from patches/server/0791-Flying-Fall-Damage.patch)2
-rw-r--r--patches/server/0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (renamed from patches/server/0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch)0
-rw-r--r--patches/server/0792-config-for-disabling-entity-tag-tags.patch (renamed from patches/server/0793-config-for-disabling-entity-tag-tags.patch)0
-rw-r--r--patches/server/0793-Use-single-player-info-update-packet-on-join.patch (renamed from patches/server/0794-Use-single-player-info-update-packet-on-join.patch)2
-rw-r--r--patches/server/0794-Correctly-shrink-items-during-EntityResurrectEvent.patch (renamed from patches/server/0795-Correctly-shrink-items-during-EntityResurrectEvent.patch)0
-rw-r--r--patches/server/0795-Win-Screen-API.patch (renamed from patches/server/0796-Win-Screen-API.patch)2
-rw-r--r--patches/server/0796-Remove-CraftItemStack-setAmount-null-assignment.patch (renamed from patches/server/0797-Remove-CraftItemStack-setAmount-null-assignment.patch)0
-rw-r--r--patches/server/0797-Fix-force-opening-enchantment-tables.patch (renamed from patches/server/0798-Fix-force-opening-enchantment-tables.patch)0
-rw-r--r--patches/server/0798-Add-Entity-Body-Yaw-API.patch (renamed from patches/server/0799-Add-Entity-Body-Yaw-API.patch)0
-rw-r--r--patches/server/0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch (renamed from patches/server/0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch)0
-rw-r--r--patches/server/0800-Add-EntityFertilizeEggEvent.patch (renamed from patches/server/0801-Add-EntityFertilizeEggEvent.patch)4
-rw-r--r--patches/server/0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch (renamed from patches/server/0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch)0
-rw-r--r--patches/server/0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/server/0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/server/0803-Correctly-handle-ArmorStand-invisibility.patch (renamed from patches/server/0804-Correctly-handle-ArmorStand-invisibility.patch)0
-rw-r--r--patches/server/0804-Fix-advancement-triggers-for-entity-damage.patch (renamed from patches/server/0805-Fix-advancement-triggers-for-entity-damage.patch)0
-rw-r--r--patches/server/0805-Fix-text-display-error-on-spawn.patch (renamed from patches/server/0806-Fix-text-display-error-on-spawn.patch)0
-rw-r--r--patches/server/0806-Fix-inventories-returning-null-Locations.patch (renamed from patches/server/0807-Fix-inventories-returning-null-Locations.patch)2
-rw-r--r--patches/server/0807-Add-Shearable-API.patch (renamed from patches/server/0808-Add-Shearable-API.patch)2
-rw-r--r--patches/server/0808-Fix-SpawnEggMeta-get-setSpawnedType.patch (renamed from patches/server/0809-Fix-SpawnEggMeta-get-setSpawnedType.patch)0
-rw-r--r--patches/server/0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch (renamed from patches/server/0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch)0
-rw-r--r--patches/server/0810-Treat-sequence-violations-like-they-should-be.patch (renamed from patches/server/0811-Treat-sequence-violations-like-they-should-be.patch)0
-rw-r--r--patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch (renamed from patches/server/0812-Prevent-causing-expired-keys-from-impacting-new-join.patch)0
-rw-r--r--patches/server/0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch (renamed from patches/server/0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch)0
-rw-r--r--patches/server/0813-Use-array-for-gamerule-storage.patch (renamed from patches/server/0814-Use-array-for-gamerule-storage.patch)0
-rw-r--r--patches/server/0814-Fix-a-couple-of-upstream-bed-issues.patch (renamed from patches/server/0815-Fix-a-couple-of-upstream-bed-issues.patch)0
-rw-r--r--patches/server/0815-Fix-demo-flag-not-enabling-demo-mode.patch (renamed from patches/server/0816-Fix-demo-flag-not-enabling-demo-mode.patch)0
-rw-r--r--patches/server/0816-Add-Mob-Experience-reward-API.patch (renamed from patches/server/0817-Add-Mob-Experience-reward-API.patch)0
-rw-r--r--patches/server/0817-Break-redstone-on-top-of-trap-doors-early.patch (renamed from patches/server/0818-Break-redstone-on-top-of-trap-doors-early.patch)0
-rw-r--r--patches/server/0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch (renamed from patches/server/0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch)0
-rw-r--r--patches/server/0819-More-accurate-isInOpenWater-impl.patch (renamed from patches/server/0820-More-accurate-isInOpenWater-impl.patch)0
-rw-r--r--patches/server/0820-Expand-PlayerItemMendEvent.patch (renamed from patches/server/0821-Expand-PlayerItemMendEvent.patch)4
-rw-r--r--patches/server/0821-Refresh-ProjectileSource-for-projectiles.patch (renamed from patches/server/0822-Refresh-ProjectileSource-for-projectiles.patch)0
-rw-r--r--patches/server/0822-Add-transient-modifier-API.patch (renamed from patches/server/0823-Add-transient-modifier-API.patch)0
-rw-r--r--patches/server/0823-Fix-block-place-logic.patch (renamed from patches/server/0824-Fix-block-place-logic.patch)2
-rw-r--r--patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch (renamed from patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch)2
-rw-r--r--patches/server/0825-Call-BlockGrowEvent-for-missing-blocks.patch (renamed from patches/server/0826-Call-BlockGrowEvent-for-missing-blocks.patch)0
-rw-r--r--patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch (renamed from patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch)2
-rw-r--r--patches/server/0827-fix-MapLike-spam-for-missing-key-selector.patch (renamed from patches/server/0828-fix-MapLike-spam-for-missing-key-selector.patch)0
-rw-r--r--patches/server/0828-Fix-sniffer-removeExploredLocation.patch (renamed from patches/server/0829-Fix-sniffer-removeExploredLocation.patch)0
-rw-r--r--patches/server/0829-Add-method-to-remove-all-active-potion-effects.patch (renamed from patches/server/0830-Add-method-to-remove-all-active-potion-effects.patch)0
-rw-r--r--patches/server/0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch (renamed from patches/server/0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch)0
-rw-r--r--patches/server/0831-Add-event-for-player-editing-sign.patch (renamed from patches/server/0832-Add-event-for-player-editing-sign.patch)2
-rw-r--r--patches/server/0832-Only-tick-item-frames-if-players-can-see-it.patch (renamed from patches/server/0833-Only-tick-item-frames-if-players-can-see-it.patch)0
-rw-r--r--patches/server/0833-Fix-cmd-permission-levels-for-command-blocks.patch (renamed from patches/server/0834-Fix-cmd-permission-levels-for-command-blocks.patch)0
-rw-r--r--patches/server/0834-Add-option-to-disable-block-updates.patch (renamed from patches/server/0835-Add-option-to-disable-block-updates.patch)0
-rw-r--r--patches/server/0835-Call-missing-BlockDispenseEvent.patch (renamed from patches/server/0836-Call-missing-BlockDispenseEvent.patch)4
-rw-r--r--patches/server/0836-Don-t-load-chunks-for-supporting-block-checks.patch (renamed from patches/server/0837-Don-t-load-chunks-for-supporting-block-checks.patch)0
-rw-r--r--patches/server/0837-Optimize-player-lookups-for-beacons.patch (renamed from patches/server/0838-Optimize-player-lookups-for-beacons.patch)0
-rw-r--r--patches/server/0838-Add-Sign-getInteractableSideFor.patch (renamed from patches/server/0839-Add-Sign-getInteractableSideFor.patch)0
-rw-r--r--patches/server/0839-fix-item-meta-for-tadpole-buckets.patch (renamed from patches/server/0840-fix-item-meta-for-tadpole-buckets.patch)6
-rw-r--r--patches/server/0840-Fix-BanList-API.patch (renamed from patches/server/0841-Fix-BanList-API.patch)2
-rw-r--r--patches/server/0841-Determine-lava-and-water-fluid-explosion-resistance-.patch (renamed from patches/server/0842-Determine-lava-and-water-fluid-explosion-resistance-.patch)0
-rw-r--r--patches/server/0842-Fix-possible-NPE-on-painting-creation.patch (renamed from patches/server/0843-Fix-possible-NPE-on-painting-creation.patch)0
-rw-r--r--patches/server/0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch (renamed from patches/server/0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch)0
-rw-r--r--patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch (renamed from patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch)4
-rw-r--r--patches/server/0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch (renamed from patches/server/0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch)0
-rw-r--r--patches/server/0846-Add-whitelist-events.patch (renamed from patches/server/0847-Add-whitelist-events.patch)0
-rw-r--r--patches/server/0847-Implement-PlayerFailMoveEvent.patch (renamed from patches/server/0848-Implement-PlayerFailMoveEvent.patch)0
-rw-r--r--patches/server/0848-Folia-scheduler-and-owned-region-API.patch (renamed from patches/server/0849-Folia-scheduler-and-owned-region-API.patch)0
-rw-r--r--patches/server/0849-Only-erase-allay-memory-on-non-item-targets.patch (renamed from patches/server/0850-Only-erase-allay-memory-on-non-item-targets.patch)0
-rw-r--r--patches/server/0850-API-for-updating-recipes-on-clients.patch (renamed from patches/server/0851-API-for-updating-recipes-on-clients.patch)0
-rw-r--r--patches/server/0851-Fix-rotation-when-spawning-display-entities.patch (renamed from patches/server/0852-Fix-rotation-when-spawning-display-entities.patch)0
-rw-r--r--patches/server/0852-Only-capture-actual-tree-growth.patch (renamed from patches/server/0853-Only-capture-actual-tree-growth.patch)4
-rw-r--r--patches/server/0853-Use-correct-source-for-mushroom-block-spread-event.patch (renamed from patches/server/0854-Use-correct-source-for-mushroom-block-spread-event.patch)0
-rw-r--r--patches/server/0854-Respect-randomizeData-on-more-entities-when-spawning.patch (renamed from patches/server/0855-Respect-randomizeData-on-more-entities-when-spawning.patch)0
-rw-r--r--patches/server/0855-Use-correct-seed-on-api-world-load.patch (renamed from patches/server/0856-Use-correct-seed-on-api-world-load.patch)0
-rw-r--r--patches/server/0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch (renamed from patches/server/0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch)0
-rw-r--r--patches/server/0857-Cache-map-ids-on-item-frames.patch (renamed from patches/server/0858-Cache-map-ids-on-item-frames.patch)0
-rw-r--r--patches/server/0858-Fix-custom-statistic-criteria-creation.patch (renamed from patches/server/0859-Fix-custom-statistic-criteria-creation.patch)0
-rw-r--r--patches/server/0859-Bandaid-fix-for-Effect.patch (renamed from patches/server/0860-Bandaid-fix-for-Effect.patch)2
-rw-r--r--patches/server/0860-SculkCatalyst-bloom-API.patch (renamed from patches/server/0861-SculkCatalyst-bloom-API.patch)0
-rw-r--r--patches/server/0861-API-for-an-entity-s-scoreboard-name.patch (renamed from patches/server/0862-API-for-an-entity-s-scoreboard-name.patch)0
-rw-r--r--patches/server/0862-Deprecate-and-replace-methods-with-old-StructureType.patch (renamed from patches/server/0863-Deprecate-and-replace-methods-with-old-StructureType.patch)0
-rw-r--r--patches/server/0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch (renamed from patches/server/0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch)0
-rw-r--r--patches/server/0864-Properly-handle-BlockBreakEvent-isDropItems.patch (renamed from patches/server/0865-Properly-handle-BlockBreakEvent-isDropItems.patch)0
-rw-r--r--patches/server/0865-Fire-entity-death-event-for-ender-dragon.patch (renamed from patches/server/0866-Fire-entity-death-event-for-ender-dragon.patch)0
-rw-r--r--patches/server/0866-Configurable-entity-tracking-range-by-Y-coordinate.patch (renamed from patches/server/0867-Configurable-entity-tracking-range-by-Y-coordinate.patch)0
-rw-r--r--patches/server/0867-Add-Listing-API-for-Player.patch (renamed from patches/server/0868-Add-Listing-API-for-Player.patch)4
-rw-r--r--patches/server/0868-Configurable-Region-Compression-Format.patch (renamed from patches/server/0869-Configurable-Region-Compression-Format.patch)0
-rw-r--r--patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch (renamed from patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch)4
-rw-r--r--patches/server/0870-Fix-NPE-on-Boat-getStatus.patch (renamed from patches/server/0871-Fix-NPE-on-Boat-getStatus.patch)0
-rw-r--r--patches/server/0871-Expand-Pose-API.patch (renamed from patches/server/0872-Expand-Pose-API.patch)0
-rw-r--r--patches/server/0872-More-DragonBattle-API.patch (renamed from patches/server/0873-More-DragonBattle-API.patch)0
-rw-r--r--patches/server/0873-Add-PlayerPickItemEvent.patch (renamed from patches/server/0874-Add-PlayerPickItemEvent.patch)0
-rw-r--r--patches/server/0874-Allow-trident-custom-damage.patch (renamed from patches/server/0875-Allow-trident-custom-damage.patch)0
-rw-r--r--patches/server/0875-Expose-hand-in-BlockCanBuildEvent.patch (renamed from patches/server/0876-Expose-hand-in-BlockCanBuildEvent.patch)0
-rw-r--r--patches/server/0876-Optimize-nearest-structure-border-iteration.patch (renamed from patches/server/0877-Optimize-nearest-structure-border-iteration.patch)0
-rw-r--r--patches/server/0877-Implement-OfflinePlayer-isConnected.patch (renamed from patches/server/0878-Implement-OfflinePlayer-isConnected.patch)2
-rw-r--r--patches/server/0878-Fix-inventory-desync.patch (renamed from patches/server/0879-Fix-inventory-desync.patch)0
-rw-r--r--patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch (renamed from patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch)6
-rw-r--r--patches/server/0880-Configure-sniffer-egg-hatch-time.patch (renamed from patches/server/0881-Configure-sniffer-egg-hatch-time.patch)0
-rw-r--r--patches/server/0881-Do-crystal-portal-proximity-check-before-entity-look.patch (renamed from patches/server/0882-Do-crystal-portal-proximity-check-before-entity-look.patch)0
-rw-r--r--patches/server/0882-Skip-POI-finding-if-stuck-in-vehicle.patch (renamed from patches/server/0883-Skip-POI-finding-if-stuck-in-vehicle.patch)0
-rw-r--r--patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch (renamed from patches/server/0884-Add-slot-sanity-checks-in-container-clicks.patch)0
-rw-r--r--patches/server/0884-Call-BlockRedstoneEvents-for-lecterns.patch (renamed from patches/server/0885-Call-BlockRedstoneEvents-for-lecterns.patch)0
-rw-r--r--patches/server/0885-Allow-proper-checking-of-empty-item-stacks.patch (renamed from patches/server/0886-Allow-proper-checking-of-empty-item-stacks.patch)0
-rw-r--r--patches/server/0886-Fix-silent-equipment-change-for-mobs.patch (renamed from patches/server/0887-Fix-silent-equipment-change-for-mobs.patch)0
-rw-r--r--patches/server/0887-Fix-spigot-s-Forced-Stats.patch (renamed from patches/server/0888-Fix-spigot-s-Forced-Stats.patch)0
-rw-r--r--patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch (renamed from patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch)10
-rw-r--r--patches/server/0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch (renamed from patches/server/0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch)0
-rw-r--r--patches/server/0890-Add-missing-logs-for-log-ips-config-option.patch (renamed from patches/server/0891-Add-missing-logs-for-log-ips-config-option.patch)0
-rw-r--r--patches/server/0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch (renamed from patches/server/0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch)0
-rw-r--r--patches/server/0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch (renamed from patches/server/0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch)0
-rw-r--r--patches/server/0893-Fix-team-sidebar-objectives-not-being-cleared.patch (renamed from patches/server/0894-Fix-team-sidebar-objectives-not-being-cleared.patch)0
-rw-r--r--patches/server/0894-Fix-missing-map-initialize-event-call.patch (renamed from patches/server/0895-Fix-missing-map-initialize-event-call.patch)0
-rw-r--r--patches/server/0895-Update-entity-data-when-attaching-firework-to-entity.patch (renamed from patches/server/0896-Update-entity-data-when-attaching-firework-to-entity.patch)0
-rw-r--r--patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch (renamed from patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch)2
-rw-r--r--patches/server/0897-Add-player-idle-duration-API.patch (renamed from patches/server/0898-Add-player-idle-duration-API.patch)2
-rw-r--r--patches/server/0898-Don-t-check-if-we-can-see-non-visible-entities.patch (renamed from patches/server/0899-Don-t-check-if-we-can-see-non-visible-entities.patch)0
-rw-r--r--patches/server/0899-Fix-NPE-in-SculkBloomEvent-world-access.patch (renamed from patches/server/0900-Fix-NPE-in-SculkBloomEvent-world-access.patch)0
-rw-r--r--patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch (renamed from patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch)2
-rw-r--r--patches/server/0901-Optimize-VarInts.patch (renamed from patches/server/0902-Optimize-VarInts.patch)0
-rw-r--r--patches/server/0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch (renamed from patches/server/0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch)0
-rw-r--r--patches/server/0903-Add-predicate-for-blocks-when-raytracing.patch (renamed from patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch)0
-rw-r--r--patches/server/0904-Broadcast-take-item-packets-with-collector-as-source.patch (renamed from patches/server/0905-Broadcast-take-item-packets-with-collector-as-source.patch)0
-rw-r--r--patches/server/0905-Expand-LingeringPotion-API.patch (renamed from patches/server/0906-Expand-LingeringPotion-API.patch)0
-rw-r--r--patches/server/0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch (renamed from patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch)0
-rw-r--r--patches/server/0907-Add-hand-to-fish-event-for-all-player-interactions.patch (renamed from patches/server/0908-Add-hand-to-fish-event-for-all-player-interactions.patch)0
-rw-r--r--patches/server/0908-Fix-several-issues-with-EntityBreedEvent.patch (renamed from patches/server/0909-Fix-several-issues-with-EntityBreedEvent.patch)0
-rw-r--r--patches/server/0909-Add-UUID-attribute-modifier-API.patch (renamed from patches/server/0910-Add-UUID-attribute-modifier-API.patch)0
-rw-r--r--patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch (renamed from patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch)2
-rw-r--r--patches/server/0911-Lazily-create-LootContext-for-criterions.patch (renamed from patches/server/0912-Lazily-create-LootContext-for-criterions.patch)0
-rw-r--r--patches/server/0912-Don-t-fire-sync-events-during-worldgen.patch (renamed from patches/server/0913-Don-t-fire-sync-events-during-worldgen.patch)0
-rw-r--r--patches/server/0913-Add-Structure-check-API.patch (renamed from patches/server/0914-Add-Structure-check-API.patch)0
-rw-r--r--patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch (renamed from patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch)4
-rw-r--r--patches/server/0915-Restore-vanilla-entity-drops-behavior.patch (renamed from patches/server/0916-Restore-vanilla-entity-drops-behavior.patch)8
-rw-r--r--patches/server/0916-Dont-resend-blocks-on-interactions.patch (renamed from patches/server/0917-Dont-resend-blocks-on-interactions.patch)2
-rw-r--r--patches/server/0917-add-more-scoreboard-API.patch (renamed from patches/server/0918-add-more-scoreboard-API.patch)0
-rw-r--r--patches/server/0918-Improve-Registry.patch (renamed from patches/server/0919-Improve-Registry.patch)8
-rw-r--r--patches/server/0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch (renamed from patches/server/0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch)0
-rw-r--r--patches/server/0920-Add-experience-points-API.patch (renamed from patches/server/0921-Add-experience-points-API.patch)2
-rw-r--r--patches/server/0921-Add-drops-to-shear-events.patch (renamed from patches/server/0922-Add-drops-to-shear-events.patch)4
-rw-r--r--patches/server/0922-Add-PlayerShieldDisableEvent.patch (renamed from patches/server/0923-Add-PlayerShieldDisableEvent.patch)0
-rw-r--r--patches/server/0923-Validate-ResourceLocation-in-NBT-reading.patch (renamed from patches/server/0924-Validate-ResourceLocation-in-NBT-reading.patch)0
-rw-r--r--patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch (renamed from patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch)4
-rw-r--r--patches/server/0925-Fixup-NamespacedKey-handling.patch (renamed from patches/server/0926-Fixup-NamespacedKey-handling.patch)27
-rw-r--r--patches/server/0926-Expose-LootTable-of-DecoratedPot.patch (renamed from patches/server/0927-Expose-LootTable-of-DecoratedPot.patch)0
-rw-r--r--patches/server/0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch (renamed from patches/server/0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch)0
-rw-r--r--patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch (renamed from patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch)2
-rw-r--r--patches/server/0929-Add-ShulkerDuplicateEvent.patch (renamed from patches/server/0930-Add-ShulkerDuplicateEvent.patch)0
-rw-r--r--patches/server/0930-Add-api-for-spawn-egg-texture-colors.patch (renamed from patches/server/0931-Add-api-for-spawn-egg-texture-colors.patch)0
-rw-r--r--patches/server/0931-Add-Lifecycle-Event-system.patch (renamed from patches/server/0932-Add-Lifecycle-Event-system.patch)0
-rw-r--r--patches/server/0932-ItemStack-Tooltip-API.patch (renamed from patches/server/0933-ItemStack-Tooltip-API.patch)0
-rw-r--r--patches/server/0933-Add-getChunkSnapshot-includeLightData-parameter.patch (renamed from patches/server/0934-Add-getChunkSnapshot-includeLightData-parameter.patch)0
-rw-r--r--patches/server/0934-Add-FluidState-API.patch (renamed from patches/server/0935-Add-FluidState-API.patch)0
-rw-r--r--patches/server/0935-add-number-format-api.patch (renamed from patches/server/0936-add-number-format-api.patch)0
-rw-r--r--patches/server/0936-improve-BanList-types.patch (renamed from patches/server/0937-improve-BanList-types.patch)0
-rw-r--r--patches/server/0937-Expanded-Hopper-API.patch (renamed from patches/server/0938-Expanded-Hopper-API.patch)0
-rw-r--r--patches/server/0938-Add-BlockBreakProgressUpdateEvent.patch (renamed from patches/server/0939-Add-BlockBreakProgressUpdateEvent.patch)0
-rw-r--r--patches/server/0939-Deprecate-ItemStack-setType.patch (renamed from patches/server/0940-Deprecate-ItemStack-setType.patch)0
-rw-r--r--patches/server/0940-Add-CartographyItemEvent.patch (renamed from patches/server/0941-Add-CartographyItemEvent.patch)0
-rw-r--r--patches/server/0941-More-Raid-API.patch (renamed from patches/server/0942-More-Raid-API.patch)0
-rw-r--r--patches/server/0942-Add-onboarding-message-for-initial-server-start.patch (renamed from patches/server/0943-Add-onboarding-message-for-initial-server-start.patch)0
-rw-r--r--patches/server/0943-Configurable-max-block-fluid-ticks.patch (renamed from patches/server/0944-Configurable-max-block-fluid-ticks.patch)0
-rw-r--r--patches/server/0944-Fix-bees-aging-inside-hives.patch (renamed from patches/server/0945-Fix-bees-aging-inside-hives.patch)0
-rw-r--r--patches/server/0945-Disable-memory-reserve-allocating.patch (renamed from patches/server/0946-Disable-memory-reserve-allocating.patch)0
-rw-r--r--patches/server/0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch (renamed from patches/server/0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch)0
-rw-r--r--patches/server/0947-Fix-DamageSource-API.patch (renamed from patches/server/0948-Fix-DamageSource-API.patch)4
-rw-r--r--patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch (renamed from patches/server/0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch)0
-rw-r--r--patches/server/0949-Fix-possible-StackOverflowError-for-some-dispenses.patch (renamed from patches/server/0950-Fix-possible-StackOverflowError-for-some-dispenses.patch)0
-rw-r--r--patches/server/0950-Improve-tag-parser-handling.patch (renamed from patches/server/0951-Improve-tag-parser-handling.patch)0
-rw-r--r--patches/server/0951-Item-Mutation-Fixes.patch (renamed from patches/server/0952-Item-Mutation-Fixes.patch)6
-rw-r--r--patches/server/0952-Per-world-ticks-per-spawn-settings.patch (renamed from patches/server/0953-Per-world-ticks-per-spawn-settings.patch)2
-rw-r--r--patches/server/0953-Properly-track-the-changed-item-from-dispense-events.patch (renamed from patches/server/0954-Properly-track-the-changed-item-from-dispense-events.patch)0
-rw-r--r--patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (renamed from patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch)10
-rw-r--r--patches/server/0955-Fix-tripwire-disarming-not-working-as-intended.patch (renamed from patches/server/0956-Fix-tripwire-disarming-not-working-as-intended.patch)0
-rw-r--r--patches/server/0956-Add-config-for-mobs-immune-to-default-effects.patch (renamed from patches/server/0957-Add-config-for-mobs-immune-to-default-effects.patch)0
-rw-r--r--patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch (renamed from patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch)4
-rw-r--r--patches/server/0958-Support-old-UUID-format-for-NBT.patch (renamed from patches/server/0959-Support-old-UUID-format-for-NBT.patch)2
-rw-r--r--patches/server/0959-Fix-shield-disable-inconsistency.patch (renamed from patches/server/0960-Fix-shield-disable-inconsistency.patch)0
-rw-r--r--patches/server/0960-Handle-Large-Packets-disconnecting-client.patch (renamed from patches/server/0961-Handle-Large-Packets-disconnecting-client.patch)0
-rw-r--r--patches/server/0961-Fix-ItemFlags.patch (renamed from patches/server/0962-Fix-ItemFlags.patch)20
-rw-r--r--patches/server/0962-Fix-Player-setBlockUpdate.patch (renamed from patches/server/0963-Fix-Player-setBlockUpdate.patch)2
-rw-r--r--patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch (renamed from patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch)4
-rw-r--r--patches/server/0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch (renamed from patches/server/0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch)0
-rw-r--r--patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch (renamed from patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch)42
-rw-r--r--patches/server/0966-General-ItemMeta-fixes.patch (renamed from patches/server/0967-General-ItemMeta-fixes.patch)411
-rw-r--r--patches/server/0967-Expose-hasColor-to-leather-armor.patch (renamed from patches/server/0968-Expose-hasColor-to-leather-armor.patch)0
-rw-r--r--patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch (renamed from patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch)2
-rw-r--r--patches/server/0969-More-Chest-Block-API.patch (renamed from patches/server/0970-More-Chest-Block-API.patch)0
-rw-r--r--patches/server/0970-Print-data-component-type-on-encoding-error.patch (renamed from patches/server/0971-Print-data-component-type-on-encoding-error.patch)0
-rw-r--r--patches/server/0971-Brigadier-based-command-API.patch (renamed from patches/server/0972-Brigadier-based-command-API.patch)0
-rw-r--r--patches/server/0972-Fix-issues-with-Recipe-API.patch (renamed from patches/server/0973-Fix-issues-with-Recipe-API.patch)0
-rw-r--r--patches/server/0973-Fix-equipment-slot-and-group-API.patch (renamed from patches/server/0974-Fix-equipment-slot-and-group-API.patch)6
-rw-r--r--patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch (renamed from patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch)4
-rw-r--r--patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch (renamed from patches/server/0976-Prevent-sending-oversized-item-data-in-equipment-and.patch)0
-rw-r--r--patches/server/0976-Prevent-NPE-if-hooked-entity-was-cleared.patch (renamed from patches/server/0977-Prevent-NPE-if-hooked-entity-was-cleared.patch)0
-rw-r--r--patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch (renamed from patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch)4
-rw-r--r--patches/server/0978-Add-missing-fishing-event-state.patch (renamed from patches/server/0979-Add-missing-fishing-event-state.patch)0
-rw-r--r--patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch (renamed from patches/server/0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch)0
-rw-r--r--patches/server/0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch (renamed from patches/server/0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch)0
-rw-r--r--patches/server/0981-Adopt-MaterialRerouting.patch (renamed from patches/server/0982-Adopt-MaterialRerouting.patch)0
-rw-r--r--patches/server/0982-Suspicious-Effect-Entry-API.patch (renamed from patches/server/0983-Suspicious-Effect-Entry-API.patch)0
-rw-r--r--patches/server/0983-check-if-itemstack-is-stackable-first.patch (renamed from patches/server/0984-check-if-itemstack-is-stackable-first.patch)0
-rw-r--r--patches/server/0984-Fix-removing-recipes-from-RecipeIterator.patch (renamed from patches/server/0985-Fix-removing-recipes-from-RecipeIterator.patch)0
-rw-r--r--patches/server/0985-Configurable-damage-tick-when-blocking-with-shield.patch (renamed from patches/server/0986-Configurable-damage-tick-when-blocking-with-shield.patch)0
-rw-r--r--patches/server/0986-Properly-remove-the-experimental-smithing-inventory-.patch (renamed from patches/server/0987-Properly-remove-the-experimental-smithing-inventory-.patch)0
-rw-r--r--patches/server/0987-Moonrise-optimisation-patches.patch (renamed from patches/server/0988-Moonrise-optimisation-patches.patch)8
-rw-r--r--patches/server/0988-Rewrite-dataconverter-system.patch (renamed from patches/server/0989-Rewrite-dataconverter-system.patch)0
-rw-r--r--patches/server/0989-disable-forced-empty-world-ticks.patch (renamed from patches/server/0990-disable-forced-empty-world-ticks.patch)0
-rw-r--r--patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch (renamed from patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch)2
-rw-r--r--patches/server/0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch (renamed from patches/server/0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch)0
-rw-r--r--patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch (renamed from patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch)2
-rw-r--r--patches/server/0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch (renamed from patches/server/0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch)0
-rw-r--r--patches/server/0994-Allow-Saving-of-Oversized-Chunks.patch (renamed from patches/server/0995-Allow-Saving-of-Oversized-Chunks.patch)0
-rw-r--r--patches/server/0995-Flat-bedrock-generator-settings.patch (renamed from patches/server/0996-Flat-bedrock-generator-settings.patch)0
-rw-r--r--patches/server/0996-Entity-Activation-Range-2.0.patch (renamed from patches/server/0997-Entity-Activation-Range-2.0.patch)0
-rw-r--r--patches/server/0997-Optional-per-player-mob-spawns.patch (renamed from patches/server/0998-Optional-per-player-mob-spawns.patch)0
-rw-r--r--patches/server/0998-Anti-Xray.patch (renamed from patches/server/0999-Anti-Xray.patch)0
-rw-r--r--patches/server/0999-Eigencraft-redstone-implementation.patch (renamed from patches/server/1000-Eigencraft-redstone-implementation.patch)0
-rw-r--r--patches/server/1000-Add-Alternate-Current-redstone-implementation.patch (renamed from patches/server/1001-Add-Alternate-Current-redstone-implementation.patch)0
-rw-r--r--patches/server/1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch (renamed from patches/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch)0
-rw-r--r--patches/server/1002-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/1003-Use-Velocity-compression-and-cipher-natives.patch)0
-rw-r--r--patches/server/1003-Optimize-Collision-to-not-load-chunks.patch (renamed from patches/server/1004-Optimize-Collision-to-not-load-chunks.patch)0
-rw-r--r--patches/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch (renamed from patches/server/1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch)0
-rw-r--r--patches/server/1005-Optimize-Hoppers.patch (renamed from patches/server/1006-Optimize-Hoppers.patch)44
-rw-r--r--patches/server/1006-Entity-load-save-limit-per-chunk.patch (renamed from patches/server/1007-Entity-load-save-limit-per-chunk.patch)0
-rw-r--r--patches/server/1007-Optimize-Voxel-Shape-Merging.patch (renamed from patches/server/1008-Optimize-Voxel-Shape-Merging.patch)0
-rw-r--r--patches/server/1008-Optimize-Bit-Operations-by-inlining.patch (renamed from patches/server/1009-Optimize-Bit-Operations-by-inlining.patch)0
-rw-r--r--patches/server/1009-Remove-streams-from-hot-code.patch (renamed from patches/server/1010-Remove-streams-from-hot-code.patch)0
-rw-r--r--patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (renamed from patches/server/1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch)0
-rw-r--r--patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch)0
-rw-r--r--patches/server/1012-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/1013-Fix-entity-type-tags-suggestions-in-selectors.patch)0
-rw-r--r--patches/server/1013-Handle-Oversized-block-entities-in-chunks.patch (renamed from patches/server/1014-Handle-Oversized-block-entities-in-chunks.patch)0
-rw-r--r--patches/server/1014-API-for-checking-sent-chunks.patch (renamed from patches/server/1015-API-for-checking-sent-chunks.patch)0
-rw-r--r--patches/server/1015-Check-distance-in-entity-interactions.patch (renamed from patches/server/1016-Check-distance-in-entity-interactions.patch)0
-rw-r--r--patches/server/1016-Configurable-Sand-Duping.patch (renamed from patches/server/1017-Configurable-Sand-Duping.patch)0
-rw-r--r--patches/server/1017-Optimise-general-POI-access.patch (renamed from patches/server/1018-Optimise-general-POI-access.patch)0
-rw-r--r--patches/server/1018-Improve-performance-of-mass-crafts.patch (renamed from patches/server/1019-Improve-performance-of-mass-crafts.patch)0
-rw-r--r--patches/server/1019-Properly-resend-entities.patch (renamed from patches/server/1020-Properly-resend-entities.patch)0
-rw-r--r--patches/server/1020-Registry-Modification-API.patch (renamed from patches/server/1021-Registry-Modification-API.patch)12
-rw-r--r--patches/server/1021-Add-registry-entry-and-builders.patch (renamed from patches/server/1022-Add-registry-entry-and-builders.patch)8
-rw-r--r--patches/server/1022-Improved-Watchdog-Support.patch (renamed from patches/server/1023-Improved-Watchdog-Support.patch)0
-rw-r--r--patches/server/1023-Proxy-ItemStack-to-CraftItemStack.patch (renamed from patches/server/1024-Proxy-ItemStack-to-CraftItemStack.patch)0
-rw-r--r--patches/server/1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch (renamed from patches/server/1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch)0
-rw-r--r--patches/server/1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch (renamed from patches/server/1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch)0
-rw-r--r--patches/server/1026-optimize-dirt-and-snow-spreading.patch (renamed from patches/server/1027-optimize-dirt-and-snow-spreading.patch)0
-rw-r--r--patches/server/1027-Fix-NPE-for-Jukebox-setRecord.patch (renamed from patches/server/1028-Fix-NPE-for-Jukebox-setRecord.patch)0
-rw-r--r--patches/server/1028-Fix-CraftWorld-isChunkGenerated.patch (renamed from patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch)0
-rw-r--r--patches/server/1029-fix-horse-inventories.patch (renamed from patches/server/1030-fix-horse-inventories.patch)0
-rw-r--r--patches/server/1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch (renamed from patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch)0
-rw-r--r--patches/server/1031-Fix-entity-tracker-desync-when-new-players-are-added.patch (renamed from patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch)0
-rw-r--r--patches/server/1032-Lag-compensation-ticks.patch (renamed from patches/server/1033-Lag-compensation-ticks.patch)0
-rw-r--r--patches/server/1033-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/1034-Detail-more-information-in-watchdog-dumps.patch)0
-rw-r--r--patches/server/1034-Write-SavedData-IO-async.patch (renamed from patches/server/1035-Write-SavedData-IO-async.patch)0
-rw-r--r--patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch (renamed from patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch)2
-rw-r--r--patches/server/1036-Add-ItemType-getItemRarity.patch (renamed from patches/server/1037-Add-ItemType-getItemRarity.patch)0
-rw-r--r--patches/server/1037-Incremental-chunk-and-player-saving.patch (renamed from patches/server/1038-Incremental-chunk-and-player-saving.patch)0
-rw-r--r--patches/server/1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)0
-rw-r--r--patches/server/1039-Bundle-spark.patch (renamed from patches/server/1042-Bundle-spark.patch)0
-rw-r--r--patches/server/1040-Add-plugin-info-at-startup.patch (renamed from patches/server/1043-Add-plugin-info-at-startup.patch)0
-rw-r--r--patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch50
-rw-r--r--patches/server/1041-Add-CrafterCraftEvent.patch31
-rw-r--r--patches/server/1041-Make-interaction-leniency-distance-configurable.patch (renamed from patches/server/1044-Make-interaction-leniency-distance-configurable.patch)0
-rw-r--r--patches/server/1042-Fix-PickupStatus-getting-reset.patch (renamed from patches/server/1045-Fix-PickupStatus-getting-reset.patch)0
-rw-r--r--patches/server/1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch (renamed from patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch)0
m---------work/Bukkit0
m---------work/CraftBukkit0
m---------work/Spigot0
705 files changed, 1005 insertions, 866 deletions
diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch
index dbb8f58c58..e7fba0f826 100644
--- a/patches/api/0006-Adventure.patch
+++ b/patches/api/0006-Adventure.patch
@@ -4327,10 +4327,10 @@ index 5adbe0514129abf3cfbc4b29a213f522359fe2e1..72ebc29db42d08d1d0361dba462fc8a5
/**
diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java
-index 5b479ff2abe8cdd5e889803c73a713bc9855bc0b..5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9 100644
+index 278259e211b926283ee6dfef6f96e11ddbcbf275..ebc14022c9ef9b0b3331ee53e96a32667e4762e0 100644
--- a/src/main/java/org/bukkit/inventory/InventoryView.java
+++ b/src/main/java/org/bukkit/inventory/InventoryView.java
-@@ -267,12 +267,26 @@ public interface InventoryView {
+@@ -269,12 +269,26 @@ public interface InventoryView {
*/
public boolean setProperty(@NotNull Property prop, int value);
diff --git a/patches/api/0053-Fix-upstream-javadocs.patch b/patches/api/0053-Fix-upstream-javadocs.patch
index 25d3e035cf..7d51adc5a1 100644
--- a/patches/api/0053-Fix-upstream-javadocs.patch
+++ b/patches/api/0053-Fix-upstream-javadocs.patch
@@ -416,7 +416,7 @@ index 4e1fb0974d061d5bb64899cac576318d2e6f8bf6..539b3527d0c66611e21712f29b90fba9
public int getEntityId();
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 274f3ccbc39d4d6ff0665abf334d526317275dd0..a7bfaa874cbd3fc8d24fffe2f7f14594b37fa18c 100644
+index 8fdfa1d79daf464f8e364fd9e19d1de3a2a6848c..195a7fa0ea8e056cbde7b9152cc014d2c94353ff 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -22,6 +22,11 @@ import org.jetbrains.annotations.Nullable;
@@ -687,7 +687,7 @@ index be0a2d1f234d8265d98e54e518a994957b1f3ab7..4e3c406ba883aae553e8d69b6b719b87
* than BLOCK_CANBUILD, as this refers to a player, not universe-physics
* rule like cactus on dirt.
diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
-index fc2120e03737f5882d6ae916db93fdcf4939b2ba..f2edd4a9357832e9dec3fb0aafa006335d7b289b 100644
+index 035c647f4d4e3c34f171bb7d7fa6b2b7b3442669..7ae338bcecff2ce25939035181457ced505b3a49 100644
--- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
@@ -81,7 +81,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
@@ -999,7 +999,7 @@ index 9013d043503d175004ad276799e5935b7fa59dc4..ceae092eb782698803c6c3df41267dde
public class InventoryOpenEvent extends InventoryEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
diff --git a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
-index 6782024735a885ba0b1b4dba4a576740c1410366..8977f7609431c3c46324a82de84d4a32f4b71c57 100644
+index 08a7c564fe5d3d232998d1789d4d4723a59c1430..8a5be3f0322ac19aeac3f00df54add0e73bc87ed 100644
--- a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
+++ b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
@@ -24,6 +24,20 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent {
@@ -1022,7 +1022,7 @@ index 6782024735a885ba0b1b4dba4a576740c1410366..8977f7609431c3c46324a82de84d4a32
+
@NotNull
@Override
- public HandlerList getHandlers() {
+ public AnvilView getView() {
diff --git a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java b/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
index e4c32b21ab013703a6a1b07a1ad564d914ebe83f..e58fecf0fe54db06e0e944027923a352fd8005d8 100644
--- a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
@@ -1430,7 +1430,7 @@ index f1918027c3a8735b31566856218611656b56db20..476fe14faa39f02444cab8ad95d44010
* @return the currently held item
* @see #getItemInMainHand()
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc7829109921a05 100644
+index 16c10d75dd28f6bbe843935e8bc91f2bccbd360a..c414ccf03572d48f5c096516fc60a59bb1e8efd7 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
@@ -24,8 +24,6 @@ public class ShapedRecipe extends CraftingRecipe {
@@ -1442,8 +1442,8 @@ index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc78291
* @see ShapedRecipe#setIngredient(char, RecipeChoice)
* @deprecated Recipes must have keys. Use {@link #ShapedRecipe(NamespacedKey, ItemStack)}
* instead.
-@@ -44,8 +42,6 @@ public class ShapedRecipe extends CraftingRecipe {
- * @param result The item you want the recipe to create.
+@@ -45,8 +43,6 @@ public class ShapedRecipe extends CraftingRecipe {
+ * @exception IllegalArgumentException if the {@code result} is an empty item (AIR)
* @see ShapedRecipe#shape(String...)
* @see ShapedRecipe#setIngredient(char, Material)
- * @see ShapedRecipe#setIngredient(char, Material, int)
@@ -1452,12 +1452,12 @@ index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc78291
*/
public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) {
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-index 3d50775da447175b2a94ed9056ef36aa1e69c2eb..03839302c94adc3175d0a88065cd230257ffd20d 100644
+index bc924ae23fa10d87537aebbfd126aa44f199b65c..b7f46a048633945dc71e8efec9a7ebeed5832fd7 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-@@ -30,11 +30,8 @@ public class ShapelessRecipe extends CraftingRecipe {
- * @param key the unique recipe key
+@@ -31,11 +31,8 @@ public class ShapelessRecipe extends CraftingRecipe {
* @param result The item you want the recipe to create.
+ * @exception IllegalArgumentException if the {@code result} is an empty item (AIR)
* @see ShapelessRecipe#addIngredient(Material)
- * @see ShapelessRecipe#addIngredient(MaterialData)
- * @see ShapelessRecipe#addIngredient(Material,int)
@@ -1467,8 +1467,8 @@ index 3d50775da447175b2a94ed9056ef36aa1e69c2eb..03839302c94adc3175d0a88065cd2302
+ * @see ShapelessRecipe#addIngredient(RecipeChoice)
*/
public ShapelessRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) {
- super(key, result);
-@@ -174,7 +171,7 @@ public class ShapelessRecipe extends CraftingRecipe {
+ super(key, checkResult(result));
+@@ -175,7 +172,7 @@ public class ShapelessRecipe extends CraftingRecipe {
/**
* Removes multiple instances of an ingredient from the list. If there are
diff --git a/patches/api/0059-Shoulder-Entities-Release-API.patch b/patches/api/0059-Shoulder-Entities-Release-API.patch
index b7f5537f79..6ac15e28ab 100644
--- a/patches/api/0059-Shoulder-Entities-Release-API.patch
+++ b/patches/api/0059-Shoulder-Entities-Release-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index a7bfaa874cbd3fc8d24fffe2f7f14594b37fa18c..8cc6f8547380d567aef7910ef309193bd79ced09 100644
+index 195a7fa0ea8e056cbde7b9152cc014d2c94353ff..85eec2e57b03c11f4737addb0fa88b7bf29dc9e5 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -335,6 +335,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -337,6 +337,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public int getExpToLevel();
diff --git a/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch b/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch
index 94f1cdd1f2..c751b7334b 100644
--- a/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch
+++ b/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch
@@ -10,25 +10,25 @@ on the players login.
Plugin authors need to define a key to keep it consistent between server restarts.
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-index 9f9c67e935940833bbfe58e6bfa398e6c86980d5..71e494177473c62449aafda1699b26a0c4c81a68 100644
+index c414ccf03572d48f5c096516fc60a59bb1e8efd7..e9bac744c5b173e6767e2de8480a6697969fdbb0 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
@@ -31,6 +31,7 @@ public class ShapedRecipe extends CraftingRecipe {
@Deprecated
public ShapedRecipe(@NotNull ItemStack result) {
- super(NamespacedKey.randomKey(), result);
+ this(NamespacedKey.randomKey(), result);
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper
}
/**
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-index 03839302c94adc3175d0a88065cd230257ffd20d..d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97 100644
+index b7f46a048633945dc71e8efec9a7ebeed5832fd7..a7513c1aa09b88e3f99e7db40661fd83e682de96 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
@@ -20,6 +20,7 @@ public class ShapelessRecipe extends CraftingRecipe {
@Deprecated
public ShapelessRecipe(@NotNull ItemStack result) {
- super(NamespacedKey.randomKey(), result);
+ this(NamespacedKey.randomKey(), result);
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper
}
diff --git a/patches/api/0092-Add-openSign-method-to-HumanEntity.patch b/patches/api/0092-Add-openSign-method-to-HumanEntity.patch
index d519918aba..3fdf10fbfc 100644
--- a/patches/api/0092-Add-openSign-method-to-HumanEntity.patch
+++ b/patches/api/0092-Add-openSign-method-to-HumanEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add openSign method to HumanEntity
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 8cc6f8547380d567aef7910ef309193bd79ced09..48bb08cc7c0af6ebb905d1e175ada0fd7944ca48 100644
+index 85eec2e57b03c11f4737addb0fa88b7bf29dc9e5..58dbe34ab1b603c2cd53af1625c1f82f8890da01 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -496,6 +496,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -498,6 +498,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
@Deprecated
public void setShoulderEntityRight(@Nullable Entity entity);
diff --git a/patches/api/0114-LivingEntity-Active-Item-API.patch b/patches/api/0114-LivingEntity-Active-Item-API.patch
index f98f5d9a7e..0081842496 100644
--- a/patches/api/0114-LivingEntity-Active-Item-API.patch
+++ b/patches/api/0114-LivingEntity-Active-Item-API.patch
@@ -9,10 +9,10 @@ such as a bow or eating food.
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 48bb08cc7c0af6ebb905d1e175ada0fd7944ca48..ee3086661e11d3d8faec30590be7131648d3b82a 100644
+index 58dbe34ab1b603c2cd53af1625c1f82f8890da01..9cbb9093e7d8cd21eef6a23c265d68d7d0ee97b8 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -325,7 +325,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -327,7 +327,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
* blocking).
*
* @return Whether their hand is raised
diff --git a/patches/api/0117-InventoryCloseEvent-Reason-API.patch b/patches/api/0117-InventoryCloseEvent-Reason-API.patch
index ed0568548a..1be4583340 100644
--- a/patches/api/0117-InventoryCloseEvent-Reason-API.patch
+++ b/patches/api/0117-InventoryCloseEvent-Reason-API.patch
@@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers
to "confirm" things based on if it was player triggered close or not.
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index ee3086661e11d3d8faec30590be7131648d3b82a..25cd03f2f3dc0aaa67173c0f3ebfe56402489e24 100644
+index 9cbb9093e7d8cd21eef6a23c265d68d7d0ee97b8..3985798654a3085c128144e46f7113b7744b8d14 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -185,6 +185,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -187,6 +187,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public void closeInventory();
diff --git a/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch
index 14e94043d2..78e75fc75c 100644
--- a/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch
+++ b/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch
@@ -22,10 +22,10 @@ index a98fc2ffdae1a2f8f3a312bed95268e105f7f791..91bfeffcdbe47208c7d0ddbe013cd0f1
public static class ExactChoice implements RecipeChoice {
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-index 1ef513d4d03ce677ee9c77b91e2cc5553ab91e0b..1012656948e9bf2aa18867cc2409616f3f21501e 100644
+index e9bac744c5b173e6767e2de8480a6697969fdbb0..fa03cf187db29896f5af046b311f67881aee0ff4 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-@@ -179,6 +179,13 @@ public class ShapedRecipe extends CraftingRecipe {
+@@ -180,6 +180,13 @@ public class ShapedRecipe extends CraftingRecipe {
return this;
}
@@ -40,10 +40,10 @@ index 1ef513d4d03ce677ee9c77b91e2cc5553ab91e0b..1012656948e9bf2aa18867cc2409616f
* Get a copy of the ingredients map.
*
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1a46c26ec 100644
+index a7513c1aa09b88e3f99e7db40661fd83e682de96..63a233cc819d8d6995d14b9dbfabc14d89af54cc 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-@@ -131,6 +131,40 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -132,6 +132,40 @@ public class ShapelessRecipe extends CraftingRecipe {
return this;
}
@@ -84,7 +84,7 @@ index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1
/**
* Removes an ingredient from the list.
*
-@@ -154,7 +188,7 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -155,7 +189,7 @@ public class ShapelessRecipe extends CraftingRecipe {
*/
@NotNull
public ShapelessRecipe removeIngredient(@NotNull Material ingredient) {
@@ -93,7 +93,7 @@ index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1
}
/**
-@@ -181,7 +215,7 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -182,7 +216,7 @@ public class ShapelessRecipe extends CraftingRecipe {
*/
@NotNull
public ShapelessRecipe removeIngredient(int count, @NotNull Material ingredient) {
diff --git a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
index da580bdf21..e7952ac8d4 100644
--- a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
@@ -453,7 +453,7 @@ index 48aecc9421c500137bbef1dfe3bec8de277c3ff9..aff858346776386f1288b648b221404f
return note;
}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
-index 3bd96bbd35b657a6030d744e86622e616c2c3b08..5529e227781cd2411de9c6581a1cb1255ce9bb20 100644
+index d1906d150a7d4c4852e085d6fd480aec317c22e4..e9edc8c17cbd29cfdad31df13acb15bab2304735 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -220,14 +220,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -1067,16 +1067,28 @@ index 53119742beda00a38111063243665bb995ae2188..2d084214e991fecc51f8e18e3d733e43
public class CampfireStartEvent extends InventoryBlockStartEvent {
private static final HandlerList handlers = new HandlerList();
+diff --git a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
+index f4efb2190ae4b1fa1823d5c97ad518c6d34f0a1a..3d6c0ecc70a748b8508b55513f9d5fa6b4bd6353 100644
+--- a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
++++ b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
+@@ -17,6 +17,7 @@ public class CrafterCraftEvent extends BlockEvent implements Cancellable {
+ private ItemStack result;
+ private boolean cancelled;
+
++ @org.jetbrains.annotations.ApiStatus.Internal // Paper - fix upstream annotation mistakes
+ public CrafterCraftEvent(@NotNull Block theBlock, @NotNull CraftingRecipe recipe, @NotNull ItemStack result) {
+ super(theBlock);
+ this.result = result;
diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
-index f2edd4a9357832e9dec3fb0aafa006335d7b289b..f05ce4fd6c4bbd79edc5f65e7edd1e4a63e93fb8 100644
+index 7ae338bcecff2ce25939035181457ced505b3a49..27564727edbd9f093e3a021ce6f30e1146a8ddbb 100644
--- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
@@ -23,7 +23,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
private boolean cancelled;
private final Player enchanter;
-- public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull InventoryView view, @NotNull final Block table, @NotNull final ItemStack item, @NotNull final EnchantmentOffer[] offers, final int bonus) {
-+ public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull InventoryView view, @NotNull final Block table, @NotNull final ItemStack item, @org.jetbrains.annotations.Nullable final EnchantmentOffer @NotNull [] offers, final int bonus) { // Paper - offers can contain null values
+- public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @NotNull final EnchantmentOffer[] offers, final int bonus) {
++ public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @org.jetbrains.annotations.Nullable final EnchantmentOffer @NotNull [] offers, final int bonus) { // Paper - offers can contain null values
super(view);
this.enchanter = enchanter;
this.table = table;
@@ -1497,10 +1509,10 @@ index f1a48eab1a357ae64545e1f1dc941c383cff8707..466d1bd7089b76f48f953e1a51c611ec
/**
* Checks if the inventory contains any ItemStacks with the given
diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java
-index 5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9..72f93377b60a3b6a08b8c8264ee7313e89c15da0 100644
+index ebc14022c9ef9b0b3331ee53e96a32667e4762e0..2b2c5faabce1628bd2e82a840dc97fe79bb57856 100644
--- a/src/main/java/org/bukkit/inventory/InventoryView.java
+++ b/src/main/java/org/bukkit/inventory/InventoryView.java
-@@ -121,9 +121,9 @@ public interface InventoryView {
+@@ -123,9 +123,9 @@ public interface InventoryView {
* Gets the id of this view.
*
* @return the id of this view
@@ -1512,7 +1524,7 @@ index 5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9..72f93377b60a3b6a08b8c8264ee7313e
public int getId() {
return id;
}
-@@ -193,10 +193,10 @@ public interface InventoryView {
+@@ -195,10 +195,10 @@ public interface InventoryView {
/**
* Get the item on the cursor of one of the viewing players.
*
@@ -1627,10 +1639,10 @@ index 476fe14faa39f02444cab8ad95d4401033dc6938..2c54660dc1fbc7c1232096797a23cae1
/**
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb379b58f207 100644
+index fa03cf187db29896f5af046b311f67881aee0ff4..295d82dd73b600e9436d2bbec0e11dbeaf78bbf4 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-@@ -106,8 +106,10 @@ public class ShapedRecipe extends CraftingRecipe {
+@@ -107,8 +107,10 @@ public class ShapedRecipe extends CraftingRecipe {
* @return The changed recipe, so you can chain calls.
* @throws IllegalArgumentException if the {@code key} is a space character
* @throws IllegalArgumentException if the {@code key} does not appear in the shape.
@@ -1641,7 +1653,7 @@ index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb37
public ShapedRecipe setIngredient(char key, @NotNull MaterialData ingredient) {
return setIngredient(key, ingredient.getItemType(), ingredient.getData());
}
-@@ -190,7 +192,9 @@ public class ShapedRecipe extends CraftingRecipe {
+@@ -191,7 +193,9 @@ public class ShapedRecipe extends CraftingRecipe {
* Get a copy of the ingredients map.
*
* @return The mapping of character to ingredients.
@@ -1652,10 +1664,10 @@ index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb37
public Map<Character, ItemStack> getIngredientMap() {
HashMap<Character, ItemStack> result = new HashMap<Character, ItemStack>();
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab6349576ce8 100644
+index 63a233cc819d8d6995d14b9dbfabc14d89af54cc..3bf5064cd6ceb05ea98b18993da46c67be140115 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-@@ -43,8 +43,10 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -44,8 +44,10 @@ public class ShapelessRecipe extends CraftingRecipe {
*
* @param ingredient The ingredient to add.
* @return The changed recipe, so you can chain calls.
@@ -1666,7 +1678,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63
public ShapelessRecipe addIngredient(@NotNull MaterialData ingredient) {
return addIngredient(1, ingredient);
}
-@@ -80,8 +82,10 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -81,8 +83,10 @@ public class ShapelessRecipe extends CraftingRecipe {
* @param count How many to add (can't be more than 9!)
* @param ingredient The ingredient to add.
* @return The changed recipe, so you can chain calls.
@@ -1677,7 +1689,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63
public ShapelessRecipe addIngredient(int count, @NotNull MaterialData ingredient) {
return addIngredient(count, ingredient.getItemType(), ingredient.getData());
}
-@@ -198,8 +202,10 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -199,8 +203,10 @@ public class ShapelessRecipe extends CraftingRecipe {
*
* @param ingredient The ingredient to remove
* @return The changed recipe.
@@ -1688,7 +1700,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63
public ShapelessRecipe removeIngredient(@NotNull MaterialData ingredient) {
return removeIngredient(ingredient.getItemType(), ingredient.getData());
}
-@@ -226,8 +232,10 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -227,8 +233,10 @@ public class ShapelessRecipe extends CraftingRecipe {
* @param count The number of copies to remove.
* @param ingredient The ingredient to remove.
* @return The changed recipe.
@@ -1699,7 +1711,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63
public ShapelessRecipe removeIngredient(int count, @NotNull MaterialData ingredient) {
return removeIngredient(count, ingredient.getItemType(), ingredient.getData());
}
-@@ -277,7 +285,9 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -278,7 +286,9 @@ public class ShapelessRecipe extends CraftingRecipe {
* Get the list of ingredients used for this recipe.
*
* @return The input list
diff --git a/patches/api/0185-Add-item-slot-convenience-methods.patch b/patches/api/0185-Add-item-slot-convenience-methods.patch
index 20638212e8..8da43fffbf 100644
--- a/patches/api/0185-Add-item-slot-convenience-methods.patch
+++ b/patches/api/0185-Add-item-slot-convenience-methods.patch
@@ -6,12 +6,12 @@ Subject: [PATCH] Add item slot convenience methods
Co-authored-by: Janet Blackquill <[email protected]>
diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java
-index 52519cd877017704b53d36088d4d4c28f8f27397..c60be4fd24c7fdf65251dd6169e5e1ac3b588d95 100644
+index 4f484df010dabf03ac4712996a0fd4d8f3649b59..f1f97a85ec713c05c882d7588f4a3e4a017f4795 100644
--- a/src/main/java/org/bukkit/inventory/AnvilInventory.java
+++ b/src/main/java/org/bukkit/inventory/AnvilInventory.java
-@@ -63,4 +63,64 @@ public interface AnvilInventory extends Inventory {
- * @param levels the maximum experience cost
+@@ -78,4 +78,64 @@ public interface AnvilInventory extends Inventory {
*/
+ @Deprecated(forRemoval = true, since = "1.21")
void setMaximumRepairCost(int levels);
+
+ // Paper start
diff --git a/patches/api/0190-Potential-bed-API.patch b/patches/api/0190-Potential-bed-API.patch
index 42350ac7bd..1cbb7daffa 100644
--- a/patches/api/0190-Potential-bed-API.patch
+++ b/patches/api/0190-Potential-bed-API.patch
@@ -8,10 +8,10 @@ Adds a new method to fetch the location of a player's bed without generating any
getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks.
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 25cd03f2f3dc0aaa67173c0f3ebfe56402489e24..ccaaf2b6f6424ec7c7d298ceabdc3e60a7917705 100644
+index 3985798654a3085c128144e46f7113b7744b8d14..11c5846848a6631a9376934622caeadd448b0391 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -275,6 +275,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -277,6 +277,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public int getSleepTicks();
diff --git a/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch
index 95fb3a46ed..10dd96ba7d 100644
--- a/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch
+++ b/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch
@@ -93,7 +93,7 @@ index 0000000000000000000000000000000000000000..c305c606bef93866993095cec5f50e19
+ }
+}
diff --git a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
-index 8977f7609431c3c46324a82de84d4a32f4b71c57..d884ecf40af964e718168ac055dd6c672d108eb1 100644
+index 8a5be3f0322ac19aeac3f00df54add0e73bc87ed..d2b4b2e9385e7c1e0e1e42886481b99ecc8dcf8e 100644
--- a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
+++ b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
@@ -10,9 +10,9 @@ import org.jetbrains.annotations.Nullable;
@@ -106,10 +106,10 @@ index 8977f7609431c3c46324a82de84d4a32f4b71c57..d884ecf40af964e718168ac055dd6c67
- private static final HandlerList handlers = new HandlerList();
+ // Paper - move HandlerList to PrepareInventoryResultEvent
- public PrepareAnvilEvent(@NotNull InventoryView inventory, @Nullable ItemStack result) {
+ public PrepareAnvilEvent(@NotNull AnvilView inventory, @Nullable ItemStack result) {
super(inventory, result);
-@@ -38,14 +38,5 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent {
- super.setResult(result);
+@@ -44,14 +44,5 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent {
+ return (AnvilView) super.getView();
}
- @NotNull
diff --git a/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch
index c81c83391c..3fe46b8c28 100644
--- a/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch
+++ b/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add additional open container api to HumanEntity
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index ccaaf2b6f6424ec7c7d298ceabdc3e60a7917705..b980d55b68ed9da78c5cd19f369bb00dccbf08e1 100644
+index 11c5846848a6631a9376934622caeadd448b0391..f20b0a439c4d5cd2c6caa70a46b1b49f8ab23425 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -180,6 +180,92 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -182,6 +182,92 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@Nullable
public InventoryView openMerchant(@NotNull Merchant merchant, boolean force);
diff --git a/patches/api/0220-Expose-LivingEntity-hurt-direction.patch b/patches/api/0220-Expose-LivingEntity-hurt-direction.patch
index 4d2cb26c38..d8800e48d1 100644
--- a/patches/api/0220-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/api/0220-Expose-LivingEntity-hurt-direction.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose LivingEntity hurt direction
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index b980d55b68ed9da78c5cd19f369bb00dccbf08e1..4d6ceca22d98a3e46aa26ef26176c5417a5ccf35 100644
+index f20b0a439c4d5cd2c6caa70a46b1b49f8ab23425..937c136f2499bd1660989d14c0f50a7ef9a1a2b6 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -354,6 +354,16 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -356,6 +356,16 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
*/
public void setCooldown(@NotNull Material material, int ticks);
diff --git a/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch b/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch
index f0864c18fa..a931d297be 100644
--- a/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch
+++ b/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch
@@ -206,10 +206,22 @@ index e0f652117e585882693736de8165ae9c689e1d68..fbe14c327ee9c1ac07893853ca7c699e
return server.getRegistry(tClass);
}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
-index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c17bf68ec7 100644
+index e9edc8c17cbd29cfdad31df13acb15bab2304735..d855e703339e6f6e50fcb19e8954a9434e718b2f 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
-@@ -102,7 +102,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -87,8 +87,10 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+ * Server banner patterns.
+ *
+ * @see PatternType
++ * @deprecated use {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)} with {@link io.papermc.paper.registry.RegistryKey#BANNER_PATTERN}
+ */
+- Registry<PatternType> BANNER_PATTERN = Objects.requireNonNull(Bukkit.getRegistry(PatternType.class), "No registry present for Pattern Type. This is a bug.");
++ @Deprecated(since = "1.21") // Paper
++ Registry<PatternType> BANNER_PATTERN = Objects.requireNonNull(io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(PatternType.class), "No registry present for PatternType. This is a bug."); // Paper
+ /**
+ * Server biomes.
+ *
+@@ -102,7 +104,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @apiNote BlockType is not ready for public usage yet
*/
@ApiStatus.Internal
@@ -218,7 +230,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Custom boss bars.
*
-@@ -134,13 +134,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -134,13 +136,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see Cat.Type
*/
@@ -236,7 +248,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Server entity types.
*
-@@ -152,7 +154,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -152,7 +156,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see MusicInstrument
*/
@@ -245,7 +257,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Server item types.
*
-@@ -160,7 +162,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -160,7 +164,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @apiNote ItemType is not ready for public usage yet
*/
@ApiStatus.Internal
@@ -254,7 +266,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Default server loot tables.
*
-@@ -178,7 +180,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -178,7 +182,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see PotionEffectType
*/
@@ -263,7 +275,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Server particles.
*
-@@ -201,14 +203,16 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -201,14 +205,16 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* Server structures.
*
* @see Structure
@@ -282,7 +294,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Sound keys.
*
-@@ -219,40 +223,47 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -219,40 +225,47 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* Trim materials.
*
* @see TrimMaterial
@@ -337,7 +349,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1
/**
* Memory Keys.
*
-@@ -289,25 +300,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -289,25 +302,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see Frog.Variant
*/
diff --git a/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch
index e561fa1dba..14754cc21c 100644
--- a/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch
+++ b/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 4d6ceca22d98a3e46aa26ef26176c5417a5ccf35..58c842a1fd946d94ae29c7d2439aaf77e47f69b4 100644
+index 937c136f2499bd1660989d14c0f50a7ef9a1a2b6..b1b18886fc63a4854c2858ff9869da70e92dae26 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -364,6 +364,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -366,6 +366,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
void setHurtDirection(float hurtDirection);
// Paper end
diff --git a/patches/api/0329-More-PotionEffectType-API.patch b/patches/api/0329-More-PotionEffectType-API.patch
index d80151aec0..c361faf34d 100644
--- a/patches/api/0329-More-PotionEffectType-API.patch
+++ b/patches/api/0329-More-PotionEffectType-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] More PotionEffectType API
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
-index a583d26883c8b7012203e128cd64113df94307c1..4d3e0b90579b33ff93fc565e8ee99a01b690c62b 100644
+index 5dbbc4eb764650395c6ebaaf5fdf0466ca107439..0ee9a8728035217bb95c7fba917b45a5ef2ea533 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
-@@ -321,6 +321,33 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -323,6 +323,33 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @see GameEvent
*/
Registry<GameEvent> GAME_EVENT = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.GAME_EVENT); // Paper
diff --git a/patches/api/0352-Add-Player-getFishHook.patch b/patches/api/0352-Add-Player-getFishHook.patch
index 61c4560da5..0e0d38d513 100644
--- a/patches/api/0352-Add-Player-getFishHook.patch
+++ b/patches/api/0352-Add-Player-getFishHook.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Player#getFishHook
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
-index 58c842a1fd946d94ae29c7d2439aaf77e47f69b4..294de2c073167e7186fbf1d6885fe5951351cc9c 100644
+index b1b18886fc63a4854c2858ff9869da70e92dae26..773651350c17cae9058346a590eda758071b7447 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
-@@ -392,6 +392,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
+@@ -394,6 +394,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@Nullable
public Location getPotentialBedLocation();
// Paper end
diff --git a/patches/api/0392-Add-Shearable-API.patch b/patches/api/0392-Add-Shearable-API.patch
index 06e4cefb44..e39ebc2481 100644
--- a/patches/api/0392-Add-Shearable-API.patch
+++ b/patches/api/0392-Add-Shearable-API.patch
@@ -54,15 +54,15 @@ index 0000000000000000000000000000000000000000..0d5793790ab6a47525ad330335173612
+ boolean readyToBeSheared();
+}
diff --git a/src/main/java/org/bukkit/entity/Bogged.java b/src/main/java/org/bukkit/entity/Bogged.java
-index a89f104aa2b2244c075a72c698a9b616c57eaf7c..a36bb84c17120bc578ab01d45f6f12fb1faf9548 100644
+index 8b75a505a55a96a5795ac31a2d37307add12cd9e..6296a6f3f3e794677fd3a626376f357c740ec356 100644
--- a/src/main/java/org/bukkit/entity/Bogged.java
+++ b/src/main/java/org/bukkit/entity/Bogged.java
@@ -6,5 +6,5 @@ import org.jetbrains.annotations.ApiStatus;
* Represents a Bogged Skeleton.
*/
@ApiStatus.Experimental
--public interface Bogged extends AbstractSkeleton {
-+public interface Bogged extends AbstractSkeleton, io.papermc.paper.entity.Shearable { // Paper - Shear API
+-public interface Bogged extends AbstractSkeleton, Shearable {
++public interface Bogged extends AbstractSkeleton, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API
}
diff --git a/src/main/java/org/bukkit/entity/MushroomCow.java b/src/main/java/org/bukkit/entity/MushroomCow.java
index cef1700834643fe28ed5737578d91ecefbe99e2f..86c0043ef4e1288b6fe2f68a9b6d01c3de2c3454 100644
@@ -77,19 +77,52 @@ index cef1700834643fe28ed5737578d91ecefbe99e2f..86c0043ef4e1288b6fe2f68a9b6d01c3
/**
* Checks for the presence of custom potion effects to be applied to the
+diff --git a/src/main/java/org/bukkit/entity/Shearable.java b/src/main/java/org/bukkit/entity/Shearable.java
+index 0215d20f81bfbef080f86ce46147a38f71310f65..9967c8a52ddd2c7e10db49a3f166731373f1ba45 100644
+--- a/src/main/java/org/bukkit/entity/Shearable.java
++++ b/src/main/java/org/bukkit/entity/Shearable.java
+@@ -2,20 +2,30 @@ package org.bukkit.entity;
+
+ /**
+ * Represents an entity which can be shorn with shears.
++ * @deprecated Spigots shearable API miserably fails at capturing all entities that may be sheared by a player, like
++ * mushroom cows which, once sheared, convert into normal cows. For such entities, methods like
++ * {@link #setSheared(boolean)} or {@link #isSheared()} make no sense, making this API and interface dead API from
++ * the get-go.
+ */
++@Deprecated(forRemoval = true, since = "1.21")
+ public interface Shearable {
+
+ /**
+ * Gets whether the entity is in its sheared state.
+ *
+ * @return Whether the entity is sheared.
++ * @deprecated Use {@link io.papermc.paper.entity.Shearable#readyToBeSheared()} instead.
+ */
++ @Deprecated(forRemoval = true, since = "1.21")
+ boolean isSheared();
+
+ /**
+ * Sets whether the entity is in its sheared state.
+ *
+ * @param flag Whether to shear the entity
++ * @deprecated Use {@link io.papermc.paper.entity.Shearable#shear()} instead if applicable.
++ * Some entities cannot be "unsheared".
+ */
++ @Deprecated(forRemoval = true, since = "1.21")
+ void setSheared(boolean flag);
+ }
diff --git a/src/main/java/org/bukkit/entity/Sheep.java b/src/main/java/org/bukkit/entity/Sheep.java
-index f4ce312ccd927a8b64f4266b35a0a53b85e591f3..97388d46cee225dedc0b61a12e7b60b3424732c8 100644
+index 46bc1a0ed9ee320c68a38362c1fa1f31319f01d8..01a0e5b1bb18d7a28d68329c2e2ab78a8df45f8e 100644
--- a/src/main/java/org/bukkit/entity/Sheep.java
+++ b/src/main/java/org/bukkit/entity/Sheep.java
-@@ -5,7 +5,7 @@ import org.bukkit.material.Colorable;
+@@ -5,5 +5,5 @@ import org.bukkit.material.Colorable;
/**
* Represents a Sheep.
*/
--public interface Sheep extends Animals, Colorable {
-+public interface Sheep extends Animals, Colorable, io.papermc.paper.entity.Shearable { // Paper - Shear API
-
- /**
- * @return Whether the sheep is sheared.
+-public interface Sheep extends Animals, Colorable, Shearable {
++public interface Sheep extends Animals, Colorable, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API
+ }
diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java
index 10f8f6d45ae9280651c3ebddd1f90acbd7d6ff29..7fbfdb07585c7b28acea1f0c1f58ada0cc744441 100644
--- a/src/main/java/org/bukkit/entity/Snowman.java
diff --git a/patches/api/0430-Experimental-annotations-change.patch b/patches/api/0430-Experimental-annotations-change.patch
index 59788de534..9ea8f3a126 100644
--- a/patches/api/0430-Experimental-annotations-change.patch
+++ b/patches/api/0430-Experimental-annotations-change.patch
@@ -104,7 +104,7 @@ index 60fbacee263e55f91ac977f020e390d46024723a..ecff691c3a0878659fb051926ef769ce
/**
diff --git a/src/main/java/org/bukkit/entity/Bogged.java b/src/main/java/org/bukkit/entity/Bogged.java
-index a36bb84c17120bc578ab01d45f6f12fb1faf9548..719bccf8638f8ad358d37fa7eeccbc4c08d32868 100644
+index 6296a6f3f3e794677fd3a626376f357c740ec356..7d993f8bd18ec1d3260d12f0ff8078a86ee4867d 100644
--- a/src/main/java/org/bukkit/entity/Bogged.java
+++ b/src/main/java/org/bukkit/entity/Bogged.java
@@ -5,6 +5,5 @@ import org.jetbrains.annotations.ApiStatus;
@@ -112,7 +112,7 @@ index a36bb84c17120bc578ab01d45f6f12fb1faf9548..719bccf8638f8ad358d37fa7eeccbc4c
* Represents a Bogged Skeleton.
*/
- public interface Bogged extends AbstractSkeleton, io.papermc.paper.entity.Shearable { // Paper - Shear API
+ public interface Bogged extends AbstractSkeleton, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API
}
diff --git a/src/main/java/org/bukkit/entity/Breeze.java b/src/main/java/org/bukkit/entity/Breeze.java
index a75e725805c193a408683885cba83ca168347165..254bc6e18961a72f471334cc0535e3c7a9d70012 100644
diff --git a/patches/api/0432-Improve-Registry.patch b/patches/api/0432-Improve-Registry.patch
index 4c5275651a..5e72c2ab2a 100644
--- a/patches/api/0432-Improve-Registry.patch
+++ b/patches/api/0432-Improve-Registry.patch
@@ -31,10 +31,10 @@ index 62d2b3f950860dee0898d77b0a29635c3f9a7e23..704dba92f9246ef398ed8d162ebee3cf
@Override
public @NotNull String translationKey() {
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
-index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89f02611a0 100644
+index 0ee9a8728035217bb95c7fba917b45a5ef2ea533..cd1e38debbec745dd13cd895327f544dcf42594d 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
-@@ -357,6 +357,79 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -359,6 +359,79 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@Nullable
T get(@NotNull NamespacedKey key);
@@ -114,7 +114,7 @@ index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89
/**
* Returns a new stream, which contains all registry items, which are registered to the registry.
*
-@@ -431,5 +504,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -433,5 +506,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
public Class<T> getType() {
return this.type;
}
@@ -128,12 +128,12 @@ index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89
}
}
diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java
-index 6a6be0287255cf38a735bfc83ec91644dc96b903..1883183157c875d87656fdc86a589e9b95dc4895 100644
+index 9e90572745909538e942b7fbe788b5286c6cc9a3..100f93358e0a1fa8507775a2afd29314ff353a87 100644
--- a/src/main/java/org/bukkit/block/banner/PatternType.java
+++ b/src/main/java/org/bukkit/block/banner/PatternType.java
-@@ -69,6 +69,13 @@ public enum PatternType implements Keyed {
- this.key = NamespacedKey.minecraft(key);
- }
+@@ -56,6 +56,13 @@ public interface PatternType extends OldEnum<PatternType>, Keyed {
+ PatternType FLOW = getType("flow");
+ PatternType GUSTER = getType("guster");
+ // Paper start - deprecate getKey
+ /**
@@ -144,7 +144,7 @@ index 6a6be0287255cf38a735bfc83ec91644dc96b903..1883183157c875d87656fdc86a589e9b
+ // Paper end - deprecate getKey
@Override
@NotNull
- public NamespacedKey getKey() {
+ public NamespacedKey getKey();
diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java
index 1a766e68713d4014783b3224b9395644116784fa..978054ee364f9a3330525b9b50da5325ebb6ef57 100644
--- a/src/main/java/org/bukkit/generator/structure/Structure.java
diff --git a/patches/api/0469-Fix-issues-with-recipe-API.patch b/patches/api/0469-Fix-issues-with-recipe-API.patch
index 2635c201c9..00a981bf9c 100644
--- a/patches/api/0469-Fix-issues-with-recipe-API.patch
+++ b/patches/api/0469-Fix-issues-with-recipe-API.patch
@@ -40,18 +40,18 @@ index f7fa79393aef40027446b78bac8e9490cfafd8bc..07906ca1a9b39fcc6774870daa498402
}
diff --git a/src/main/java/org/bukkit/inventory/CraftingRecipe.java b/src/main/java/org/bukkit/inventory/CraftingRecipe.java
-index e4bf772f7e06f38215bee68f089b15a4fcb12817..37024b4736dd3897490ca51d08cf07901b01d59f 100644
+index 1b7b07715067014bf3d35002ae1655793248b426..5bf55b40fbf6ec708f37d90bd0853fe7dd8fffd9 100644
--- a/src/main/java/org/bukkit/inventory/CraftingRecipe.java
+++ b/src/main/java/org/bukkit/inventory/CraftingRecipe.java
-@@ -18,7 +18,7 @@ public abstract class CraftingRecipe implements Recipe, Keyed {
-
- protected CraftingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) {
- Preconditions.checkArgument(key != null, "key cannot be null");
+@@ -99,7 +99,7 @@ public abstract class CraftingRecipe implements Recipe, Keyed {
+ @ApiStatus.Internal
+ @NotNull
+ protected static ItemStack checkResult(@NotNull ItemStack result) {
- Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result.");
+ Preconditions.checkArgument(!result.isEmpty(), "Recipe cannot have an empty result."); // Paper
- this.key = key;
- this.output = new ItemStack(result);
+ return result;
}
+ }
diff --git a/src/main/java/org/bukkit/inventory/EmptyRecipeChoice.java b/src/main/java/org/bukkit/inventory/EmptyRecipeChoice.java
new file mode 100644
index 0000000000000000000000000000000000000000..ed0ab6163f47ec843ba4f7ea4a98bb2fa315eaa1
@@ -211,10 +211,10 @@ index 91bfeffcdbe47208c7d0ddbe013cd0f11fddfa32..e7796054f3f65f5bea7f93c75320195f
}
}
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-index aa3b3070126f1c492f004ec7599eeb379b58f207..1815de38654dd134abde3dd9bd0b018b91247bd5 100644
+index 295d82dd73b600e9436d2bbec0e11dbeaf78bbf4..c0105d716985acef497d60b5c631a56b4ca5847b 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
-@@ -177,14 +177,15 @@ public class ShapedRecipe extends CraftingRecipe {
+@@ -178,14 +178,15 @@ public class ShapedRecipe extends CraftingRecipe {
Preconditions.checkArgument(key != ' ', "Space in recipe shape must represent no ingredient");
Preconditions.checkArgument(ingredients.containsKey(key), "Symbol does not appear in the shape:", key);
@@ -233,10 +233,10 @@ index aa3b3070126f1c492f004ec7599eeb379b58f207..1815de38654dd134abde3dd9bd0b018b
// Paper end
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-index beb798482479c58a8628c314b510ab6349576ce8..8251170314ab25c26270208e453b4e3909435754 100644
+index 3bf5064cd6ceb05ea98b18993da46c67be140115..79db6dbc0367de2eaa397674624c765d5aeb8fa5 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
-@@ -131,7 +131,7 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -132,7 +132,7 @@ public class ShapelessRecipe extends CraftingRecipe {
public ShapelessRecipe addIngredient(@NotNull RecipeChoice ingredient) {
Preconditions.checkArgument(ingredients.size() + 1 <= 9, "Shapeless recipes cannot have more than 9 ingredients");
@@ -245,7 +245,7 @@ index beb798482479c58a8628c314b510ab6349576ce8..8251170314ab25c26270208e453b4e39
return this;
}
-@@ -144,6 +144,8 @@ public class ShapelessRecipe extends CraftingRecipe {
+@@ -145,6 +145,8 @@ public class ShapelessRecipe extends CraftingRecipe {
@NotNull
public ShapelessRecipe addIngredient(int count, @NotNull ItemStack item) {
Preconditions.checkArgument(ingredients.size() + count <= 9, "Shapeless recipes cannot have more than 9 ingredients");
diff --git a/patches/api/0472-General-ItemMeta-fixes.patch b/patches/api/0472-General-ItemMeta-fixes.patch
index 5339131e31..3e2a3cfb11 100644
--- a/patches/api/0472-General-ItemMeta-fixes.patch
+++ b/patches/api/0472-General-ItemMeta-fixes.patch
@@ -19,6 +19,27 @@ index 637fa73d4366c2d88e2716e5c8d3465706d788a7..0f03c546ecdd6383fb36a362d18d6fb5
this.flicker = flicker;
this.trail = trail;
this.colors = colors;
+diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java
+index a6d1dde422de98f178c0c9add99e01203a35e5cb..01ec84248a681180088fb1d7d22b80f8572b0305 100644
+--- a/src/main/java/org/bukkit/inventory/ItemType.java
++++ b/src/main/java/org/bukkit/inventory/ItemType.java
+@@ -31,6 +31,7 @@ import org.bukkit.inventory.meta.MapMeta;
+ import org.bukkit.inventory.meta.MusicInstrumentMeta;
+ import org.bukkit.inventory.meta.OminousBottleMeta;
+ import org.bukkit.inventory.meta.PotionMeta;
++import org.bukkit.inventory.meta.ShieldMeta;
+ import org.bukkit.inventory.meta.SkullMeta;
+ import org.bukkit.inventory.meta.SpawnEggMeta;
+ import org.bukkit.inventory.meta.SuspiciousStewMeta;
+@@ -1893,7 +1894,7 @@ public interface ItemType extends Keyed, Translatable, net.kyori.adventure.trans
+ /**
+ * ItemMeta: {@link BlockStateMeta}
+ */
+- ItemType.Typed<BlockStateMeta> SHIELD = getItemType("shield");
++ ItemType.Typed<ShieldMeta> SHIELD = getItemType("shield"); // Paper - update shield to its new meta
+ ItemType.Typed<ItemMeta> TOTEM_OF_UNDYING = getItemType("totem_of_undying");
+ ItemType.Typed<ItemMeta> SHULKER_SHELL = getItemType("shulker_shell");
+ ItemType.Typed<ItemMeta> IRON_NUGGET = getItemType("iron_nugget");
diff --git a/src/main/java/org/bukkit/inventory/meta/Damageable.java b/src/main/java/org/bukkit/inventory/meta/Damageable.java
index ff6818b6d9e0207eafdd749928f33aeac3f27191..992f39da07bafe9769effaa7dc6adc018c89329d 100644
--- a/src/main/java/org/bukkit/inventory/meta/Damageable.java
diff --git a/patches/api/0475-Registry-Modification-API.patch b/patches/api/0475-Registry-Modification-API.patch
index b364107ae4..899814f754 100644
--- a/patches/api/0475-Registry-Modification-API.patch
+++ b/patches/api/0475-Registry-Modification-API.patch
@@ -790,10 +790,10 @@ index 0000000000000000000000000000000000000000..11d19e339c7c62f2eb4467277552c27e
+record TagKeyImpl<T>(RegistryKey<T> registryKey, Key key) implements TagKey<T> {
+}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
-index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a04d55ac42 100644
+index cd1e38debbec745dd13cd895327f544dcf42594d..c0428edee6ecbbd646c0e58da39a7ca476914fd1 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
-@@ -356,6 +356,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -358,6 +358,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*/
@Nullable
T get(@NotNull NamespacedKey key);
@@ -821,7 +821,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0
// Paper start - improve Registry
/**
-@@ -430,6 +451,34 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -432,6 +453,34 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
}
// Paper end - improve Registry
@@ -856,7 +856,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0
/**
* Returns a new stream, which contains all registry items, which are registered to the registry.
*
-@@ -511,5 +560,23 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
+@@ -513,5 +562,23 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
return value.getKey();
}
// Paper end - improve Registry
diff --git a/patches/api/0476-Introduce-registry-entry-and-builders.patch b/patches/api/0476-Introduce-registry-entry-and-builders.patch
index e97c9cef4e..44bdb4b36f 100644
--- a/patches/api/0476-Introduce-registry-entry-and-builders.patch
+++ b/patches/api/0476-Introduce-registry-entry-and-builders.patch
@@ -480,10 +480,10 @@ index 6c9689baca1763e2ef79495d38618d587e792434..4583092c2d1ffe95be2831c5d5f0e904
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java
-index 94587a97fcea81a43b160b01d2c81cef2b7f4413..6bc1853ada3ea38bc36cb31fbb5ce246347fe5d4 100644
+index 01ec84248a681180088fb1d7d22b80f8572b0305..0168f0a14a3e899e84c5e36963ff79950ab580fb 100644
--- a/src/main/java/org/bukkit/inventory/ItemType.java
+++ b/src/main/java/org/bukkit/inventory/ItemType.java
-@@ -46,7 +46,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -47,7 +47,7 @@ import org.jetbrains.annotations.Nullable;
* official replacement for the aforementioned enum. Entirely incompatible
* changes may occur. Do not use this API in plugins.
*/
diff --git a/patches/api/0483-Fix-PickupStatus-getting-reset.patch b/patches/api/0481-Fix-PickupStatus-getting-reset.patch
index 6473947708..6473947708 100644
--- a/patches/api/0483-Fix-PickupStatus-getting-reset.patch
+++ b/patches/api/0481-Fix-PickupStatus-getting-reset.patch
diff --git a/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch b/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch
deleted file mode 100644
index 7bf99722cc..0000000000
--- a/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Bjarne Koll <[email protected]>
-Date: Fri, 19 Jul 2024 19:09:21 +0200
-Subject: [PATCH] Move CraftComplexRecipe to extend CraftingRecipe
-
-A craft complex recipe wraps a CustomRecipe, which itself is a
-CraftingRecipe.
-As such, this complex recipe should also be a crafting recipe.
-
-diff --git a/src/main/java/org/bukkit/inventory/CraftingRecipe.java b/src/main/java/org/bukkit/inventory/CraftingRecipe.java
-index 37024b4736dd3897490ca51d08cf07901b01d59f..afa3de9ab78d01c448d450d8afbc7b1e7e62754c 100644
---- a/src/main/java/org/bukkit/inventory/CraftingRecipe.java
-+++ b/src/main/java/org/bukkit/inventory/CraftingRecipe.java
-@@ -11,8 +11,11 @@ import org.jetbrains.annotations.NotNull;
- * Represents a shaped or shapeless crafting recipe.
- */
- public abstract class CraftingRecipe implements Recipe, Keyed {
-- private final NamespacedKey key;
-- private final ItemStack output;
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start
-+ protected NamespacedKey key;
-+ protected ItemStack output;
-+ protected CraftingRecipe() {}
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end
- private String group = "";
- private CraftingBookCategory category = CraftingBookCategory.MISC;
-
diff --git a/patches/api/0482-Add-CrafterCraftEvent.patch b/patches/api/0482-Add-CrafterCraftEvent.patch
deleted file mode 100644
index c91ab8393d..0000000000
--- a/patches/api/0482-Add-CrafterCraftEvent.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: ploppyperson <[email protected]>
-Date: Thu, 18 Jul 2024 16:37:58 +0200
-Subject: [PATCH] Add CrafterCraftEvent
-
-Ports the currently proposed CrafterCraftEvent
-from upstream.
-The type is experimental to account for spigot
-potentially changing some api contracts, however
-the event is required for a stable release and
-waiting on spigot's PR queue is not an option.
-
-See: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/pull-requests/1044/overview
-
-diff --git a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
-new file mode 100644
-index 0000000000000000000000000000000000000000..8dec6d16aa3c3579eadd77f637c9afa54ee9a90f
---- /dev/null
-+++ b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java
-@@ -0,0 +1,77 @@
-+package org.bukkit.event.block;
-+
-+import org.bukkit.block.Block;
-+import org.bukkit.event.Cancellable;
-+import org.bukkit.event.HandlerList;
-+import org.bukkit.inventory.CraftingRecipe;
-+import org.bukkit.inventory.ItemStack;
-+import org.jetbrains.annotations.NotNull;
-+
-+/**
-+ * Event called when a Crafter is about to craft an item
-+ * @apiNote Currently still experimental as it is ported from an open, not merged, spigot PR.
-+ * The event was pulled to allow protection plugins and the likes to properly manage crafters.
-+ * The type remains experimental as upstream *may* change the event before pulling it, resulting in a breaking change.
-+ */
-+public class CrafterCraftEvent extends BlockEvent implements Cancellable {
-+
-+ private static final HandlerList handlers = new HandlerList();
-+ private boolean cancelled;
-+ private ItemStack result;
-+ private final CraftingRecipe recipe;
-+
-+ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internal constructor.
-+ public CrafterCraftEvent(@NotNull Block theBlock, @NotNull CraftingRecipe recipe, @NotNull ItemStack result) {
-+ super(theBlock);
-+ this.result = result;
-+ this.recipe = recipe;
-+ }
-+
-+ /**
-+ * Gets the result for the craft
-+ * @return the result for the craft
-+ */
-+ @NotNull
-+ public ItemStack getResult() {
-+ return result.clone();
-+ }
-+
-+ /**
-+ * Sets the result of the craft
-+ * @param result the result of the craft
-+ */
-+ public void setResult(@NotNull ItemStack result) {
-+ this.result = result.clone();
-+ }
-+
-+ /**
-+ * The recipe that was used to craft this item
-+ * @return the recipe that was used to craft this item
-+ */
-+ @NotNull
-+ public CraftingRecipe getRecipe() {
-+ return recipe;
-+ }
-+
-+ @NotNull
-+ @Override
-+ public HandlerList getHandlers() {
-+ return handlers;
-+ }
-+
-+ @Override
-+ public boolean isCancelled() {
-+ return cancelled;
-+ }
-+
-+ @Override
-+ public void setCancelled(boolean cancel) {
-+ this.cancelled = cancel;
-+ }
-+
-+ @NotNull
-+ public static HandlerList getHandlerList() {
-+ return handlers;
-+ }
-+}
diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch
index 505d9bbbb0..3e04e97c06 100644
--- a/patches/server/0003-Build-system-changes.patch
+++ b/patches/server/0003-Build-system-changes.patch
@@ -131,10 +131,10 @@ index feca36209fd2405fab70f564f63e627b8b78ac18..396ec10a76bdadbf5be2f0e15e88eed4
public static PackRepository createPackRepository(Path dataPacksPath, DirectoryValidator symlinkFinder) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 82b8485a4781105bce874485119110576d1e2d63..a07e26caf48acf9ef193a74497a201166bfbe098 100644
+index 9bae4835882a7c1b5a623d57330c36cc61b9b6d1..273a6658deacbf00f6cc498cf3fcd20d144bd9e4 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
-@@ -210,7 +210,7 @@ public class Main {
+@@ -199,7 +199,7 @@ public class Main {
}
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch
index a4b4a61e66..97ddef9404 100644
--- a/patches/server/0004-Test-changes.patch
+++ b/patches/server/0004-Test-changes.patch
@@ -351,6 +351,22 @@ index ebcb65cb74acdb9d1bcf2b4b3551a2dc6d809bc9..7d9dbed7281099b78d7f898885b37cdc
}
@Test
+diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
+index 544307fe34cbcfa286a7d7b30900ebea127d189e..5bda0bc976920f224586f2c0e083b771c676e307 100644
+--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
++++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
+@@ -53,6 +53,11 @@ public abstract class AbstractTestingBase {
+ MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList());
+ // add tags and loot tables for unit tests
+ LayeredRegistryAccess<RegistryLayer> layers = RegistryLayer.createRegistryAccess();
++ // Paper start - load registry here to ensure bukkit object registry are correctly delayed if needed
++ try {
++ Class.forName("org.bukkit.Registry");
++ } catch (ClassNotFoundException ignored) {}
++ // Paper end - load registry here to ensure bukkit object registry are correctly delayed if needed
+ layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES);
+ REGISTRY_CUSTOM = layers.compositeAccess().freeze();
+ // Register vanilla pack
diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java
index 1acdf5bc439c073c1777c2c4f5743ae082f4a621..183d30e3d3d413b05c762f374a964498d6ffdec4 100644
--- a/src/test/java/org/bukkit/support/DummyServer.java
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 8fa709f084..38b5d938a5 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -5065,7 +5065,7 @@ index e8fac2863c5feb875cf0c78f062b4b87acbcb49b..751900e0c2a946ba4291174c81b2bdbd
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index a07e26caf48acf9ef193a74497a201166bfbe098..dbcde37cfdeb6141c3f5c4f8b95d60fca91c7977 100644
+index 273a6658deacbf00f6cc498cf3fcd20d144bd9e4..cf06abf508fab734f5945e1d292c01512a50749e 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -142,6 +142,19 @@ public class Main {
@@ -5190,10 +5190,10 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a
+ }
+}
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
-index 544307fe34cbcfa286a7d7b30900ebea127d189e..1b1d51a68c0abe7d8f0aa1172064192c71ae645e 100644
+index 5bda0bc976920f224586f2c0e083b771c676e307..4e9612600822bc1b52b8528dff2783d43385ec73 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
-@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase {
+@@ -68,6 +68,7 @@ public abstract class AbstractTestingBase {
BIOMES = REGISTRY_CUSTOM.registryOrThrow(Registries.BIOME);
DummyServer.setup();
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index 1cda21bd7d..64c984e330 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -5064,7 +5064,7 @@ index 12db4c5db3d7951df984db03d09d14d808e58699..44d4aee059d74676bffb8b6bc6f6ad4d
@Override
public float getBukkitYaw() {
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 15f0b0977fe7b41e29346df9d49120f14f02ea43..b6cb1de08e955dfc99a0cb736b2ed456c99fde5c 100644
+index d7a3f704cce228c50d26f1ecd98e819eca561bfc..3457e1c9791b294b5e4dab478d90cdd1a1cf7fef 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -953,6 +953,25 @@ public final class ItemStack implements DataComponentHolder {
@@ -5351,10 +5351,10 @@ index 497792978bdf0e6a53d772304770e8df3e7416ea..c5454b92ca2565461c799d7340160f9f
public WorldBorder getWorldBorder() {
return this.level.getWorldBorder();
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 9569d9d1c8f809420e08038e5bc38c2c7887ff90..d5d638d955dbcc1034bc79aace77d43e20db5995 100644
+index e0594a1c381487b43bfc55212044e1b3122cee66..59fcaca90b67c03e1a6799e58061dbae3b1f1ceb 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -834,12 +834,14 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -841,12 +841,14 @@ public abstract class BlockBehaviour implements FeatureElement {
}
}
@@ -5369,7 +5369,7 @@ index 9569d9d1c8f809420e08038e5bc38c2c7887ff90..d5d638d955dbcc1034bc79aace77d43e
this.legacySolid = this.calculateSolid();
}
-@@ -886,8 +888,8 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -893,8 +895,8 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.getBlock().getOcclusionShape(this.asState(), world, pos);
}
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 1b2fc84f62..1352a5e435 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -3242,7 +3242,7 @@ index ed54c81a3269360acce674aa4e1d54ccb2461841..c9c849534c3998cfcab7ddcb12a71ccb
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index b6cb1de08e955dfc99a0cb736b2ed456c99fde5c..abf502b8395bb0a8a32c1fdcd62532790deb1c6e 100644
+index 3457e1c9791b294b5e4dab478d90cdd1a1cf7fef..1138d238caa18171b6562cc748c92cec03bfbb97 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -183,7 +183,15 @@ public final class ItemStack implements DataComponentHolder {
@@ -3628,7 +3628,7 @@ index 69c62699e3412f2730e3db65f196099d77698980..4878a1b085a83dd4a8ffdc86250b8fb4
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 2122d7316f55ab5bec7058fe1b8ee3ceb42deea7..43790f555743e9945c1b82cf8f2f4719feedc165 100644
+index 42a1a0588e2b506082499ac9791d039089a64631..9c1fab8db74757e1fb57d4f47099ba6e1536cd6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -20,6 +20,12 @@ public class Main {
@@ -4677,10 +4677,10 @@ index 5725b0281ac53a2354b233223259d6784353bc6e..9ef939b76d06874b856e0c850addb364
@Override
public int getLineWidth() {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 39aad2d00227d94aa1d24c27a10d916b7d64888d..63e20db8ad84b332a4962d5cea83f1064b7c1a3d 100644
+index 938a7ee49a727d5929d1d049c61d2881cf24ff9c..78f4bb474c85e32448a385e108707d92082bfe02 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -911,7 +911,7 @@ public class CraftEventFactory {
+@@ -915,7 +915,7 @@ public class CraftEventFactory {
return event;
}
@@ -4689,7 +4689,7 @@ index 39aad2d00227d94aa1d24c27a10d916b7d64888d..63e20db8ad84b332a4962d5cea83f106
CraftPlayer entity = victim.getBukkitEntity();
CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource);
PlayerDeathEvent event = new PlayerDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()), 0, deathMessage);
-@@ -944,7 +944,7 @@ public class CraftEventFactory {
+@@ -948,7 +948,7 @@ public class CraftEventFactory {
* Server methods
*/
public static ServerListPingEvent callServerListPingEvent(SocketAddress address, String motd, int numPlayers, int maxPlayers) {
@@ -4803,10 +4803,10 @@ index c9cc23757a9fcc58d30b2915d4c5cfbc7d1c767a..fc0e1212022d1aa3506699b60ef33819
return this.title;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
-index 6871fbde3498f18274029638e0cd27d1a78bb1d7..5888a44d7f1f06e6308b068e57c295de366061cd 100644
+index 07d406de7123593dc470af2723f2a9a2dc2157b0..01fbd8a55866af3e371c8a2eef23ef6e9ca3226d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
-@@ -73,6 +73,13 @@ public class CraftInventoryView extends CraftAbstractInventoryView {
+@@ -73,6 +73,13 @@ public class CraftInventoryView<T extends AbstractContainerMenu> extends CraftAb
return CraftItemStack.asCraftMirror(this.container.getSlot(slot).getItem());
}
@@ -5165,10 +5165,10 @@ index c71a4971f127fdfc753306019313ce1a31201120..fd3b12477c30d1eabdbe57ea77902793
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d 100644
+index 1c5d63fb6a9ed5cc40d735793cf5889e189feadf..568d6fab743039b20715d8181555f52baa05f0f3 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -952,6 +952,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -959,6 +959,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return !(this.hasDisplayName() || this.hasItemName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.build().isEmpty() || !this.removedTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isHideTooltip() || this.isUnbreakable() || this.hasEnchantmentGlintOverride() || this.isFireResistant() || this.hasMaxStackSize() || this.hasRarity() || this.hasFood() || this.hasTool() || this.hasDamage() || this.hasMaxDamage() || this.hasAttributeModifiers() || this.customTag != null);
}
@@ -5187,7 +5187,7 @@ index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cf
@Override
public String getDisplayName() {
return CraftChatMessage.fromComponent(this.displayName);
-@@ -982,6 +994,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -989,6 +1001,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.itemName != null;
}
@@ -5206,7 +5206,7 @@ index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cf
@Override
public String getLocalizedName() {
return this.getDisplayName();
-@@ -1001,6 +1025,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1008,6 +1032,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore != null && !this.lore.isEmpty();
}
diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
index 05265dfcf1..f2b824516b 100644
--- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -423,7 +423,7 @@ index bec1fdabbc3727c1f7297b2d23914a5179f4adcb..17df1085e29429b202a6f9003343b15b
@Override
public PluginCommand getPluginCommand(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d55d9d032 100644
+index 9c1fab8db74757e1fb57d4f47099ba6e1536cd6d..3eecea2e6df217ccf2c432d02022c53443a37014 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -13,7 +13,6 @@ import java.util.logging.Logger;
@@ -434,7 +434,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d
public class Main {
public static boolean useJline = true;
-@@ -207,6 +206,8 @@ public class Main {
+@@ -196,6 +195,8 @@ public class Main {
}
try {
@@ -443,7 +443,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d
// This trick bypasses Maven Shade's clever rewriting of our getProperty call when using String literals
String jline_UnsupportedTerminal = new String(new char[]{'j', 'l', 'i', 'n', 'e', '.', 'U', 'n', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd', 'T', 'e', 'r', 'm', 'i', 'n', 'a', 'l'});
String jline_terminal = new String(new char[]{'j', 'l', 'i', 'n', 'e', '.', 't', 'e', 'r', 'm', 'i', 'n', 'a', 'l'});
-@@ -224,9 +225,18 @@ public class Main {
+@@ -213,9 +214,18 @@ public class Main {
// This ensures the terminal literal will always match the jline implementation
System.setProperty(jline.TerminalFactory.JLINE_TERMINAL, jline.UnsupportedTerminal.class.getName());
}
@@ -462,7 +462,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d
}
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
-@@ -242,6 +252,7 @@ public class Main {
+@@ -231,6 +241,7 @@ public class Main {
}
}
diff --git a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
index 6c6939c01e..8f4c15153f 100644
--- a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
+++ b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
@@ -8,7 +8,7 @@ our own relocation. Also lets us rewrite NMS calls for when we're
debugging in an IDE pre-relocate.
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb9d90aa92 100644
+index f80625a2b1dc266131ba3bfda9a918c72a592d82..ebc160fd4c8aed95087130bb6fddc1d4f83c6f87 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
@@ -11,6 +11,7 @@ import java.util.Arrays;
@@ -27,7 +27,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
-@@ -99,6 +101,40 @@ public class Commodore {
+@@ -100,6 +102,40 @@ public class Commodore {
private static final Map<String, RerouteMethodData> METHOD_REROUTE = Commodore.createReroutes(MethodRerouting.class);
private static final Map<String, RerouteMethodData> ENUM_METHOD_REROUTE = Commodore.createReroutes(EnumEvil.class);
@@ -68,7 +68,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
public static void main(String[] args) {
OptionParser parser = new OptionParser();
OptionSpec<File> inputFlag = parser.acceptsAll(Arrays.asList("i", "input")).withRequiredArg().ofType(File.class).required();
-@@ -252,9 +288,49 @@ public class Commodore {
+@@ -253,9 +289,49 @@ public class Commodore {
}
return new MethodVisitor(this.api, super.visitMethod(access, name, desc, signature, exceptions)) {
@@ -118,7 +118,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
name = FieldRename.rename(pluginVersion, owner, name);
if (modern) {
-@@ -374,6 +450,13 @@ public class Commodore {
+@@ -375,6 +451,13 @@ public class Commodore {
return;
}
@@ -132,7 +132,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
if (modern) {
if (owner.equals("org/bukkit/Material") || (instantiatedMethodType != null && instantiatedMethodType.getDescriptor().startsWith("(Lorg/bukkit/Material;)"))) {
switch (name) {
-@@ -470,6 +553,13 @@ public class Commodore {
+@@ -471,6 +554,13 @@ public class Commodore {
@Override
public void visitLdcInsn(Object value) {
@@ -146,7 +146,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
if (value instanceof String && ((String) value).equals("com.mysql.jdbc.Driver")) {
super.visitLdcInsn("com.mysql.cj.jdbc.Driver");
return;
-@@ -480,6 +570,14 @@ public class Commodore {
+@@ -481,6 +571,14 @@ public class Commodore {
@Override
public void visitInvokeDynamicInsn(String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments) {
@@ -161,7 +161,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
if (bootstrapMethodHandle.getOwner().equals("java/lang/invoke/LambdaMetafactory")
&& bootstrapMethodHandle.getName().equals("metafactory") && bootstrapMethodArguments.length == 3) {
Type samMethodType = (Type) bootstrapMethodArguments[0];
-@@ -496,7 +594,7 @@ public class Commodore {
+@@ -497,7 +595,7 @@ public class Commodore {
methodArgs.add(new Handle(newOpcode, newOwner, newName, newDescription, newItf));
methodArgs.add(newInstantiated);
@@ -170,7 +170,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb
}, implMethod.getTag(), implMethod.getOwner(), implMethod.getName(), implMethod.getDesc(), implMethod.isInterface(), samMethodType, instantiatedMethodType);
return;
}
-@@ -547,6 +645,12 @@ public class Commodore {
+@@ -548,6 +646,12 @@ public class Commodore {
@Override
public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value) {
diff --git a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
index ed625b27de..a1af0e562f 100644
--- a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
+++ b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
@@ -645,10 +645,10 @@ index 242811578a786e3807a1a7019d472d5a68f87116..0b65fdf53124f3dd042b2363b1b8df8e
return traceElements;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 421ddf6ca955215dff77655a7eda62eb9d90aa92..8a1570ceb4755a1872911751943c84b8f06eb4c2 100644
+index ebc160fd4c8aed95087130bb6fddc1d4f83c6f87..65f64de05a88844e62b5a0dd1e2f53edfb4e0c1f 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -102,36 +102,26 @@ public class Commodore {
+@@ -103,36 +103,26 @@ public class Commodore {
private static final Map<String, RerouteMethodData> ENUM_METHOD_REROUTE = Commodore.createReroutes(EnumEvil.class);
// Paper start - Plugin rewrites
@@ -696,7 +696,7 @@ index 421ddf6ca955215dff77655a7eda62eb9d90aa92..8a1570ceb4755a1872911751943c84b8
}
// Paper end - Plugin rewrites
-@@ -214,6 +204,7 @@ public class Commodore {
+@@ -215,6 +205,7 @@ public class Commodore {
visitor = new LimitedClassRemapper(cw, new SimpleRemapper(Commodore.ENUM_RENAMES));
}
diff --git a/patches/server/0026-Support-components-in-ItemMeta.patch b/patches/server/0026-Support-components-in-ItemMeta.patch
index beae574f9a..680fd5d70f 100644
--- a/patches/server/0026-Support-components-in-ItemMeta.patch
+++ b/patches/server/0026-Support-components-in-ItemMeta.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Support components in ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9 100644
+index 568d6fab743039b20715d8181555f52baa05f0f3..7ae3cdb80335cbeb0ff695eb719a170651586722 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -969,11 +969,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -976,11 +976,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return CraftChatMessage.fromComponent(this.displayName);
}
@@ -32,7 +32,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d
@Override
public boolean hasDisplayName() {
return this.displayName != null;
-@@ -1147,6 +1159,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1154,6 +1166,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore == null ? null : new ArrayList<String>(Lists.transform(this.lore, CraftChatMessage::fromComponent));
}
@@ -47,7 +47,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d
@Override
public void setLore(List<String> lore) {
if (lore == null || lore.isEmpty()) {
-@@ -1161,6 +1181,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1168,6 +1188,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -69,7 +69,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d
@Override
public boolean hasCustomModelData() {
return this.customModelData != null;
-@@ -1873,6 +1908,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1880,6 +1915,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
for (Object object : addFrom) {
diff --git a/patches/server/0033-Expose-server-build-information.patch b/patches/server/0033-Expose-server-build-information.patch
index 2a0bceab6c..978c66d922 100644
--- a/patches/server/0033-Expose-server-build-information.patch
+++ b/patches/server/0033-Expose-server-build-information.patch
@@ -659,7 +659,7 @@ index acab477a4a026799319054c2eb4d0f2c99ab3d83..2a36e562967ec6174efe456e489c50ca
public List<CraftPlayer> getOnlinePlayers() {
return this.playerView;
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 1c8049bbc08be77673d375205bd42a346ff951b8..1aa75b11ee3297e379baa111cf53e1cfcd8b016e 100644
+index 8da38624b5867ce88bdb3036e1ed6d99fc626f31..2097be352dc585b805dc73194cec095627f311bc 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -15,6 +15,7 @@ import joptsimple.OptionSet;
@@ -670,7 +670,7 @@ index 1c8049bbc08be77673d375205bd42a346ff951b8..1aa75b11ee3297e379baa111cf53e1cf
public static boolean useJline = true;
public static boolean useConsole = true;
-@@ -252,15 +253,17 @@ public class Main {
+@@ -241,15 +242,17 @@ public class Main {
deadline.add(Calendar.DAY_OF_YEAR, -14);
if (buildDate.before(deadline.getTime())) {
System.err.println("*** Error, this build is outdated ***");
diff --git a/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch
index 17e1d51ed5..00c91ac5e5 100644
--- a/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch
@@ -149,7 +149,7 @@ index 17fa2d3db112762bcb8b941b69b8ddcc53f47224..6c76aeddb34239a5acc204a17b2aa2d8
static Map<Enchantment, Integer> getEnchantments(net.minecraft.world.item.ItemStack item) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4f983c0f3 100644
+index 7ae3cdb80335cbeb0ff695eb719a170651586722..97c40582bca095532fff9a81515f38ea4ac527e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
@@ -197,7 +197,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4
tag.entrySet().forEach((entry) -> {
Holder<net.minecraft.world.item.enchantment.Enchantment> id = entry.getKey();
-@@ -729,13 +731,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -736,13 +738,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return modifiers;
}
@@ -213,7 +213,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4
for (Map.Entry<?, ?> entry : ench.entrySet()) {
Enchantment enchantment = CraftEnchantment.stringToBukkit(entry.getKey().toString());
if ((enchantment != null) && (entry.getValue() instanceof Integer)) {
-@@ -1072,14 +1074,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1079,14 +1081,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public Map<Enchantment, Integer> getEnchants() {
@@ -230,7 +230,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4
}
if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
-@@ -1679,7 +1681,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1686,7 +1688,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.customModelData = this.customModelData;
clone.blockData = this.blockData;
if (this.enchantments != null) {
@@ -239,7 +239,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4
}
if (this.hasAttributeModifiers()) {
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -2028,4 +2030,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -2036,4 +2038,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return (result != null) ? result : Optional.empty();
}
diff --git a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
index fd354e6963..3ac4e0b315 100644
--- a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
+++ b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
@@ -59,10 +59,10 @@ index 64db7e017b41bffcaac202ee4ecfd7df46d69331..14a821bfc6b20475889d3138b8da9e6b
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 63e20db8ad84b332a4962d5cea83f1064b7c1a3d..bb296f649afd143adad47595479532cfdd778b71 100644
+index 78f4bb474c85e32448a385e108707d92082bfe02..b68068c783f782258f86e5ecf54664916f069e38 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1901,4 +1901,13 @@ public class CraftEventFactory {
+@@ -1915,4 +1915,13 @@ public class CraftEventFactory {
Bukkit.getPluginManager().callEvent(new EntityRemoveEvent(entity.getBukkitEntity(), cause));
}
diff --git a/patches/server/0108-Add-EntityZapEvent.patch b/patches/server/0108-Add-EntityZapEvent.patch
index 9349d4820b..3f2644e38f 100644
--- a/patches/server/0108-Add-EntityZapEvent.patch
+++ b/patches/server/0108-Add-EntityZapEvent.patch
@@ -28,10 +28,10 @@ index 63c10be6eacd7108b8b4795d76bf624e0614440a..243eb1e54293c763a06febff551c0513
entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null);
entitywitch.setNoAi(this.isNoAi());
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index bb296f649afd143adad47595479532cfdd778b71..5cf1b15160647b6e8e42a167502643882a231c55 100644
+index b68068c783f782258f86e5ecf54664916f069e38..44c416f812867f19a26aeefc5710a7aef9dfdf64 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1211,6 +1211,14 @@ public class CraftEventFactory {
+@@ -1215,6 +1215,14 @@ public class CraftEventFactory {
return !event.isCancelled();
}
diff --git a/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch
index d472f677f5..46f6c063c9 100644
--- a/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch
+++ b/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch
@@ -18,10 +18,10 @@ index 56402312e44d12c859e2c4b39902d31b7cfd1573..25a45e680f9fdea90f43d59de87a3a50
--this.count;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 5cf1b15160647b6e8e42a167502643882a231c55..6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb 100644
+index 44c416f812867f19a26aeefc5710a7aef9dfdf64..a83b7f350bf20f944de92df76e112aaa49dc608d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1164,6 +1164,17 @@ public class CraftEventFactory {
+@@ -1168,6 +1168,17 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0113-Add-ProjectileCollideEvent.patch b/patches/server/0113-Add-ProjectileCollideEvent.patch
index 867e422520..4a6b57dae0 100644
--- a/patches/server/0113-Add-ProjectileCollideEvent.patch
+++ b/patches/server/0113-Add-ProjectileCollideEvent.patch
@@ -6,13 +6,13 @@ Subject: [PATCH] Add ProjectileCollideEvent
Deprecated now and replaced with ProjectileHitEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb..50a4e657508e21717a61900660d85203d9373e19 100644
+index a83b7f350bf20f944de92df76e112aaa49dc608d..b5b237c56575e8ceb3e6471deec1e7712891a8e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1308,6 +1308,17 @@ public class CraftEventFactory {
- return CraftItemStack.asNMSCopy(bitem);
+@@ -1321,6 +1321,16 @@ public class CraftEventFactory {
+ Bukkit.getPluginManager().callEvent(crafterCraftEvent);
+ return crafterCraftEvent;
}
-
+ // Paper start
+ @Deprecated
+ public static com.destroystokyo.paper.event.entity.ProjectileCollideEvent callProjectileCollideEvent(Entity entity, EntityHitResult position) {
@@ -23,11 +23,10 @@ index 6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb..50a4e657508e21717a61900660d85203
+ return event;
+ }
+ // Paper end
-+
+
public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) {
Projectile bukkitEntity = (Projectile) entity.getBukkitEntity();
- ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity);
-@@ -1332,8 +1343,15 @@ public class CraftEventFactory {
+@@ -1346,8 +1356,15 @@ public class CraftEventFactory {
if (position.getType() == HitResult.Type.ENTITY) {
hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity();
}
diff --git a/patches/server/0146-Fix-this-stupid-bullshit.patch b/patches/server/0146-Fix-this-stupid-bullshit.patch
index 2e5a252a99..35f07c8aba 100644
--- a/patches/server/0146-Fix-this-stupid-bullshit.patch
+++ b/patches/server/0146-Fix-this-stupid-bullshit.patch
@@ -31,10 +31,10 @@ index 8f1992188f7fd9e735569e099b36a7eafed47aae..061c89b985dafc79c808dd5f0e296b9f
Bootstrap.isBootstrapped = true;
Instant instant = Instant.now();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index fcc7cdd0adfcaa135d08ea36746dca980590d6eb..4c8d98598b5cdcdbe4a778f1ec142e3a7ab33196 100644
+index 837db57c19df3d5c986a52edf3d9d8105cc87cde..446403f73fb1b5687d587889e6f32dce464d05a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
-@@ -260,10 +260,12 @@ public class Main {
+@@ -249,10 +249,12 @@ public class Main {
Calendar deadline = Calendar.getInstance();
deadline.add(Calendar.DAY_OF_YEAR, -14);
if (buildDate.before(deadline.getTime())) {
diff --git a/patches/server/0169-Add-ArmorStand-Item-Meta.patch b/patches/server/0169-Add-ArmorStand-Item-Meta.patch
index b6aa22ecaf..554e001492 100644
--- a/patches/server/0169-Add-ArmorStand-Item-Meta.patch
+++ b/patches/server/0169-Add-ArmorStand-Item-Meta.patch
@@ -13,7 +13,7 @@ starting point for future additions in this area.
Fixes GH-559
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
-index 85aab880fdb2f23d09096f8f2b1ede4f068fa023..4ae9930c2d74e5b1e3ad0c2ecf6556dc59cbf23c 100644
+index eef3517833ff5c0cf41b89973ebc972b8ed31e0f..c9fbc01be0b0e7fd1cafb091d06496f4ba1e7c2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
@@ -1,5 +1,6 @@
@@ -22,8 +22,8 @@ index 85aab880fdb2f23d09096f8f2b1ede4f068fa023..4ae9930c2d74e5b1e3ad0c2ecf6556dc
+import com.destroystokyo.paper.inventory.meta.ArmorStandMeta;
import java.util.function.BiFunction;
import java.util.function.Function;
- import net.minecraft.world.item.ItemStack;
-@@ -95,7 +96,7 @@ public final class CraftItemMetas {
+ import net.minecraft.world.item.BannerItem;
+@@ -102,7 +103,7 @@ public final class CraftItemMetas {
item -> new CraftMetaSpawnEgg(item.getComponentsPatch()),
(type, meta) -> meta instanceof CraftMetaSpawnEgg spawnEgg ? spawnEgg : new CraftMetaSpawnEgg(meta));
@@ -272,7 +272,7 @@ index c4f12f96e39cb6189799a796b4cb2cb4f0b92392..59bdac414e8205ed608f79ef0d1502ac
+ // Paper end
}
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
-index 99a555ca72cd95d760d68072242203deeddd0ce1..a1d8da4e0de3f84194f28d7d18fa795d53714590 100644
+index b46032190dbb0d47ee3c1a11959f6278ddf5eb5a..0715f43f3f8235d28a12b9d49d78c765a946c53f 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
@@ -364,6 +364,7 @@ public class ItemMetaTest extends AbstractTestingBase {
diff --git a/patches/server/0176-Player.setPlayerProfile-API.patch b/patches/server/0176-Player.setPlayerProfile-API.patch
index d847c9d191..21f5229b12 100644
--- a/patches/server/0176-Player.setPlayerProfile-API.patch
+++ b/patches/server/0176-Player.setPlayerProfile-API.patch
@@ -220,10 +220,10 @@ index 4602c3d0be94f0146a2b205268f70aaf85410f20..422c25577a0d95b31b5528fad8fc9b3a
public void onEntityRemove(Entity entity) {
this.invertedVisibilityEntities.remove(entity.getUUID());
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 8a1570ceb4755a1872911751943c84b8f06eb4c2..38339b8b1b3b70bbbf0259d7095b02ee8c22b609 100644
+index 65f64de05a88844e62b5a0dd1e2f53edfb4e0c1f..e1b86308f737b957b6d00bc902b91856694b7cbf 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -448,6 +448,13 @@ public class Commodore {
+@@ -449,6 +449,13 @@ public class Commodore {
}
// Paper end - Rewrite plugins
diff --git a/patches/server/0192-WitchReadyPotionEvent.patch b/patches/server/0192-WitchReadyPotionEvent.patch
index 8bbf7b47e0..56d606d8f3 100644
--- a/patches/server/0192-WitchReadyPotionEvent.patch
+++ b/patches/server/0192-WitchReadyPotionEvent.patch
@@ -22,10 +22,10 @@ index a14e00d55930628333cc63b18727ea56dbdc4ee3..f6d01d21745391595d61b191832be4c2
this.setUsingItem(true);
if (!this.isSilent()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 50a4e657508e21717a61900660d85203d9373e19..1c53b872b30bcd8535b8686015935025a4c9837f 100644
+index b5b237c56575e8ceb3e6471deec1e7712891a8e0..cfdabb93c2d30845af9108552ed9bee9929250ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1947,4 +1947,14 @@ public class CraftEventFactory {
+@@ -1960,4 +1960,14 @@ public class CraftEventFactory {
).callEvent();
}
// Paper end - PlayerUseUnknownEntityEvent
diff --git a/patches/server/0202-Add-entity-knockback-events.patch b/patches/server/0202-Add-entity-knockback-events.patch
index 2fa28dc910..19f7aa3388 100644
--- a/patches/server/0202-Add-entity-knockback-events.patch
+++ b/patches/server/0202-Add-entity-knockback-events.patch
@@ -273,10 +273,10 @@ index 6476c644d3da824c5ee4190cb45cde678ff1188f..a5f4ecb96c508b94a92a43c864c075f6
// CraftBukkit end
entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d1));
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 1c53b872b30bcd8535b8686015935025a4c9837f..0888692736ef62e741aa41d3a72b9b8c3075dfcd 100644
+index cfdabb93c2d30845af9108552ed9bee9929250ce..e1b7bd5c23ba79b84ad257b7fb45e251da3978e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1909,19 +1909,33 @@ public class CraftEventFactory {
+@@ -1922,19 +1922,33 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch
index 02104aa8f1..080360b9f4 100644
--- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch
@@ -96,7 +96,7 @@ index 72edfb965aca81c2d2442b794b42baa04ec713b3..a954d3b0ff0917d857002dba70c54b3f
this.player.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 9019e25f61d4fdb7c5d12ea7630b0bc23827ab6e..38cf3cf1cc7ebae4b6ca8a89dc026b5b4f0b4c2b 100644
+index 26cee48ea3650aaf87fd2ba9c70d4ca9a88e2d87..25dee4848c8b2cff74075c6d26d384e71f706627 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -510,7 +510,7 @@ public abstract class PlayerList {
@@ -178,10 +178,10 @@ index 326f36726c124385145c469566c2089439b5dd0f..0b4c5a2604f61a34b5666a9a83a2e644
// Check if the fromWorld and toWorld are the same.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0888692736ef62e741aa41d3a72b9b8c3075dfcd..7fa68654c2e0c87dd779a1354fc103be4d7d7a46 100644
+index e1b7bd5c23ba79b84ad257b7fb45e251da3978e5..ad271871b207b425ef8d599fe74a67d065d66686 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1277,7 +1277,7 @@ public class CraftEventFactory {
+@@ -1281,7 +1281,7 @@ public class CraftEventFactory {
public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) {
if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open
@@ -190,7 +190,7 @@ index 0888692736ef62e741aa41d3a72b9b8c3075dfcd..7fa68654c2e0c87dd779a1354fc103be
}
CraftServer server = player.level().getCraftServer();
-@@ -1464,8 +1464,18 @@ public class CraftEventFactory {
+@@ -1477,8 +1477,18 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0217-Vanished-players-don-t-have-rights.patch b/patches/server/0217-Vanished-players-don-t-have-rights.patch
index b81b6e54e3..3ee31bb1d3 100644
--- a/patches/server/0217-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0217-Vanished-players-don-t-have-rights.patch
@@ -89,10 +89,10 @@ index a9227581ec78a56e96dc3a342006e4a649906326..5929b450a26e7c3cf63de3dc1d0e67cb
public boolean isClientSide() {
return this.isClientSide;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7fa68654c2e0c87dd779a1354fc103be4d7d7a46..a221ae7ec1a7db9c38037fa71ea35b5309b99973 100644
+index ad271871b207b425ef8d599fe74a67d065d66686..d1b473ef83df0ed4ae7cd9dd0525dac5e8a41223 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1314,6 +1314,14 @@ public class CraftEventFactory {
+@@ -1327,6 +1327,14 @@ public class CraftEventFactory {
Projectile projectile = (Projectile) entity.getBukkitEntity();
org.bukkit.entity.Entity collided = position.getEntity().getBukkitEntity();
com.destroystokyo.paper.event.entity.ProjectileCollideEvent event = new com.destroystokyo.paper.event.entity.ProjectileCollideEvent(projectile, collided);
diff --git a/patches/server/0235-Optimize-CraftBlockData-Creation.patch b/patches/server/0235-Optimize-CraftBlockData-Creation.patch
index 8f037e052a..501971aa29 100644
--- a/patches/server/0235-Optimize-CraftBlockData-Creation.patch
+++ b/patches/server/0235-Optimize-CraftBlockData-Creation.patch
@@ -7,10 +7,10 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData
and cloning it when one is needed.
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 4ac248f9f5f4f7aa95ddd6e3c3dab1ce94e73d66..d02f7a547dbe8943f82c07103b1fff203e4533c2 100644
+index 59fcaca90b67c03e1a6799e58061dbae3b1f1ceb..46dd499c2023ec482ae7204d2894fb4100d9233b 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -813,6 +813,14 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -820,6 +820,14 @@ public abstract class BlockBehaviour implements FeatureElement {
this.instrument = blockbase_info.instrument;
this.replaceable = blockbase_info.replaceable;
}
diff --git a/patches/server/0243-Improve-death-events.patch b/patches/server/0243-Improve-death-events.patch
index ccf6f18a9d..235279b5fe 100644
--- a/patches/server/0243-Improve-death-events.patch
+++ b/patches/server/0243-Improve-death-events.patch
@@ -443,10 +443,10 @@ index 92f9502a2d5721ebb1757a069a0f138db66628d7..6c5bd88777ff79c7408cf5ffed0f099a
public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e3ac117d3 100644
+index d1b473ef83df0ed4ae7cd9dd0525dac5e8a41223..a9a2b35378d6654ba00a48737f596553445214aa 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -897,9 +897,16 @@ public class CraftEventFactory {
+@@ -901,9 +901,16 @@ public class CraftEventFactory {
CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource);
EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()));
@@ -463,7 +463,7 @@ index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e
victim.expToDrop = event.getDroppedExp();
for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {
-@@ -917,7 +924,14 @@ public class CraftEventFactory {
+@@ -921,7 +928,14 @@ public class CraftEventFactory {
PlayerDeathEvent event = new PlayerDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()), 0, deathMessage);
event.setKeepInventory(keepInventory);
event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel
@@ -478,7 +478,7 @@ index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e
victim.keepLevel = event.getKeepLevel();
victim.newLevel = event.getNewLevel();
-@@ -940,6 +954,31 @@ public class CraftEventFactory {
+@@ -944,6 +958,31 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0316-Improve-java-version-check.patch b/patches/server/0316-Improve-java-version-check.patch
index 4bd8947722..3d9eed5372 100644
--- a/patches/server/0316-Improve-java-version-check.patch
+++ b/patches/server/0316-Improve-java-version-check.patch
@@ -6,42 +6,31 @@ Subject: [PATCH] Improve java version check
Co-Authored-By: MiniDigger <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 8245b38d37b4cee6f4e7b61d7af40a18e54a3f43..e226eda5efc0e45e59cb5f6251ed008b67d5299a 100644
+index 446403f73fb1b5687d587889e6f32dce464d05a6..ed167d0d399924d54d9ff99c10ab8ee093efc149 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
-@@ -203,23 +203,27 @@ public class Main {
+@@ -203,11 +203,20 @@ public class Main {
return;
}
-+ // Paper start - Improve java version check
-+ boolean skip = Boolean.getBoolean("Paper.IgnoreJavaVersion");
- float javaVersion = Float.parseFloat(System.getProperty("java.class.version"));
-- if (javaVersion < 61.0) {
-- System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'.");
-- return;
-- }
+- float javaVersion = Float.parseFloat(System.getProperty("java.class.version"));
- if (javaVersion > 66.0) {
- System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 22 is supported.");
-+ boolean isOldVersion = javaVersion < 61.0;
-+ if (!skip && isOldVersion) {
-+ System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 21. Check your Java version with the command 'java -version'. For more info see https://docs.papermc.io/misc/java-install");
- return;
- }
- String javaVersionName = System.getProperty("java.version");
- // J2SE SDK/JRE Version String Naming Convention
- boolean isPreRelease = javaVersionName.contains("-");
-- if (isPreRelease && javaVersion == 61.0) {
-- System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an outdated, pre-release version. Only general availability versions of Java are supported. Please update your Java version.");
-+ if (!skip && isPreRelease) {
-+ System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an unsupported, non official, version. Only general availability versions of Java are supported. Please update your Java version. See https://docs.papermc.io/paper/faq#unsupported-java-detected-what-do-i-do for more information.");
- return;
- }
-
-+ if (skip && (isOldVersion || isPreRelease)) {
+- return;
++ // Paper start - Improve java version check
++ boolean skip = Boolean.getBoolean("Paper.IgnoreJavaVersion");
++ String javaVersionName = System.getProperty("java.version");
++ // J2SE SDK/JRE Version String Naming Convention
++ boolean isPreRelease = javaVersionName.contains("-");
++ if (isPreRelease) {
++ if (!skip) {
++ System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an unsupported, non official, version. Only general availability versions of Java are supported. Please update your Java version. See https://docs.papermc.io/paper/faq#unsupported-java-detected-what-do-i-do for more information.");
++ return;
++ }
++
+ System.err.println("Unsupported Java detected ("+ javaVersionName + "), but the check was skipped. Proceed with caution! ");
-+ }
+ }
+ // Paper end - Improve java version check
-+
+
try {
// Paper start - Handled by TerminalConsoleAppender
- /*
diff --git a/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch
index a80da71d1f..ca43013242 100644
--- a/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch
+++ b/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index d3baf38cf45d13eeffedcc697468842e3ac117d3..3ba695a29dcf9e7137dae16835e6f7a375d560f7 100644
+index a9a2b35378d6654ba00a48737f596553445214aa..7d21f3ec394b53461ca5fb73449b551fbe6e96aa 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -406,13 +406,18 @@ public class CraftEventFactory {
+@@ -410,13 +410,18 @@ public class CraftEventFactory {
}
org.bukkit.inventory.ItemStack item;
diff --git a/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch
index 9e2640a497..3482c69ed8 100644
--- a/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch
+++ b/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch
@@ -124,10 +124,10 @@ index 92bb0c63330ad3a4cb13b2dc655020714e9b1ffd..cc1189c2d7dc57ba8f29aad4ba5d2a07
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3ba695a29dcf9e7137dae16835e6f7a375d560f7..e0cbef395c479da40dc7079835f0eae1ee122da1 100644
+index 7d21f3ec394b53461ca5fb73449b551fbe6e96aa..408f677337759f529fa41f6ba2b516b71a7940f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -899,6 +899,11 @@ public class CraftEventFactory {
+@@ -903,6 +903,11 @@ public class CraftEventFactory {
}
public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, DamageSource damageSource, List<org.bukkit.inventory.ItemStack> drops) {
@@ -139,7 +139,7 @@ index 3ba695a29dcf9e7137dae16835e6f7a375d560f7..e0cbef395c479da40dc7079835f0eae1
CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource);
EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()));
-@@ -913,11 +918,13 @@ public class CraftEventFactory {
+@@ -917,11 +922,13 @@ public class CraftEventFactory {
playDeathSound(victim, event);
// Paper end
victim.expToDrop = event.getDroppedExp();
diff --git a/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch b/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch
index 4afcd62001..6d45bdaa2f 100644
--- a/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch
+++ b/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch
@@ -77,10 +77,10 @@ index 5a7d314ec0562e472f5dc45924a7b24841cff126..650e4a01cecc4cc08e7ff9ebcc4c3670
public java.util.UUID getTriggerEntityId() {
return getHandle().triggerEntityId;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e0cbef395c479da40dc7079835f0eae1ee122da1..ec364ab90df6276c1976e876337636f4bb06d097 100644
+index 408f677337759f529fa41f6ba2b516b71a7940f1..1177a9310f686f3b4d75a713cdac75c5628e8bbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -708,15 +708,29 @@ public class CraftEventFactory {
+@@ -712,15 +712,29 @@ public class CraftEventFactory {
if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) {
double radius = world.spigotConfig.expMerge;
if (radius > 0) {
diff --git a/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch b/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch
index 802f698e6f..680235a49a 100644
--- a/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch
+++ b/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockStateMeta#clearBlockState
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-index 80ace77a9b11d63a1b2271c868c59711f5d2f89d..4faada5f974214f3054dc1bec9c79e2600c8df48 100644
+index 301d883a7626e3abd222517400367fc40d6fa2bd..23dbc56edf0d16cf07ced2899942abae28397694 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-@@ -195,6 +195,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -198,6 +198,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
return this.blockEntityTag != null;
}
@@ -22,3 +22,21 @@ index 80ace77a9b11d63a1b2271c868c59711f5d2f89d..4faada5f974214f3054dc1bec9c79e26
@Override
public BlockState getBlockState() {
return (this.blockEntityTag != null) ? this.blockEntityTag.copy() : CraftMetaBlockState.getBlockState(this.material, null);
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+index 3542c6e72f5ff459d50b73fa210ea835f52dfa49..c8eec04685456d89cb41466cddcc3975d0ceeb29 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+@@ -257,6 +257,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ this.banner = (Banner) blockState;
+ }
+
++ // Paper start - add method to clear block state
++ @Override
++ public void clearBlockState() {
++ this.banner = null;
++ }
++ // Paper end - add method to clear block state
++
+ private static Banner getBlockState(DyeColor color) {
+ BlockPos pos = BlockPos.ZERO;
+ Material stateMaterial = CraftMetaShield.shieldToBannerHack(color);
diff --git a/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch
index b929596c4e..76437f1a9b 100644
--- a/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch
+++ b/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch
@@ -30,10 +30,10 @@ index de40e522960469b98f987bd688489740446d9f85..5678d2007d5adf45dec0638c5dd848b6
public CraftAttributeMap(AttributeMap handle) {
this.handle = handle;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 69be26f8f47854f39cfed0559d944ef4f983c0f3..0b87cfbdf039ee5bc017d2b1783c7c4853047952 100644
+index 97c40582bca095532fff9a81515f38ea4ac527e0..5c76ba7f9ceb285d27e18369172612205be96224 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -695,7 +695,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -702,7 +702,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
diff --git a/patches/server/0384-Add-PrepareResultEvent.patch b/patches/server/0384-Add-PrepareResultEvent.patch
index 05484fe151..24f55e8025 100644
--- a/patches/server/0384-Add-PrepareResultEvent.patch
+++ b/patches/server/0384-Add-PrepareResultEvent.patch
@@ -8,7 +8,7 @@ Adds a new event for all crafting stations that generate a result slot item
Anvil, Grindstone and Smithing now extend this event
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
-index c6ec9fc6ccde2a5c086a2bfe32686954c074c31d..7198dc9ffc9a37dab3654e12aa497c442a9993c5 100644
+index ffda2c984c5683edb38a56f04c53b0ea339e08fc..d685511104ac552dfc9ae2111e1bfb60fa812102 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -327,6 +327,7 @@ public class AnvilMenu extends ItemCombinerMenu {
@@ -56,7 +56,7 @@ index 62432c347b86fc79ab529a7dde66bef32d0424dd..be840717e180b6b5abd14db6cc926334
}
diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
-index fb7027985c6442fc50573e96031a05a3c64f4426..4bd720a97da27c4fd97788d4c504c0174f0f6c25 100644
+index 69ed0753c224cb7746762b4b94c4d79d608951b8..2de558dd205a1078fdcac1bce256d059b9bf5d5f 100644
--- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
@@ -249,7 +249,8 @@ public class LoomMenu extends AbstractContainerMenu {
@@ -82,7 +82,7 @@ index 0735705def4f9505b7f16df2497cc78bbf5a8373..86e51fcce767d265ee0d3beb611be211
@Override
diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
-index 04d9793a83c724350f74616558f650082f9805d9..bb29107cb15e2ec644a14cabb3cf91f4bde5471d 100644
+index 30ea1f9e97db86a2ad7baeea4f5a76c821874daa..5b4f03128499b0c1a4b8c5f5ccd17e4bdb391e81 100644
--- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
@@ -182,6 +182,7 @@ public class StonecutterMenu extends AbstractContainerMenu {
@@ -94,13 +94,13 @@ index 04d9793a83c724350f74616558f650082f9805d9..bb29107cb15e2ec644a14cabb3cf91f4
private static SingleRecipeInput createRecipeInput(Container inventory) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb0987222e4894a5 100644
+index 1177a9310f686f3b4d75a713cdac75c5628e8bbb..838ad7bc8a7488adf52d462e1a3f2faa275bebd0 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1666,6 +1666,12 @@ public class CraftEventFactory {
+@@ -1679,6 +1679,12 @@ public class CraftEventFactory {
}
- public static PrepareAnvilEvent callPrepareAnvilEvent(InventoryView view, ItemStack item) {
+ public static PrepareAnvilEvent callPrepareAnvilEvent(AnvilView view, ItemStack item) {
+ // Paper start - Add PrepareResultEvent
+ if (true) {
+ view.getTopInventory().setItem(net.minecraft.world.inventory.AnvilMenu.RESULT_SLOT, CraftItemStack.asCraftMirror(item));
@@ -110,7 +110,7 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722
PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item).clone());
event.getView().getPlayer().getServer().getPluginManager().callEvent(event);
event.getInventory().setItem(2, event.getResult());
-@@ -1673,6 +1679,12 @@ public class CraftEventFactory {
+@@ -1686,6 +1692,12 @@ public class CraftEventFactory {
}
public static PrepareGrindstoneEvent callPrepareGrindstoneEvent(InventoryView view, ItemStack item) {
@@ -123,7 +123,7 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722
PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item).clone());
event.getView().getPlayer().getServer().getPluginManager().callEvent(event);
event.getInventory().setItem(2, event.getResult());
-@@ -1680,12 +1692,39 @@ public class CraftEventFactory {
+@@ -1693,12 +1705,39 @@ public class CraftEventFactory {
}
public static PrepareSmithingEvent callPrepareSmithingEvent(InventoryView view, ItemStack item) {
@@ -145,8 +145,8 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722
+ InventoryView view = container.getBukkitView();
+ org.bukkit.inventory.ItemStack origItem = view.getTopInventory().getItem(resultSlot);
+ CraftItemStack result = origItem != null ? CraftItemStack.asCraftCopy(origItem) : null;
-+ if (view.getTopInventory() instanceof org.bukkit.inventory.AnvilInventory) {
-+ event = new PrepareAnvilEvent(view, result);
++ if (view.getTopInventory() instanceof org.bukkit.inventory.AnvilInventory && view instanceof AnvilView anvilView) {
++ event = new PrepareAnvilEvent(anvilView, result);
+ } else if (view.getTopInventory() instanceof org.bukkit.inventory.GrindstoneInventory) {
+ event = new PrepareGrindstoneEvent(view, result);
+ } else if (view.getTopInventory() instanceof org.bukkit.inventory.SmithingInventory) {
diff --git a/patches/server/0401-Add-BellRingEvent.patch b/patches/server/0401-Add-BellRingEvent.patch
index 934d70c696..1e306374a2 100644
--- a/patches/server/0401-Add-BellRingEvent.patch
+++ b/patches/server/0401-Add-BellRingEvent.patch
@@ -7,10 +7,10 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a
village bell. Passes along the bell block and the player who rang it.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3159e52006ad348bfce4905dcb0987222e4894a5..c803948c713fa898430f478dddfb2a75f6d355ef 100644
+index a3e359d174e4c175e49a6e7c03cbca0661cf8b34..2596159784a6ae0502b9a1b5a7cc573966021380 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -372,10 +372,11 @@ public class CraftEventFactory {
+@@ -376,10 +376,11 @@ public class CraftEventFactory {
return tradeSelectEvent;
}
diff --git a/patches/server/0406-Add-more-Evoker-API.patch b/patches/server/0405-Add-more-Evoker-API.patch
index f44eceff55..f44eceff55 100644
--- a/patches/server/0406-Add-more-Evoker-API.patch
+++ b/patches/server/0405-Add-more-Evoker-API.patch
diff --git a/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch
deleted file mode 100644
index 2a196acb45..0000000000
--- a/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mariell Hoversholm <[email protected]>
-Date: Fri, 21 Aug 2020 20:57:54 +0200
-Subject: [PATCH] PortalCreateEvent needs to know its entity
-
-
-diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index cc8825acea0d84b36194313656a6f70d8c049072..7f7445a2b68fd2e6e5fcd509d950a0f8d680c1fe 100644
---- a/src/main/java/net/minecraft/world/item/ItemStack.java
-+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
-@@ -522,7 +522,7 @@ public final class ItemStack implements DataComponentHolder {
- net.minecraft.world.level.block.state.BlockState block = world.getBlockState(newblockposition);
-
- if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically
-- block.onPlace(world, newblockposition, oldBlock, true);
-+ block.onPlace(world, newblockposition, oldBlock, true, context); // Paper - pass context
- }
-
- world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point
-diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-index e499a5eb843af3e2417bcb31add3c63443c0deff..993538f613e52ecd009f01e7b68fddba76b6a3e8 100644
---- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-@@ -144,12 +144,19 @@ public abstract class BaseFireBlock extends Block {
-
- @Override
- protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
-+ // Paper start - UseOnContext param
-+ this.onPlace(state, world, pos, oldState, notify, null);
-+ }
-+
-+ @Override
-+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, @javax.annotation.Nullable net.minecraft.world.item.context.UseOnContext context) {
-+ // Paper end - UseOnContext param
- if (!oldState.is(state.getBlock())) {
- if (BaseFireBlock.inPortalDimension(world)) {
- Optional<PortalShape> optional = PortalShape.findEmptyPortalShape(world, pos, Direction.Axis.X);
-
- if (optional.isPresent()) {
-- ((PortalShape) optional.get()).createPortalBlocks();
-+ ((PortalShape) optional.get()).createPortalBlocks(context); // Paper - pass context param
- return;
- }
- }
-diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java
-index ceaa2a7048afc4955d3695af5291e83a79d83c5d..5dad1aa26a8908cba6a08398a4bad27f31d4c2c0 100644
---- a/src/main/java/net/minecraft/world/level/block/FireBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java
-@@ -368,8 +368,10 @@ public class FireBlock extends BaseFireBlock {
- }
-
- @Override
-- protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
-- super.onPlace(state, world, pos, oldState, notify);
-+ // Paper start - UseOnContext param
-+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) {
-+ super.onPlace(state, world, pos, oldState, notify, context);
-+ // Paper end - UseOnContext param
- world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random));
- }
-
-diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 34f03184f018d00be7c5884f29f98a9ebe461475..6fe078fdf619c4df664f1dce6a0f5d202c21b35e 100644
---- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -154,6 +154,12 @@ public abstract class BlockBehaviour implements FeatureElement {
- DebugPackets.sendNeighborsUpdatePacket(world, pos);
- }
-
-+ // Paper start - UseOnContext param
-+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) {
-+ this.onPlace(state, world, pos, oldState, notify);
-+ }
-+ // Paper end - UseOnContext param
-+
- protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
- org.spigotmc.AsyncCatcher.catchOp("block onPlace"); // Spigot
- }
-@@ -1080,6 +1086,12 @@ public abstract class BlockBehaviour implements FeatureElement {
- this.getBlock().updateIndirectNeighbourShapes(this.asState(), world, pos, flags, maxUpdateDepth);
- }
-
-+ // Paper start
-+ public void onPlace(Level world, BlockPos pos, BlockState state, boolean notify, net.minecraft.world.item.context.UseOnContext context) {
-+ this.getBlock().onPlace(this.asState(), world, pos, state, notify, context);
-+ }
-+ // Paper end
-+
- public void onPlace(Level world, BlockPos pos, BlockState state, boolean notify) {
- this.getBlock().onPlace(this.asState(), world, pos, state, notify);
- }
-diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
-index bb22b12b05de29bed00e433630c91f233fa9a366..57139a0b8adcd1ea25cd100be78402681856ee75 100644
---- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java
-+++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java
-@@ -189,7 +189,14 @@ public class PortalShape {
- }
-
- // CraftBukkit start - return boolean
-+ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper
- public boolean createPortalBlocks() {
-+ // Paper start - UseOnContext param
-+ return this.createPortalBlocks(null);
-+ }
-+
-+ public boolean createPortalBlocks(@Nullable net.minecraft.world.item.context.UseOnContext useOnContext) {
-+ // Paper end - UseOnContext param
- org.bukkit.World bworld = this.level.getMinecraftWorld().getWorld();
-
- // Copy below for loop
-@@ -199,7 +206,7 @@ public class PortalShape {
- this.blocks.setBlock(blockposition, iblockdata, 18);
- });
-
-- PortalCreateEvent event = new PortalCreateEvent((java.util.List<org.bukkit.block.BlockState>) (java.util.List) this.blocks.getList(), bworld, null, PortalCreateEvent.CreateReason.FIRE);
-+ PortalCreateEvent event = new PortalCreateEvent((java.util.List<org.bukkit.block.BlockState>) (java.util.List) blocks.getList(), bworld, useOnContext == null || useOnContext.getPlayer() == null ? null : useOnContext.getPlayer().getBukkitEntity(), PortalCreateEvent.CreateReason.FIRE); // Paper - pass entity param
- this.level.getMinecraftWorld().getServer().server.getPluginManager().callEvent(event);
-
- if (event.isCancelled()) {
diff --git a/patches/server/0407-Add-methods-to-get-translation-keys.patch b/patches/server/0406-Add-methods-to-get-translation-keys.patch
index b6719466b9..b6719466b9 100644
--- a/patches/server/0407-Add-methods-to-get-translation-keys.patch
+++ b/patches/server/0406-Add-methods-to-get-translation-keys.patch
diff --git a/patches/server/0408-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0407-Create-HoverEvent-from-ItemStack-Entity.patch
index 081d6c07e5..081d6c07e5 100644
--- a/patches/server/0408-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/server/0407-Create-HoverEvent-from-ItemStack-Entity.patch
diff --git a/patches/server/0409-Cache-block-data-strings.patch b/patches/server/0408-Cache-block-data-strings.patch
index 28a1635b20..28a1635b20 100644
--- a/patches/server/0409-Cache-block-data-strings.patch
+++ b/patches/server/0408-Cache-block-data-strings.patch
diff --git a/patches/server/0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index be1b5bc114..be1b5bc114 100644
--- a/patches/server/0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
diff --git a/patches/server/0411-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0410-Add-additional-open-container-api-to-HumanEntity.patch
index be29dd6b1c..be29dd6b1c 100644
--- a/patches/server/0411-Add-additional-open-container-api-to-HumanEntity.patch
+++ b/patches/server/0410-Add-additional-open-container-api-to-HumanEntity.patch
diff --git a/patches/server/0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
index 9a0c6f1492..9a0c6f1492 100644
--- a/patches/server/0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
+++ b/patches/server/0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
diff --git a/patches/server/0413-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0412-Extend-block-drop-capture-to-capture-all-items-added.patch
index 9cb478d120..9cb478d120 100644
--- a/patches/server/0413-Extend-block-drop-capture-to-capture-all-items-added.patch
+++ b/patches/server/0412-Extend-block-drop-capture-to-capture-all-items-added.patch
diff --git a/patches/server/0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index 2162c250c9..2162c250c9 100644
--- a/patches/server/0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/server/0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
diff --git a/patches/server/0415-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0414-Lazily-track-plugin-scoreboards-by-default.patch
index 28ae9df043..28ae9df043 100644
--- a/patches/server/0415-Lazily-track-plugin-scoreboards-by-default.patch
+++ b/patches/server/0414-Lazily-track-plugin-scoreboards-by-default.patch
diff --git a/patches/server/0416-Entity-isTicking.patch b/patches/server/0415-Entity-isTicking.patch
index 30e4fbdfe9..30e4fbdfe9 100644
--- a/patches/server/0416-Entity-isTicking.patch
+++ b/patches/server/0415-Entity-isTicking.patch
diff --git a/patches/server/0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
index 18a0880395..18a0880395 100644
--- a/patches/server/0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
+++ b/patches/server/0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
diff --git a/patches/server/0418-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0417-Fix-Concurrency-issue-in-ShufflingList.patch
index f04a40e1ac..f04a40e1ac 100644
--- a/patches/server/0418-Fix-Concurrency-issue-in-ShufflingList.patch
+++ b/patches/server/0417-Fix-Concurrency-issue-in-ShufflingList.patch
diff --git a/patches/server/0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch
index f727c2200f..f727c2200f 100644
--- a/patches/server/0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch
+++ b/patches/server/0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch
diff --git a/patches/server/0420-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch
index e987725d68..e987725d68 100644
--- a/patches/server/0420-Fix-for-large-move-vectors-crashing-server.patch
+++ b/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch
diff --git a/patches/server/0421-Optimise-getType-calls.patch b/patches/server/0420-Optimise-getType-calls.patch
index 1b14b0202b..1b14b0202b 100644
--- a/patches/server/0421-Optimise-getType-calls.patch
+++ b/patches/server/0420-Optimise-getType-calls.patch
diff --git a/patches/server/0422-Villager-resetOffers.patch b/patches/server/0421-Villager-resetOffers.patch
index 77f071ec77..77f071ec77 100644
--- a/patches/server/0422-Villager-resetOffers.patch
+++ b/patches/server/0421-Villager-resetOffers.patch
diff --git a/patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch
index e7d46e41eb..bac1a1074b 100644
--- a/patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch
+++ b/patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch
@@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling
cases where a captured entry is overriden) - but for now this will do.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 5a3a89c568d42a2adbc2b6e2631fd4b70e54f0bf..cfd5d3e50197b38d0ffef6debbb7f5b4b208382a 100644
+index 60b04a16c6cb0a7109bda5c16e23c1d56ab7afad..144d243e0d6ba3ae3f0b0bf457fa516e2b4f416f 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -152,7 +152,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0424-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0423-Fix-item-locations-dropped-from-campfires.patch
index 26a43eb186..26a43eb186 100644
--- a/patches/server/0424-Fix-item-locations-dropped-from-campfires.patch
+++ b/patches/server/0423-Fix-item-locations-dropped-from-campfires.patch
diff --git a/patches/server/0425-Fix-bell-block-entity-memory-leak.patch b/patches/server/0424-Fix-bell-block-entity-memory-leak.patch
index 5343b073cd..5343b073cd 100644
--- a/patches/server/0425-Fix-bell-block-entity-memory-leak.patch
+++ b/patches/server/0424-Fix-bell-block-entity-memory-leak.patch
diff --git a/patches/server/0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
index 6ab78855c4..6ab78855c4 100644
--- a/patches/server/0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
+++ b/patches/server/0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
diff --git a/patches/server/0427-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0426-Add-getOfflinePlayerIfCached-String.patch
index 31066c85a1..31066c85a1 100644
--- a/patches/server/0427-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/server/0426-Add-getOfflinePlayerIfCached-String.patch
diff --git a/patches/server/0428-Add-ignore-discounts-API.patch b/patches/server/0427-Add-ignore-discounts-API.patch
index 5a2d4be36b..5a2d4be36b 100644
--- a/patches/server/0428-Add-ignore-discounts-API.patch
+++ b/patches/server/0427-Add-ignore-discounts-API.patch
diff --git a/patches/server/0429-Toggle-for-removing-existing-dragon.patch b/patches/server/0428-Toggle-for-removing-existing-dragon.patch
index 1bfa511969..1bfa511969 100644
--- a/patches/server/0429-Toggle-for-removing-existing-dragon.patch
+++ b/patches/server/0428-Toggle-for-removing-existing-dragon.patch
diff --git a/patches/server/0430-Fix-client-lag-on-advancement-loading.patch b/patches/server/0429-Fix-client-lag-on-advancement-loading.patch
index 80a48d30b1..f93c34b2cb 100644
--- a/patches/server/0430-Fix-client-lag-on-advancement-loading.patch
+++ b/patches/server/0429-Fix-client-lag-on-advancement-loading.patch
@@ -15,7 +15,7 @@ manually reload the advancement data for all players, which
normally takes place as a part of the datapack reloading.
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 22fc5bf2024f70f85cc278ddd374bff0a6d626fa..12c4f68623119427a30c1eec28b4aff0400aa8c0 100644
+index 2979277847635c0bef54d06be30e5051557cc5e9..5fe9b94c342a91d6fb3bc582ac7e84cb25b90a9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -317,7 +317,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/server/0431-Item-no-age-no-player-pickup.patch b/patches/server/0430-Item-no-age-no-player-pickup.patch
index 1fffbaf558..1fffbaf558 100644
--- a/patches/server/0431-Item-no-age-no-player-pickup.patch
+++ b/patches/server/0430-Item-no-age-no-player-pickup.patch
diff --git a/patches/server/0432-Beacon-API-custom-effect-ranges.patch b/patches/server/0431-Beacon-API-custom-effect-ranges.patch
index b80f1772cd..b80f1772cd 100644
--- a/patches/server/0432-Beacon-API-custom-effect-ranges.patch
+++ b/patches/server/0431-Beacon-API-custom-effect-ranges.patch
diff --git a/patches/server/0433-Add-API-for-quit-reason.patch b/patches/server/0432-Add-API-for-quit-reason.patch
index 6a3fe2a2e8..22a6ea3114 100644
--- a/patches/server/0433-Add-API-for-quit-reason.patch
+++ b/patches/server/0432-Add-API-for-quit-reason.patch
@@ -52,7 +52,7 @@ index a3c67bdc2c08b3550534f37d15b0db90b479e34f..24bf661e76fb421a8be565d9ea68edf7
this.connection.disconnect(disconnectiondetails);
}));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 51426da5f3e7b9f8631880a04cef0a58b00233df..ec080eb8e3930b6c5cc08c3061535b379a99a7d1 100644
+index c322d8284b4d17d6b9a949d85849892d7c88817e..f11309e0a067546aa5b14272156087664dbdd021 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -570,7 +570,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0434-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0433-Add-Wandering-Trader-spawn-rate-config-options.patch
index 98525387d7..98525387d7 100644
--- a/patches/server/0434-Add-Wandering-Trader-spawn-rate-config-options.patch
+++ b/patches/server/0433-Add-Wandering-Trader-spawn-rate-config-options.patch
diff --git a/patches/server/0435-Add-Destroy-Speed-API.patch b/patches/server/0434-Add-Destroy-Speed-API.patch
index 43e752ecb5..43e752ecb5 100644
--- a/patches/server/0435-Add-Destroy-Speed-API.patch
+++ b/patches/server/0434-Add-Destroy-Speed-API.patch
diff --git a/patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 60ac65b823..ed356df971 100644
--- a/patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 99799563942693ae36188092d76054fdff97d4ca..766242aa6930b37630be77e421b4b5675c5feb0d 100644
+index 1292e7b9889777448b728ef3bb3ae4cb25d42d61..a3b1a19fb28dfba93ae04ea0859f744ede1579f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2707,7 +2707,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0437-Add-LivingEntity-clearActiveItem.patch b/patches/server/0436-Add-LivingEntity-clearActiveItem.patch
index a5b17788b8..a5b17788b8 100644
--- a/patches/server/0437-Add-LivingEntity-clearActiveItem.patch
+++ b/patches/server/0436-Add-LivingEntity-clearActiveItem.patch
diff --git a/patches/server/0438-Add-PlayerItemCooldownEvent.patch b/patches/server/0437-Add-PlayerItemCooldownEvent.patch
index 4b90903dd2..4b90903dd2 100644
--- a/patches/server/0438-Add-PlayerItemCooldownEvent.patch
+++ b/patches/server/0437-Add-PlayerItemCooldownEvent.patch
diff --git a/patches/server/0439-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0438-Significantly-improve-performance-of-the-end-generat.patch
index ed3ee50bc9..ed3ee50bc9 100644
--- a/patches/server/0439-Significantly-improve-performance-of-the-end-generat.patch
+++ b/patches/server/0438-Significantly-improve-performance-of-the-end-generat.patch
diff --git a/patches/server/0440-More-lightning-API.patch b/patches/server/0439-More-lightning-API.patch
index 967871902a..967871902a 100644
--- a/patches/server/0440-More-lightning-API.patch
+++ b/patches/server/0439-More-lightning-API.patch
diff --git a/patches/server/0441-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0440-Climbing-should-not-bypass-cramming-gamerule.patch
index b5661df64e..b5661df64e 100644
--- a/patches/server/0441-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0440-Climbing-should-not-bypass-cramming-gamerule.patch
diff --git a/patches/server/0442-Add-missing-default-perms-for-commands.patch b/patches/server/0441-Add-missing-default-perms-for-commands.patch
index d49628ee32..d49628ee32 100644
--- a/patches/server/0442-Add-missing-default-perms-for-commands.patch
+++ b/patches/server/0441-Add-missing-default-perms-for-commands.patch
diff --git a/patches/server/0443-Add-PlayerShearBlockEvent.patch b/patches/server/0442-Add-PlayerShearBlockEvent.patch
index c659b655c0..c659b655c0 100644
--- a/patches/server/0443-Add-PlayerShearBlockEvent.patch
+++ b/patches/server/0442-Add-PlayerShearBlockEvent.patch
diff --git a/patches/server/0444-Limit-recipe-packets.patch b/patches/server/0443-Limit-recipe-packets.patch
index f880991f70..f880991f70 100644
--- a/patches/server/0444-Limit-recipe-packets.patch
+++ b/patches/server/0443-Limit-recipe-packets.patch
diff --git a/patches/server/0445-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0444-Fix-CraftSound-backwards-compatibility.patch
index 9ca7f86992..9ca7f86992 100644
--- a/patches/server/0445-Fix-CraftSound-backwards-compatibility.patch
+++ b/patches/server/0444-Fix-CraftSound-backwards-compatibility.patch
diff --git a/patches/server/0446-Player-Chunk-Load-Unload-Events.patch b/patches/server/0445-Player-Chunk-Load-Unload-Events.patch
index 0fee853cd3..0fee853cd3 100644
--- a/patches/server/0446-Player-Chunk-Load-Unload-Events.patch
+++ b/patches/server/0445-Player-Chunk-Load-Unload-Events.patch
diff --git a/patches/server/0447-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0446-Optimize-Dynamic-get-Missing-Keys.patch
index e8bbac8b76..e8bbac8b76 100644
--- a/patches/server/0447-Optimize-Dynamic-get-Missing-Keys.patch
+++ b/patches/server/0446-Optimize-Dynamic-get-Missing-Keys.patch
diff --git a/patches/server/0448-Expose-LivingEntity-hurt-direction.patch b/patches/server/0447-Expose-LivingEntity-hurt-direction.patch
index f43a7b04aa..f43a7b04aa 100644
--- a/patches/server/0448-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/server/0447-Expose-LivingEntity-hurt-direction.patch
diff --git a/patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index 5affb3e4f5..e2b1ac7753 100644
--- a/patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index c803948c713fa898430f478dddfb2a75f6d355ef..21c8dcf66847c83f38b57a592cf3b58a68a5657f 100644
+index 2596159784a6ae0502b9a1b5a7cc573966021380..2be5135d3e17c3344ffbdb3f2f55d45eb6753c61 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -307,6 +307,10 @@ public class CraftEventFactory {
+@@ -311,6 +311,10 @@ public class CraftEventFactory {
return BedEnterResult.TOO_FAR_AWAY;
case NOT_SAFE:
return BedEnterResult.NOT_SAFE;
diff --git a/patches/server/0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch
index 4186b39237..4186b39237 100644
--- a/patches/server/0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch
+++ b/patches/server/0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch
diff --git a/patches/server/0451-Add-TargetHitEvent.patch b/patches/server/0450-Add-TargetHitEvent.patch
index 816c525fd2..816c525fd2 100644
--- a/patches/server/0451-Add-TargetHitEvent.patch
+++ b/patches/server/0450-Add-TargetHitEvent.patch
diff --git a/patches/server/0452-MC-4-Fix-item-position-desync.patch b/patches/server/0451-MC-4-Fix-item-position-desync.patch
index cd26c40293..cd26c40293 100644
--- a/patches/server/0452-MC-4-Fix-item-position-desync.patch
+++ b/patches/server/0451-MC-4-Fix-item-position-desync.patch
diff --git a/patches/server/0453-Additional-Block-Material-API.patch b/patches/server/0452-Additional-Block-Material-API.patch
index 81728edf48..81728edf48 100644
--- a/patches/server/0453-Additional-Block-Material-API.patch
+++ b/patches/server/0452-Additional-Block-Material-API.patch
diff --git a/patches/server/0454-Fix-harming-potion-dupe.patch b/patches/server/0453-Fix-harming-potion-dupe.patch
index b184bf641c..b184bf641c 100644
--- a/patches/server/0454-Fix-harming-potion-dupe.patch
+++ b/patches/server/0453-Fix-harming-potion-dupe.patch
diff --git a/patches/server/0455-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0454-API-to-get-Material-from-Boats-and-Minecarts.patch
index 9bcb17ad14..9bcb17ad14 100644
--- a/patches/server/0455-API-to-get-Material-from-Boats-and-Minecarts.patch
+++ b/patches/server/0454-API-to-get-Material-from-Boats-and-Minecarts.patch
diff --git a/patches/server/0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
index da8441444c..da8441444c 100644
--- a/patches/server/0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
+++ b/patches/server/0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
diff --git a/patches/server/0457-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0456-Fix-Not-a-string-Map-Conversion-spam.patch
index 5b2328afe8..5b2328afe8 100644
--- a/patches/server/0457-Fix-Not-a-string-Map-Conversion-spam.patch
+++ b/patches/server/0456-Fix-Not-a-string-Map-Conversion-spam.patch
diff --git a/patches/server/0458-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0457-Add-PlayerFlowerPotManipulateEvent.patch
index 8b61833059..8b61833059 100644
--- a/patches/server/0458-Add-PlayerFlowerPotManipulateEvent.patch
+++ b/patches/server/0457-Add-PlayerFlowerPotManipulateEvent.patch
diff --git a/patches/server/0459-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch
index 50b8b7414c..50b8b7414c 100644
--- a/patches/server/0459-Fix-interact-event-not-being-called-sometimes.patch
+++ b/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch
diff --git a/patches/server/0460-Zombie-API-breaking-doors.patch b/patches/server/0459-Zombie-API-breaking-doors.patch
index 50bb6965cf..50bb6965cf 100644
--- a/patches/server/0460-Zombie-API-breaking-doors.patch
+++ b/patches/server/0459-Zombie-API-breaking-doors.patch
diff --git a/patches/server/0461-Fix-nerfed-slime-when-splitting.patch b/patches/server/0460-Fix-nerfed-slime-when-splitting.patch
index a32a88f5ad..a32a88f5ad 100644
--- a/patches/server/0461-Fix-nerfed-slime-when-splitting.patch
+++ b/patches/server/0460-Fix-nerfed-slime-when-splitting.patch
diff --git a/patches/server/0462-Add-EntityLoadCrossbowEvent.patch b/patches/server/0461-Add-EntityLoadCrossbowEvent.patch
index a2f95139f8..a2f95139f8 100644
--- a/patches/server/0462-Add-EntityLoadCrossbowEvent.patch
+++ b/patches/server/0461-Add-EntityLoadCrossbowEvent.patch
diff --git a/patches/server/0463-Add-WorldGameRuleChangeEvent.patch b/patches/server/0462-Add-WorldGameRuleChangeEvent.patch
index 737b50a1b8..737b50a1b8 100644
--- a/patches/server/0463-Add-WorldGameRuleChangeEvent.patch
+++ b/patches/server/0462-Add-WorldGameRuleChangeEvent.patch
diff --git a/patches/server/0464-Add-ServerResourcesReloadedEvent.patch b/patches/server/0463-Add-ServerResourcesReloadedEvent.patch
index 8996d46e70..8996d46e70 100644
--- a/patches/server/0464-Add-ServerResourcesReloadedEvent.patch
+++ b/patches/server/0463-Add-ServerResourcesReloadedEvent.patch
diff --git a/patches/server/0465-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0464-Add-world-settings-for-mobs-picking-up-loot.patch
index a6e23dc931..a6e23dc931 100644
--- a/patches/server/0465-Add-world-settings-for-mobs-picking-up-loot.patch
+++ b/patches/server/0464-Add-world-settings-for-mobs-picking-up-loot.patch
diff --git a/patches/server/0466-Add-BlockFailedDispenseEvent.patch b/patches/server/0465-Add-BlockFailedDispenseEvent.patch
index 835b80d34d..2b4d4bdeac 100644
--- a/patches/server/0466-Add-BlockFailedDispenseEvent.patch
+++ b/patches/server/0465-Add-BlockFailedDispenseEvent.patch
@@ -20,7 +20,7 @@ index c7256ffbe57c594556ee85134c9ab166f8c0e0c7..94bcbaf7daf7dfe566f508d1170a4339
ItemStack itemstack = tileentitydispenser.getItem(i);
DispenseItemBehavior idispensebehavior = this.getDispenseMethod(world, itemstack);
diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
-index a1599eae0d8e9f0298fc6996ad03b0d6ba78f04f..083ddfb8fffa04dad6eeca2274f290a08e62b5eb 100644
+index a08e8571f3a83afc80c2f1758a9029cd28ed6947..91b514967405115f22edf4255775361a672e5c2f 100644
--- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
@@ -60,6 +60,7 @@ public class DropperBlock extends DispenserBlock {
@@ -32,10 +32,10 @@ index a1599eae0d8e9f0298fc6996ad03b0d6ba78f04f..083ddfb8fffa04dad6eeca2274f290a0
} else {
ItemStack itemstack = tileentitydispenser.getItem(i);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 21c8dcf66847c83f38b57a592cf3b58a68a5657f..19ca8953facd69a5720652c3bcf1e1e3be34a3a3 100644
+index 2be5135d3e17c3344ffbdb3f2f55d45eb6753c61..c01d4302e145c779cc4031927ab555e1c7748155 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2098,4 +2098,12 @@ public class CraftEventFactory {
+@@ -2111,4 +2111,12 @@ public class CraftEventFactory {
return org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion());
}
// Paper end - WitchReadyPotionEvent
diff --git a/patches/server/0467-Add-PlayerLecternPageChangeEvent.patch b/patches/server/0466-Add-PlayerLecternPageChangeEvent.patch
index 2e62d2becf..15052d962d 100644
--- a/patches/server/0467-Add-PlayerLecternPageChangeEvent.patch
+++ b/patches/server/0466-Add-PlayerLecternPageChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerLecternPageChangeEvent
diff --git a/src/main/java/net/minecraft/world/inventory/LecternMenu.java b/src/main/java/net/minecraft/world/inventory/LecternMenu.java
-index 19858ecd7cfaaf0fb09552292bf573bb02b3a6ec..ccba06c419732c63f6b255f5f8c1f7a95f3ecbee 100644
+index 1b3119751617366cf753008d38be566cd7ee2453..df4ae5d37b9aa5b8fb26c5773a47a5a85f831982 100644
--- a/src/main/java/net/minecraft/world/inventory/LecternMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/LecternMenu.java
@@ -64,6 +64,7 @@ public class LecternMenu extends AbstractContainerMenu {
diff --git a/patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch b/patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch
index 4d74c20681..fbbc2f6ae8 100644
--- a/patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch
+++ b/patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerLoomPatternSelectEvent
diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
-index 4bd720a97da27c4fd97788d4c504c0174f0f6c25..72ad78659a373213ed1f37498754adaf18f1f68b 100644
+index 2de558dd205a1078fdcac1bce256d059b9bf5d5f..f76ef029132c6a08d4e70585bc440eccdc626b16 100644
--- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
@@ -174,8 +174,32 @@ public class LoomMenu extends AbstractContainerMenu {
diff --git a/patches/server/0469-Configurable-door-breaking-difficulty.patch b/patches/server/0468-Configurable-door-breaking-difficulty.patch
index 679bb5f5e7..679bb5f5e7 100644
--- a/patches/server/0469-Configurable-door-breaking-difficulty.patch
+++ b/patches/server/0468-Configurable-door-breaking-difficulty.patch
diff --git a/patches/server/0470-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0469-Empty-commands-shall-not-be-dispatched.patch
index f58be08904..f58be08904 100644
--- a/patches/server/0470-Empty-commands-shall-not-be-dispatched.patch
+++ b/patches/server/0469-Empty-commands-shall-not-be-dispatched.patch
diff --git a/patches/server/0471-Remove-stale-POIs.patch b/patches/server/0470-Remove-stale-POIs.patch
index 02c2f1843b..02c2f1843b 100644
--- a/patches/server/0471-Remove-stale-POIs.patch
+++ b/patches/server/0470-Remove-stale-POIs.patch
diff --git a/patches/server/0472-Fix-villager-boat-exploit.patch b/patches/server/0471-Fix-villager-boat-exploit.patch
index 8f9249892b..e835b1ee94 100644
--- a/patches/server/0472-Fix-villager-boat-exploit.patch
+++ b/patches/server/0471-Fix-villager-boat-exploit.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ec080eb8e3930b6c5cc08c3061535b379a99a7d1..846132dad557b04a3d52184cfb1c0dd35673f8c6 100644
+index f11309e0a067546aa5b14272156087664dbdd021..44422100246a61f8353f26d5149f3e96c8832fea 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -595,6 +595,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0473-Add-sendOpLevel-API.patch b/patches/server/0472-Add-sendOpLevel-API.patch
index 25dff52343..d1c8e24cc4 100644
--- a/patches/server/0473-Add-sendOpLevel-API.patch
+++ b/patches/server/0472-Add-sendOpLevel-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 846132dad557b04a3d52184cfb1c0dd35673f8c6..5100b2d00452f97849239ca32164eed4345e4024 100644
+index 44422100246a61f8353f26d5149f3e96c8832fea..3c7d31725c4a5dd7728fa394f88d37a0e493e919 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1062,6 +1062,11 @@ public abstract class PlayerList {
@@ -32,7 +32,7 @@ index 846132dad557b04a3d52184cfb1c0dd35673f8c6..5100b2d00452f97849239ca32164eed4
public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 766242aa6930b37630be77e421b4b5675c5feb0d..7652da85170cd5a64d1b443430b85c388e2939a9 100644
+index a3b1a19fb28dfba93ae04ea0859f744ede1579f6..963ae66acc25602e15134d30d3e496802b17dc41 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -677,6 +677,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch b/patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch
index 1c7e1f531e..0ee306bcf5 100644
--- a/patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch
+++ b/patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch
@@ -12,10 +12,10 @@ public net.minecraft.server.RegistryLayer STATIC_ACCESS
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
new file mode 100644
-index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef7deb3d97
+index 0000000000000000000000000000000000000000..675f5d03478907e3d8284cbea191f01c1eb15769
--- /dev/null
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
-@@ -0,0 +1,141 @@
+@@ -0,0 +1,143 @@
+package io.papermc.paper.registry;
+
+import io.papermc.paper.adventure.PaperAdventure;
@@ -35,10 +35,12 @@ index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef
+import org.bukkit.Keyed;
+import org.bukkit.MusicInstrument;
+import org.bukkit.block.BlockType;
++import org.bukkit.block.banner.PatternType;
+import org.bukkit.craftbukkit.CraftGameEvent;
+import org.bukkit.craftbukkit.CraftJukeboxSong;
+import org.bukkit.craftbukkit.CraftMusicInstrument;
+import org.bukkit.craftbukkit.block.CraftBlockType;
++import org.bukkit.craftbukkit.block.banner.CraftPatternType;
+import org.bukkit.craftbukkit.damage.CraftDamageType;
+import org.bukkit.craftbukkit.enchantments.CraftEnchantment;
+import org.bukkit.craftbukkit.entity.CraftCat;
@@ -102,12 +104,12 @@ index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef
+ entry(Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, Wolf.Variant.class, CraftWolf.CraftVariant::new).delayed(),
+ entry(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(),
+ entry(Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, JukeboxSong.class, CraftJukeboxSong::new).delayed(),
++ entry(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, PatternType.class, CraftPatternType::new).delayed(),
+
+ // api-only
+ apiOnly(Registries.BIOME, RegistryKey.BIOME, () -> org.bukkit.Registry.BIOME),
+ apiOnly(Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT, () -> org.bukkit.Registry.ART),
+ apiOnly(Registries.ATTRIBUTE, RegistryKey.ATTRIBUTE, () -> org.bukkit.Registry.ATTRIBUTE),
-+ apiOnly(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, () -> org.bukkit.Registry.BANNER_PATTERN),
+ apiOnly(Registries.ENTITY_TYPE, RegistryKey.ENTITY_TYPE, () -> org.bukkit.Registry.ENTITY_TYPE),
+ apiOnly(Registries.PARTICLE_TYPE, RegistryKey.PARTICLE_TYPE, () -> org.bukkit.Registry.PARTICLE_TYPE),
+ apiOnly(Registries.POTION, RegistryKey.POTION, () -> org.bukkit.Registry.POTION),
@@ -727,10 +729,10 @@ index 1dd22f11b7e2983a3069dea94c0f02b43ff1f736..397bdacab9517354875ebc0bc68d3505
String string = Registries.elementsDirPath(type.registryKey());
SimpleJsonResourceReloadListener.scanDirectory(resourceManager, string, GSON, map);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e7192670eaf869e 100644
+index a9832482500f08df30568ecbc65e4496ee01b414..154733684a53ff84ca8c2a994b96b68733e9fba5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -118,75 +118,12 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -120,78 +120,12 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+ ", this can happen if a plugin creates its own registry entry with out properly registering it.");
}
@@ -796,6 +798,9 @@ index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e719267
- if (bukkitClass == MapCursor.Type.class) {
- return new CraftRegistry<>(MapCursor.Type.class, registryHolder.registryOrThrow(Registries.MAP_DECORATION_TYPE), CraftMapCursor.CraftType::new, FieldRename.NONE);
- }
+- if (bukkitClass == PatternType.class) {
+- return new CraftRegistry<>(PatternType.class, registryHolder.registryOrThrow(Registries.BANNER_PATTERN), CraftPatternType::new, FieldRename.NONE);
+- }
-
- return null;
- }
@@ -809,7 +814,7 @@ index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e719267
}
if (bukkit instanceof Registry.SimpleRegistry<?> simple) {
-@@ -212,23 +149,21 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -217,23 +151,21 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
return bukkit.get(namespacedKey);
}
@@ -893,10 +898,10 @@ index 1f58b92c17d28e14621e8dc28042a5368f1f4a1f..ef80e6b4dff557daaab1b9fde4d8d401
// PatternType
private static final FieldRenameData PATTERN_TYPE_DATA = FieldRenameData.Builder.newBuilder()
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 38339b8b1b3b70bbbf0259d7095b02ee8c22b609..9fffb9c9161caad8eb62a99b37d0f31862b568a5 100644
+index e1b86308f737b957b6d00bc902b91856694b7cbf..0cb2b616e0fa060b7aae6c47502f75ee7647e917 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -189,20 +189,10 @@ public class Commodore {
+@@ -190,20 +190,10 @@ public class Commodore {
public static byte[] convert(byte[] b, final String pluginName, final ApiVersion pluginVersion, final Set<String> activeCompatibilities) {
final boolean modern = pluginVersion.isNewerThanOrSameAs(ApiVersion.FLATTENING);
@@ -917,7 +922,7 @@ index 38339b8b1b3b70bbbf0259d7095b02ee8c22b609..9fffb9c9161caad8eb62a99b37d0f318
visitor = io.papermc.paper.pluginremap.reflect.ReflectionRemapper.visitor(visitor); // Paper
cr.accept(new ClassRemapper(new ClassVisitor(Opcodes.ASM9, visitor) {
-@@ -269,15 +259,6 @@ public class Commodore {
+@@ -270,15 +260,6 @@ public class Commodore {
@Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
@@ -1157,7 +1162,7 @@ index bfbd80b60ac5df500d03c80de57e38aa7548dd46..cce9e2226ef554c10e1df1dbaa179165
when(instance.getTag(any(), any(), any())).then(mock -> {
String registry = mock.getArgument(0);
diff --git a/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java b/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java
-index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6afb7343477 100644
+index 9d6c3d91b505a683b353577bf39f869173243459..c1f886c906a9f9313d97a223f719095fa2624c57 100644
--- a/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java
+++ b/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java
@@ -1,6 +1,7 @@
@@ -1168,7 +1173,7 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af
import java.util.List;
import java.util.stream.Stream;
import net.minecraft.core.registries.Registries;
-@@ -56,34 +57,34 @@ public class RegistriesArgumentProvider implements ArgumentsProvider {
+@@ -59,35 +60,34 @@ public class RegistriesArgumentProvider implements ArgumentsProvider {
private static final List<Arguments> DATA = Lists.newArrayList();
static {
@@ -1191,6 +1196,8 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af
- register(Frog.Variant.class, Registries.FROG_VARIANT, CraftFrog.CraftVariant.class, FrogVariant.class);
- register(Cat.Type.class, Registries.CAT_VARIANT, CraftCat.CraftType.class, CatVariant.class);
- register(MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, CraftMapCursor.CraftType.class, MapDecorationType.class);
+- register(PatternType.class, Registries.BANNER_PATTERN, CraftPatternType.class, BannerPattern.class);
+-
+ // Order: RegistryKey, Bukkit class, Minecraft Registry key, CraftBukkit class, Minecraft class
+ register(RegistryKey.ENCHANTMENT, Enchantment.class, Registries.ENCHANTMENT, CraftEnchantment.class, net.minecraft.world.item.enchantment.Enchantment.class);
+ register(RegistryKey.GAME_EVENT, GameEvent.class, Registries.GAME_EVENT, CraftGameEvent.class, net.minecraft.world.level.gameevent.GameEvent.class);
@@ -1210,7 +1217,7 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af
+ register(RegistryKey.FROG_VARIANT, Frog.Variant.class, Registries.FROG_VARIANT, CraftFrog.CraftVariant.class, FrogVariant.class);
+ register(RegistryKey.CAT_VARIANT, Cat.Type.class, Registries.CAT_VARIANT, CraftCat.CraftType.class, CatVariant.class);
+ register(RegistryKey.MAP_DECORATION_TYPE, MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, CraftMapCursor.CraftType.class, MapDecorationType.class);
-
++ register(RegistryKey.BANNER_PATTERN, PatternType.class, Registries.BANNER_PATTERN, CraftPatternType.class, BannerPattern.class);
}
- private static void register(Class bukkit, ResourceKey registry, Class craft, Class minecraft) {
diff --git a/patches/server/0475-Add-StructuresLocateEvent.patch b/patches/server/0474-Add-StructuresLocateEvent.patch
index d8c688e2ae..d8c688e2ae 100644
--- a/patches/server/0475-Add-StructuresLocateEvent.patch
+++ b/patches/server/0474-Add-StructuresLocateEvent.patch
diff --git a/patches/server/0476-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0475-Collision-option-for-requiring-a-player-participant.patch
index 4f7280ae82..4f7280ae82 100644
--- a/patches/server/0476-Collision-option-for-requiring-a-player-participant.patch
+++ b/patches/server/0475-Collision-option-for-requiring-a-player-participant.patch
diff --git a/patches/server/0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
index 265be53faf..265be53faf 100644
--- a/patches/server/0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
+++ b/patches/server/0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
diff --git a/patches/server/0478-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0477-Return-chat-component-with-empty-text-instead-of-thr.patch
index 4dea2ddeed..4dea2ddeed 100644
--- a/patches/server/0478-Return-chat-component-with-empty-text-instead-of-thr.patch
+++ b/patches/server/0477-Return-chat-component-with-empty-text-instead-of-thr.patch
diff --git a/patches/server/0479-Make-schedule-command-per-world.patch b/patches/server/0478-Make-schedule-command-per-world.patch
index 2d8f63ad1e..2d8f63ad1e 100644
--- a/patches/server/0479-Make-schedule-command-per-world.patch
+++ b/patches/server/0478-Make-schedule-command-per-world.patch
diff --git a/patches/server/0480-Configurable-max-leash-distance.patch b/patches/server/0479-Configurable-max-leash-distance.patch
index 404169cae8..404169cae8 100644
--- a/patches/server/0480-Configurable-max-leash-distance.patch
+++ b/patches/server/0479-Configurable-max-leash-distance.patch
diff --git a/patches/server/0481-Add-BlockPreDispenseEvent.patch b/patches/server/0480-Add-BlockPreDispenseEvent.patch
index a1d2d79f35..b60aca7f7d 100644
--- a/patches/server/0481-Add-BlockPreDispenseEvent.patch
+++ b/patches/server/0480-Add-BlockPreDispenseEvent.patch
@@ -17,7 +17,7 @@ index 94bcbaf7daf7dfe566f508d1170a433930d9d49a..f6edfea463b3725d3a79aca38825e86d
tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack));
}
diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
-index 083ddfb8fffa04dad6eeca2274f290a08e62b5eb..45fafee2cf1893dccf477939dad05e9e1938ec8c 100644
+index 91b514967405115f22edf4255775361a672e5c2f..ddecf443df3679e3098eb54edd19585a0512e342 100644
--- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java
@@ -71,6 +71,7 @@ public class DropperBlock extends DispenserBlock {
@@ -29,10 +29,10 @@ index 083ddfb8fffa04dad6eeca2274f290a08e62b5eb..45fafee2cf1893dccf477939dad05e9e
} else {
// CraftBukkit start - Fire event when pushing items into other inventories
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 19ca8953facd69a5720652c3bcf1e1e3be34a3a3..5c511fe60bf59ca1fe773b8c9c39bc88eebf2752 100644
+index c01d4302e145c779cc4031927ab555e1c7748155..97a17f2b782196b51ebbc6740aad1768fc73f7ba 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2105,5 +2105,11 @@ public class CraftEventFactory {
+@@ -2118,5 +2118,11 @@ public class CraftEventFactory {
io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block);
return event.callEvent();
}
diff --git a/patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch
index b3444419ee..1903c21ba8 100644
--- a/patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch
+++ b/patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerChangeBeaconEffectEvent
diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
-index c2fa423e14fc08c10483415baa2148af269c3758..5b6133f6758d322713321b7e918db0c3e0d4be51 100644
+index 7c4d2c184d9a1e4a1856e6771d39db384381e300..396559c281eee9e8c677cb222721414e8d9e12a2 100644
--- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
@@ -171,12 +171,25 @@ public class BeaconMenu extends AbstractContainerMenu {
diff --git a/patches/server/0483-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0482-Add-toggle-for-always-placing-the-dragon-egg.patch
index 2576990e24..2576990e24 100644
--- a/patches/server/0483-Add-toggle-for-always-placing-the-dragon-egg.patch
+++ b/patches/server/0482-Add-toggle-for-always-placing-the-dragon-egg.patch
diff --git a/patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch
index ec46b8f54b..0c96d8fa15 100644
--- a/patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch
+++ b/patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerStonecutterRecipeSelectEvent
Co-Authored-By: MiniDigger <[email protected]>
diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
-index bb29107cb15e2ec644a14cabb3cf91f4bde5471d..977ccef3c9fa7685209f3eca894a3b69501ebcc1 100644
+index 5b4f03128499b0c1a4b8c5f5ccd17e4bdb391e81..37e75c02c374314372630f4bda0b92519809f2a4 100644
--- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
@@ -64,7 +64,7 @@ public class StonecutterMenu extends AbstractContainerMenu {
diff --git a/patches/server/0485-Expand-EntityUnleashEvent.patch b/patches/server/0484-Expand-EntityUnleashEvent.patch
index b83bd1bb30..4c9e6f4afd 100644
--- a/patches/server/0485-Expand-EntityUnleashEvent.patch
+++ b/patches/server/0484-Expand-EntityUnleashEvent.patch
@@ -121,10 +121,10 @@ index 3c0af74ed65610b1d5e3b72fdcf28c5a3423f0da..01173fc7177d78588978e087e63efda0
flag1 = true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 5c511fe60bf59ca1fe773b8c9c39bc88eebf2752..204c6ef33725eee1c582fdbc4e29caface0f27e9 100644
+index 97a17f2b782196b51ebbc6740aad1768fc73f7ba..2786398e99af94d8dc1251009cdb5fa71206bcf3 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1583,8 +1583,10 @@ public class CraftEventFactory {
+@@ -1596,8 +1596,10 @@ public class CraftEventFactory {
Bukkit.getPluginManager().callEvent(new PlayerRecipeBookSettingsChangeEvent(player.getBukkitEntity(), bukkitType, open, filter));
}
diff --git a/patches/server/0486-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch
index fc78073d82..fc78073d82 100644
--- a/patches/server/0486-Reset-shield-blocking-on-dimension-change.patch
+++ b/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch
diff --git a/patches/server/0487-Add-DragonEggFormEvent.patch b/patches/server/0486-Add-DragonEggFormEvent.patch
index c9ec752038..c9ec752038 100644
--- a/patches/server/0487-Add-DragonEggFormEvent.patch
+++ b/patches/server/0486-Add-DragonEggFormEvent.patch
diff --git a/patches/server/0488-Add-EntityMoveEvent.patch b/patches/server/0487-Add-EntityMoveEvent.patch
index 2992bc3199..2992bc3199 100644
--- a/patches/server/0488-Add-EntityMoveEvent.patch
+++ b/patches/server/0487-Add-EntityMoveEvent.patch
diff --git a/patches/server/0489-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0488-added-option-to-disable-pathfinding-updates-on-block.patch
index e40ef31e16..e40ef31e16 100644
--- a/patches/server/0489-added-option-to-disable-pathfinding-updates-on-block.patch
+++ b/patches/server/0488-added-option-to-disable-pathfinding-updates-on-block.patch
diff --git a/patches/server/0490-Inline-shift-direction-fields.patch b/patches/server/0489-Inline-shift-direction-fields.patch
index 910b881e3a..910b881e3a 100644
--- a/patches/server/0490-Inline-shift-direction-fields.patch
+++ b/patches/server/0489-Inline-shift-direction-fields.patch
diff --git a/patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch
index e58287a5fb..9b70fab956 100644
--- a/patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 204c6ef33725eee1c582fdbc4e29caface0f27e9..3d64a514b4932bf80953b8e18b0fc9fd14868021 100644
+index 2786398e99af94d8dc1251009cdb5fa71206bcf3..4f05f8d73b824cd2985e6c6d90338fc7479ef2a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -456,13 +456,30 @@ public class CraftEventFactory {
+@@ -460,13 +460,30 @@ public class CraftEventFactory {
}
public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List<ItemEntity> items) {
diff --git a/patches/server/0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch
index 6ae0c8d11b..6ae0c8d11b 100644
--- a/patches/server/0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch
+++ b/patches/server/0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch
diff --git a/patches/server/0493-living-entity-allow-attribute-registration.patch b/patches/server/0492-living-entity-allow-attribute-registration.patch
index 586ae419e6..586ae419e6 100644
--- a/patches/server/0493-living-entity-allow-attribute-registration.patch
+++ b/patches/server/0492-living-entity-allow-attribute-registration.patch
diff --git a/patches/server/0494-fix-dead-slime-setSize-invincibility.patch b/patches/server/0493-fix-dead-slime-setSize-invincibility.patch
index 494e56127e..494e56127e 100644
--- a/patches/server/0494-fix-dead-slime-setSize-invincibility.patch
+++ b/patches/server/0493-fix-dead-slime-setSize-invincibility.patch
diff --git a/patches/server/0495-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0494-Merchant-getRecipes-should-return-an-immutable-list.patch
index cbb0cdc052..cbb0cdc052 100644
--- a/patches/server/0495-Merchant-getRecipes-should-return-an-immutable-list.patch
+++ b/patches/server/0494-Merchant-getRecipes-should-return-an-immutable-list.patch
diff --git a/patches/server/0496-Expose-Tracked-Players.patch b/patches/server/0495-Expose-Tracked-Players.patch
index d8ca4c111c..d8ca4c111c 100644
--- a/patches/server/0496-Expose-Tracked-Players.patch
+++ b/patches/server/0495-Expose-Tracked-Players.patch
diff --git a/patches/server/0497-Improve-ServerGUI.patch b/patches/server/0496-Improve-ServerGUI.patch
index 872206f5fe..872206f5fe 100644
--- a/patches/server/0497-Improve-ServerGUI.patch
+++ b/patches/server/0496-Improve-ServerGUI.patch
diff --git a/patches/server/0498-fix-converting-txt-to-json-file.patch b/patches/server/0497-fix-converting-txt-to-json-file.patch
index efc09dd833..dde0a0677e 100644
--- a/patches/server/0498-fix-converting-txt-to-json-file.patch
+++ b/patches/server/0497-fix-converting-txt-to-json-file.patch
@@ -48,7 +48,7 @@ index 2b1d7a2360a9ee7bca9d93a2dc8c61d1648a8348..d5153f804cfcfd1a70c46975e3fb1e50
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
return false;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 5100b2d00452f97849239ca32164eed4345e4024..6ef0e5c607c1b7ef9ba6a9f5c7bc452ce9a84250 100644
+index 3c7d31725c4a5dd7728fa394f88d37a0e493e919..59c30bb1fd19b718662dd10b0eb9dcd5ed79e400 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -179,6 +179,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0499-Add-worldborder-events.patch b/patches/server/0498-Add-worldborder-events.patch
index 44a467547c..44a467547c 100644
--- a/patches/server/0499-Add-worldborder-events.patch
+++ b/patches/server/0498-Add-worldborder-events.patch
diff --git a/patches/server/0500-Add-PlayerNameEntityEvent.patch b/patches/server/0499-Add-PlayerNameEntityEvent.patch
index 9287edc1b7..9287edc1b7 100644
--- a/patches/server/0500-Add-PlayerNameEntityEvent.patch
+++ b/patches/server/0499-Add-PlayerNameEntityEvent.patch
diff --git a/patches/server/0501-Add-recipe-to-cook-events.patch b/patches/server/0500-Add-recipe-to-cook-events.patch
index 6fe8720d21..6fe8720d21 100644
--- a/patches/server/0501-Add-recipe-to-cook-events.patch
+++ b/patches/server/0500-Add-recipe-to-cook-events.patch
diff --git a/patches/server/0502-Add-Block-isValidTool.patch b/patches/server/0501-Add-Block-isValidTool.patch
index 5f36fb047c..5f36fb047c 100644
--- a/patches/server/0502-Add-Block-isValidTool.patch
+++ b/patches/server/0501-Add-Block-isValidTool.patch
diff --git a/patches/server/0503-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch
index b105615726..b105615726 100644
--- a/patches/server/0503-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch
diff --git a/patches/server/0504-Expand-world-key-API.patch b/patches/server/0503-Expand-world-key-API.patch
index 3a2e31f54d..3a2e31f54d 100644
--- a/patches/server/0504-Expand-world-key-API.patch
+++ b/patches/server/0503-Expand-world-key-API.patch
diff --git a/patches/server/0505-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0504-Add-fast-alternative-constructor-for-Rotations.patch
index e28775fc9a..e28775fc9a 100644
--- a/patches/server/0505-Add-fast-alternative-constructor-for-Rotations.patch
+++ b/patches/server/0504-Add-fast-alternative-constructor-for-Rotations.patch
diff --git a/patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch
index 757cfd681e..5a79f00284 100644
--- a/patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch
+++ b/patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch
@@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro
Closes #5036
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 6ef0e5c607c1b7ef9ba6a9f5c7bc452ce9a84250..7ef760cb1c88f557947e9b88409a2935666f86f0 100644
+index 59c30bb1fd19b718662dd10b0eb9dcd5ed79e400..0cbd4e6bc9b3695fd2ff0b943a69b8fd393e0f36 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -588,6 +588,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0507-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0506-forced-whitelist-use-configurable-kick-message.patch
index 4ec0ee6b72..4ec0ee6b72 100644
--- a/patches/server/0507-forced-whitelist-use-configurable-kick-message.patch
+++ b/patches/server/0506-forced-whitelist-use-configurable-kick-message.patch
diff --git a/patches/server/0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index ea634835be..ea634835be 100644
--- a/patches/server/0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch
diff --git a/patches/server/0509-Expose-protocol-version.patch b/patches/server/0508-Expose-protocol-version.patch
index 3b28ea2ad4..3b28ea2ad4 100644
--- a/patches/server/0509-Expose-protocol-version.patch
+++ b/patches/server/0508-Expose-protocol-version.patch
diff --git a/patches/server/0510-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0509-Enhance-console-tab-completions-for-brigadier-comman.patch
index 701ba9042a..701ba9042a 100644
--- a/patches/server/0510-Enhance-console-tab-completions-for-brigadier-comman.patch
+++ b/patches/server/0509-Enhance-console-tab-completions-for-brigadier-comman.patch
diff --git a/patches/server/0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
index 8663738c4b..8663738c4b 100644
--- a/patches/server/0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
+++ b/patches/server/0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
diff --git a/patches/server/0512-Add-bypass-host-check.patch b/patches/server/0511-Add-bypass-host-check.patch
index 53fea6e14d..53fea6e14d 100644
--- a/patches/server/0512-Add-bypass-host-check.patch
+++ b/patches/server/0511-Add-bypass-host-check.patch
diff --git a/patches/server/0513-Set-area-affect-cloud-rotation.patch b/patches/server/0512-Set-area-affect-cloud-rotation.patch
index 1816791836..1816791836 100644
--- a/patches/server/0513-Set-area-affect-cloud-rotation.patch
+++ b/patches/server/0512-Set-area-affect-cloud-rotation.patch
diff --git a/patches/server/0514-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0513-add-isDeeplySleeping-to-HumanEntity.patch
index 8784fcb163..8784fcb163 100644
--- a/patches/server/0514-add-isDeeplySleeping-to-HumanEntity.patch
+++ b/patches/server/0513-add-isDeeplySleeping-to-HumanEntity.patch
diff --git a/patches/server/0515-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0514-add-consumeFuel-to-FurnaceBurnEvent.patch
index 1938dc07ed..1938dc07ed 100644
--- a/patches/server/0515-add-consumeFuel-to-FurnaceBurnEvent.patch
+++ b/patches/server/0514-add-consumeFuel-to-FurnaceBurnEvent.patch
diff --git a/patches/server/0516-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0515-add-get-set-drop-chance-to-EntityEquipment.patch
index 746b410784..746b410784 100644
--- a/patches/server/0516-add-get-set-drop-chance-to-EntityEquipment.patch
+++ b/patches/server/0515-add-get-set-drop-chance-to-EntityEquipment.patch
diff --git a/patches/server/0517-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0516-fix-PigZombieAngerEvent-cancellation.patch
index 3f0d89aea9..3f0d89aea9 100644
--- a/patches/server/0517-fix-PigZombieAngerEvent-cancellation.patch
+++ b/patches/server/0516-fix-PigZombieAngerEvent-cancellation.patch
diff --git a/patches/server/0518-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch
index 1934fa9d5d..1934fa9d5d 100644
--- a/patches/server/0518-fix-PlayerItemHeldEvent-firing-twice.patch
+++ b/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch
diff --git a/patches/server/0519-Add-PlayerDeepSleepEvent.patch b/patches/server/0518-Add-PlayerDeepSleepEvent.patch
index c348ba15bc..c348ba15bc 100644
--- a/patches/server/0519-Add-PlayerDeepSleepEvent.patch
+++ b/patches/server/0518-Add-PlayerDeepSleepEvent.patch
diff --git a/patches/server/0520-More-World-API.patch b/patches/server/0519-More-World-API.patch
index acbb18e7df..acbb18e7df 100644
--- a/patches/server/0520-More-World-API.patch
+++ b/patches/server/0519-More-World-API.patch
diff --git a/patches/server/0521-Add-PlayerBedFailEnterEvent.patch b/patches/server/0520-Add-PlayerBedFailEnterEvent.patch
index feffef2aec..feffef2aec 100644
--- a/patches/server/0521-Add-PlayerBedFailEnterEvent.patch
+++ b/patches/server/0520-Add-PlayerBedFailEnterEvent.patch
diff --git a/patches/server/0522-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0521-Implement-methods-to-convert-between-Component-and-B.patch
index 614386ecde..614386ecde 100644
--- a/patches/server/0522-Implement-methods-to-convert-between-Component-and-B.patch
+++ b/patches/server/0521-Implement-methods-to-convert-between-Component-and-B.patch
diff --git a/patches/server/0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
index e907ed80ed..e907ed80ed 100644
--- a/patches/server/0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
+++ b/patches/server/0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
diff --git a/patches/server/0524-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0523-Introduce-beacon-activation-deactivation-events.patch
index 6d74a805c1..6d74a805c1 100644
--- a/patches/server/0524-Introduce-beacon-activation-deactivation-events.patch
+++ b/patches/server/0523-Introduce-beacon-activation-deactivation-events.patch
diff --git a/patches/server/0525-Add-Channel-initialization-listeners.patch b/patches/server/0524-Add-Channel-initialization-listeners.patch
index 334eb230f0..334eb230f0 100644
--- a/patches/server/0525-Add-Channel-initialization-listeners.patch
+++ b/patches/server/0524-Add-Channel-initialization-listeners.patch
diff --git a/patches/server/0526-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0525-Send-empty-commands-if-tab-completion-is-disabled.patch
index daa33fbefc..daa33fbefc 100644
--- a/patches/server/0526-Send-empty-commands-if-tab-completion-is-disabled.patch
+++ b/patches/server/0525-Send-empty-commands-if-tab-completion-is-disabled.patch
diff --git a/patches/server/0527-Add-more-WanderingTrader-API.patch b/patches/server/0526-Add-more-WanderingTrader-API.patch
index 0ce65786dc..0ce65786dc 100644
--- a/patches/server/0527-Add-more-WanderingTrader-API.patch
+++ b/patches/server/0526-Add-more-WanderingTrader-API.patch
diff --git a/patches/server/0528-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0527-Add-EntityBlockStorage-clearEntities.patch
index b19812d989..b19812d989 100644
--- a/patches/server/0528-Add-EntityBlockStorage-clearEntities.patch
+++ b/patches/server/0527-Add-EntityBlockStorage-clearEntities.patch
diff --git a/patches/server/0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
index c0fd5f11db..c0fd5f11db 100644
--- a/patches/server/0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
+++ b/patches/server/0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
diff --git a/patches/server/0530-Add-HiddenPotionEffect-API.patch b/patches/server/0529-Add-HiddenPotionEffect-API.patch
index 2d0b0d5b03..2d0b0d5b03 100644
--- a/patches/server/0530-Add-HiddenPotionEffect-API.patch
+++ b/patches/server/0529-Add-HiddenPotionEffect-API.patch
diff --git a/patches/server/0531-Inventory-close.patch b/patches/server/0530-Inventory-close.patch
index 9ca8b717ab..9ca8b717ab 100644
--- a/patches/server/0531-Inventory-close.patch
+++ b/patches/server/0530-Inventory-close.patch
diff --git a/patches/server/0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
index d5f2f9db1f..d5f2f9db1f 100644
--- a/patches/server/0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
+++ b/patches/server/0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff --git a/patches/server/0533-Add-basic-Datapack-API.patch b/patches/server/0532-Add-basic-Datapack-API.patch
index 7a89592b48..7a89592b48 100644
--- a/patches/server/0533-Add-basic-Datapack-API.patch
+++ b/patches/server/0532-Add-basic-Datapack-API.patch
diff --git a/patches/server/0534-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0533-Add-environment-variable-to-disable-server-gui.patch
index e4de8ec477..e4de8ec477 100644
--- a/patches/server/0534-Add-environment-variable-to-disable-server-gui.patch
+++ b/patches/server/0533-Add-environment-variable-to-disable-server-gui.patch
diff --git a/patches/server/0535-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch
index ca358f5250..ca358f5250 100644
--- a/patches/server/0535-Expand-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch
diff --git a/patches/server/0536-ItemStack-repair-check-API.patch b/patches/server/0535-ItemStack-repair-check-API.patch
index 32e70257f8..32e70257f8 100644
--- a/patches/server/0536-ItemStack-repair-check-API.patch
+++ b/patches/server/0535-ItemStack-repair-check-API.patch
diff --git a/patches/server/0537-More-Enchantment-API.patch b/patches/server/0536-More-Enchantment-API.patch
index 692f90b66a..692f90b66a 100644
--- a/patches/server/0537-More-Enchantment-API.patch
+++ b/patches/server/0536-More-Enchantment-API.patch
diff --git a/patches/server/0538-Move-range-check-for-block-placing-up.patch b/patches/server/0537-Move-range-check-for-block-placing-up.patch
index 684068f18d..684068f18d 100644
--- a/patches/server/0538-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0537-Move-range-check-for-block-placing-up.patch
diff --git a/patches/server/0539-Add-Mob-lookAt-API.patch b/patches/server/0538-Add-Mob-lookAt-API.patch
index 3139490a61..3139490a61 100644
--- a/patches/server/0539-Add-Mob-lookAt-API.patch
+++ b/patches/server/0538-Add-Mob-lookAt-API.patch
diff --git a/patches/server/0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
index 5a8b0c1cb5..5a8b0c1cb5 100644
--- a/patches/server/0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
+++ b/patches/server/0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
diff --git a/patches/server/0541-Add-Unix-domain-socket-support.patch b/patches/server/0540-Add-Unix-domain-socket-support.patch
index 7def3d56ce..7def3d56ce 100644
--- a/patches/server/0541-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0540-Add-Unix-domain-socket-support.patch
diff --git a/patches/server/0542-Add-EntityInsideBlockEvent.patch b/patches/server/0541-Add-EntityInsideBlockEvent.patch
index 5080baf21f..0e0939b39f 100644
--- a/patches/server/0542-Add-EntityInsideBlockEvent.patch
+++ b/patches/server/0541-Add-EntityInsideBlockEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityInsideBlockEvent
diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-index 993538f613e52ecd009f01e7b68fddba76b6a3e8..c36e64c3df09f14ffb06b81ef20c5e200e386e50 100644
+index 779d188bac9744889c1f4f554b300311e0effa29..0c5409af685ef1f251db3d9f9e21295c82a1e02a 100644
--- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-@@ -124,6 +124,7 @@ public abstract class BaseFireBlock extends Block {
+@@ -125,6 +125,7 @@ public abstract class BaseFireBlock extends Block {
@Override
protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
diff --git a/patches/server/0543-Improve-item-default-attribute-API.patch b/patches/server/0542-Improve-item-default-attribute-API.patch
index ecbcd11bb8..ecbcd11bb8 100644
--- a/patches/server/0543-Improve-item-default-attribute-API.patch
+++ b/patches/server/0542-Improve-item-default-attribute-API.patch
diff --git a/patches/server/0544-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0543-Add-cause-to-Weather-ThunderChangeEvents.patch
index 2807ad861f..2807ad861f 100644
--- a/patches/server/0544-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0543-Add-cause-to-Weather-ThunderChangeEvents.patch
diff --git a/patches/server/0545-More-Lidded-Block-API.patch b/patches/server/0544-More-Lidded-Block-API.patch
index 437434c525..437434c525 100644
--- a/patches/server/0545-More-Lidded-Block-API.patch
+++ b/patches/server/0544-More-Lidded-Block-API.patch
diff --git a/patches/server/0546-Limit-item-frame-cursors-on-maps.patch b/patches/server/0545-Limit-item-frame-cursors-on-maps.patch
index d710b59685..d710b59685 100644
--- a/patches/server/0546-Limit-item-frame-cursors-on-maps.patch
+++ b/patches/server/0545-Limit-item-frame-cursors-on-maps.patch
diff --git a/patches/server/0547-Add-PlayerKickEvent-causes.patch b/patches/server/0546-Add-PlayerKickEvent-causes.patch
index 261ceab74d..261ceab74d 100644
--- a/patches/server/0547-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0546-Add-PlayerKickEvent-causes.patch
diff --git a/patches/server/0548-Add-PufferFishStateChangeEvent.patch b/patches/server/0547-Add-PufferFishStateChangeEvent.patch
index 87e61bb2a3..87e61bb2a3 100644
--- a/patches/server/0548-Add-PufferFishStateChangeEvent.patch
+++ b/patches/server/0547-Add-PufferFishStateChangeEvent.patch
diff --git a/patches/server/0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
index 12c519eefe..12c519eefe 100644
--- a/patches/server/0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
+++ b/patches/server/0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
diff --git a/patches/server/0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
index 04a6d787b6..04a6d787b6 100644
--- a/patches/server/0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
+++ b/patches/server/0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
diff --git a/patches/server/0551-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0550-Add-option-to-fix-items-merging-through-walls.patch
index 636797089d..636797089d 100644
--- a/patches/server/0551-Add-option-to-fix-items-merging-through-walls.patch
+++ b/patches/server/0550-Add-option-to-fix-items-merging-through-walls.patch
diff --git a/patches/server/0552-Add-BellRevealRaiderEvent.patch b/patches/server/0551-Add-BellRevealRaiderEvent.patch
index 871aa2a198..871aa2a198 100644
--- a/patches/server/0552-Add-BellRevealRaiderEvent.patch
+++ b/patches/server/0551-Add-BellRevealRaiderEvent.patch
diff --git a/patches/server/0553-Fix-invulnerable-end-crystals.patch b/patches/server/0552-Fix-invulnerable-end-crystals.patch
index 57cba19656..57cba19656 100644
--- a/patches/server/0553-Fix-invulnerable-end-crystals.patch
+++ b/patches/server/0552-Fix-invulnerable-end-crystals.patch
diff --git a/patches/server/0554-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0553-Add-ElderGuardianAppearanceEvent.patch
index d9bc14356d..d9bc14356d 100644
--- a/patches/server/0554-Add-ElderGuardianAppearanceEvent.patch
+++ b/patches/server/0553-Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/server/0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
index 3d03f4c4d2..3d03f4c4d2 100644
--- a/patches/server/0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
+++ b/patches/server/0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
diff --git a/patches/server/0556-Line-Of-Sight-Changes.patch b/patches/server/0555-Line-Of-Sight-Changes.patch
index 1e1018607b..1e1018607b 100644
--- a/patches/server/0556-Line-Of-Sight-Changes.patch
+++ b/patches/server/0555-Line-Of-Sight-Changes.patch
diff --git a/patches/server/0557-add-per-world-spawn-limits.patch b/patches/server/0556-add-per-world-spawn-limits.patch
index 2af34cd439..2af34cd439 100644
--- a/patches/server/0557-add-per-world-spawn-limits.patch
+++ b/patches/server/0556-add-per-world-spawn-limits.patch
diff --git a/patches/server/0558-Fix-potions-splash-events.patch b/patches/server/0557-Fix-potions-splash-events.patch
index dfcd16159d..d086a3db0a 100644
--- a/patches/server/0558-Fix-potions-splash-events.patch
+++ b/patches/server/0557-Fix-potions-splash-events.patch
@@ -143,10 +143,10 @@ index be787a5b52e90796d4f06e17e564f4324807c3e6..cb34cc9443da56c0497c7a0192c8b836
public boolean isLingering() {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3d64a514b4932bf80953b8e18b0fc9fd14868021..be9fc7a0f5b4ad651847a20367cdc82b8f67ff29 100644
+index 4f05f8d73b824cd2985e6c6d90338fc7479ef2a5..61caedf05b28b2ba351e231c5f76e4df1ebd271a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -880,6 +880,32 @@ public class CraftEventFactory {
+@@ -884,6 +884,32 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0559-Add-more-LimitedRegion-API.patch b/patches/server/0558-Add-more-LimitedRegion-API.patch
index 6e183e954e..6e183e954e 100644
--- a/patches/server/0559-Add-more-LimitedRegion-API.patch
+++ b/patches/server/0558-Add-more-LimitedRegion-API.patch
diff --git a/patches/server/0560-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch
index 75e9f5ab62..75e9f5ab62 100644
--- a/patches/server/0560-Fix-PlayerDropItemEvent-using-wrong-item.patch
+++ b/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch
diff --git a/patches/server/0561-Missing-Entity-API.patch b/patches/server/0560-Missing-Entity-API.patch
index 2537e57c32..2537e57c32 100644
--- a/patches/server/0561-Missing-Entity-API.patch
+++ b/patches/server/0560-Missing-Entity-API.patch
diff --git a/patches/server/0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
index a5c4eefb9a..a5c4eefb9a 100644
--- a/patches/server/0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
+++ b/patches/server/0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
diff --git a/patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch
index 0fb834902a..b2446b7c2b 100644
--- a/patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch
+++ b/patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch
@@ -21,7 +21,7 @@ index 055650b315d53b56798ded7af2054c3e8e3ee319..c72687fb23e8d01639cce7d79e3f9780
@Override
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index cfd5d3e50197b38d0ffef6debbb7f5b4b208382a..ed1fc466151ebebf7c3ac135c6893f4ea9a55a52 100644
+index 144d243e0d6ba3ae3f0b0bf457fa516e2b4f416f..20a14b4163807b806bf2ce5a88d3c35098bed929 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -180,6 +180,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0564-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0563-Fix-commands-from-signs-not-firing-command-events.patch
index b86e341359..b86e341359 100644
--- a/patches/server/0564-Fix-commands-from-signs-not-firing-command-events.patch
+++ b/patches/server/0563-Fix-commands-from-signs-not-firing-command-events.patch
diff --git a/patches/server/0565-Add-PlayerArmSwingEvent.patch b/patches/server/0564-Add-PlayerArmSwingEvent.patch
index 080029d23f..080029d23f 100644
--- a/patches/server/0565-Add-PlayerArmSwingEvent.patch
+++ b/patches/server/0564-Add-PlayerArmSwingEvent.patch
diff --git a/patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch
index 7b01621edd..73566101ba 100644
--- a/patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch
@@ -101,7 +101,7 @@ index 0a5cad166e852888208125a80b5e2d5e7e9a3a82..dd728c297335581ad69c94f768ec5201
this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false);
// Paper end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 0474b88416e0d016da38909196d32fe992b37d00..5b449dd681390eb7aee229a3b6366dcbb96ce2d7 100644
+index 46f46685081c3c164bd4ba306dfb1220a4e13e52..b36cb031b153c452c7f030105f6963072b5858fc 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -561,6 +561,11 @@ public abstract class PlayerList {
diff --git a/patches/server/0567-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch
index c95ca38ef7..c95ca38ef7 100644
--- a/patches/server/0567-Don-t-apply-cramming-damage-to-players.patch
+++ b/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch
diff --git a/patches/server/0568-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0567-Rate-options-and-timings-for-sensors-and-behaviors.patch
index d74af14524..d74af14524 100644
--- a/patches/server/0568-Rate-options-and-timings-for-sensors-and-behaviors.patch
+++ b/patches/server/0567-Rate-options-and-timings-for-sensors-and-behaviors.patch
diff --git a/patches/server/0569-Add-missing-forceDrop-toggles.patch b/patches/server/0568-Add-missing-forceDrop-toggles.patch
index e11380293a..e11380293a 100644
--- a/patches/server/0569-Add-missing-forceDrop-toggles.patch
+++ b/patches/server/0568-Add-missing-forceDrop-toggles.patch
diff --git a/patches/server/0570-Stinger-API.patch b/patches/server/0569-Stinger-API.patch
index 766da8df45..766da8df45 100644
--- a/patches/server/0570-Stinger-API.patch
+++ b/patches/server/0569-Stinger-API.patch
diff --git a/patches/server/0571-Add-System.out-err-catcher.patch b/patches/server/0570-Add-System.out-err-catcher.patch
index 1a4bfc12d1..905517df95 100644
--- a/patches/server/0571-Add-System.out-err-catcher.patch
+++ b/patches/server/0570-Add-System.out-err-catcher.patch
@@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d0eefb53fb88c56d72dea68269bd2b0ce6fd1c1b..0fc2e453c63b63e12f33cde28ad5afea5657ac57 100644
+index 691ad3df67ff32528ac18c2927e96c91db25741e..c57428b235f7bc0444ba0024d05c7c15b5e74fc4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -307,6 +307,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0572-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0571-Prevent-AFK-kick-while-watching-end-credits.patch
index 73cf011e9d..73cf011e9d 100644
--- a/patches/server/0572-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0571-Prevent-AFK-kick-while-watching-end-credits.patch
diff --git a/patches/server/0573-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0572-Allow-skipping-writing-of-comments-to-server.propert.patch
index 1fce522892..1fce522892 100644
--- a/patches/server/0573-Allow-skipping-writing-of-comments-to-server.propert.patch
+++ b/patches/server/0572-Allow-skipping-writing-of-comments-to-server.propert.patch
diff --git a/patches/server/0574-Add-PlayerSetSpawnEvent.patch b/patches/server/0573-Add-PlayerSetSpawnEvent.patch
index 4b9bd3eb51..75839ec637 100644
--- a/patches/server/0574-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0573-Add-PlayerSetSpawnEvent.patch
@@ -154,7 +154,7 @@ index e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da..db4bdce4eae9a91babe95c28cb0f6c96
public SectionPos getLastSectionPos() {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 5b449dd681390eb7aee229a3b6366dcbb96ce2d7..2eced5d3b539dfd072b8b4eafb34f21f849b1bd5 100644
+index b36cb031b153c452c7f030105f6963072b5858fc..d4fa173cebcef5fa86e5d077c2bad8e831392bf0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -841,7 +841,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch
index a062b815e2..c5b4e66926 100644
--- a/patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch
+++ b/patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make hoppers respect inventory max stack size
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
-index 6d948b6151c6194bdba1cd461960397615c4bc40..0d6132abd49d66fbf84c046e09144cb33651be15 100644
+index 1c8a08e317591413426285874de74f4de54efa07..542a5501ac94f57810d34e0f769a9a7855604f91 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
-@@ -487,15 +487,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -495,15 +495,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (itemstack1.isEmpty()) {
// Spigot start - SPIGOT-6693, InventorySubcontainer#setItem
diff --git a/patches/server/0576-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0575-Optimize-entity-tracker-passenger-checks.patch
index 0dd7d25ba3..0dd7d25ba3 100644
--- a/patches/server/0576-Optimize-entity-tracker-passenger-checks.patch
+++ b/patches/server/0575-Optimize-entity-tracker-passenger-checks.patch
diff --git a/patches/server/0577-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0576-Config-option-for-Piglins-guarding-chests.patch
index 8e2094a53d..8e2094a53d 100644
--- a/patches/server/0577-Config-option-for-Piglins-guarding-chests.patch
+++ b/patches/server/0576-Config-option-for-Piglins-guarding-chests.patch
diff --git a/patches/server/0578-Add-EntityDamageItemEvent.patch b/patches/server/0577-Add-EntityDamageItemEvent.patch
index d9c3b86a2a..e289bb08f8 100644
--- a/patches/server/0578-Add-EntityDamageItemEvent.patch
+++ b/patches/server/0577-Add-EntityDamageItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityDamageItemEvent
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 7f7445a2b68fd2e6e5fcd509d950a0f8d680c1fe..ebc5f2e8d59da4bec25ff156ec95fe49366be59c 100644
+index 2ee949e1b0015c62499c557d5e359df4b9de6027..14d6e4548703b9b8640913f77406fff85f28d7ef 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -646,14 +646,14 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0579-Optimize-indirect-passenger-iteration.patch b/patches/server/0578-Optimize-indirect-passenger-iteration.patch
index 5fccdecbf4..5fccdecbf4 100644
--- a/patches/server/0579-Optimize-indirect-passenger-iteration.patch
+++ b/patches/server/0578-Optimize-indirect-passenger-iteration.patch
diff --git a/patches/server/0580-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0579-Configurable-item-frame-map-cursor-update-interval.patch
index a6389cdcbb..a6389cdcbb 100644
--- a/patches/server/0580-Configurable-item-frame-map-cursor-update-interval.patch
+++ b/patches/server/0579-Configurable-item-frame-map-cursor-update-interval.patch
diff --git a/patches/server/0581-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0580-Change-EnderEye-target-without-changing-other-things.patch
index 53d06a36ec..53d06a36ec 100644
--- a/patches/server/0581-Change-EnderEye-target-without-changing-other-things.patch
+++ b/patches/server/0580-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/server/0582-Add-BlockBreakBlockEvent.patch b/patches/server/0581-Add-BlockBreakBlockEvent.patch
index 4bc0c5116f..4bc0c5116f 100644
--- a/patches/server/0582-Add-BlockBreakBlockEvent.patch
+++ b/patches/server/0581-Add-BlockBreakBlockEvent.patch
diff --git a/patches/server/0583-Option-to-prevent-data-components-copy-in-smithing-r.patch b/patches/server/0582-Option-to-prevent-data-components-copy-in-smithing-r.patch
index 7246d24edd..7246d24edd 100644
--- a/patches/server/0583-Option-to-prevent-data-components-copy-in-smithing-r.patch
+++ b/patches/server/0582-Option-to-prevent-data-components-copy-in-smithing-r.patch
diff --git a/patches/server/0584-More-CommandBlock-API.patch b/patches/server/0583-More-CommandBlock-API.patch
index 16cf3ee3d7..16cf3ee3d7 100644
--- a/patches/server/0584-More-CommandBlock-API.patch
+++ b/patches/server/0583-More-CommandBlock-API.patch
diff --git a/patches/server/0585-Add-missing-team-sidebar-display-slots.patch b/patches/server/0584-Add-missing-team-sidebar-display-slots.patch
index 3b0dfacf08..3b0dfacf08 100644
--- a/patches/server/0585-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0584-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/server/0586-Add-back-EntityPortalExitEvent.patch b/patches/server/0585-Add-back-EntityPortalExitEvent.patch
index 4cf88b1a01..4cf88b1a01 100644
--- a/patches/server/0586-Add-back-EntityPortalExitEvent.patch
+++ b/patches/server/0585-Add-back-EntityPortalExitEvent.patch
diff --git a/patches/server/0587-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0586-Add-methods-to-find-targets-for-lightning-strikes.patch
index ca096b9dd9..ca096b9dd9 100644
--- a/patches/server/0587-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0586-Add-methods-to-find-targets-for-lightning-strikes.patch
diff --git a/patches/server/0588-Get-entity-default-attributes.patch b/patches/server/0587-Get-entity-default-attributes.patch
index f90946ef42..f90946ef42 100644
--- a/patches/server/0588-Get-entity-default-attributes.patch
+++ b/patches/server/0587-Get-entity-default-attributes.patch
diff --git a/patches/server/0589-Left-handed-API.patch b/patches/server/0588-Left-handed-API.patch
index 643df451a4..643df451a4 100644
--- a/patches/server/0589-Left-handed-API.patch
+++ b/patches/server/0588-Left-handed-API.patch
diff --git a/patches/server/0590-Add-more-advancement-API.patch b/patches/server/0589-Add-more-advancement-API.patch
index 160686a23d..ed610abf5d 100644
--- a/patches/server/0590-Add-more-advancement-API.patch
+++ b/patches/server/0589-Add-more-advancement-API.patch
@@ -164,10 +164,10 @@ index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c
private final DisplayInfo handle;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 9fffb9c9161caad8eb62a99b37d0f31862b568a5..72eca2c6e2107f695ad6c1d85e02dae1890ea410 100644
+index 0cb2b616e0fa060b7aae6c47502f75ee7647e917..17d6a4cdd16d34f83e0752c3bdaee08288425a07 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -434,6 +434,11 @@ public class Commodore {
+@@ -435,6 +435,11 @@ public class Commodore {
super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf);
return;
}
diff --git a/patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch
index e31dc566fb..c4fffcd5cc 100644
--- a/patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch
@@ -37,10 +37,10 @@ index eabb8b42b890224dd19b879ff276e9908674310d..803a19063c03627dbea79cb1c395ae35
+ // Paper end - old getSpawnEgg API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 72eca2c6e2107f695ad6c1d85e02dae1890ea410..b67dfb358a9c1ae26793557ca2151357db4b1691 100644
+index 17d6a4cdd16d34f83e0752c3bdaee08288425a07..157fbe09ab22f3218d9d3f72e8c0a5a3d727eaeb 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -441,6 +441,15 @@ public class Commodore {
+@@ -442,6 +442,15 @@ public class Commodore {
}
// Paper end
diff --git a/patches/server/0592-Add-critical-damage-API.patch b/patches/server/0591-Add-critical-damage-API.patch
index e738b6fb6e..0cb51d12e2 100644
--- a/patches/server/0592-Add-critical-damage-API.patch
+++ b/patches/server/0591-Add-critical-damage-API.patch
@@ -61,10 +61,10 @@ index 746bb8a36bd6c6ef953289576af499caad588d79..57ebb96707748e90810dc07471f9769f
int k = entity.getRemainingFireTicks();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb106a95bf 100644
+index 61caedf05b28b2ba351e231c5f76e4df1ebd271a..4180b86620aa18a95e0793f646515779801a343e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1074,7 +1074,7 @@ public class CraftEventFactory {
+@@ -1078,7 +1078,7 @@ public class CraftEventFactory {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.BLOCK_EXPLOSION, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
}
DamageCause damageCause = (damager.getBukkitEntity() instanceof org.bukkit.entity.TNTPrimed) ? DamageCause.BLOCK_EXPLOSION : DamageCause.ENTITY_EXPLOSION;
@@ -73,7 +73,7 @@ index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb
} else if (damager != null || source.getDirectEntity() != null) {
DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK;
-@@ -1100,7 +1100,7 @@ public class CraftEventFactory {
+@@ -1104,7 +1104,7 @@ public class CraftEventFactory {
cause = DamageCause.MAGIC;
}
@@ -82,7 +82,7 @@ index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb
} else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.VOID, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
} else if (source.is(DamageTypes.LAVA)) {
-@@ -1160,13 +1160,13 @@ public class CraftEventFactory {
+@@ -1164,13 +1164,13 @@ public class CraftEventFactory {
cause = DamageCause.CUSTOM;
}
diff --git a/patches/server/0593-Fix-issues-with-mob-conversion.patch b/patches/server/0592-Fix-issues-with-mob-conversion.patch
index 1b4597fe00..1b4597fe00 100644
--- a/patches/server/0593-Fix-issues-with-mob-conversion.patch
+++ b/patches/server/0592-Fix-issues-with-mob-conversion.patch
diff --git a/patches/server/0594-Add-hasCollision-methods-to-various-places.patch b/patches/server/0593-Add-hasCollision-methods-to-various-places.patch
index 1acc4729a7..1acc4729a7 100644
--- a/patches/server/0594-Add-hasCollision-methods-to-various-places.patch
+++ b/patches/server/0593-Add-hasCollision-methods-to-various-places.patch
diff --git a/patches/server/0595-Goat-ram-API.patch b/patches/server/0594-Goat-ram-API.patch
index 2f5ccdfed4..2f5ccdfed4 100644
--- a/patches/server/0595-Goat-ram-API.patch
+++ b/patches/server/0594-Goat-ram-API.patch
diff --git a/patches/server/0596-Add-API-for-resetting-a-single-score.patch b/patches/server/0595-Add-API-for-resetting-a-single-score.patch
index b9dd1c2be3..b9dd1c2be3 100644
--- a/patches/server/0596-Add-API-for-resetting-a-single-score.patch
+++ b/patches/server/0595-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/server/0597-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0596-Add-Raw-Byte-Entity-Serialization.patch
index bec15720e6..bec15720e6 100644
--- a/patches/server/0597-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0596-Add-Raw-Byte-Entity-Serialization.patch
diff --git a/patches/server/0598-Vanilla-command-permission-fixes.patch b/patches/server/0597-Vanilla-command-permission-fixes.patch
index a9f23f8a53..a9f23f8a53 100644
--- a/patches/server/0598-Vanilla-command-permission-fixes.patch
+++ b/patches/server/0597-Vanilla-command-permission-fixes.patch
diff --git a/patches/server/0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index eb56ff1385..eb56ff1385 100644
--- a/patches/server/0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
diff --git a/patches/server/0600-Fix-GameProfileCache-concurrency.patch b/patches/server/0599-Fix-GameProfileCache-concurrency.patch
index 6cb7e5235f..6cb7e5235f 100644
--- a/patches/server/0600-Fix-GameProfileCache-concurrency.patch
+++ b/patches/server/0599-Fix-GameProfileCache-concurrency.patch
diff --git a/patches/server/0601-Improve-and-expand-AsyncCatcher.patch b/patches/server/0600-Improve-and-expand-AsyncCatcher.patch
index 43a86ca3d4..43a86ca3d4 100644
--- a/patches/server/0601-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0600-Improve-and-expand-AsyncCatcher.patch
diff --git a/patches/server/0602-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0601-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 14b8095c8b..14b8095c8b 100644
--- a/patches/server/0602-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0601-Add-paper-mobcaps-and-paper-playermobcaps.patch
diff --git a/patches/server/0603-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0602-Sanitize-ResourceLocation-error-logging.patch
index 602f0d3b27..602f0d3b27 100644
--- a/patches/server/0603-Sanitize-ResourceLocation-error-logging.patch
+++ b/patches/server/0602-Sanitize-ResourceLocation-error-logging.patch
diff --git a/patches/server/0604-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0603-Manually-inline-methods-in-BlockPosition.patch
index 77b9a47ac1..77b9a47ac1 100644
--- a/patches/server/0604-Manually-inline-methods-in-BlockPosition.patch
+++ b/patches/server/0603-Manually-inline-methods-in-BlockPosition.patch
diff --git a/patches/server/0605-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0604-Name-craft-scheduler-threads-according-to-the-plugin.patch
index 30f250f235..30f250f235 100644
--- a/patches/server/0605-Name-craft-scheduler-threads-according-to-the-plugin.patch
+++ b/patches/server/0604-Name-craft-scheduler-threads-according-to-the-plugin.patch
diff --git a/patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index b950818c7b..23f6d7b245 100644
--- a/patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
@@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt
method was not inlined.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index ed1fc466151ebebf7c3ac135c6893f4ea9a55a52..38bcf9f410e8a9d47c7d486c28dbc16a6225b650 100644
+index 20a14b4163807b806bf2ce5a88d3c35098bed929..b4111bcc6a676dc42b233761aa667708669c2ab8 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -352,7 +352,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
index 48449be461..48449be461 100644
--- a/patches/server/0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
+++ b/patches/server/0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
diff --git a/patches/server/0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
index 0ab3e48f48..0ab3e48f48 100644
--- a/patches/server/0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
+++ b/patches/server/0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
diff --git a/patches/server/0609-Time-scoreboard-search.patch b/patches/server/0608-Time-scoreboard-search.patch
index 8d15084758..8d15084758 100644
--- a/patches/server/0609-Time-scoreboard-search.patch
+++ b/patches/server/0608-Time-scoreboard-search.patch
diff --git a/patches/server/0610-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0609-Oprimise-map-impl-for-tracked-players.patch
index dcfacfefe7..dcfacfefe7 100644
--- a/patches/server/0610-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0609-Oprimise-map-impl-for-tracked-players.patch
diff --git a/patches/server/0611-Add-missing-InventoryType.patch b/patches/server/0610-Add-missing-InventoryType.patch
index a49bdf073d..a49bdf073d 100644
--- a/patches/server/0611-Add-missing-InventoryType.patch
+++ b/patches/server/0610-Add-missing-InventoryType.patch
diff --git a/patches/server/0612-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0611-Optimise-BlockSoil-nearby-water-lookup.patch
index 81b199a243..81b199a243 100644
--- a/patches/server/0612-Optimise-BlockSoil-nearby-water-lookup.patch
+++ b/patches/server/0611-Optimise-BlockSoil-nearby-water-lookup.patch
diff --git a/patches/server/0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch
index 2cd406fbc0..2cd406fbc0 100644
--- a/patches/server/0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch
+++ b/patches/server/0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch
diff --git a/patches/server/0614-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0613-Check-requirement-before-suggesting-root-nodes.patch
index fce5e326f9..fce5e326f9 100644
--- a/patches/server/0614-Check-requirement-before-suggesting-root-nodes.patch
+++ b/patches/server/0613-Check-requirement-before-suggesting-root-nodes.patch
diff --git a/patches/server/0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index 90b29a13b4..90b29a13b4 100644
--- a/patches/server/0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
diff --git a/patches/server/0616-Add-packet-limiter-config.patch b/patches/server/0615-Add-packet-limiter-config.patch
index a6bd6521f4..a6bd6521f4 100644
--- a/patches/server/0616-Add-packet-limiter-config.patch
+++ b/patches/server/0615-Add-packet-limiter-config.patch
diff --git a/patches/server/0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
index 0b139a1e02..0b139a1e02 100644
--- a/patches/server/0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
+++ b/patches/server/0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
diff --git a/patches/server/0618-Ensure-valid-vehicle-status.patch b/patches/server/0617-Ensure-valid-vehicle-status.patch
index 3607b7b1f6..3607b7b1f6 100644
--- a/patches/server/0618-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0617-Ensure-valid-vehicle-status.patch
diff --git a/patches/server/0619-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0618-Prevent-softlocked-end-exit-portal-generation.patch
index e2698e961b..e2698e961b 100644
--- a/patches/server/0619-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0618-Prevent-softlocked-end-exit-portal-generation.patch
diff --git a/patches/server/0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
index 4fac0c1ab3..4fac0c1ab3 100644
--- a/patches/server/0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
+++ b/patches/server/0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
diff --git a/patches/server/0621-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0620-Don-t-log-debug-logging-being-disabled.patch
index 8e733b1cea..8e733b1cea 100644
--- a/patches/server/0621-Don-t-log-debug-logging-being-disabled.patch
+++ b/patches/server/0620-Don-t-log-debug-logging-being-disabled.patch
diff --git a/patches/server/0622-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0621-fix-various-menus-with-empty-level-accesses.patch
index efe5d1ddce..efe5d1ddce 100644
--- a/patches/server/0622-fix-various-menus-with-empty-level-accesses.patch
+++ b/patches/server/0621-fix-various-menus-with-empty-level-accesses.patch
diff --git a/patches/server/0623-Preserve-overstacked-loot.patch b/patches/server/0622-Preserve-overstacked-loot.patch
index bd657ec906..bd657ec906 100644
--- a/patches/server/0623-Preserve-overstacked-loot.patch
+++ b/patches/server/0622-Preserve-overstacked-loot.patch
diff --git a/patches/server/0624-Update-head-rotation-in-missing-places.patch b/patches/server/0623-Update-head-rotation-in-missing-places.patch
index 186e138124..186e138124 100644
--- a/patches/server/0624-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0623-Update-head-rotation-in-missing-places.patch
diff --git a/patches/server/0625-prevent-unintended-light-block-manipulation.patch b/patches/server/0624-prevent-unintended-light-block-manipulation.patch
index bff44792dc..bff44792dc 100644
--- a/patches/server/0625-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0624-prevent-unintended-light-block-manipulation.patch
diff --git a/patches/server/0626-Fix-CraftCriteria-defaults-map.patch b/patches/server/0625-Fix-CraftCriteria-defaults-map.patch
index 3e79bd7fb7..3e79bd7fb7 100644
--- a/patches/server/0626-Fix-CraftCriteria-defaults-map.patch
+++ b/patches/server/0625-Fix-CraftCriteria-defaults-map.patch
diff --git a/patches/server/0627-Fix-upstreams-block-state-factories.patch b/patches/server/0626-Fix-upstreams-block-state-factories.patch
index a48a6b0d09..a48a6b0d09 100644
--- a/patches/server/0627-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0626-Fix-upstreams-block-state-factories.patch
diff --git a/patches/server/0628-Configurable-feature-seeds.patch b/patches/server/0627-Configurable-feature-seeds.patch
index 27997ba7c0..27997ba7c0 100644
--- a/patches/server/0628-Configurable-feature-seeds.patch
+++ b/patches/server/0627-Configurable-feature-seeds.patch
diff --git a/patches/server/0629-Add-root-admin-user-detection.patch b/patches/server/0628-Add-root-admin-user-detection.patch
index abe2f3b5ae..abe2f3b5ae 100644
--- a/patches/server/0629-Add-root-admin-user-detection.patch
+++ b/patches/server/0628-Add-root-admin-user-detection.patch
diff --git a/patches/server/0630-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0629-don-t-attempt-to-teleport-dead-entities.patch
index c8a83e584f..c8a83e584f 100644
--- a/patches/server/0630-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0629-don-t-attempt-to-teleport-dead-entities.patch
diff --git a/patches/server/0631-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0630-Prevent-excessive-velocity-through-repeated-crits.patch
index b9094798f2..b9094798f2 100644
--- a/patches/server/0631-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0630-Prevent-excessive-velocity-through-repeated-crits.patch
diff --git a/patches/server/0632-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0631-Remove-client-side-code-using-deprecated-for-removal.patch
index 4aed4f1f3a..4aed4f1f3a 100644
--- a/patches/server/0632-Remove-client-side-code-using-deprecated-for-removal.patch
+++ b/patches/server/0631-Remove-client-side-code-using-deprecated-for-removal.patch
diff --git a/patches/server/0633-Fix-Spigot-growth-modifiers.patch b/patches/server/0632-Fix-Spigot-growth-modifiers.patch
index 35160b163d..35160b163d 100644
--- a/patches/server/0633-Fix-Spigot-growth-modifiers.patch
+++ b/patches/server/0632-Fix-Spigot-growth-modifiers.patch
diff --git a/patches/server/0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch
index b017de75d1..b017de75d1 100644
--- a/patches/server/0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch
+++ b/patches/server/0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/server/0635-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0634-Add-PlayerItemFrameChangeEvent.patch
index e047726740..e047726740 100644
--- a/patches/server/0635-Add-PlayerItemFrameChangeEvent.patch
+++ b/patches/server/0634-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/server/0636-Optimize-HashMapPalette.patch b/patches/server/0635-Optimize-HashMapPalette.patch
index d50159b901..d50159b901 100644
--- a/patches/server/0636-Optimize-HashMapPalette.patch
+++ b/patches/server/0635-Optimize-HashMapPalette.patch
diff --git a/patches/server/0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
index 8f7f6be080..8f7f6be080 100644
--- a/patches/server/0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
+++ b/patches/server/0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
diff --git a/patches/server/0638-Add-more-Campfire-API.patch b/patches/server/0637-Add-more-Campfire-API.patch
index 012ca1cc7d..012ca1cc7d 100644
--- a/patches/server/0638-Add-more-Campfire-API.patch
+++ b/patches/server/0637-Add-more-Campfire-API.patch
diff --git a/patches/server/0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
index 80c053acc6..80c053acc6 100644
--- a/patches/server/0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
+++ b/patches/server/0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
diff --git a/patches/server/0640-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0639-Forward-CraftEntity-in-teleport-command.patch
index f2a0a947bb..f2a0a947bb 100644
--- a/patches/server/0640-Forward-CraftEntity-in-teleport-command.patch
+++ b/patches/server/0639-Forward-CraftEntity-in-teleport-command.patch
diff --git a/patches/server/0641-Improve-scoreboard-entries.patch b/patches/server/0640-Improve-scoreboard-entries.patch
index 8acac86ce3..8acac86ce3 100644
--- a/patches/server/0641-Improve-scoreboard-entries.patch
+++ b/patches/server/0640-Improve-scoreboard-entries.patch
diff --git a/patches/server/0642-Entity-powdered-snow-API.patch b/patches/server/0641-Entity-powdered-snow-API.patch
index 8cba17f571..8cba17f571 100644
--- a/patches/server/0642-Entity-powdered-snow-API.patch
+++ b/patches/server/0641-Entity-powdered-snow-API.patch
diff --git a/patches/server/0643-Add-API-for-item-entity-health.patch b/patches/server/0642-Add-API-for-item-entity-health.patch
index cd2757b544..cd2757b544 100644
--- a/patches/server/0643-Add-API-for-item-entity-health.patch
+++ b/patches/server/0642-Add-API-for-item-entity-health.patch
diff --git a/patches/server/0644-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0643-Configurable-max-block-light-for-monster-spawning.patch
index d0fb0003dc..d0fb0003dc 100644
--- a/patches/server/0644-Configurable-max-block-light-for-monster-spawning.patch
+++ b/patches/server/0643-Configurable-max-block-light-for-monster-spawning.patch
diff --git a/patches/server/0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
index 2ee001a77a..2ee001a77a 100644
--- a/patches/server/0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
+++ b/patches/server/0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
diff --git a/patches/server/0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
index 026f793541..026f793541 100644
--- a/patches/server/0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
+++ b/patches/server/0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/server/0647-Bucketable-API.patch b/patches/server/0646-Bucketable-API.patch
index 274ccde059..274ccde059 100644
--- a/patches/server/0647-Bucketable-API.patch
+++ b/patches/server/0646-Bucketable-API.patch
diff --git a/patches/server/0648-Validate-usernames.patch b/patches/server/0647-Validate-usernames.patch
index 08d6e377eb..788e0c2a0d 100644
--- a/patches/server/0648-Validate-usernames.patch
+++ b/patches/server/0647-Validate-usernames.patch
@@ -32,7 +32,7 @@ index baedae23865ea80c6546d1f6f439e1d7712258b9..e9cd90b6bb2f57d605323add43f12962
GameProfile gameprofile = this.server.getSingleplayerProfile();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 2eced5d3b539dfd072b8b4eafb34f21f849b1bd5..97257e44163ed565b5f1152f0738649b1adbeb07 100644
+index d4fa173cebcef5fa86e5d077c2bad8e831392bf0..9563fc34579992b74451f32e8cbb24b19d1ee19e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -670,7 +670,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0649-Make-water-animal-spawn-height-configurable.patch b/patches/server/0648-Make-water-animal-spawn-height-configurable.patch
index 14f75d9b89..14f75d9b89 100644
--- a/patches/server/0649-Make-water-animal-spawn-height-configurable.patch
+++ b/patches/server/0648-Make-water-animal-spawn-height-configurable.patch
diff --git a/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index d10b9cc537..d10b9cc537 100644
--- a/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
diff --git a/patches/server/0651-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0650-Add-config-option-for-worlds-affected-by-time-cmd.patch
index 156eacada9..156eacada9 100644
--- a/patches/server/0651-Add-config-option-for-worlds-affected-by-time-cmd.patch
+++ b/patches/server/0650-Add-config-option-for-worlds-affected-by-time-cmd.patch
diff --git a/patches/server/0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
index be0eedab93..be0eedab93 100644
--- a/patches/server/0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
+++ b/patches/server/0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
diff --git a/patches/server/0653-Multiple-Entries-with-Scoreboards.patch b/patches/server/0652-Multiple-Entries-with-Scoreboards.patch
index c286ca9e4b..c286ca9e4b 100644
--- a/patches/server/0653-Multiple-Entries-with-Scoreboards.patch
+++ b/patches/server/0652-Multiple-Entries-with-Scoreboards.patch
diff --git a/patches/server/0654-Reset-placed-block-on-exception.patch b/patches/server/0653-Reset-placed-block-on-exception.patch
index c5b6f9f135..c5b6f9f135 100644
--- a/patches/server/0654-Reset-placed-block-on-exception.patch
+++ b/patches/server/0653-Reset-placed-block-on-exception.patch
diff --git a/patches/server/0655-Add-configurable-height-for-slime-spawn.patch b/patches/server/0654-Add-configurable-height-for-slime-spawn.patch
index 5ed7f1549d..5ed7f1549d 100644
--- a/patches/server/0655-Add-configurable-height-for-slime-spawn.patch
+++ b/patches/server/0654-Add-configurable-height-for-slime-spawn.patch
diff --git a/patches/server/0656-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0655-Fix-xp-reward-for-baby-zombies.patch
index a4fec4e0f2..a4fec4e0f2 100644
--- a/patches/server/0656-Fix-xp-reward-for-baby-zombies.patch
+++ b/patches/server/0655-Fix-xp-reward-for-baby-zombies.patch
diff --git a/patches/server/0657-Multi-Block-Change-API-Implementation.patch b/patches/server/0656-Multi-Block-Change-API-Implementation.patch
index 6cf3af0bc9..edfcf23bd1 100644
--- a/patches/server/0657-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0656-Multi-Block-Change-API-Implementation.patch
@@ -24,7 +24,7 @@ index 926ff9be3d9e3f5d620e4c7ccb22b9f64865ff8c..1a37654aff9a9c86c9f7af10a1cf7213
buf.writeLong(this.sectionPos.asLong());
buf.writeVarInt(this.positions.length);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 395d5b5378e122c820fd4632180cf4f859e1f502..1ffbb31f2926a1b076ab213cb32dd19c7b0f8768 100644
+index 37f220976b1f1b0a423d7354e6730b6ad8096495..4b7b812a0203ef8a586c0e0cee10c41935487309 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -930,6 +930,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0658-Fix-NotePlayEvent.patch b/patches/server/0657-Fix-NotePlayEvent.patch
index 4a601d8f1b..4a601d8f1b 100644
--- a/patches/server/0658-Fix-NotePlayEvent.patch
+++ b/patches/server/0657-Fix-NotePlayEvent.patch
diff --git a/patches/server/0659-Freeze-Tick-Lock-API.patch b/patches/server/0658-Freeze-Tick-Lock-API.patch
index db6bd70b8f..db6bd70b8f 100644
--- a/patches/server/0659-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0658-Freeze-Tick-Lock-API.patch
diff --git a/patches/server/0660-More-PotionEffectType-API.patch b/patches/server/0659-More-PotionEffectType-API.patch
index 1bbb96d291..1bbb96d291 100644
--- a/patches/server/0660-More-PotionEffectType-API.patch
+++ b/patches/server/0659-More-PotionEffectType-API.patch
diff --git a/patches/server/0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
index 82d25835a6..82d25835a6 100644
--- a/patches/server/0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
+++ b/patches/server/0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
diff --git a/patches/server/0662-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0661-API-for-creating-command-sender-which-forwards-feedb.patch
index a9655fbaec..a9655fbaec 100644
--- a/patches/server/0662-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0661-API-for-creating-command-sender-which-forwards-feedb.patch
diff --git a/patches/server/0663-Add-missing-structure-set-seed-configs.patch b/patches/server/0662-Add-missing-structure-set-seed-configs.patch
index 12c137b53e..12c137b53e 100644
--- a/patches/server/0663-Add-missing-structure-set-seed-configs.patch
+++ b/patches/server/0662-Add-missing-structure-set-seed-configs.patch
diff --git a/patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch
index d4169a6e7a..1080cc2e2e 100644
--- a/patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch
+++ b/patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch
@@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the
placement.
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index ebc5f2e8d59da4bec25ff156ec95fe49366be59c..823146a66de8ce13e6dc6faf2fd135480bd51c3a 100644
+index 14d6e4548703b9b8640913f77406fff85f28d7ef..eeba6d3aeb50bc7ee6dcfe7cc18eee2487d47357 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -422,7 +422,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index 4486f4e79e..4486f4e79e 100644
--- a/patches/server/0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
diff --git a/patches/server/0666-Add-GameEvent-tags.patch b/patches/server/0665-Add-GameEvent-tags.patch
index e3189c431f..e3189c431f 100644
--- a/patches/server/0666-Add-GameEvent-tags.patch
+++ b/patches/server/0665-Add-GameEvent-tags.patch
diff --git a/patches/server/0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
index b22ddd6951..b22ddd6951 100644
--- a/patches/server/0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
+++ b/patches/server/0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
diff --git a/patches/server/0668-Furnace-RecipesUsed-API.patch b/patches/server/0667-Furnace-RecipesUsed-API.patch
index d8224fe839..d8224fe839 100644
--- a/patches/server/0668-Furnace-RecipesUsed-API.patch
+++ b/patches/server/0667-Furnace-RecipesUsed-API.patch
diff --git a/patches/server/0669-Configurable-sculk-sensor-listener-range.patch b/patches/server/0668-Configurable-sculk-sensor-listener-range.patch
index 99ff902efa..99ff902efa 100644
--- a/patches/server/0669-Configurable-sculk-sensor-listener-range.patch
+++ b/patches/server/0668-Configurable-sculk-sensor-listener-range.patch
diff --git a/patches/server/0670-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0669-Add-missing-block-data-mins-and-maxes.patch
index fe8170196d..fe8170196d 100644
--- a/patches/server/0670-Add-missing-block-data-mins-and-maxes.patch
+++ b/patches/server/0669-Add-missing-block-data-mins-and-maxes.patch
diff --git a/patches/server/0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch
index 3d41fa27d1..3d41fa27d1 100644
--- a/patches/server/0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch
+++ b/patches/server/0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch
diff --git a/patches/server/0672-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0671-Put-world-into-worldlist-before-initing-the-world.patch
index e0e72ba1ff..e0e72ba1ff 100644
--- a/patches/server/0672-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0671-Put-world-into-worldlist-before-initing-the-world.patch
diff --git a/patches/server/0673-Custom-Potion-Mixes.patch b/patches/server/0672-Custom-Potion-Mixes.patch
index 8cd0b19f49..89fb9f45a5 100644
--- a/patches/server/0673-Custom-Potion-Mixes.patch
+++ b/patches/server/0672-Custom-Potion-Mixes.patch
@@ -108,7 +108,7 @@ index 04286e907ff14cc8c45dbfc6ab12f520afcca2ca..8142e4a238066404f3d1685f9cee1a2b
this.getPlayerList().reloadResources();
this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary());
diff --git a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
-index a7c33675c3777cfbeeecbb3a123a0b03195e679c..93c4657f345b6d3442b1f2ab17b2703ded86b525 100644
+index 993abd8b0b80bfc7a1ce936eaaf3e0804fc9e0a4..eb2cdb36366e376b4e91aea847170b82ca26d274 100644
--- a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java
@@ -53,9 +53,11 @@ public class BrewingStandMenu extends AbstractContainerMenu {
diff --git a/patches/server/0674-Force-close-world-loading-screen.patch b/patches/server/0673-Force-close-world-loading-screen.patch
index 83d9e2f203..28475526c4 100644
--- a/patches/server/0674-Force-close-world-loading-screen.patch
+++ b/patches/server/0673-Force-close-world-loading-screen.patch
@@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to
be loaded to close the loading screen, so we just send an empty one.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 97257e44163ed565b5f1152f0738649b1adbeb07..d21d9a66ab7197ea4fa324a9af64a1457d8e602b 100644
+index 9563fc34579992b74451f32e8cbb24b19d1ee19e..2916328a5b94783e68688756b5ad7685f180e27f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -394,6 +394,16 @@ public abstract class PlayerList {
diff --git a/patches/server/0675-Fix-falling-block-spawn-methods.patch b/patches/server/0674-Fix-falling-block-spawn-methods.patch
index 730e95b540..730e95b540 100644
--- a/patches/server/0675-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0674-Fix-falling-block-spawn-methods.patch
diff --git a/patches/server/0676-Expose-furnace-minecart-push-values.patch b/patches/server/0675-Expose-furnace-minecart-push-values.patch
index 6245e14b4e..6245e14b4e 100644
--- a/patches/server/0676-Expose-furnace-minecart-push-values.patch
+++ b/patches/server/0675-Expose-furnace-minecart-push-values.patch
diff --git a/patches/server/0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
index 4698298019..4698298019 100644
--- a/patches/server/0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
+++ b/patches/server/0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
diff --git a/patches/server/0678-More-Projectile-API.patch b/patches/server/0677-More-Projectile-API.patch
index 34a555256e..1fb8d2e9f1 100644
--- a/patches/server/0678-More-Projectile-API.patch
+++ b/patches/server/0677-More-Projectile-API.patch
@@ -713,10 +713,10 @@ index e374b9f40eddca13b30855d25a2030f8df98138f..4fc893378fb0568ddcffc7593d66df6b
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 76be6bf839bb6aec7f2ab0295a3509fb106a95bf..3504b19a3748c64a6c93c86aa0b4a7a140996e06 100644
+index 4180b86620aa18a95e0793f646515779801a343e..ffc55cf79d0e7f90ba2816d7604477f018d75ecd 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -837,19 +837,19 @@ public class CraftEventFactory {
+@@ -841,19 +841,19 @@ public class CraftEventFactory {
/**
* PotionSplashEvent
*/
@@ -739,7 +739,7 @@ index 76be6bf839bb6aec7f2ab0295a3509fb106a95bf..3504b19a3748c64a6c93c86aa0b4a7a1
hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity();
}
-@@ -858,20 +858,20 @@ public class CraftEventFactory {
+@@ -862,20 +862,20 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0679-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0678-Fix-swamp-hut-cat-generation-deadlock.patch
index 6aa68bdd5c..6aa68bdd5c 100644
--- a/patches/server/0679-Fix-swamp-hut-cat-generation-deadlock.patch
+++ b/patches/server/0678-Fix-swamp-hut-cat-generation-deadlock.patch
diff --git a/patches/server/0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index 97f05cf771..97f05cf771 100644
--- a/patches/server/0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch
diff --git a/patches/server/0681-Implement-getComputedBiome-API.patch b/patches/server/0680-Implement-getComputedBiome-API.patch
index 41624673a7..41624673a7 100644
--- a/patches/server/0681-Implement-getComputedBiome-API.patch
+++ b/patches/server/0680-Implement-getComputedBiome-API.patch
diff --git a/patches/server/0682-Make-some-itemstacks-nonnull.patch b/patches/server/0681-Make-some-itemstacks-nonnull.patch
index 4679d4a859..4679d4a859 100644
--- a/patches/server/0682-Make-some-itemstacks-nonnull.patch
+++ b/patches/server/0681-Make-some-itemstacks-nonnull.patch
diff --git a/patches/server/0683-Implement-enchantWithLevels-API.patch b/patches/server/0682-Implement-enchantWithLevels-API.patch
index 7bf61f04ba..7bf61f04ba 100644
--- a/patches/server/0683-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0682-Implement-enchantWithLevels-API.patch
diff --git a/patches/server/0684-Fix-saving-in-unloadWorld.patch b/patches/server/0683-Fix-saving-in-unloadWorld.patch
index 34ffb09d94..34ffb09d94 100644
--- a/patches/server/0684-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0683-Fix-saving-in-unloadWorld.patch
diff --git a/patches/server/0685-Buffer-OOB-setBlock-calls.patch b/patches/server/0684-Buffer-OOB-setBlock-calls.patch
index 7bc7bd4823..7bc7bd4823 100644
--- a/patches/server/0685-Buffer-OOB-setBlock-calls.patch
+++ b/patches/server/0684-Buffer-OOB-setBlock-calls.patch
diff --git a/patches/server/0686-Add-TameableDeathMessageEvent.patch b/patches/server/0685-Add-TameableDeathMessageEvent.patch
index e683289da1..e683289da1 100644
--- a/patches/server/0686-Add-TameableDeathMessageEvent.patch
+++ b/patches/server/0685-Add-TameableDeathMessageEvent.patch
diff --git a/patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch
index 7e7e38c837..48633dc491 100644
--- a/patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ b/patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch
@@ -196,10 +196,10 @@ index edc20745649b0837f1371c8d29e71fc0c8e5528f..932831bb5632ead5850842fc77192c84
}
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3504b19a3748c64a6c93c86aa0b4a7a140996e06..55eee3a7d922f8c298b4653d733e30edc12005c5 100644
+index ffc55cf79d0e7f90ba2816d7604477f018d75ecd..697ef7d19cca2d3f51ccff9e4ab14d87a7ddaf00 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1374,11 +1374,11 @@ public class CraftEventFactory {
+@@ -1378,11 +1378,11 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0688-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0687-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 7e36336db0..7e36336db0 100644
--- a/patches/server/0688-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0687-fix-player-loottables-running-when-mob-loot-gamerule.patch
diff --git a/patches/server/0689-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0688-Ensure-entity-passenger-world-matches-ridden-entity.patch
index 1782fbc238..1782fbc238 100644
--- a/patches/server/0689-Ensure-entity-passenger-world-matches-ridden-entity.patch
+++ b/patches/server/0688-Ensure-entity-passenger-world-matches-ridden-entity.patch
diff --git a/patches/server/0690-cache-resource-keys.patch b/patches/server/0689-cache-resource-keys.patch
index 7f3b6ce992..7f3b6ce992 100644
--- a/patches/server/0690-cache-resource-keys.patch
+++ b/patches/server/0689-cache-resource-keys.patch
diff --git a/patches/server/0691-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0690-Allow-changing-the-EnderDragon-podium.patch
index 4c615ac132..4c615ac132 100644
--- a/patches/server/0691-Allow-changing-the-EnderDragon-podium.patch
+++ b/patches/server/0690-Allow-changing-the-EnderDragon-podium.patch
diff --git a/patches/server/0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
index 265f2bbdbb..265f2bbdbb 100644
--- a/patches/server/0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
+++ b/patches/server/0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
diff --git a/patches/server/0693-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch
index 41eee9f92e..41eee9f92e 100644
--- a/patches/server/0693-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch
diff --git a/patches/server/0694-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0693-Use-username-instead-of-display-name-in-PlayerList-g.patch
index d98876142b..d98876142b 100644
--- a/patches/server/0694-Use-username-instead-of-display-name-in-PlayerList-g.patch
+++ b/patches/server/0693-Use-username-instead-of-display-name-in-PlayerList-g.patch
diff --git a/patches/server/0695-Expand-PlayerItemDamageEvent.patch b/patches/server/0694-Expand-PlayerItemDamageEvent.patch
index bf458d8c9b..d550002186 100644
--- a/patches/server/0695-Expand-PlayerItemDamageEvent.patch
+++ b/patches/server/0694-Expand-PlayerItemDamageEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 823146a66de8ce13e6dc6faf2fd135480bd51c3a..d825c2e3808e44db9935dab4e7b528146c6d83c2 100644
+index eeba6d3aeb50bc7ee6dcfe7cc18eee2487d47357..598507684aed7978fa2e9bae0d959c7d0f9e53d6 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -650,10 +650,11 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0696-WorldCreator-keepSpawnLoaded.patch b/patches/server/0695-WorldCreator-keepSpawnLoaded.patch
index 283377b0ad..283377b0ad 100644
--- a/patches/server/0696-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0695-WorldCreator-keepSpawnLoaded.patch
diff --git a/patches/server/0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
index ed8adb4503..ed8adb4503 100644
--- a/patches/server/0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
+++ b/patches/server/0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
diff --git a/patches/server/0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
index ed6f344427..ed6f344427 100644
--- a/patches/server/0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
+++ b/patches/server/0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
diff --git a/patches/server/0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch
index b73fc3193a..b73fc3193a 100644
--- a/patches/server/0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch
+++ b/patches/server/0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/server/0700-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0699-Fire-CauldronLevelChange-on-initial-fill.patch
index 07f836b363..07f836b363 100644
--- a/patches/server/0700-Fire-CauldronLevelChange-on-initial-fill.patch
+++ b/patches/server/0699-Fire-CauldronLevelChange-on-initial-fill.patch
diff --git a/patches/server/0701-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0700-fix-powder-snow-cauldrons-not-turning-to-water.patch
index f277b93aa1..f277b93aa1 100644
--- a/patches/server/0701-fix-powder-snow-cauldrons-not-turning-to-water.patch
+++ b/patches/server/0700-fix-powder-snow-cauldrons-not-turning-to-water.patch
diff --git a/patches/server/0702-Add-PlayerStopUsingItemEvent.patch b/patches/server/0701-Add-PlayerStopUsingItemEvent.patch
index 735b98addf..735b98addf 100644
--- a/patches/server/0702-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0701-Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/server/0703-Don-t-tick-markers.patch b/patches/server/0702-Don-t-tick-markers.patch
index 98a89bf35d..98a89bf35d 100644
--- a/patches/server/0703-Don-t-tick-markers.patch
+++ b/patches/server/0702-Don-t-tick-markers.patch
diff --git a/patches/server/0704-Expand-FallingBlock-API.patch b/patches/server/0703-Expand-FallingBlock-API.patch
index 84c7821142..84c7821142 100644
--- a/patches/server/0704-Expand-FallingBlock-API.patch
+++ b/patches/server/0703-Expand-FallingBlock-API.patch
diff --git a/patches/server/0705-Add-support-for-Proxy-Protocol.patch b/patches/server/0704-Add-support-for-Proxy-Protocol.patch
index aca878218f..aca878218f 100644
--- a/patches/server/0705-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0704-Add-support-for-Proxy-Protocol.patch
diff --git a/patches/server/0706-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0705-Fix-OfflinePlayer-getBedSpawnLocation.patch
index 61c9b7dd07..61c9b7dd07 100644
--- a/patches/server/0706-Fix-OfflinePlayer-getBedSpawnLocation.patch
+++ b/patches/server/0705-Fix-OfflinePlayer-getBedSpawnLocation.patch
diff --git a/patches/server/0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
index 7158b83635..7158b83635 100644
--- a/patches/server/0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
+++ b/patches/server/0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
diff --git a/patches/server/0708-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch
index 0f97b535cc..0f97b535cc 100644
--- a/patches/server/0708-Sanitize-sent-BlockEntity-NBT.patch
+++ b/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch
diff --git a/patches/server/0709-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0708-Disable-component-selector-resolving-in-books-by-def.patch
index 796fcc7f2a..796fcc7f2a 100644
--- a/patches/server/0709-Disable-component-selector-resolving-in-books-by-def.patch
+++ b/patches/server/0708-Disable-component-selector-resolving-in-books-by-def.patch
diff --git a/patches/server/0710-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0709-Prevent-entity-loading-causing-async-lookups.patch
index fca7a0fd8f..fca7a0fd8f 100644
--- a/patches/server/0710-Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/0709-Prevent-entity-loading-causing-async-lookups.patch
diff --git a/patches/server/0711-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0710-Throw-exception-on-world-create-while-being-ticked.patch
index f99074702f..f99074702f 100644
--- a/patches/server/0711-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0710-Throw-exception-on-world-create-while-being-ticked.patch
diff --git a/patches/server/0712-Dont-resent-entity-on-art-update.patch b/patches/server/0711-Dont-resent-entity-on-art-update.patch
index 38d1a4ca58..38d1a4ca58 100644
--- a/patches/server/0712-Dont-resent-entity-on-art-update.patch
+++ b/patches/server/0711-Dont-resent-entity-on-art-update.patch
diff --git a/patches/server/0713-Add-WardenAngerChangeEvent.patch b/patches/server/0712-Add-WardenAngerChangeEvent.patch
index 41f4251548..41f4251548 100644
--- a/patches/server/0713-Add-WardenAngerChangeEvent.patch
+++ b/patches/server/0712-Add-WardenAngerChangeEvent.patch
diff --git a/patches/server/0714-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch
index 238d672cce..238d672cce 100644
--- a/patches/server/0714-Add-option-for-strict-advancement-dimension-checks.patch
+++ b/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch
diff --git a/patches/server/0715-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0714-Add-missing-important-BlockStateListPopulator-method.patch
index ecf565ebf6..ecf565ebf6 100644
--- a/patches/server/0715-Add-missing-important-BlockStateListPopulator-method.patch
+++ b/patches/server/0714-Add-missing-important-BlockStateListPopulator-method.patch
diff --git a/patches/server/0716-Nameable-Banner-API.patch b/patches/server/0715-Nameable-Banner-API.patch
index da3d804d8f..da3d804d8f 100644
--- a/patches/server/0716-Nameable-Banner-API.patch
+++ b/patches/server/0715-Nameable-Banner-API.patch
diff --git a/patches/server/0717-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0716-Don-t-broadcast-messages-to-command-blocks.patch
index e5dee87a16..e5dee87a16 100644
--- a/patches/server/0717-Don-t-broadcast-messages-to-command-blocks.patch
+++ b/patches/server/0716-Don-t-broadcast-messages-to-command-blocks.patch
diff --git a/patches/server/0718-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0717-Prevent-empty-items-from-being-added-to-world.patch
index c9e7ae9955..c9e7ae9955 100644
--- a/patches/server/0718-Prevent-empty-items-from-being-added-to-world.patch
+++ b/patches/server/0717-Prevent-empty-items-from-being-added-to-world.patch
diff --git a/patches/server/0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
index c2e21a749e..c2e21a749e 100644
--- a/patches/server/0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
+++ b/patches/server/0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
diff --git a/patches/server/0720-Add-Player-getFishHook.patch b/patches/server/0719-Add-Player-getFishHook.patch
index 7ab8083ac7..7ab8083ac7 100644
--- a/patches/server/0720-Add-Player-getFishHook.patch
+++ b/patches/server/0719-Add-Player-getFishHook.patch
diff --git a/patches/server/0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
index 32aaf6dc6e..32aaf6dc6e 100644
--- a/patches/server/0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
+++ b/patches/server/0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
diff --git a/patches/server/0722-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0721-Add-various-missing-EntityDropItemEvent-calls.patch
index 6177362922..6177362922 100644
--- a/patches/server/0722-Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/0721-Add-various-missing-EntityDropItemEvent-calls.patch
diff --git a/patches/server/0723-Fix-Bee-flower-NPE.patch b/patches/server/0722-Fix-Bee-flower-NPE.patch
index db6e1b0ad9..db6e1b0ad9 100644
--- a/patches/server/0723-Fix-Bee-flower-NPE.patch
+++ b/patches/server/0722-Fix-Bee-flower-NPE.patch
diff --git a/patches/server/0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 6a05adf6b7..6a05adf6b7 100644
--- a/patches/server/0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
diff --git a/patches/server/0725-More-Teleport-API.patch b/patches/server/0724-More-Teleport-API.patch
index 658e715895..3c95df3508 100644
--- a/patches/server/0725-More-Teleport-API.patch
+++ b/patches/server/0724-More-Teleport-API.patch
@@ -29,7 +29,7 @@ index 8f65943161a6621f8f7926c48322e26a854ae139..58fd502c2a735d4a102de451a002cfd6
d0 = to.getX();
d1 = to.getY();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 47f24e390efd8eb4cb7f62b5203825f4160772b7..243ac4253a1541dba52126bad96682e43c6f48a1 100644
+index 4c09f2529dd8eb7ac7d260d177f5292ff2339442..94051ae8ea93ab144f3767345b1cda0438d2afc6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -221,15 +221,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -112,7 +112,7 @@ index 47f24e390efd8eb4cb7f62b5203825f4160772b7..243ac4253a1541dba52126bad96682e4
private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot()
{
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 1ffbb31f2926a1b076ab213cb32dd19c7b0f8768..7f449bc5a0644709b426dba70a5afccc26a37de8 100644
+index 4b7b812a0203ef8a586c0e0cee10c41935487309..d2f6fb41b16468bf03675b3a331c707e21f8c9ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1286,13 +1286,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0726-Add-EntityPortalReadyEvent.patch b/patches/server/0725-Add-EntityPortalReadyEvent.patch
index 3b5704098f..3b5704098f 100644
--- a/patches/server/0726-Add-EntityPortalReadyEvent.patch
+++ b/patches/server/0725-Add-EntityPortalReadyEvent.patch
diff --git a/patches/server/0727-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0726-Don-t-use-level-random-in-entity-constructors.patch
index cb41bd38c5..cb41bd38c5 100644
--- a/patches/server/0727-Don-t-use-level-random-in-entity-constructors.patch
+++ b/patches/server/0726-Don-t-use-level-random-in-entity-constructors.patch
diff --git a/patches/server/0728-Send-block-entities-after-destroy-prediction.patch b/patches/server/0727-Send-block-entities-after-destroy-prediction.patch
index 40992c754a..40992c754a 100644
--- a/patches/server/0728-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0727-Send-block-entities-after-destroy-prediction.patch
diff --git a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch
index b405c21a44..5030feaf00 100644
--- a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 38bcf9f410e8a9d47c7d486c28dbc16a6225b650..210c3b6167dac93e550fe849e34b5aa404ab6dce 100644
+index b4111bcc6a676dc42b233761aa667708669c2ab8..cc92d2e8b77c75da1d8b850c3bc251e8ac221c24 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -339,7 +339,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch
index eb2cf4cb83..45789f37e1 100644
--- a/patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7f449bc5a0644709b426dba70a5afccc26a37de8..7a4ae758616225002cc14060753bb691ee1d94bb 100644
+index d2f6fb41b16468bf03675b3a331c707e21f8c9ce..5f3045630197f6d515bc66f7fa8014814dbfd8a7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -691,6 +691,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0731-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0730-Add-and-fix-missing-BlockFadeEvents.patch
index 062bad35bb..062bad35bb 100644
--- a/patches/server/0731-Add-and-fix-missing-BlockFadeEvents.patch
+++ b/patches/server/0730-Add-and-fix-missing-BlockFadeEvents.patch
diff --git a/patches/server/0732-Collision-API.patch b/patches/server/0731-Collision-API.patch
index f8bf3193f8..f8bf3193f8 100644
--- a/patches/server/0732-Collision-API.patch
+++ b/patches/server/0731-Collision-API.patch
diff --git a/patches/server/0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
index f661ad8722..f661ad8722 100644
--- a/patches/server/0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
+++ b/patches/server/0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
diff --git a/patches/server/0734-Block-Ticking-API.patch b/patches/server/0733-Block-Ticking-API.patch
index 9e5247f35f..9e5247f35f 100644
--- a/patches/server/0734-Block-Ticking-API.patch
+++ b/patches/server/0733-Block-Ticking-API.patch
diff --git a/patches/server/0735-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0734-Add-Velocity-IP-Forwarding-Support.patch
index ef2c3507a8..ef2c3507a8 100644
--- a/patches/server/0735-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0734-Add-Velocity-IP-Forwarding-Support.patch
diff --git a/patches/server/0736-Add-NamespacedKey-biome-methods.patch b/patches/server/0735-Add-NamespacedKey-biome-methods.patch
index 2d26388547..2d26388547 100644
--- a/patches/server/0736-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0735-Add-NamespacedKey-biome-methods.patch
diff --git a/patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch
index 18da0811b4..3a9d6b48df 100644
--- a/patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch
+++ b/patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch
@@ -49,7 +49,7 @@ index acdba56f025fe729398c5549175baad8e6818f62..3aba668f9a34cabc26063c61660ab22f
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index b9b93a4e20eed028b76eab4dcb9610ae05f22faf..1acc0a579804dee7bb3d0f755c24240413ed7540 100644
+index ba95452f99e542638c3a3f7bbfdf6e79849014c5..618f4b2e1d012b647b3e7bf359c8ecdd7f159e63 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -19,6 +19,12 @@ public class Main {
diff --git a/patches/server/0738-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch
index 592bb75b03..592bb75b03 100644
--- a/patches/server/0738-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch
diff --git a/patches/server/0739-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0738-Fire-EntityChangeBlockEvent-in-more-places.patch
index bafa064971..bafa064971 100644
--- a/patches/server/0739-Fire-EntityChangeBlockEvent-in-more-places.patch
+++ b/patches/server/0738-Fire-EntityChangeBlockEvent-in-more-places.patch
diff --git a/patches/server/0740-Missing-eating-regain-reason.patch b/patches/server/0739-Missing-eating-regain-reason.patch
index af804e161b..af804e161b 100644
--- a/patches/server/0740-Missing-eating-regain-reason.patch
+++ b/patches/server/0739-Missing-eating-regain-reason.patch
diff --git a/patches/server/0741-Missing-effect-cause.patch b/patches/server/0740-Missing-effect-cause.patch
index f9c09496b6..f9c09496b6 100644
--- a/patches/server/0741-Missing-effect-cause.patch
+++ b/patches/server/0740-Missing-effect-cause.patch
diff --git a/patches/server/0742-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0741-Added-byte-array-serialization-deserialization-for-P.patch
index f2a4d437f0..f2a4d437f0 100644
--- a/patches/server/0742-Added-byte-array-serialization-deserialization-for-P.patch
+++ b/patches/server/0741-Added-byte-array-serialization-deserialization-for-P.patch
diff --git a/patches/server/0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
index 1472e064ab..1472e064ab 100644
--- a/patches/server/0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
+++ b/patches/server/0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
diff --git a/patches/server/0744-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0743-Call-BlockPhysicsEvent-more-often.patch
index 1839fbe711..1839fbe711 100644
--- a/patches/server/0744-Call-BlockPhysicsEvent-more-often.patch
+++ b/patches/server/0743-Call-BlockPhysicsEvent-more-often.patch
diff --git a/patches/server/0745-Configurable-chat-thread-limit.patch b/patches/server/0744-Configurable-chat-thread-limit.patch
index 8b31661dd0..8b31661dd0 100644
--- a/patches/server/0745-Configurable-chat-thread-limit.patch
+++ b/patches/server/0744-Configurable-chat-thread-limit.patch
diff --git a/patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
index f517c5483b..aaf56a3c17 100644
--- a/patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
+++ b/patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type
TODO: Remove in 1.21?
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index b67dfb358a9c1ae26793557ca2151357db4b1691..a28bd14454a599014f24ed21210a8a185ac624db 100644
+index 157fbe09ab22f3218d9d3f72e8c0a5a3d727eaeb..cae5c865388aca8041233ca52b25ecf68cd37494 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -439,6 +439,12 @@ public class Commodore {
+@@ -440,6 +440,12 @@ public class Commodore {
super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, runtimeCbPkgPrefix() + "advancement/CraftAdvancement", "getDisplay0", desc, false);
return;
}
diff --git a/patches/server/0747-fix-Jigsaw-block-kicking-user.patch b/patches/server/0746-fix-Jigsaw-block-kicking-user.patch
index 6e1aef94c8..6e1aef94c8 100644
--- a/patches/server/0747-fix-Jigsaw-block-kicking-user.patch
+++ b/patches/server/0746-fix-Jigsaw-block-kicking-user.patch
diff --git a/patches/server/0748-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0747-use-BlockFormEvent-for-mud-converting-into-clay.patch
index 8653ffd786..8653ffd786 100644
--- a/patches/server/0748-use-BlockFormEvent-for-mud-converting-into-clay.patch
+++ b/patches/server/0747-use-BlockFormEvent-for-mud-converting-into-clay.patch
diff --git a/patches/server/0749-Add-getDrops-to-BlockState.patch b/patches/server/0748-Add-getDrops-to-BlockState.patch
index ea12f69bde..ea12f69bde 100644
--- a/patches/server/0749-Add-getDrops-to-BlockState.patch
+++ b/patches/server/0748-Add-getDrops-to-BlockState.patch
diff --git a/patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch
index 074c1a9d45..197bab1c24 100644
--- a/patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch
+++ b/patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch
@@ -85,7 +85,7 @@ index 6854ca4d4fec2b4fa541c3fabf63787665572609..e7b444a10b244828827b3c66c5346520
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index b953def299faf1a13e1893d17a476f36e2d6337a..d409791325771909faaef0dffb0f7f02d1bf71af 100644
+index 071e9ef3680c5dc492c6142ccd05f6788ebc3035..61fda6927f060cdf8bcfddaaa08bbbe2c514c630 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1027,7 +1027,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -124,7 +124,7 @@ index 6abecaac8407b992d208a9108e11fd4954a4106f..03d89f326d320c5d778c3d1e2db7d6b8
this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit
this.level.updateSleepingPlayerList();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index d430e6c08bae0a630e71c11c9eae26bef85bde36..a929b8f1c452db08a64e4be53b488cf2676e0a94 100644
+index b0a1f6cf2cc96a2ddc8232f929c134501d99411e..84add5cc89ec912389500b6140a39d6b7ddc9e86 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -260,7 +260,7 @@ public abstract class PlayerList {
@@ -249,7 +249,7 @@ index 08dcc94c9eca9a5fd61055f05b7737ba5840b5bf..e0e5046c84941a8d17e18c177f3daea9
return 1;
}
diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
-index 5b6133f6758d322713321b7e918db0c3e0d4be51..6173c689013ab02c83ca6ff1fde2b1e47f3e7820 100644
+index 396559c281eee9e8c677cb222721414e8d9e12a2..8b0ebf659f6b219ce2a5d10b0d79f9b89b47c911 100644
--- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
@@ -178,6 +178,11 @@ public class BeaconMenu extends AbstractContainerMenu {
diff --git a/patches/server/0751-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0750-Remove-unnecessary-onTrackingStart-during-navigation.patch
index bbff07c888..bbff07c888 100644
--- a/patches/server/0751-Remove-unnecessary-onTrackingStart-during-navigation.patch
+++ b/patches/server/0750-Remove-unnecessary-onTrackingStart-during-navigation.patch
diff --git a/patches/server/0752-Fix-custom-piglin-loved-items.patch b/patches/server/0751-Fix-custom-piglin-loved-items.patch
index a09a51f7ea..a09a51f7ea 100644
--- a/patches/server/0752-Fix-custom-piglin-loved-items.patch
+++ b/patches/server/0751-Fix-custom-piglin-loved-items.patch
diff --git a/patches/server/0753-EntityPickupItemEvent-fixes.patch b/patches/server/0752-EntityPickupItemEvent-fixes.patch
index 375a09d01d..375a09d01d 100644
--- a/patches/server/0753-EntityPickupItemEvent-fixes.patch
+++ b/patches/server/0752-EntityPickupItemEvent-fixes.patch
diff --git a/patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch
index cc9068cb42..e533866d2a 100644
--- a/patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -30,10 +30,10 @@ index 03d89f326d320c5d778c3d1e2db7d6b88753faec..717d015dd4637dd9d568b751be1dc104
this.interactResult = event.useItemInHand() == Event.Result.DENY;
this.interactPosition = blockposition.immutable();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 55eee3a7d922f8c298b4653d733e30edc12005c5..82b98a9b6418614283ac512f59586877f577b35b 100644
+index 697ef7d19cca2d3f51ccff9e4ab14d87a7ddaf00..668becf24a16af6b834d05608787c8f9420e9ad3 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -550,6 +550,12 @@ public class CraftEventFactory {
+@@ -554,6 +554,12 @@ public class CraftEventFactory {
}
public static PlayerInteractEvent callPlayerInteractEvent(net.minecraft.world.entity.player.Player who, Action action, BlockPos position, Direction direction, ItemStack itemstack, boolean cancelledBlock, InteractionHand hand, Vec3 targetPos) {
@@ -46,7 +46,7 @@ index 55eee3a7d922f8c298b4653d733e30edc12005c5..82b98a9b6418614283ac512f59586877
Player player = (who == null) ? null : (Player) who.getBukkitEntity();
CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack);
-@@ -584,6 +590,11 @@ public class CraftEventFactory {
+@@ -588,6 +594,11 @@ public class CraftEventFactory {
if (cancelledBlock) {
event.setUseInteractedBlock(Event.Result.DENY);
}
diff --git a/patches/server/0755-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0754-Add-PlayerInventorySlotChangeEvent.patch
index 559e666820..559e666820 100644
--- a/patches/server/0755-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0754-Add-PlayerInventorySlotChangeEvent.patch
diff --git a/patches/server/0756-Elder-Guardian-appearance-API.patch b/patches/server/0755-Elder-Guardian-appearance-API.patch
index 05ca8f144b..8f007ec892 100644
--- a/patches/server/0756-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0755-Elder-Guardian-appearance-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7a4ae758616225002cc14060753bb691ee1d94bb..3566c607c7d66eb8d64cdcd77204b6b132287f58 100644
+index 5f3045630197f6d515bc66f7fa8014814dbfd8a7..2ec75a25de34b68e7c14416a06facce6a169bac7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3298,6 +3298,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0757-Allow-changing-bed-s-occupied-property.patch b/patches/server/0756-Allow-changing-bed-s-occupied-property.patch
index d8b51d7f0b..d8b51d7f0b 100644
--- a/patches/server/0757-Allow-changing-bed-s-occupied-property.patch
+++ b/patches/server/0756-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/server/0758-Add-entity-knockback-API.patch b/patches/server/0757-Add-entity-knockback-API.patch
index e69cd1ea90..e69cd1ea90 100644
--- a/patches/server/0758-Add-entity-knockback-API.patch
+++ b/patches/server/0757-Add-entity-knockback-API.patch
diff --git a/patches/server/0759-Detect-headless-JREs.patch b/patches/server/0758-Detect-headless-JREs.patch
index 5ba28913a8..5ba28913a8 100644
--- a/patches/server/0759-Detect-headless-JREs.patch
+++ b/patches/server/0758-Detect-headless-JREs.patch
diff --git a/patches/server/0760-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0759-fix-entity-vehicle-collision-event-not-called.patch
index e39b0eaf22..e39b0eaf22 100644
--- a/patches/server/0760-fix-entity-vehicle-collision-event-not-called.patch
+++ b/patches/server/0759-fix-entity-vehicle-collision-event-not-called.patch
diff --git a/patches/server/0761-Add-EntityToggleSitEvent.patch b/patches/server/0760-Add-EntityToggleSitEvent.patch
index c9aef59416..c9aef59416 100644
--- a/patches/server/0761-Add-EntityToggleSitEvent.patch
+++ b/patches/server/0760-Add-EntityToggleSitEvent.patch
diff --git a/patches/server/0762-Add-fire-tick-delay-option.patch b/patches/server/0761-Add-fire-tick-delay-option.patch
index 848f831f0e..2ad454d1c6 100644
--- a/patches/server/0762-Add-fire-tick-delay-option.patch
+++ b/patches/server/0761-Add-fire-tick-delay-option.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add fire-tick-delay option
diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java
-index 5dad1aa26a8908cba6a08398a4bad27f31d4c2c0..4d467ecf0dd8006b9fa4fb8fb5aadc0622a1e512 100644
+index 9db6df5f28be559a324ead2fcfbe189eac076e2e..0a77a470d78f68e8397f29f298e7f52fbd7ba9a2 100644
--- a/src/main/java/net/minecraft/world/level/block/FireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java
@@ -171,7 +171,7 @@ public class FireBlock extends BaseFireBlock {
@@ -13,16 +13,16 @@ index 5dad1aa26a8908cba6a08398a4bad27f31d4c2c0..4d467ecf0dd8006b9fa4fb8fb5aadc06
@Override
protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
- world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random));
-+ world.scheduleTick(pos, this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option
++ world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option
if (world.getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) {
if (!state.canSurvive(world, pos)) {
this.fireExtinguished(world, pos); // CraftBukkit - invalid place location
@@ -372,11 +372,11 @@ public class FireBlock extends BaseFireBlock {
- protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) {
- super.onPlace(state, world, pos, oldState, notify, context);
- // Paper end - UseOnContext param
-- world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random));
-+ world.scheduleTick(pos, this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option
+ protected void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, UseOnContext context) {
+ super.onPlace(iblockdata, world, blockposition, iblockdata1, flag, context);
+ // CraftBukkit end
+- world.scheduleTick(blockposition, (Block) this, FireBlock.getFireTickDelay(world.random));
++ world.scheduleTick(blockposition, (Block) this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option
}
- private static int getFireTickDelay(RandomSource random) {
diff --git a/patches/server/0763-Add-Moving-Piston-API.patch b/patches/server/0762-Add-Moving-Piston-API.patch
index e3d3955822..e3d3955822 100644
--- a/patches/server/0763-Add-Moving-Piston-API.patch
+++ b/patches/server/0762-Add-Moving-Piston-API.patch
diff --git a/patches/server/0764-Ignore-impossible-spawn-tick.patch b/patches/server/0763-Ignore-impossible-spawn-tick.patch
index f046102ceb..f046102ceb 100644
--- a/patches/server/0764-Ignore-impossible-spawn-tick.patch
+++ b/patches/server/0763-Ignore-impossible-spawn-tick.patch
diff --git a/patches/server/0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
index c42422ceca..c42422ceca 100644
--- a/patches/server/0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
+++ b/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
diff --git a/patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
index d0cf5c9861..77c18397b3 100644
--- a/patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
+++ b/patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
@@ -21,10 +21,10 @@ index 43a2570196619bd239170de586626a7112066430..655a0f2328b641ce41c64e9bb1456e05
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-index c36e64c3df09f14ffb06b81ef20c5e200e386e50..bdf432850f8228ed42b09afea79ecc5c1055c930 100644
+index 0c5409af685ef1f251db3d9f9e21295c82a1e02a..8b5918dc07f17ae5001c03dc743128fd9520b819 100644
--- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java
-@@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block {
+@@ -135,6 +135,10 @@ public abstract class BaseFireBlock extends Block {
if (!event.isCancelled()) {
entity.igniteForSeconds(event.getDuration(), false);
diff --git a/patches/server/0767-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0766-Add-PrePlayerAttackEntityEvent.patch
index b0f3a07890..b0f3a07890 100644
--- a/patches/server/0767-Add-PrePlayerAttackEntityEvent.patch
+++ b/patches/server/0766-Add-PrePlayerAttackEntityEvent.patch
diff --git a/patches/server/0768-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0767-ensure-reset-EnderDragon-boss-event-name.patch
index 854c391fc5..854c391fc5 100644
--- a/patches/server/0768-ensure-reset-EnderDragon-boss-event-name.patch
+++ b/patches/server/0767-ensure-reset-EnderDragon-boss-event-name.patch
diff --git a/patches/server/0769-Add-Player-Warden-Warning-API.patch b/patches/server/0768-Add-Player-Warden-Warning-API.patch
index 647754a109..84244f79e4 100644
--- a/patches/server/0769-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0768-Add-Player-Warden-Warning-API.patch
@@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3566c607c7d66eb8d64cdcd77204b6b132287f58..cc631c6882ee623cb1191b9d422a7adc4fa742a2 100644
+index 2ec75a25de34b68e7c14416a06facce6a169bac7..cdcdb55f896bb4128f258bf2aee91dc60100b6de 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3303,6 +3303,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0770-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0769-More-vanilla-friendly-methods-to-update-trades.patch
index 5c30d5f82c..5c30d5f82c 100644
--- a/patches/server/0770-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/server/0769-More-vanilla-friendly-methods-to-update-trades.patch
diff --git a/patches/server/0771-Add-paper-dumplisteners-command.patch b/patches/server/0770-Add-paper-dumplisteners-command.patch
index aabb60033d..aabb60033d 100644
--- a/patches/server/0771-Add-paper-dumplisteners-command.patch
+++ b/patches/server/0770-Add-paper-dumplisteners-command.patch
diff --git a/patches/server/0772-check-global-player-list-where-appropriate.patch b/patches/server/0771-check-global-player-list-where-appropriate.patch
index 3afedde0df..3afedde0df 100644
--- a/patches/server/0772-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0771-check-global-player-list-where-appropriate.patch
diff --git a/patches/server/0773-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0772-Fix-async-entity-add-due-to-fungus-trees.patch
index 2a7830d952..2a7830d952 100644
--- a/patches/server/0773-Fix-async-entity-add-due-to-fungus-trees.patch
+++ b/patches/server/0772-Fix-async-entity-add-due-to-fungus-trees.patch
diff --git a/patches/server/0774-ItemStack-damage-API.patch b/patches/server/0773-ItemStack-damage-API.patch
index 24e6ad94dd..965c0e9084 100644
--- a/patches/server/0774-ItemStack-damage-API.patch
+++ b/patches/server/0773-ItemStack-damage-API.patch
@@ -11,7 +11,7 @@ the logic associated with damaging them
public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index d825c2e3808e44db9935dab4e7b528146c6d83c2..57510b85caf8914290ab0afb89cfb773158715b8 100644
+index 598507684aed7978fa2e9bae0d959c7d0f9e53d6..7c52ae813bfe47983ca94f4daf68f17e899949da 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -647,11 +647,16 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0775-Friction-API.patch b/patches/server/0774-Friction-API.patch
index dfa1fdc21b..dfa1fdc21b 100644
--- a/patches/server/0775-Friction-API.patch
+++ b/patches/server/0774-Friction-API.patch
diff --git a/patches/server/0776-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0775-Ability-to-control-player-s-insomnia-and-phantoms.patch
index 5bc45a7af4..5bc45a7af4 100644
--- a/patches/server/0776-Ability-to-control-player-s-insomnia-and-phantoms.patch
+++ b/patches/server/0775-Ability-to-control-player-s-insomnia-and-phantoms.patch
diff --git a/patches/server/0777-Fix-premature-player-kicks-on-shutdown.patch b/patches/server/0776-Fix-premature-player-kicks-on-shutdown.patch
index d3dbe3d230..d3dbe3d230 100644
--- a/patches/server/0777-Fix-premature-player-kicks-on-shutdown.patch
+++ b/patches/server/0776-Fix-premature-player-kicks-on-shutdown.patch
diff --git a/patches/server/0778-Sync-offhand-slot-in-menus.patch b/patches/server/0777-Sync-offhand-slot-in-menus.patch
index 482895a894..482895a894 100644
--- a/patches/server/0778-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0777-Sync-offhand-slot-in-menus.patch
diff --git a/patches/server/0779-Player-Entity-Tracking-Events.patch b/patches/server/0778-Player-Entity-Tracking-Events.patch
index 8871c9b19f..8871c9b19f 100644
--- a/patches/server/0779-Player-Entity-Tracking-Events.patch
+++ b/patches/server/0778-Player-Entity-Tracking-Events.patch
diff --git a/patches/server/0780-Limit-pet-look-distance.patch b/patches/server/0779-Limit-pet-look-distance.patch
index 983f861539..983f861539 100644
--- a/patches/server/0780-Limit-pet-look-distance.patch
+++ b/patches/server/0779-Limit-pet-look-distance.patch
diff --git a/patches/server/0781-fix-Instruments.patch b/patches/server/0780-fix-Instruments.patch
index fd5c343d0b..3c7adaddd6 100644
--- a/patches/server/0781-fix-Instruments.patch
+++ b/patches/server/0780-fix-Instruments.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments
properly handle Player#playNote
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cc631c6882ee623cb1191b9d422a7adc4fa742a2..c426dbff75f0ad3889594fba9a66669fc71b63e8 100644
+index cdcdb55f896bb4128f258bf2aee91dc60100b6de..fc0db6deca6ff3b8e083fccd312e6ff3b5a78616 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -768,7 +768,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
index d563036457..420107d5c3 100644
--- a/patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
+++ b/patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11434cdb69 100644
+index 46dd499c2023ec482ae7204d2894fb4100d9233b..a8bec3c405732e5863cf717b1fe948d00837bed2 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -906,15 +906,15 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -907,15 +907,15 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.shapeExceedsCube; // Paper - moved into shape cache init
}
@@ -28,7 +28,7 @@ index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11
return this.isAir;
}
-@@ -998,7 +998,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -999,7 +999,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
}
@@ -37,7 +37,7 @@ index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11
return this.canOcclude;
}
-@@ -1214,11 +1214,11 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -1215,11 +1215,11 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.getBlock().builtInRegistryHolder().is(key);
}
diff --git a/patches/server/0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
index 8b797606ed..8b797606ed 100644
--- a/patches/server/0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
+++ b/patches/server/0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
diff --git a/patches/server/0784-Add-BlockLockCheckEvent.patch b/patches/server/0783-Add-BlockLockCheckEvent.patch
index deeeae6839..deeeae6839 100644
--- a/patches/server/0784-Add-BlockLockCheckEvent.patch
+++ b/patches/server/0783-Add-BlockLockCheckEvent.patch
diff --git a/patches/server/0785-Add-Sneaking-API-for-Entities.patch b/patches/server/0784-Add-Sneaking-API-for-Entities.patch
index a8db30ee3c..aaee22c056 100644
--- a/patches/server/0785-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0784-Add-Sneaking-API-for-Entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 7c223042595c7cd5ccc554211657d9375833122b..3c1e199316ae283210529d4d27b4f9d70b4d9404 100644
+index f950102a324d07aeba260bfa82fe88728f2362e5..ac513d3162a0794f226abc80bff21c799fe5802c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -874,6 +874,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0786-Improve-logging-and-errors.patch b/patches/server/0785-Improve-logging-and-errors.patch
index 243a962373..243a962373 100644
--- a/patches/server/0786-Improve-logging-and-errors.patch
+++ b/patches/server/0785-Improve-logging-and-errors.patch
diff --git a/patches/server/0787-Improve-PortalEvents.patch b/patches/server/0786-Improve-PortalEvents.patch
index 3686fbed23..3686fbed23 100644
--- a/patches/server/0787-Improve-PortalEvents.patch
+++ b/patches/server/0786-Improve-PortalEvents.patch
diff --git a/patches/server/0788-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0787-Add-config-option-for-spider-worldborder-climbing.patch
index b10bcacd3c..b10bcacd3c 100644
--- a/patches/server/0788-Add-config-option-for-spider-worldborder-climbing.patch
+++ b/patches/server/0787-Add-config-option-for-spider-worldborder-climbing.patch
diff --git a/patches/server/0789-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch
index a7d5349548..a7d5349548 100644
--- a/patches/server/0789-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch
diff --git a/patches/server/0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
index 581ad00ec1..581ad00ec1 100644
--- a/patches/server/0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
+++ b/patches/server/0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
diff --git a/patches/server/0791-Flying-Fall-Damage.patch b/patches/server/0790-Flying-Fall-Damage.patch
index f7fc90f3fd..1731871405 100644
--- a/patches/server/0791-Flying-Fall-Damage.patch
+++ b/patches/server/0790-Flying-Fall-Damage.patch
@@ -26,7 +26,7 @@ index ad334f149fe1b44d4ebe48489dcd2811ff1b5cd0..950ce40d268d89ff3c503116081db6c9
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c426dbff75f0ad3889594fba9a66669fc71b63e8..cb191389007ccaae2e3af1defc5e95ee571c46ac 100644
+index fc0db6deca6ff3b8e083fccd312e6ff3b5a78616..78ab37d1359e1d44bd921428038c733b77171cd2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2581,6 +2581,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index 7951b277f6..7951b277f6 100644
--- a/patches/server/0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/server/0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
diff --git a/patches/server/0793-config-for-disabling-entity-tag-tags.patch b/patches/server/0792-config-for-disabling-entity-tag-tags.patch
index aabc1e1a31..aabc1e1a31 100644
--- a/patches/server/0793-config-for-disabling-entity-tag-tags.patch
+++ b/patches/server/0792-config-for-disabling-entity-tag-tags.patch
diff --git a/patches/server/0794-Use-single-player-info-update-packet-on-join.patch b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch
index 4552daec45..02e36f9270 100644
--- a/patches/server/0794-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch
@@ -18,7 +18,7 @@ index 1b486d09bd1a84835183a6c8181933fcabb3373f..62b022a72954eeecfa141f4ec93ccb44
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a929b8f1c452db08a64e4be53b488cf2676e0a94..2ea29c9491186d7a25ed3eed99ee4a488bcaa272 100644
+index 84add5cc89ec912389500b6140a39d6b7ddc9e86..944c727fd7770fe4c06af67304005664a7ab9e8a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -361,6 +361,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0795-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0794-Correctly-shrink-items-during-EntityResurrectEvent.patch
index 8f9bf2cb24..8f9bf2cb24 100644
--- a/patches/server/0795-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0794-Correctly-shrink-items-during-EntityResurrectEvent.patch
diff --git a/patches/server/0796-Win-Screen-API.patch b/patches/server/0795-Win-Screen-API.patch
index 95dd061087..7ab535106b 100644
--- a/patches/server/0796-Win-Screen-API.patch
+++ b/patches/server/0795-Win-Screen-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API
public net.minecraft.server.level.ServerPlayer seenCredits
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cb191389007ccaae2e3af1defc5e95ee571c46ac..756ba61af10b552c5c0bf86e506a31df0f0ce6f5 100644
+index 78ab37d1359e1d44bd921428038c733b77171cd2..384165d6747c61d0d306fa63773cbca560dfae9b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1305,6 +1305,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0797-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0796-Remove-CraftItemStack-setAmount-null-assignment.patch
index 5b5c421ff2..5b5c421ff2 100644
--- a/patches/server/0797-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0796-Remove-CraftItemStack-setAmount-null-assignment.patch
diff --git a/patches/server/0798-Fix-force-opening-enchantment-tables.patch b/patches/server/0797-Fix-force-opening-enchantment-tables.patch
index db009af8c8..db009af8c8 100644
--- a/patches/server/0798-Fix-force-opening-enchantment-tables.patch
+++ b/patches/server/0797-Fix-force-opening-enchantment-tables.patch
diff --git a/patches/server/0799-Add-Entity-Body-Yaw-API.patch b/patches/server/0798-Add-Entity-Body-Yaw-API.patch
index 53523e2ba9..53523e2ba9 100644
--- a/patches/server/0799-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0798-Add-Entity-Body-Yaw-API.patch
diff --git a/patches/server/0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
index 962917dab8..962917dab8 100644
--- a/patches/server/0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
+++ b/patches/server/0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
diff --git a/patches/server/0801-Add-EntityFertilizeEggEvent.patch b/patches/server/0800-Add-EntityFertilizeEggEvent.patch
index 8c4e26f04a..241552c5fe 100644
--- a/patches/server/0801-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0800-Add-EntityFertilizeEggEvent.patch
@@ -69,10 +69,10 @@ index d34d8fe70379dcad9540739ec0ae1c94f01fc46b..fadd341ff398886a4da102eefa1beb95
this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F);
} // Paper - Call EntityDropItemEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 82b98a9b6418614283ac512f59586877f577b35b..b35c6393c3af2519be648e75c7d09038cf94ccbf 100644
+index 668becf24a16af6b834d05608787c8f9420e9ad3..8a1f52eeace48ed65bdc077923d0763d5e4369b6 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2168,4 +2168,28 @@ public class CraftEventFactory {
+@@ -2181,4 +2181,28 @@ public class CraftEventFactory {
return event.callEvent();
}
// Paper end
diff --git a/patches/server/0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
index 99130d8f1a..99130d8f1a 100644
--- a/patches/server/0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
+++ b/patches/server/0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
diff --git a/patches/server/0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index 85321a4a5b..85321a4a5b 100644
--- a/patches/server/0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/server/0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0804-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0803-Correctly-handle-ArmorStand-invisibility.patch
index 34b66d686a..34b66d686a 100644
--- a/patches/server/0804-Correctly-handle-ArmorStand-invisibility.patch
+++ b/patches/server/0803-Correctly-handle-ArmorStand-invisibility.patch
diff --git a/patches/server/0805-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0804-Fix-advancement-triggers-for-entity-damage.patch
index 4ebe570740..4ebe570740 100644
--- a/patches/server/0805-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0804-Fix-advancement-triggers-for-entity-damage.patch
diff --git a/patches/server/0806-Fix-text-display-error-on-spawn.patch b/patches/server/0805-Fix-text-display-error-on-spawn.patch
index 7f64cfe6d9..7f64cfe6d9 100644
--- a/patches/server/0806-Fix-text-display-error-on-spawn.patch
+++ b/patches/server/0805-Fix-text-display-error-on-spawn.patch
diff --git a/patches/server/0807-Fix-inventories-returning-null-Locations.patch b/patches/server/0806-Fix-inventories-returning-null-Locations.patch
index eabfae28c5..23413d6b03 100644
--- a/patches/server/0807-Fix-inventories-returning-null-Locations.patch
+++ b/patches/server/0806-Fix-inventories-returning-null-Locations.patch
@@ -30,7 +30,7 @@ index c26161784359ea167e11de8aa58eda3b4851059c..6632cf24ebe6d147950a1fdb87666093
}
diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
-index 6173c689013ab02c83ca6ff1fde2b1e47f3e7820..1b6fd16d8c6195c6f7b65c7621d5f9bd15c46a75 100644
+index 8b0ebf659f6b219ce2a5d10b0d79f9b89b47c911..a735aeeb59f79154ce797c6e2f5600305f46d217 100644
--- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
@@ -52,6 +52,12 @@ public class BeaconMenu extends AbstractContainerMenu {
diff --git a/patches/server/0808-Add-Shearable-API.patch b/patches/server/0807-Add-Shearable-API.patch
index 675a1bf358..069dcbaf2e 100644
--- a/patches/server/0808-Add-Shearable-API.patch
+++ b/patches/server/0807-Add-Shearable-API.patch
@@ -32,7 +32,7 @@ index 0000000000000000000000000000000000000000..bcf254e3c81cf1e401bddc850fb24ad2
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java
-index b252236369315502278e9b7c93709a347ec16636..93481e2828f945b11ae9a20a8e5286232b449fa9 100644
+index 0139e85c0751564bb4d2847b7b2e48f75fee9e53..e8e4704304504e69c7964dcd4df8ce5db9e92bf6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java
@@ -4,7 +4,7 @@ import org.bukkit.craftbukkit.CraftServer;
diff --git a/patches/server/0809-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0808-Fix-SpawnEggMeta-get-setSpawnedType.patch
index 254a94df3a..254a94df3a 100644
--- a/patches/server/0809-Fix-SpawnEggMeta-get-setSpawnedType.patch
+++ b/patches/server/0808-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/server/0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
index d90e599897..d90e599897 100644
--- a/patches/server/0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
+++ b/patches/server/0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
diff --git a/patches/server/0811-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch
index 0a8d25783a..0a8d25783a 100644
--- a/patches/server/0811-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch
diff --git a/patches/server/0812-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch
index d08f848c6e..d08f848c6e 100644
--- a/patches/server/0812-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch
diff --git a/patches/server/0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
index b0096b0c97..b0096b0c97 100644
--- a/patches/server/0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
+++ b/patches/server/0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
diff --git a/patches/server/0814-Use-array-for-gamerule-storage.patch b/patches/server/0813-Use-array-for-gamerule-storage.patch
index 194ff8f15b..194ff8f15b 100644
--- a/patches/server/0814-Use-array-for-gamerule-storage.patch
+++ b/patches/server/0813-Use-array-for-gamerule-storage.patch
diff --git a/patches/server/0815-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0814-Fix-a-couple-of-upstream-bed-issues.patch
index 665db524c5..665db524c5 100644
--- a/patches/server/0815-Fix-a-couple-of-upstream-bed-issues.patch
+++ b/patches/server/0814-Fix-a-couple-of-upstream-bed-issues.patch
diff --git a/patches/server/0816-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0815-Fix-demo-flag-not-enabling-demo-mode.patch
index d64dd23e37..d64dd23e37 100644
--- a/patches/server/0816-Fix-demo-flag-not-enabling-demo-mode.patch
+++ b/patches/server/0815-Fix-demo-flag-not-enabling-demo-mode.patch
diff --git a/patches/server/0817-Add-Mob-Experience-reward-API.patch b/patches/server/0816-Add-Mob-Experience-reward-API.patch
index f82f765beb..f82f765beb 100644
--- a/patches/server/0817-Add-Mob-Experience-reward-API.patch
+++ b/patches/server/0816-Add-Mob-Experience-reward-API.patch
diff --git a/patches/server/0818-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0817-Break-redstone-on-top-of-trap-doors-early.patch
index 11c427e808..11c427e808 100644
--- a/patches/server/0818-Break-redstone-on-top-of-trap-doors-early.patch
+++ b/patches/server/0817-Break-redstone-on-top-of-trap-doors-early.patch
diff --git a/patches/server/0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch
index becde16ce8..becde16ce8 100644
--- a/patches/server/0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch
+++ b/patches/server/0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch
diff --git a/patches/server/0820-More-accurate-isInOpenWater-impl.patch b/patches/server/0819-More-accurate-isInOpenWater-impl.patch
index 6e110094dd..6e110094dd 100644
--- a/patches/server/0820-More-accurate-isInOpenWater-impl.patch
+++ b/patches/server/0819-More-accurate-isInOpenWater-impl.patch
diff --git a/patches/server/0821-Expand-PlayerItemMendEvent.patch b/patches/server/0820-Expand-PlayerItemMendEvent.patch
index 6437d9ecb4..5ce5d5fde3 100644
--- a/patches/server/0821-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0820-Expand-PlayerItemMendEvent.patch
@@ -49,10 +49,10 @@ index 384165d6747c61d0d306fa63773cbca560dfae9b..e7235efba6b68917a646083c150655cb
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index b35c6393c3af2519be648e75c7d09038cf94ccbf..23e24853e8540cecb2145471d548cad1b2539447 100644
+index 8a1f52eeace48ed65bdc077923d0763d5e4369b6..bbc5143940b5f028051cb5897a5b510e35a5d354 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1280,10 +1280,10 @@ public class CraftEventFactory {
+@@ -1284,10 +1284,10 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0822-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0821-Refresh-ProjectileSource-for-projectiles.patch
index 2b15911588..2b15911588 100644
--- a/patches/server/0822-Refresh-ProjectileSource-for-projectiles.patch
+++ b/patches/server/0821-Refresh-ProjectileSource-for-projectiles.patch
diff --git a/patches/server/0823-Add-transient-modifier-API.patch b/patches/server/0822-Add-transient-modifier-API.patch
index 36cc0a030a..36cc0a030a 100644
--- a/patches/server/0823-Add-transient-modifier-API.patch
+++ b/patches/server/0822-Add-transient-modifier-API.patch
diff --git a/patches/server/0824-Fix-block-place-logic.patch b/patches/server/0823-Fix-block-place-logic.patch
index 3796cc773d..accea4ee7c 100644
--- a/patches/server/0824-Fix-block-place-logic.patch
+++ b/patches/server/0823-Fix-block-place-logic.patch
@@ -22,7 +22,7 @@ index 7d76cdc59984b156628273c8357485eb10046007..7180996027f70aef7afe32fb2adfce64
itemstack.consume(1, entityhuman);
return InteractionResult.sidedSuccess(world.isClientSide);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 210c3b6167dac93e550fe849e34b5aa404ab6dce..ed1c50d31fc077e4e009719fa622a44edefcdf2c 100644
+index cc92d2e8b77c75da1d8b850c3bc251e8ac221c24..0a3e56302470f239d4840e4e32d2a0ce4611ff65 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -552,17 +552,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
index 89ec0d95ff..42a45f0c62 100644
--- a/patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
+++ b/patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 57510b85caf8914290ab0afb89cfb773158715b8..8777e634a69825302da7ed5031a344b80724783e 100644
+index 7c52ae813bfe47983ca94f4daf68f17e899949da..7cb7443aa60b9a552d8d9b67ddbf8b3e54af24e8 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -571,7 +571,11 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0826-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0825-Call-BlockGrowEvent-for-missing-blocks.patch
index 895a528de8..895a528de8 100644
--- a/patches/server/0826-Call-BlockGrowEvent-for-missing-blocks.patch
+++ b/patches/server/0825-Call-BlockGrowEvent-for-missing-blocks.patch
diff --git a/patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
index 5c55e8560a..90edb8680f 100644
--- a/patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
+++ b/patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 32d2e6a4ce092fee061b65d3c839c2da83865908..7197cbf15ff9382cbc59c4a58e2f189c8cacbaaa 100644
+index f63d6b4d759fbbc5f5c5dd6b39179af93f49d10f..ed6210d2490f8584c21537eaa380d990fb73e03d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -355,7 +355,11 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0828-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0827-fix-MapLike-spam-for-missing-key-selector.patch
index 2bd3b889f1..2bd3b889f1 100644
--- a/patches/server/0828-fix-MapLike-spam-for-missing-key-selector.patch
+++ b/patches/server/0827-fix-MapLike-spam-for-missing-key-selector.patch
diff --git a/patches/server/0829-Fix-sniffer-removeExploredLocation.patch b/patches/server/0828-Fix-sniffer-removeExploredLocation.patch
index e8b1703090..e8b1703090 100644
--- a/patches/server/0829-Fix-sniffer-removeExploredLocation.patch
+++ b/patches/server/0828-Fix-sniffer-removeExploredLocation.patch
diff --git a/patches/server/0830-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0829-Add-method-to-remove-all-active-potion-effects.patch
index eb810dfef5..eb810dfef5 100644
--- a/patches/server/0830-Add-method-to-remove-all-active-potion-effects.patch
+++ b/patches/server/0829-Add-method-to-remove-all-active-potion-effects.patch
diff --git a/patches/server/0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch
index ed5525cfda..ed5525cfda 100644
--- a/patches/server/0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch
+++ b/patches/server/0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch
diff --git a/patches/server/0832-Add-event-for-player-editing-sign.patch b/patches/server/0831-Add-event-for-player-editing-sign.patch
index 231c6c0fc3..8c26ae27ea 100644
--- a/patches/server/0832-Add-event-for-player-editing-sign.patch
+++ b/patches/server/0831-Add-event-for-player-editing-sign.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 8777e634a69825302da7ed5031a344b80724783e..a6ca820adf6e86f8358967d8d3b2e45cd1135b2c 100644
+index 7cb7443aa60b9a552d8d9b67ddbf8b3e54af24e8..1016541b8f01cdb45ae96fbb777c6c38598fcc35 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -550,7 +550,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0833-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0832-Only-tick-item-frames-if-players-can-see-it.patch
index bf73ba4a5c..bf73ba4a5c 100644
--- a/patches/server/0833-Only-tick-item-frames-if-players-can-see-it.patch
+++ b/patches/server/0832-Only-tick-item-frames-if-players-can-see-it.patch
diff --git a/patches/server/0834-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0833-Fix-cmd-permission-levels-for-command-blocks.patch
index 5167eee08c..5167eee08c 100644
--- a/patches/server/0834-Fix-cmd-permission-levels-for-command-blocks.patch
+++ b/patches/server/0833-Fix-cmd-permission-levels-for-command-blocks.patch
diff --git a/patches/server/0835-Add-option-to-disable-block-updates.patch b/patches/server/0834-Add-option-to-disable-block-updates.patch
index 8fe599472e..8fe599472e 100644
--- a/patches/server/0835-Add-option-to-disable-block-updates.patch
+++ b/patches/server/0834-Add-option-to-disable-block-updates.patch
diff --git a/patches/server/0836-Call-missing-BlockDispenseEvent.patch b/patches/server/0835-Call-missing-BlockDispenseEvent.patch
index ae85dc5678..b1e8b7b6fb 100644
--- a/patches/server/0836-Call-missing-BlockDispenseEvent.patch
+++ b/patches/server/0835-Call-missing-BlockDispenseEvent.patch
@@ -50,10 +50,10 @@ index 96db0b1041a4c0f054d4f3f2bdced960b119664e..78951f50188528718cdb3dbbaabe3f9f
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 23e24853e8540cecb2145471d548cad1b2539447..1f73ee4e284ca6b0bd6d387337a4c1084f3210e5 100644
+index bbc5143940b5f028051cb5897a5b510e35a5d354..fd648c176733dcaa03d2bbec4000381d58fc357e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2169,6 +2169,32 @@ public class CraftEventFactory {
+@@ -2182,6 +2182,32 @@ public class CraftEventFactory {
}
// Paper end
diff --git a/patches/server/0837-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0836-Don-t-load-chunks-for-supporting-block-checks.patch
index 71e919a9a5..71e919a9a5 100644
--- a/patches/server/0837-Don-t-load-chunks-for-supporting-block-checks.patch
+++ b/patches/server/0836-Don-t-load-chunks-for-supporting-block-checks.patch
diff --git a/patches/server/0838-Optimize-player-lookups-for-beacons.patch b/patches/server/0837-Optimize-player-lookups-for-beacons.patch
index 1c203c23a6..1c203c23a6 100644
--- a/patches/server/0838-Optimize-player-lookups-for-beacons.patch
+++ b/patches/server/0837-Optimize-player-lookups-for-beacons.patch
diff --git a/patches/server/0839-Add-Sign-getInteractableSideFor.patch b/patches/server/0838-Add-Sign-getInteractableSideFor.patch
index 2833829ce4..2833829ce4 100644
--- a/patches/server/0839-Add-Sign-getInteractableSideFor.patch
+++ b/patches/server/0838-Add-Sign-getInteractableSideFor.patch
diff --git a/patches/server/0840-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0839-fix-item-meta-for-tadpole-buckets.patch
index 0fc39b3ea1..43d485644b 100644
--- a/patches/server/0840-fix-item-meta-for-tadpole-buckets.patch
+++ b/patches/server/0839-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/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
-index 4ae9930c2d74e5b1e3ad0c2ecf6556dc59cbf23c..a6c78854c10362864c2297de903ab9594cdb1eb6 100644
+index c9fbc01be0b0e7fd1cafb091d06496f4ba1e7c2c..a4c4ba0d02f9a072236ce86c1e98e2c60b059cb8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
-@@ -286,7 +286,7 @@ public final class CraftItemMetas {
+@@ -263,7 +263,7 @@ public final class CraftItemMetas {
if (itemType == ItemType.SUSPICIOUS_STEW) {
return CraftItemMetas.asType(CraftItemMetas.SUSPICIOUS_STEW_META_DATA);
}
@@ -30,7 +30,7 @@ index 27af7ca9d62bdb4a24be5af139c181d7bc271ba5..3ff0340c40e9dc9a6e690de15ccade7a
Material.GLOW_ITEM_FRAME,
Material.PAINTING
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
-index a1d8da4e0de3f84194f28d7d18fa795d53714590..d6018439015583fa0344c7c01b2e60a13de29795 100644
+index 0715f43f3f8235d28a12b9d49d78c765a946c53f..b6da1c2902139d4c7b01ac7b3407d4f6ac3990e2 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
@@ -208,6 +208,27 @@ public class ItemMetaTest extends AbstractTestingBase {
diff --git a/patches/server/0841-Fix-BanList-API.patch b/patches/server/0840-Fix-BanList-API.patch
index 780f2ca5be..b3274235b6 100644
--- a/patches/server/0841-Fix-BanList-API.patch
+++ b/patches/server/0840-Fix-BanList-API.patch
@@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57
return null;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b3faca24fa8bdb22d1bf3e581d0396bc444a9f5f..28536a8bfab2c8bdde03852efa0e41cf19a37a9c 100644
+index e7235efba6b68917a646083c150655cb42a738e5..32e1830464395cb1f462777f3fb14e766c5e3217 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1747,23 +1747,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0842-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0841-Determine-lava-and-water-fluid-explosion-resistance-.patch
index 5f51eb317c..5f51eb317c 100644
--- a/patches/server/0842-Determine-lava-and-water-fluid-explosion-resistance-.patch
+++ b/patches/server/0841-Determine-lava-and-water-fluid-explosion-resistance-.patch
diff --git a/patches/server/0843-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0842-Fix-possible-NPE-on-painting-creation.patch
index dc3838be94..dc3838be94 100644
--- a/patches/server/0843-Fix-possible-NPE-on-painting-creation.patch
+++ b/patches/server/0842-Fix-possible-NPE-on-painting-creation.patch
diff --git a/patches/server/0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
index 6785f755ab..6785f755ab 100644
--- a/patches/server/0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
+++ b/patches/server/0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
diff --git a/patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch
index 83756a84b2..54f3923604 100644
--- a/patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch
+++ b/patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch
@@ -5,10 +5,10 @@ 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 1f73ee4e284ca6b0bd6d387337a4c1084f3210e5..35afad4e995f7e94d7a4541157b237c73d1b9635 100644
+index fd648c176733dcaa03d2bbec4000381d58fc357e..3f9a309d4d0685aec0fabb16a1bd51931048525b 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -740,7 +740,8 @@ public class CraftEventFactory {
+@@ -744,7 +744,8 @@ public class CraftEventFactory {
// Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above)
if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) {
double radius = world.spigotConfig.expMerge;
diff --git a/patches/server/0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
index 301b345fb9..301b345fb9 100644
--- a/patches/server/0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
+++ b/patches/server/0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
diff --git a/patches/server/0847-Add-whitelist-events.patch b/patches/server/0846-Add-whitelist-events.patch
index 96884032fb..96884032fb 100644
--- a/patches/server/0847-Add-whitelist-events.patch
+++ b/patches/server/0846-Add-whitelist-events.patch
diff --git a/patches/server/0848-Implement-PlayerFailMoveEvent.patch b/patches/server/0847-Implement-PlayerFailMoveEvent.patch
index e222dfa6e2..e222dfa6e2 100644
--- a/patches/server/0848-Implement-PlayerFailMoveEvent.patch
+++ b/patches/server/0847-Implement-PlayerFailMoveEvent.patch
diff --git a/patches/server/0849-Folia-scheduler-and-owned-region-API.patch b/patches/server/0848-Folia-scheduler-and-owned-region-API.patch
index 33197e551c..33197e551c 100644
--- a/patches/server/0849-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0848-Folia-scheduler-and-owned-region-API.patch
diff --git a/patches/server/0850-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0849-Only-erase-allay-memory-on-non-item-targets.patch
index 4afac36fc3..4afac36fc3 100644
--- a/patches/server/0850-Only-erase-allay-memory-on-non-item-targets.patch
+++ b/patches/server/0849-Only-erase-allay-memory-on-non-item-targets.patch
diff --git a/patches/server/0851-API-for-updating-recipes-on-clients.patch b/patches/server/0850-API-for-updating-recipes-on-clients.patch
index 373578055d..373578055d 100644
--- a/patches/server/0851-API-for-updating-recipes-on-clients.patch
+++ b/patches/server/0850-API-for-updating-recipes-on-clients.patch
diff --git a/patches/server/0852-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0851-Fix-rotation-when-spawning-display-entities.patch
index 7491ff60fe..7491ff60fe 100644
--- a/patches/server/0852-Fix-rotation-when-spawning-display-entities.patch
+++ b/patches/server/0851-Fix-rotation-when-spawning-display-entities.patch
diff --git a/patches/server/0853-Only-capture-actual-tree-growth.patch b/patches/server/0852-Only-capture-actual-tree-growth.patch
index 74ca9ab6b6..c8bdd0bb61 100644
--- a/patches/server/0853-Only-capture-actual-tree-growth.patch
+++ b/patches/server/0852-Only-capture-actual-tree-growth.patch
@@ -17,7 +17,7 @@ index 78951f50188528718cdb3dbbaabe3f9f2760ffe3..7826e2a52da47914aca39fef958b8f39
}
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index a6ca820adf6e86f8358967d8d3b2e45cd1135b2c..780b2fada591fb1b504fbf4828c31ec0dd1c25db 100644
+index 1016541b8f01cdb45ae96fbb777c6c38598fcc35..11c507b399f97c4c0bbe220e8a3c1cdb851c8a0a 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -466,6 +466,7 @@ public final class ItemStack implements DataComponentHolder {
@@ -29,7 +29,7 @@ index a6ca820adf6e86f8358967d8d3b2e45cd1135b2c..780b2fada591fb1b504fbf4828c31ec0
entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index ed1c50d31fc077e4e009719fa622a44edefcdf2c..8337f2f1d650fc7efb830a7034e3676dc0695ee4 100644
+index 0a3e56302470f239d4840e4e32d2a0ce4611ff65..3f87e60c0d43703a8450b5920dac59a970809397 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1378,4 +1378,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0854-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0853-Use-correct-source-for-mushroom-block-spread-event.patch
index a295e29bcb..a295e29bcb 100644
--- a/patches/server/0854-Use-correct-source-for-mushroom-block-spread-event.patch
+++ b/patches/server/0853-Use-correct-source-for-mushroom-block-spread-event.patch
diff --git a/patches/server/0855-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0854-Respect-randomizeData-on-more-entities-when-spawning.patch
index d04e8bf4f6..d04e8bf4f6 100644
--- a/patches/server/0855-Respect-randomizeData-on-more-entities-when-spawning.patch
+++ b/patches/server/0854-Respect-randomizeData-on-more-entities-when-spawning.patch
diff --git a/patches/server/0856-Use-correct-seed-on-api-world-load.patch b/patches/server/0855-Use-correct-seed-on-api-world-load.patch
index c94e81abb9..c94e81abb9 100644
--- a/patches/server/0856-Use-correct-seed-on-api-world-load.patch
+++ b/patches/server/0855-Use-correct-seed-on-api-world-load.patch
diff --git a/patches/server/0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
index 2f19c9d94a..2f19c9d94a 100644
--- a/patches/server/0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
+++ b/patches/server/0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
diff --git a/patches/server/0858-Cache-map-ids-on-item-frames.patch b/patches/server/0857-Cache-map-ids-on-item-frames.patch
index 65e3e3499f..65e3e3499f 100644
--- a/patches/server/0858-Cache-map-ids-on-item-frames.patch
+++ b/patches/server/0857-Cache-map-ids-on-item-frames.patch
diff --git a/patches/server/0859-Fix-custom-statistic-criteria-creation.patch b/patches/server/0858-Fix-custom-statistic-criteria-creation.patch
index bd32b5af31..bd32b5af31 100644
--- a/patches/server/0859-Fix-custom-statistic-criteria-creation.patch
+++ b/patches/server/0858-Fix-custom-statistic-criteria-creation.patch
diff --git a/patches/server/0860-Bandaid-fix-for-Effect.patch b/patches/server/0859-Bandaid-fix-for-Effect.patch
index 37c8fc587f..9dd7805368 100644
--- a/patches/server/0860-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0859-Bandaid-fix-for-Effect.patch
@@ -81,7 +81,7 @@ index 0c5a583f2ced1ae5e1e92a045ef2ef1cd5b35496..5c83ca573ccaa75a1d4e8129c96a24e3
// 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 28536a8bfab2c8bdde03852efa0e41cf19a37a9c..cb41fad4b94c4da64a699dc1b0848fc08ff2c456 100644
+index 32e1830464395cb1f462777f3fb14e766c5e3217..9cf67deacf9d01e3835705260a358513987fc3ba 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -917,7 +917,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0861-SculkCatalyst-bloom-API.patch b/patches/server/0860-SculkCatalyst-bloom-API.patch
index ba050f6086..ba050f6086 100644
--- a/patches/server/0861-SculkCatalyst-bloom-API.patch
+++ b/patches/server/0860-SculkCatalyst-bloom-API.patch
diff --git a/patches/server/0862-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0861-API-for-an-entity-s-scoreboard-name.patch
index ac804a3ed5..ac804a3ed5 100644
--- a/patches/server/0862-API-for-an-entity-s-scoreboard-name.patch
+++ b/patches/server/0861-API-for-an-entity-s-scoreboard-name.patch
diff --git a/patches/server/0863-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0862-Deprecate-and-replace-methods-with-old-StructureType.patch
index c40f681341..c40f681341 100644
--- a/patches/server/0863-Deprecate-and-replace-methods-with-old-StructureType.patch
+++ b/patches/server/0862-Deprecate-and-replace-methods-with-old-StructureType.patch
diff --git a/patches/server/0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch
index 200d3d6a57..200d3d6a57 100644
--- a/patches/server/0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch
+++ b/patches/server/0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch
diff --git a/patches/server/0865-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0864-Properly-handle-BlockBreakEvent-isDropItems.patch
index 75a746ca81..75a746ca81 100644
--- a/patches/server/0865-Properly-handle-BlockBreakEvent-isDropItems.patch
+++ b/patches/server/0864-Properly-handle-BlockBreakEvent-isDropItems.patch
diff --git a/patches/server/0866-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0865-Fire-entity-death-event-for-ender-dragon.patch
index 66624e354c..66624e354c 100644
--- a/patches/server/0866-Fire-entity-death-event-for-ender-dragon.patch
+++ b/patches/server/0865-Fire-entity-death-event-for-ender-dragon.patch
diff --git a/patches/server/0867-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0866-Configurable-entity-tracking-range-by-Y-coordinate.patch
index 4757876863..4757876863 100644
--- a/patches/server/0867-Configurable-entity-tracking-range-by-Y-coordinate.patch
+++ b/patches/server/0866-Configurable-entity-tracking-range-by-Y-coordinate.patch
diff --git a/patches/server/0868-Add-Listing-API-for-Player.patch b/patches/server/0867-Add-Listing-API-for-Player.patch
index bb270bf016..f33015a234 100644
--- a/patches/server/0868-Add-Listing-API-for-Player.patch
+++ b/patches/server/0867-Add-Listing-API-for-Player.patch
@@ -82,7 +82,7 @@ index 6247a21c9c391abf1f6db3482c659593e4f29355..9ccca41bf23efadba5329cc584bbcdca
static class EntryBuilder {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index be6bf7afa3cea4ed48f363e89ccd079062edc8d9..9b1a6d8351fb473eec75a2fd08fb892b770e3586 100644
+index 1b83d8f723410c405746faa59783e6ba7a66fd56..eec536d493575f593dd71c63944b047566f3822d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -359,14 +359,22 @@ public abstract class PlayerList {
@@ -119,7 +119,7 @@ index be6bf7afa3cea4ed48f363e89ccd079062edc8d9..9b1a6d8351fb473eec75a2fd08fb892b
// Paper end - Use single player info update packet on join
player.sentListPacket = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cb41fad4b94c4da64a699dc1b0848fc08ff2c456..c80cbc9dece765091b2ad9281bdc061df8b491dc 100644
+index 9cf67deacf9d01e3835705260a358513987fc3ba..78dcc656807cafa52707ef4139fe6176f6f16021 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -201,6 +201,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0869-Configurable-Region-Compression-Format.patch b/patches/server/0868-Configurable-Region-Compression-Format.patch
index 64a52a4ea2..64a52a4ea2 100644
--- a/patches/server/0869-Configurable-Region-Compression-Format.patch
+++ b/patches/server/0868-Configurable-Region-Compression-Format.patch
diff --git a/patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch
index f2de8e9aa8..3a44f17ce6 100644
--- a/patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch
+++ b/patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch
@@ -18,10 +18,10 @@ index c680f081ba548f84f07a968a46811090c53e57e3..d839f8df658c894f144ba4637d290ffb
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 35afad4e995f7e94d7a4541157b237c73d1b9635..9d7bcd7a99cfda0776d267bada384304558fa6fe 100644
+index 3f9a309d4d0685aec0fabb16a1bd51931048525b..3dae4bc26ac6de7ee07eeca7763e2078cb2b7101 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -655,13 +655,13 @@ public class CraftEventFactory {
+@@ -659,13 +659,13 @@ public class CraftEventFactory {
/**
* BlockDamageEvent
*/
diff --git a/patches/server/0871-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0870-Fix-NPE-on-Boat-getStatus.patch
index 70323a4352..70323a4352 100644
--- a/patches/server/0871-Fix-NPE-on-Boat-getStatus.patch
+++ b/patches/server/0870-Fix-NPE-on-Boat-getStatus.patch
diff --git a/patches/server/0872-Expand-Pose-API.patch b/patches/server/0871-Expand-Pose-API.patch
index 2cb1e5311f..2cb1e5311f 100644
--- a/patches/server/0872-Expand-Pose-API.patch
+++ b/patches/server/0871-Expand-Pose-API.patch
diff --git a/patches/server/0873-More-DragonBattle-API.patch b/patches/server/0872-More-DragonBattle-API.patch
index a6e0c111c0..a6e0c111c0 100644
--- a/patches/server/0873-More-DragonBattle-API.patch
+++ b/patches/server/0872-More-DragonBattle-API.patch
diff --git a/patches/server/0874-Add-PlayerPickItemEvent.patch b/patches/server/0873-Add-PlayerPickItemEvent.patch
index b9ddd8ed60..b9ddd8ed60 100644
--- a/patches/server/0874-Add-PlayerPickItemEvent.patch
+++ b/patches/server/0873-Add-PlayerPickItemEvent.patch
diff --git a/patches/server/0875-Allow-trident-custom-damage.patch b/patches/server/0874-Allow-trident-custom-damage.patch
index 95137bd7d5..95137bd7d5 100644
--- a/patches/server/0875-Allow-trident-custom-damage.patch
+++ b/patches/server/0874-Allow-trident-custom-damage.patch
diff --git a/patches/server/0876-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0875-Expose-hand-in-BlockCanBuildEvent.patch
index 4abc7e9fc5..4abc7e9fc5 100644
--- a/patches/server/0876-Expose-hand-in-BlockCanBuildEvent.patch
+++ b/patches/server/0875-Expose-hand-in-BlockCanBuildEvent.patch
diff --git a/patches/server/0877-Optimize-nearest-structure-border-iteration.patch b/patches/server/0876-Optimize-nearest-structure-border-iteration.patch
index df5f60c52c..df5f60c52c 100644
--- a/patches/server/0877-Optimize-nearest-structure-border-iteration.patch
+++ b/patches/server/0876-Optimize-nearest-structure-border-iteration.patch
diff --git a/patches/server/0878-Implement-OfflinePlayer-isConnected.patch b/patches/server/0877-Implement-OfflinePlayer-isConnected.patch
index 2d00249134..96316a2a2a 100644
--- a/patches/server/0878-Implement-OfflinePlayer-isConnected.patch
+++ b/patches/server/0877-Implement-OfflinePlayer-isConnected.patch
@@ -23,7 +23,7 @@ index 4d654c4f0b6210a9841427789ba70ce5d1d308be..9d93130f23addb18b97d7f5ec013faef
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 c80cbc9dece765091b2ad9281bdc061df8b491dc..a996f721fa0794a4551ff1e99ea1b66a723bfaff 100644
+index 78dcc656807cafa52707ef4139fe6176f6f16021..a2dd33a9bb61427005e1edb1dcb1dfa23030d0ee 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -256,6 +256,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0879-Fix-inventory-desync.patch b/patches/server/0878-Fix-inventory-desync.patch
index ca00484251..ca00484251 100644
--- a/patches/server/0879-Fix-inventory-desync.patch
+++ b/patches/server/0878-Fix-inventory-desync.patch
diff --git a/patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch
index 629f589fc2..e9c3aa9d42 100644
--- a/patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -79,10 +79,10 @@ index 12ab8f7cde88cd6ce3ad474fe2843d5d30c3c0d7..c1bad887d1340ebc7c63fda3dceff929
if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen
player.containerMenu = container;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 9d7bcd7a99cfda0776d267bada384304558fa6fe..6ca59ba6a713e452d146182d143b99b07696af8b 100644
+index 3dae4bc26ac6de7ee07eeca7763e2078cb2b7101..a8365c67e28d530734b8527ce67d83decee41beb 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1397,10 +1397,21 @@ public class CraftEventFactory {
+@@ -1401,10 +1401,21 @@ public class CraftEventFactory {
}
public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) {
@@ -105,7 +105,7 @@ index 9d7bcd7a99cfda0776d267bada384304558fa6fe..6ca59ba6a713e452d146182d143b99b0
if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open
player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason
}
-@@ -1415,10 +1426,10 @@ public class CraftEventFactory {
+@@ -1419,10 +1430,10 @@ public class CraftEventFactory {
if (event.isCancelled()) {
container.transferTo(player.containerMenu, craftPlayer);
diff --git a/patches/server/0881-Configure-sniffer-egg-hatch-time.patch b/patches/server/0880-Configure-sniffer-egg-hatch-time.patch
index 7def55b1f7..7def55b1f7 100644
--- a/patches/server/0881-Configure-sniffer-egg-hatch-time.patch
+++ b/patches/server/0880-Configure-sniffer-egg-hatch-time.patch
diff --git a/patches/server/0882-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0881-Do-crystal-portal-proximity-check-before-entity-look.patch
index 67d506a715..67d506a715 100644
--- a/patches/server/0882-Do-crystal-portal-proximity-check-before-entity-look.patch
+++ b/patches/server/0881-Do-crystal-portal-proximity-check-before-entity-look.patch
diff --git a/patches/server/0883-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0882-Skip-POI-finding-if-stuck-in-vehicle.patch
index a4dcac44ac..a4dcac44ac 100644
--- a/patches/server/0883-Skip-POI-finding-if-stuck-in-vehicle.patch
+++ b/patches/server/0882-Skip-POI-finding-if-stuck-in-vehicle.patch
diff --git a/patches/server/0884-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch
index 00c27f3999..00c27f3999 100644
--- a/patches/server/0884-Add-slot-sanity-checks-in-container-clicks.patch
+++ b/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch
diff --git a/patches/server/0885-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0884-Call-BlockRedstoneEvents-for-lecterns.patch
index b2cf0ce209..b2cf0ce209 100644
--- a/patches/server/0885-Call-BlockRedstoneEvents-for-lecterns.patch
+++ b/patches/server/0884-Call-BlockRedstoneEvents-for-lecterns.patch
diff --git a/patches/server/0886-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0885-Allow-proper-checking-of-empty-item-stacks.patch
index c578a2c3c2..c578a2c3c2 100644
--- a/patches/server/0886-Allow-proper-checking-of-empty-item-stacks.patch
+++ b/patches/server/0885-Allow-proper-checking-of-empty-item-stacks.patch
diff --git a/patches/server/0887-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0886-Fix-silent-equipment-change-for-mobs.patch
index f3cdc6b20c..f3cdc6b20c 100644
--- a/patches/server/0887-Fix-silent-equipment-change-for-mobs.patch
+++ b/patches/server/0886-Fix-silent-equipment-change-for-mobs.patch
diff --git a/patches/server/0888-Fix-spigot-s-Forced-Stats.patch b/patches/server/0887-Fix-spigot-s-Forced-Stats.patch
index 554f1f8844..554f1f8844 100644
--- a/patches/server/0888-Fix-spigot-s-Forced-Stats.patch
+++ b/patches/server/0887-Fix-spigot-s-Forced-Stats.patch
diff --git a/patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch
index ae956d4693..abdf8c8bea 100644
--- a/patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch
+++ b/patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch
@@ -77,7 +77,7 @@ index 428e454116804c27496cfbf796edd44780890d33..4c7e91977fa590abfe7eb3704d8008ed
+ // Paper end - Add missing InventoryHolders
}
diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
-index 1b6fd16d8c6195c6f7b65c7621d5f9bd15c46a75..7f513e8c4f81524aee9326ddbbc6bec0b3fa1b27 100644
+index a735aeeb59f79154ce797c6e2f5600305f46d217..b93c118d957f0a2f40e2f31fd6400bd69438cf72 100644
--- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java
@@ -42,7 +42,7 @@ public class BeaconMenu extends AbstractContainerMenu {
@@ -148,10 +148,10 @@ index 85e336637db8643fc5aca1dba724c9b341cbf46f..12b466ccb7c36021cf807c4f3fd2bcb0
@Override
public <T> Optional<T> evaluate(BiFunction<Level, BlockPos, T> getter) {
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
-index 6f88ce0076460215f5c1a965aa2bd7050071b611..c1b9c3ad2cccfa520e9d73b786142624ac5f3380 100644
+index 2fa009b33bccd6aeee30f23f9207ab039740d95d..fff1c39920e7d7051dfe3dd39c77865d3bdf113e 100644
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
-@@ -66,7 +66,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
+@@ -63,7 +63,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
public EnchantmentMenu(int syncId, Inventory playerInventory, ContainerLevelAccess context) {
super(MenuType.ENCHANTMENT, syncId);
@@ -206,7 +206,7 @@ index be840717e180b6b5abd14db6cc9263349737f9a3..7de5e47f9a54263734eeef855a2dc07e
public void setChanged() {
super.setChanged();
diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
-index 72ad78659a373213ed1f37498754adaf18f1f68b..4f3f6ea43030853bd9df067358a1f4d16c40e6d4 100644
+index f76ef029132c6a08d4e70585bc440eccdc626b16..7d7b4e53682107a1a75a7aa205be1e6bfdc8c551 100644
--- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
@@ -73,7 +73,7 @@ public class LoomMenu extends AbstractContainerMenu {
@@ -261,7 +261,7 @@ index d4592218d761eb38402e3d95c642e80a708cb333..4c4266a85c38e41e6c7e6144a68624f4
public ResultContainer() {
this.itemStacks = NonNullList.withSize(1, ItemStack.EMPTY);
diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
-index 977ccef3c9fa7685209f3eca894a3b69501ebcc1..5ddae1afab0a68465ea60395c84b0997ee994f88 100644
+index 37e75c02c374314372630f4bda0b92519809f2a4..5a0015f761f6a25d7bb7b9cfe7a9b4771a6a37ec 100644
--- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java
@@ -69,7 +69,7 @@ public class StonecutterMenu extends AbstractContainerMenu {
diff --git a/patches/server/0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
index ab4d61b97a..ab4d61b97a 100644
--- a/patches/server/0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
+++ b/patches/server/0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
diff --git a/patches/server/0891-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0890-Add-missing-logs-for-log-ips-config-option.patch
index 2898d66615..2898d66615 100644
--- a/patches/server/0891-Add-missing-logs-for-log-ips-config-option.patch
+++ b/patches/server/0890-Add-missing-logs-for-log-ips-config-option.patch
diff --git a/patches/server/0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
index e1f2934daa..e1f2934daa 100644
--- a/patches/server/0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
+++ b/patches/server/0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
diff --git a/patches/server/0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
index 7ccf4c0f03..7ccf4c0f03 100644
--- a/patches/server/0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
+++ b/patches/server/0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
diff --git a/patches/server/0894-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0893-Fix-team-sidebar-objectives-not-being-cleared.patch
index 88a39d0b20..88a39d0b20 100644
--- a/patches/server/0894-Fix-team-sidebar-objectives-not-being-cleared.patch
+++ b/patches/server/0893-Fix-team-sidebar-objectives-not-being-cleared.patch
diff --git a/patches/server/0895-Fix-missing-map-initialize-event-call.patch b/patches/server/0894-Fix-missing-map-initialize-event-call.patch
index 1ee21864ad..1ee21864ad 100644
--- a/patches/server/0895-Fix-missing-map-initialize-event-call.patch
+++ b/patches/server/0894-Fix-missing-map-initialize-event-call.patch
diff --git a/patches/server/0896-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0895-Update-entity-data-when-attaching-firework-to-entity.patch
index f2c094976f..f2c094976f 100644
--- a/patches/server/0896-Update-entity-data-when-attaching-firework-to-entity.patch
+++ b/patches/server/0895-Update-entity-data-when-attaching-firework-to-entity.patch
diff --git a/patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch
index d8143eab89..bee9e36bfe 100644
--- a/patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch
+++ b/patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix UnsafeValues#loadAdvancement
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 48eeac0795c479ebb2ff64005b1405421131fcd7..1d98c0e9f138f122aa73e2f1dd6d485d7865720d 100644
+index 398068e8ffa77ac7199baf7aaab5b60c9dc639f5..9449fe944c7a06a8fdeaf0a0dfc7280950fdb6db 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -302,9 +302,30 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/server/0898-Add-player-idle-duration-API.patch b/patches/server/0897-Add-player-idle-duration-API.patch
index 9e5130fc3a..0c646e1e0a 100644
--- a/patches/server/0898-Add-player-idle-duration-API.patch
+++ b/patches/server/0897-Add-player-idle-duration-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API
Implements API for getting and resetting a player's idle duration.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a996f721fa0794a4551ff1e99ea1b66a723bfaff..e443e260afbda55cc9888efd60d9b5f56dcbf55b 100644
+index a2dd33a9bb61427005e1edb1dcb1dfa23030d0ee..f474b6f880b8d03d6b6a29203509ac0fdd9faaf1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3419,6 +3419,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0899-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0898-Don-t-check-if-we-can-see-non-visible-entities.patch
index 1383a41799..1383a41799 100644
--- a/patches/server/0899-Don-t-check-if-we-can-see-non-visible-entities.patch
+++ b/patches/server/0898-Don-t-check-if-we-can-see-non-visible-entities.patch
diff --git a/patches/server/0900-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0899-Fix-NPE-in-SculkBloomEvent-world-access.patch
index 5abf7cda2c..5abf7cda2c 100644
--- a/patches/server/0900-Fix-NPE-in-SculkBloomEvent-world-access.patch
+++ b/patches/server/0899-Fix-NPE-in-SculkBloomEvent-world-access.patch
diff --git a/patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
index ec4d42387a..fdde374c47 100644
--- a/patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
+++ b/patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e443e260afbda55cc9888efd60d9b5f56dcbf55b..f337c32fa4521d6ddd1c4d6102404db389f23b71 100644
+index f474b6f880b8d03d6b6a29203509ac0fdd9faaf1..51b524d3c7cd5e0f59056c1fd8f71171732945b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1127,7 +1127,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0902-Optimize-VarInts.patch b/patches/server/0901-Optimize-VarInts.patch
index b96957d432..b96957d432 100644
--- a/patches/server/0902-Optimize-VarInts.patch
+++ b/patches/server/0901-Optimize-VarInts.patch
diff --git a/patches/server/0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch
index f0fcc8b9eb..f0fcc8b9eb 100644
--- a/patches/server/0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch
+++ b/patches/server/0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch
diff --git a/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0903-Add-predicate-for-blocks-when-raytracing.patch
index 3d4d267627..3d4d267627 100644
--- a/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch
+++ b/patches/server/0903-Add-predicate-for-blocks-when-raytracing.patch
diff --git a/patches/server/0905-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0904-Broadcast-take-item-packets-with-collector-as-source.patch
index 25d46b180a..25d46b180a 100644
--- a/patches/server/0905-Broadcast-take-item-packets-with-collector-as-source.patch
+++ b/patches/server/0904-Broadcast-take-item-packets-with-collector-as-source.patch
diff --git a/patches/server/0906-Expand-LingeringPotion-API.patch b/patches/server/0905-Expand-LingeringPotion-API.patch
index fdd0abf668..fdd0abf668 100644
--- a/patches/server/0906-Expand-LingeringPotion-API.patch
+++ b/patches/server/0905-Expand-LingeringPotion-API.patch
diff --git a/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
index 0ff11632f4..0ff11632f4 100644
--- a/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
+++ b/patches/server/0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
diff --git a/patches/server/0908-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0907-Add-hand-to-fish-event-for-all-player-interactions.patch
index dd3e5bba44..dd3e5bba44 100644
--- a/patches/server/0908-Add-hand-to-fish-event-for-all-player-interactions.patch
+++ b/patches/server/0907-Add-hand-to-fish-event-for-all-player-interactions.patch
diff --git a/patches/server/0909-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0908-Fix-several-issues-with-EntityBreedEvent.patch
index 6a97d9fb9e..6a97d9fb9e 100644
--- a/patches/server/0909-Fix-several-issues-with-EntityBreedEvent.patch
+++ b/patches/server/0908-Fix-several-issues-with-EntityBreedEvent.patch
diff --git a/patches/server/0910-Add-UUID-attribute-modifier-API.patch b/patches/server/0909-Add-UUID-attribute-modifier-API.patch
index 4b5e695553..4b5e695553 100644
--- a/patches/server/0910-Add-UUID-attribute-modifier-API.patch
+++ b/patches/server/0909-Add-UUID-attribute-modifier-API.patch
diff --git a/patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch
index 79cebb8989..d567759368 100644
--- a/patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch
+++ b/patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index a8b9b50991361160880b9fc0a94cad30c319e62e..b8eb9166e44da8745a056bf68f2f9316ce25d7a7 100644
+index 580427bf1521ac9fef37f7464e12a7bfe4fbfb10..9ca1fee03bfa557f1df7388c6043c9ec6d02a79a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -258,6 +258,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0912-Lazily-create-LootContext-for-criterions.patch b/patches/server/0911-Lazily-create-LootContext-for-criterions.patch
index d1033bf7e7..d1033bf7e7 100644
--- a/patches/server/0912-Lazily-create-LootContext-for-criterions.patch
+++ b/patches/server/0911-Lazily-create-LootContext-for-criterions.patch
diff --git a/patches/server/0913-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0912-Don-t-fire-sync-events-during-worldgen.patch
index 707f704c08..707f704c08 100644
--- a/patches/server/0913-Don-t-fire-sync-events-during-worldgen.patch
+++ b/patches/server/0912-Don-t-fire-sync-events-during-worldgen.patch
diff --git a/patches/server/0914-Add-Structure-check-API.patch b/patches/server/0913-Add-Structure-check-API.patch
index 38a42bd17d..38a42bd17d 100644
--- a/patches/server/0914-Add-Structure-check-API.patch
+++ b/patches/server/0913-Add-Structure-check-API.patch
diff --git a/patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
index ad38c13cd7..32e393d2a8 100644
--- a/patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
+++ b/patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 0b87cfbdf039ee5bc017d2b1783c7c4853047952..5a455354561389194b0e61c03f4b2e9285b17a3b 100644
+index 5c76ba7f9ceb285d27e18369172612205be96224..11f55ef2645d50bbc24bd245ffe3ac98180315d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -1405,7 +1405,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1412,7 +1412,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null");
this.checkAttributeList();
for (Map.Entry<Attribute, AttributeModifier> entry : this.attributeModifiers.entries()) {
diff --git a/patches/server/0916-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0915-Restore-vanilla-entity-drops-behavior.patch
index 41f35bee2a..6e06cd8067 100644
--- a/patches/server/0916-Restore-vanilla-entity-drops-behavior.patch
+++ b/patches/server/0915-Restore-vanilla-entity-drops-behavior.patch
@@ -152,10 +152,10 @@ index 5bcb9a53ebebeef4bd6ec2458df4b63002ebd804..2f398750bfee5758ad8b1367b6fc1436
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd6678b49c 100644
+index a8365c67e28d530734b8527ce67d83decee41beb..5ba2fb40e4db033a069b7368b481ac81be109e94 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -969,18 +969,24 @@ public class CraftEventFactory {
+@@ -973,18 +973,24 @@ public class CraftEventFactory {
}
public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, DamageSource damageSource) {
@@ -184,7 +184,7 @@ index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd
populateFields(victim, event); // Paper - make cancellable
CraftWorld world = (CraftWorld) entity.getWorld();
Bukkit.getServer().getPluginManager().callEvent(event);
-@@ -994,20 +1000,24 @@ public class CraftEventFactory {
+@@ -998,20 +1004,24 @@ public class CraftEventFactory {
victim.expToDrop = event.getDroppedExp();
lootCheck.run(); // Paper - advancement triggers before destroying items
@@ -213,7 +213,7 @@ index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd
event.setKeepInventory(keepInventory);
event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel
populateFields(victim, event); // Paper - make cancellable
-@@ -1025,16 +1035,14 @@ public class CraftEventFactory {
+@@ -1029,16 +1039,14 @@ public class CraftEventFactory {
victim.expToDrop = event.getDroppedExp();
victim.newExp = event.getNewExp();
diff --git a/patches/server/0917-Dont-resend-blocks-on-interactions.patch b/patches/server/0916-Dont-resend-blocks-on-interactions.patch
index 3e498be31c..822d354138 100644
--- a/patches/server/0917-Dont-resend-blocks-on-interactions.patch
+++ b/patches/server/0916-Dont-resend-blocks-on-interactions.patch
@@ -149,7 +149,7 @@ index 6caed156ed0cfe0017d578f58cb963ee68272d78..321188173918d0d60858a258400dfd68
return false;
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 780b2fada591fb1b504fbf4828c31ec0dd1c25db..fa4bdf8bdbd6eaeb854e62a2acb45d7998e4aa2b 100644
+index 11c507b399f97c4c0bbe220e8a3c1cdb851c8a0a..ebe470ca361ec5747a843b60d82f567d41d7c9fa 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -500,10 +500,12 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0918-add-more-scoreboard-API.patch b/patches/server/0917-add-more-scoreboard-API.patch
index 3365b53a36..3365b53a36 100644
--- a/patches/server/0918-add-more-scoreboard-API.patch
+++ b/patches/server/0917-add-more-scoreboard-API.patch
diff --git a/patches/server/0919-Improve-Registry.patch b/patches/server/0918-Improve-Registry.patch
index d912757a1f..bebb963725 100644
--- a/patches/server/0919-Improve-Registry.patch
+++ b/patches/server/0918-Improve-Registry.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Improve Registry
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c60b85d2a 100644
+index 154733684a53ff84ca8c2a994b96b68733e9fba5..1da61e0392ec1e15c0ab9d7d71b2b2b682d10130 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -151,6 +151,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -153,6 +153,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
private final Class<?> bukkitClass; // Paper - relax preload class
private final Map<NamespacedKey, B> cache = new HashMap<>();
@@ -16,7 +16,7 @@ index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c
private final net.minecraft.core.Registry<M> minecraftRegistry;
private final BiFunction<NamespacedKey, M, B> minecraftToBukkit;
private final BiFunction<NamespacedKey, ApiVersion, NamespacedKey> serializationUpdater; // Paper - rename to make it *clear* what it is *only* for
-@@ -199,6 +200,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -201,6 +202,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
}
this.cache.put(namespacedKey, bukkit);
@@ -24,7 +24,7 @@ index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c
return bukkit;
}
-@@ -221,4 +223,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -223,4 +225,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
return this.minecraftToBukkit.apply(namespacedKey, minecraft);
}
diff --git a/patches/server/0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
index 72b2cc189a..72b2cc189a 100644
--- a/patches/server/0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
+++ b/patches/server/0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
diff --git a/patches/server/0921-Add-experience-points-API.patch b/patches/server/0920-Add-experience-points-API.patch
index f29e610a9b..92be0f2b48 100644
--- a/patches/server/0921-Add-experience-points-API.patch
+++ b/patches/server/0920-Add-experience-points-API.patch
@@ -18,7 +18,7 @@ index 950ce40d268d89ff3c503116081db6c9ccd65329..454b29d8c9e42e328933aa578f49d28f
// Paper start - send while respecting visibility
private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f337c32fa4521d6ddd1c4d6102404db389f23b71..4d3838c5184296451089697fd3f7438a7f1be762 100644
+index 51b524d3c7cd5e0f59056c1fd8f71171732945b8..1490d15f1ffa83653b20a4bb47584c4c554a3384 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1921,6 +1921,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0922-Add-drops-to-shear-events.patch b/patches/server/0921-Add-drops-to-shear-events.patch
index 6741c44832..d434c31a11 100644
--- a/patches/server/0922-Add-drops-to-shear-events.patch
+++ b/patches/server/0921-Add-drops-to-shear-events.patch
@@ -317,10 +317,10 @@ index dc6230458e09f7555eee7f6a567ff60ad454666b..9d50b9ac8084f3db1844cc7ad1ce9153
public boolean readyForShearing() {
return !this.isSheared() && this.isAlive();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index be1fa84dfdec0e31f9e2ca47ad3719dd6678b49c..d7bf00745a9016d0fe0c1d39ffaaac44276251d4 100644
+index 5ba2fb40e4db033a069b7368b481ac81be109e94..5af27ba31f293ba6bcac37047b760db1c3bd8c5f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1676,20 +1676,20 @@ public class CraftEventFactory {
+@@ -1689,20 +1689,20 @@ public class CraftEventFactory {
player.level().getCraftServer().getPluginManager().callEvent(event);
}
diff --git a/patches/server/0923-Add-PlayerShieldDisableEvent.patch b/patches/server/0922-Add-PlayerShieldDisableEvent.patch
index 5bbd9b6ff6..5bbd9b6ff6 100644
--- a/patches/server/0923-Add-PlayerShieldDisableEvent.patch
+++ b/patches/server/0922-Add-PlayerShieldDisableEvent.patch
diff --git a/patches/server/0924-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0923-Validate-ResourceLocation-in-NBT-reading.patch
index c8a97d12db..c8a97d12db 100644
--- a/patches/server/0924-Validate-ResourceLocation-in-NBT-reading.patch
+++ b/patches/server/0923-Validate-ResourceLocation-in-NBT-reading.patch
diff --git a/patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch
index 21b63430dd..c5ffca5d89 100644
--- a/patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch
+++ b/patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch
@@ -68,10 +68,10 @@ index c083dc8b2a69c3747b250d13f1a28ad22b5e6119..bf52c36f31992a01a7403d8c85151327
}
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 9d6cc0b8dbc451dfff1ddd8e7be32d11434cdb69..87289d8ab94705999c67457a28538e7a5576acc3 100644
+index a8bec3c405732e5863cf717b1fe948d00837bed2..240c250a93289776686d09d7eae17c07d7278da5 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -1118,6 +1118,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -1119,6 +1119,7 @@ public abstract class BlockBehaviour implements FeatureElement {
public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) {
this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience);
diff --git a/patches/server/0926-Fixup-NamespacedKey-handling.patch b/patches/server/0925-Fixup-NamespacedKey-handling.patch
index fb00b008ce..92a61d5a1e 100644
--- a/patches/server/0926-Fixup-NamespacedKey-handling.patch
+++ b/patches/server/0925-Fixup-NamespacedKey-handling.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fixup NamespacedKey handling
diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
-index 4f3f6ea43030853bd9df067358a1f4d16c40e6d4..531336c44c46555fef8c001fe8ca00c93624ad42 100644
+index 7d7b4e53682107a1a75a7aa205be1e6bfdc8c551..0e954dfe82ed263cbe63dbf49ff49e83f38228b8 100644
--- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java
@@ -171,12 +171,28 @@ public class LoomMenu extends AbstractContainerMenu {
@@ -52,10 +52,10 @@ index e34deaf398dc6722c3128bdd6b9bc16da2d33bf7..f028daa4f23a1f1868c9922991259739
public static NamespacedKey minecraftToBukkitKey(ResourceKey<LootTable> minecraft) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index b6c7522ff8522cdadf3b291a9c2ac87c60b85d2a..fc9aec589414bf8d3f672183928235b5b51d1a02 100644
+index 1da61e0392ec1e15c0ab9d7d71b2b2b682d10130..c2824cc07b761958a0df4b110bdfc53bd853b9e7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -118,6 +118,16 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -120,6 +120,16 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+ ", this can happen if a plugin creates its own registry entry with out properly registering it.");
}
@@ -143,6 +143,27 @@ index 478059eb3ad76b41e6a20e9b489a2a4fb19e7c7c..3599ef1675b6091e9b67fb5241886460
});
}
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+index c8eec04685456d89cb41466cddcc3975d0ceeb29..bcd6cc29e4e621805cbd923d747f652ced240c6d 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+@@ -17,6 +17,7 @@ import org.bukkit.block.BlockState;
+ import org.bukkit.block.banner.Pattern;
+ import org.bukkit.block.banner.PatternType;
+ import org.bukkit.configuration.serialization.DelegateDeserialization;
++import org.bukkit.craftbukkit.CraftRegistry;
+ import org.bukkit.craftbukkit.block.CraftBlockStates;
+ import org.bukkit.craftbukkit.block.banner.CraftPatternType;
+ import org.bukkit.inventory.meta.BlockStateMeta;
+@@ -53,7 +54,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ for (int i = 0; i < Math.min(patterns.size(), 20); i++) {
+ BannerPatternLayers.Layer p = patterns.get(i);
+ DyeColor color = DyeColor.getByWoolData((byte) p.color().getId());
+- PatternType pattern = CraftPatternType.minecraftHolderToBukkit(p.pattern());
++ PatternType pattern = CraftRegistry.unwrapAndConvertHolder(io.papermc.paper.registry.RegistryKey.BANNER_PATTERN, p.pattern()).orElse(null); // Paper - fix upstream not being correct
+
+ if (color != null && pattern != null) {
+ this.addPattern(new Pattern(color, pattern));
diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java
index 82a50b06c08b632f77d73745e1fa9bd22dfd950a..f1d8ed4a2b8959873b02d57f6a40323a841f3d7f 100644
--- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java
diff --git a/patches/server/0927-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0926-Expose-LootTable-of-DecoratedPot.patch
index afa86977a9..afa86977a9 100644
--- a/patches/server/0927-Expose-LootTable-of-DecoratedPot.patch
+++ b/patches/server/0926-Expose-LootTable-of-DecoratedPot.patch
diff --git a/patches/server/0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
index a6036eeb42..a6036eeb42 100644
--- a/patches/server/0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
+++ b/patches/server/0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
diff --git a/patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
index a58beffec5..42c7c99313 100644
--- a/patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
+++ b/patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
@@ -107,7 +107,7 @@ index 4c7e91977fa590abfe7eb3704d8008ed6d4e3ab3..32910f677b0522ac8ec513fa0d00b714
break;
}
diff --git a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
-index ecefd4075c097e2118ec23e87baf36465c40f85f..2992e86f5f83431e230162380b33721df785ba91 100644
+index e45ab844afdf1a65f23eeff4c4d6cd9e3a8a28e2..5de2030452b96a4df7ce0be82f07e002db595dee 100644
--- a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java
@@ -135,12 +135,12 @@ public class MerchantMenu extends AbstractContainerMenu {
diff --git a/patches/server/0930-Add-ShulkerDuplicateEvent.patch b/patches/server/0929-Add-ShulkerDuplicateEvent.patch
index de864137e2..de864137e2 100644
--- a/patches/server/0930-Add-ShulkerDuplicateEvent.patch
+++ b/patches/server/0929-Add-ShulkerDuplicateEvent.patch
diff --git a/patches/server/0931-Add-api-for-spawn-egg-texture-colors.patch b/patches/server/0930-Add-api-for-spawn-egg-texture-colors.patch
index bc65a0c926..bc65a0c926 100644
--- a/patches/server/0931-Add-api-for-spawn-egg-texture-colors.patch
+++ b/patches/server/0930-Add-api-for-spawn-egg-texture-colors.patch
diff --git a/patches/server/0932-Add-Lifecycle-Event-system.patch b/patches/server/0931-Add-Lifecycle-Event-system.patch
index cb31df174d..cb31df174d 100644
--- a/patches/server/0932-Add-Lifecycle-Event-system.patch
+++ b/patches/server/0931-Add-Lifecycle-Event-system.patch
diff --git a/patches/server/0933-ItemStack-Tooltip-API.patch b/patches/server/0932-ItemStack-Tooltip-API.patch
index 8858ce7085..8858ce7085 100644
--- a/patches/server/0933-ItemStack-Tooltip-API.patch
+++ b/patches/server/0932-ItemStack-Tooltip-API.patch
diff --git a/patches/server/0934-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/0933-Add-getChunkSnapshot-includeLightData-parameter.patch
index 54aa35539f..54aa35539f 100644
--- a/patches/server/0934-Add-getChunkSnapshot-includeLightData-parameter.patch
+++ b/patches/server/0933-Add-getChunkSnapshot-includeLightData-parameter.patch
diff --git a/patches/server/0935-Add-FluidState-API.patch b/patches/server/0934-Add-FluidState-API.patch
index aac0912819..aac0912819 100644
--- a/patches/server/0935-Add-FluidState-API.patch
+++ b/patches/server/0934-Add-FluidState-API.patch
diff --git a/patches/server/0936-add-number-format-api.patch b/patches/server/0935-add-number-format-api.patch
index d412b5f929..d412b5f929 100644
--- a/patches/server/0936-add-number-format-api.patch
+++ b/patches/server/0935-add-number-format-api.patch
diff --git a/patches/server/0937-improve-BanList-types.patch b/patches/server/0936-improve-BanList-types.patch
index 9e9699167e..9e9699167e 100644
--- a/patches/server/0937-improve-BanList-types.patch
+++ b/patches/server/0936-improve-BanList-types.patch
diff --git a/patches/server/0938-Expanded-Hopper-API.patch b/patches/server/0937-Expanded-Hopper-API.patch
index 2b59ac9974..2b59ac9974 100644
--- a/patches/server/0938-Expanded-Hopper-API.patch
+++ b/patches/server/0937-Expanded-Hopper-API.patch
diff --git a/patches/server/0939-Add-BlockBreakProgressUpdateEvent.patch b/patches/server/0938-Add-BlockBreakProgressUpdateEvent.patch
index 3e5409551e..3e5409551e 100644
--- a/patches/server/0939-Add-BlockBreakProgressUpdateEvent.patch
+++ b/patches/server/0938-Add-BlockBreakProgressUpdateEvent.patch
diff --git a/patches/server/0940-Deprecate-ItemStack-setType.patch b/patches/server/0939-Deprecate-ItemStack-setType.patch
index e0a6acc747..e0a6acc747 100644
--- a/patches/server/0940-Deprecate-ItemStack-setType.patch
+++ b/patches/server/0939-Deprecate-ItemStack-setType.patch
diff --git a/patches/server/0941-Add-CartographyItemEvent.patch b/patches/server/0940-Add-CartographyItemEvent.patch
index 2d775d4172..2d775d4172 100644
--- a/patches/server/0941-Add-CartographyItemEvent.patch
+++ b/patches/server/0940-Add-CartographyItemEvent.patch
diff --git a/patches/server/0942-More-Raid-API.patch b/patches/server/0941-More-Raid-API.patch
index 5f013c673c..5f013c673c 100644
--- a/patches/server/0942-More-Raid-API.patch
+++ b/patches/server/0941-More-Raid-API.patch
diff --git a/patches/server/0943-Add-onboarding-message-for-initial-server-start.patch b/patches/server/0942-Add-onboarding-message-for-initial-server-start.patch
index 88c251c845..88c251c845 100644
--- a/patches/server/0943-Add-onboarding-message-for-initial-server-start.patch
+++ b/patches/server/0942-Add-onboarding-message-for-initial-server-start.patch
diff --git a/patches/server/0944-Configurable-max-block-fluid-ticks.patch b/patches/server/0943-Configurable-max-block-fluid-ticks.patch
index 780b696029..780b696029 100644
--- a/patches/server/0944-Configurable-max-block-fluid-ticks.patch
+++ b/patches/server/0943-Configurable-max-block-fluid-ticks.patch
diff --git a/patches/server/0945-Fix-bees-aging-inside-hives.patch b/patches/server/0944-Fix-bees-aging-inside-hives.patch
index 400ede1160..400ede1160 100644
--- a/patches/server/0945-Fix-bees-aging-inside-hives.patch
+++ b/patches/server/0944-Fix-bees-aging-inside-hives.patch
diff --git a/patches/server/0946-Disable-memory-reserve-allocating.patch b/patches/server/0945-Disable-memory-reserve-allocating.patch
index ea801f5092..ea801f5092 100644
--- a/patches/server/0946-Disable-memory-reserve-allocating.patch
+++ b/patches/server/0945-Disable-memory-reserve-allocating.patch
diff --git a/patches/server/0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
index d98b3aeccc..d98b3aeccc 100644
--- a/patches/server/0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
+++ b/patches/server/0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch
diff --git a/patches/server/0948-Fix-DamageSource-API.patch b/patches/server/0947-Fix-DamageSource-API.patch
index d9d164622a..13022d2d45 100644
--- a/patches/server/0948-Fix-DamageSource-API.patch
+++ b/patches/server/0947-Fix-DamageSource-API.patch
@@ -220,10 +220,10 @@ index 4c6e15535fa40aad8cf1920f392589404f9ba79c..35eb95ef6fb6a0f7ea63351e90741c48
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index d7bf00745a9016d0fe0c1d39ffaaac44276251d4..67aa8ebd1c4915fc7f18e3cf263eedf9b671a632 100644
+index 5af27ba31f293ba6bcac37047b760db1c3bd8c5f..c21acdf5b445a7f24e0d7a6dfd07a097cb6a95b4 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1088,7 +1088,7 @@ public class CraftEventFactory {
+@@ -1092,7 +1092,7 @@ public class CraftEventFactory {
private static EntityDamageEvent handleEntityDamageEvent(Entity entity, DamageSource source, Map<DamageModifier, Double> modifiers, Map<DamageModifier, Function<? super Double, Double>> modifierFunctions, boolean cancelled) {
CraftDamageSource bukkitDamageSource = new CraftDamageSource(source);
diff --git a/patches/server/0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch
index d810be487e..d810be487e 100644
--- a/patches/server/0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch
+++ b/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch
diff --git a/patches/server/0950-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/0949-Fix-possible-StackOverflowError-for-some-dispenses.patch
index 5351dde83c..5351dde83c 100644
--- a/patches/server/0950-Fix-possible-StackOverflowError-for-some-dispenses.patch
+++ b/patches/server/0949-Fix-possible-StackOverflowError-for-some-dispenses.patch
diff --git a/patches/server/0951-Improve-tag-parser-handling.patch b/patches/server/0950-Improve-tag-parser-handling.patch
index e800ee95bf..e800ee95bf 100644
--- a/patches/server/0951-Improve-tag-parser-handling.patch
+++ b/patches/server/0950-Improve-tag-parser-handling.patch
diff --git a/patches/server/0952-Item-Mutation-Fixes.patch b/patches/server/0951-Item-Mutation-Fixes.patch
index 0e20a90a87..bad3be61f9 100644
--- a/patches/server/0952-Item-Mutation-Fixes.patch
+++ b/patches/server/0951-Item-Mutation-Fixes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Item Mutation Fixes
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
-index c1b9c3ad2cccfa520e9d73b786142624ac5f3380..07223046761cb2186d75de8edc03a91d2e8e8b2f 100644
+index fff1c39920e7d7051dfe3dd39c77865d3bdf113e..1ef014b29645ed09ccffb898f1819428c3dc6259 100644
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
-@@ -235,7 +235,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
+@@ -232,7 +232,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
return false;
} else if (this.costs[id] > 0 && !itemstack.isEmpty() && (player.experienceLevel >= j && player.experienceLevel >= this.costs[id] || player.getAbilities().instabuild)) {
this.access.execute((world, blockposition) -> {
@@ -17,7 +17,7 @@ index c1b9c3ad2cccfa520e9d73b786142624ac5f3380..07223046761cb2186d75de8edc03a91d
List<EnchantmentInstance> list = this.getEnchantmentList(world.registryAccess(), itemstack, id, this.costs[id]);
// CraftBukkit start
-@@ -258,10 +258,16 @@ public class EnchantmentMenu extends AbstractContainerMenu {
+@@ -255,10 +255,16 @@ public class EnchantmentMenu extends AbstractContainerMenu {
return;
}
// CraftBukkit end
diff --git a/patches/server/0953-Per-world-ticks-per-spawn-settings.patch b/patches/server/0952-Per-world-ticks-per-spawn-settings.patch
index ea163724cf..0d7c9ea5b4 100644
--- a/patches/server/0953-Per-world-ticks-per-spawn-settings.patch
+++ b/patches/server/0952-Per-world-ticks-per-spawn-settings.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Per world ticks per spawn settings
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 2f1acea765d1b6726863cdc89707ca6148548493..81bdb6e64e04641f741c2c3350236685b097ec7a 100644
+index 471fd54edf6aa962d997878ee638974f7f594fa8..b7bf7b3b91046c81467aeb483087e12b6d9191bf 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -186,6 +186,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0954-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/0953-Properly-track-the-changed-item-from-dispense-events.patch
index 2dc797fea7..2dc797fea7 100644
--- a/patches/server/0954-Properly-track-the-changed-item-from-dispense-events.patch
+++ b/patches/server/0953-Properly-track-the-changed-item-from-dispense-events.patch
diff --git a/patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 3fdb9f8fe4..419e036508 100644
--- a/patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
@@ -107,10 +107,10 @@ index e6bfbe2588e0c2a1be14e38d654e889d392ad4db..e0c62227b279a5fe0f3868fbf9ce8c78
world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F);
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3 100644
+index 240c250a93289776686d09d7eae17c07d7278da5..f2036917c5ba9f536087d7ee559704055469730e 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -173,7 +173,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -174,7 +174,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
protected void onExplosionHit(BlockState state, Level world, BlockPos pos, Explosion explosion, BiConsumer<ItemStack, BlockPos> stackMerger) {
@@ -119,7 +119,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b
Block block = state.getBlock();
boolean flag = explosion.getIndirectSourceEntity() instanceof Player;
-@@ -253,7 +253,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -254,7 +254,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
protected boolean canBeReplaced(BlockState state, BlockPlaceContext context) {
@@ -128,7 +128,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b
}
protected boolean canBeReplaced(BlockState state, Fluid fluid) {
-@@ -882,6 +882,12 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -883,6 +883,12 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.legacySolid;
}
@@ -141,7 +141,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b
public boolean isValidSpawn(BlockGetter world, BlockPos pos, EntityType<?> type) {
return this.getBlock().properties.isValidSpawn.test(this.asState(), world, pos, type);
}
-@@ -985,7 +991,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -986,7 +992,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
public PushReaction getPistonPushReaction() {
diff --git a/patches/server/0956-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/0955-Fix-tripwire-disarming-not-working-as-intended.patch
index fa7f6bde06..fa7f6bde06 100644
--- a/patches/server/0956-Fix-tripwire-disarming-not-working-as-intended.patch
+++ b/patches/server/0955-Fix-tripwire-disarming-not-working-as-intended.patch
diff --git a/patches/server/0957-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0956-Add-config-for-mobs-immune-to-default-effects.patch
index 5989f9bd5f..5989f9bd5f 100644
--- a/patches/server/0957-Add-config-for-mobs-immune-to-default-effects.patch
+++ b/patches/server/0956-Add-config-for-mobs-immune-to-default-effects.patch
diff --git a/patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch b/patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch
index f833a51efa..f559f0cd9d 100644
--- a/patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch
+++ b/patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone nbt tags in PDC
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 5a455354561389194b0e61c03f4b2e9285b17a3b..2cf89147025066f34c12b9956d18451487fb2799 100644
+index 11f55ef2645d50bbc24bd245ffe3ac98180315d8..ba49ac74a19ee1f14706c7f769aac35fa821ef7d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -322,7 +322,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -17,7 +17,7 @@ index 5a455354561389194b0e61c03f4b2e9285b17a3b..2cf89147025066f34c12b9956d184514
this.customTag = meta.customTag;
-@@ -1690,7 +1690,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1697,7 +1697,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.customTag = this.customTag.copy();
}
clone.removedTags = Sets.newHashSet(this.removedTags);
diff --git a/patches/server/0959-Support-old-UUID-format-for-NBT.patch b/patches/server/0958-Support-old-UUID-format-for-NBT.patch
index a38c2a7f7b..68ff8a5255 100644
--- a/patches/server/0959-Support-old-UUID-format-for-NBT.patch
+++ b/patches/server/0958-Support-old-UUID-format-for-NBT.patch
@@ -8,7 +8,7 @@ We have stored UUID in plenty of places that did not get DFU'd
So just look for old format and load it if it exists.
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
-index df246d69591e1a5822a0109c99b0f67996da71fa..4e005b7b062e3231f564d284887ea1c2783a4e7d 100644
+index e88161e662d5605b50aead673c9b3794874e5f7f..d7bb00a946346dff0b0269cbd65276e146a63fb0 100644
--- a/src/main/java/net/minecraft/nbt/CompoundTag.java
+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java
@@ -232,6 +232,12 @@ public class CompoundTag implements Tag {
diff --git a/patches/server/0960-Fix-shield-disable-inconsistency.patch b/patches/server/0959-Fix-shield-disable-inconsistency.patch
index 25f666c8ec..25f666c8ec 100644
--- a/patches/server/0960-Fix-shield-disable-inconsistency.patch
+++ b/patches/server/0959-Fix-shield-disable-inconsistency.patch
diff --git a/patches/server/0961-Handle-Large-Packets-disconnecting-client.patch b/patches/server/0960-Handle-Large-Packets-disconnecting-client.patch
index ea20a101a7..ea20a101a7 100644
--- a/patches/server/0961-Handle-Large-Packets-disconnecting-client.patch
+++ b/patches/server/0960-Handle-Large-Packets-disconnecting-client.patch
diff --git a/patches/server/0962-Fix-ItemFlags.patch b/patches/server/0961-Fix-ItemFlags.patch
index d750443ba5..46e55a9780 100644
--- a/patches/server/0962-Fix-ItemFlags.patch
+++ b/patches/server/0961-Fix-ItemFlags.patch
@@ -33,7 +33,7 @@ index 73fe41322e0349ad1d46a760f621b6c91112e90e..19af55ec2bf62b70bd3be44f499b32f5
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc03eefe12 100644
+index ba49ac74a19ee1f14706c7f769aac35fa821ef7d..6f3ab40a9d0bccd9a2c439bf0e200ba5cf0f5f6e 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -245,6 +245,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -81,7 +81,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
Set<Map.Entry<DataComponentType<?>, Optional<?>>> keys = tag.entrySet();
for (Map.Entry<DataComponentType<?>, Optional<?>> key : keys) {
-@@ -620,7 +644,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -627,7 +651,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
try {
CompoundTag unhandledTag = NbtIo.readCompressed(buf, NbtAccounter.unlimitedHeap());
DataComponentPatch unhandledPatch = DataComponentPatch.CODEC.parse(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), unhandledTag).result().get();
@@ -98,7 +98,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
for (Entry<DataComponentType<?>, Optional<?>> entry : unhandledPatch.entrySet()) {
// Move removed unhandled tags to dedicated removedTags
-@@ -863,6 +895,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -870,6 +902,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
itemTag.put(CraftMetaItem.MAX_DAMAGE, this.maxDamage);
}
@@ -114,7 +114,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
for (Map.Entry<DataComponentType<?>, Optional<?>> e : this.unhandledTags.build().entrySet()) {
e.getValue().ifPresent((value) -> {
itemTag.builder.set((DataComponentType) e.getKey(), value);
-@@ -951,7 +992,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -958,7 +999,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Overridden
boolean isEmpty() {
@@ -123,7 +123,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
}
// Paper start
-@@ -1621,6 +1662,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1628,6 +1669,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hasJukeboxPlayable() ? that.hasJukeboxPlayable() && this.jukebox.equals(that.jukebox) : !that.hasJukeboxPlayable())
&& (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage())
&& (this.hasMaxDamage() ? that.hasMaxDamage() && this.maxDamage.equals(that.maxDamage) : !that.hasMaxDamage())
@@ -132,7 +132,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
&& (this.version == that.version);
}
-@@ -1666,6 +1709,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1673,6 +1716,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
hash = 61 * hash + (this.hasDamage() ? this.damage : 0);
hash = 61 * hash + (this.hasMaxDamage() ? 1231 : 1237);
hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0);
@@ -141,7 +141,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
hash = 61 * hash + this.version;
return hash;
}
-@@ -1710,6 +1755,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1717,6 +1762,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.damage = this.damage;
clone.maxDamage = this.maxDamage;
clone.version = this.version;
@@ -156,7 +156,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
return clone;
} catch (CloneNotSupportedException e) {
throw new Error(e);
-@@ -1827,6 +1880,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1834,6 +1887,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -173,7 +173,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
if (!this.unhandledTags.isEmpty()) {
Tag unhandled = DataComponentPatch.CODEC.encodeStart(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), this.unhandledTags.build()).getOrThrow(IllegalStateException::new);
try {
-@@ -1837,6 +1900,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1844,6 +1907,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
Logger.getLogger(CraftMetaItem.class.getName()).log(Level.SEVERE, null, ex);
}
}
@@ -188,7 +188,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc
if (!this.removedTags.isEmpty()) {
RegistryAccess registryAccess = CraftRegistry.getMinecraftRegistry();
-@@ -1990,6 +2061,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1997,6 +2068,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaItem.MAX_DAMAGE.TYPE,
CraftMetaItem.CUSTOM_DATA.TYPE,
CraftMetaItem.ATTRIBUTES.TYPE,
diff --git a/patches/server/0963-Fix-Player-setBlockUpdate.patch b/patches/server/0962-Fix-Player-setBlockUpdate.patch
index 81049f5c54..af479baa93 100644
--- a/patches/server/0963-Fix-Player-setBlockUpdate.patch
+++ b/patches/server/0962-Fix-Player-setBlockUpdate.patch
@@ -18,7 +18,7 @@ index 397eb1a101bd60f49dbb2fa8eddf28f6f233167f..e28bc898786542f695017ff0a0366768
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4d3838c5184296451089697fd3f7438a7f1be762..94524dee7e3ff78d378bd7812c49d041d07e138d 100644
+index 1490d15f1ffa83653b20a4bb47584c4c554a3384..29c5855b9d31e803eb856584b92dfd35f6fad39a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1118,6 +1118,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch b/patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch
index 065e1dca21..d394f07802 100644
--- a/patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch
+++ b/patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch
@@ -7,10 +7,10 @@ Affect the falling stalactite damage type where the
reduction is not applied like in Vanilla
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 67aa8ebd1c4915fc7f18e3cf263eedf9b671a632..0ab53d46f0b8f3f3791dd01766738522c86932e8 100644
+index c21acdf5b445a7f24e0d7a6dfd07a097cb6a95b4..10598b112b66d660f1b1362d9af1ac85201cd0af 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1222,7 +1222,7 @@ public class CraftEventFactory {
+@@ -1226,7 +1226,7 @@ public class CraftEventFactory {
modifiers.put(DamageModifier.FREEZING, freezingModifier);
modifierFunctions.put(DamageModifier.FREEZING, freezing);
}
diff --git a/patches/server/0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch b/patches/server/0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
index 865466307d..865466307d 100644
--- a/patches/server/0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
+++ b/patches/server/0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
diff --git a/patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch b/patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch
index 6e7216cfea..9284b050d0 100644
--- a/patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch
+++ b/patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] improve checking handled tags in itemmeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
-index a6c78854c10362864c2297de903ab9594cdb1eb6..251aac8690f15be2ad0e3f6399676205b7d7860c 100644
+index a4c4ba0d02f9a072236ce86c1e98e2c60b059cb8..0930d827e96e0b41296d7723238e6735106fd3d5 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
-@@ -32,116 +32,116 @@ import org.bukkit.inventory.meta.TropicalFishBucketMeta;
+@@ -39,120 +39,120 @@ import org.bukkit.inventory.meta.TropicalFishBucketMeta;
public final class CraftItemMetas {
@@ -107,6 +107,11 @@ index a6c78854c10362864c2297de903ab9594cdb1eb6..251aac8690f15be2ad0e3f6399676205
+ (item, extras) -> new CraftMetaBlockState(item.getComponentsPatch(), CraftItemType.minecraftToBukkit(item.getItem()), extras),
(type, meta) -> new CraftMetaBlockState(meta, type.asMaterial()));
+ private static final ItemMetaData<ShieldMeta> SHIELD_META_DATA = new ItemMetaData<>(ShieldMeta.class,
+- item -> new CraftMetaShield(item.getComponentsPatch()),
++ (item, extras) -> new CraftMetaShield(item.getComponentsPatch(), extras),
+ (type, meta) -> new CraftMetaShield(meta));
+
private static final ItemMetaData<TropicalFishBucketMeta> TROPICAL_FISH_BUCKET_META_DATA = new ItemMetaData<>(TropicalFishBucketMeta.class,
- item -> new CraftMetaTropicalFishBucket(item.getComponentsPatch()),
+ (item, extras) -> new CraftMetaTropicalFishBucket(item.getComponentsPatch(), extras),
@@ -286,10 +291,10 @@ index c56fb1eeea79176c4dbb1e9c0a8023f86220fe6a..1c17fb294d83d99ae657eff6a8a986bf
getOrEmpty(tag, CraftMetaBanner.PATTERNS).ifPresent((entityTag) -> {
List<BannerPatternLayers.Layer> patterns = entityTag.layers();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-index 4faada5f974214f3054dc1bec9c79e2600c8df48..d7e5491cc0296563fb9fdf28d64b21a10c08ea4a 100644
+index 23dbc56edf0d16cf07ced2899942abae28397694..ed6e9d1f2d42392d92f4e3ae6f67c8d4ed700fb5 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-@@ -69,8 +69,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -70,8 +70,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
this.blockEntityTag = te.blockEntityTag;
}
@@ -301,7 +306,7 @@ index 4faada5f974214f3054dc1bec9c79e2600c8df48..d7e5491cc0296563fb9fdf28d64b21a1
getOrEmpty(tag, CraftMetaBlockState.BLOCK_ENTITY_TAG).ifPresent((nbt) -> {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index 552ebe67f87b48734adf0da8ef78dcac9dd670a2..e064af399dcae40b4f35aa993d356b1462f91d6c 100644
+index 32e5188442551b3e72e1d4826d836d622d0e438a..257c835bc280eee9ee73ae75b5249bb568a687d0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -64,8 +64,8 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta, WritableBo
@@ -316,7 +321,7 @@ index 552ebe67f87b48734adf0da8ef78dcac9dd670a2..e064af399dcae40b4f35aa993d356b14
getOrEmpty(tag, CraftMetaBook.BOOK_CONTENT).ifPresent((writable) -> {
List<Filterable<String>> pages = writable.pages();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
-index 162997fc80dfe2df1f13c802c1b610f04cb9d05a..806c1cbee7c4e23eee38c8f400ec2d924c9a360c 100644
+index fd3b12477c30d1eabdbe57ea779027931e9dd957..cbb3d80cc7cd81b2505dff999a0baede737165f7 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
@@ -78,8 +78,8 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta {
@@ -451,7 +456,7 @@ index 8c1d2d0521da52f9a1262f5433da21700b9b0454..9600b23666668d7d581e2920a4e03e59
getOrEmpty(tag, CraftMetaFirework.FIREWORKS).ifPresent((fireworks) -> {
this.power = fireworks.flightDuration();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc3cc3000e 100644
+index 6f3ab40a9d0bccd9a2c439bf0e200ba5cf0f5f6e..bee2f2f5675b8aaeb2a04ada1f6dba9aa9a14ed3 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -339,7 +339,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -481,7 +486,7 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc
key.getValue().ifPresent((value) -> {
this.unhandledTags.set((DataComponentType) key.getKey(), value);
});
-@@ -2036,67 +2043,75 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -2043,68 +2050,76 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.version = version;
}
@@ -521,6 +526,7 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc
- CraftMetaMap.MAP_COLOR.TYPE,
- CraftMetaMap.MAP_ID.TYPE,
- CraftMetaPotion.POTION_CONTENTS.TYPE,
+- CraftMetaShield.BASE_COLOR.TYPE,
- CraftMetaSkull.SKULL_PROFILE.TYPE,
- CraftMetaSkull.NOTE_BLOCK_SOUND.TYPE,
- CraftMetaSpawnEgg.ENTITY_TAG.TYPE,
@@ -579,7 +585,8 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc
+ map.put(CraftMetaArmor.class, Set.of(CraftMetaArmor.TRIM.TYPE));
+ map.put(CraftMetaArmorStand.class, Set.of(CraftMetaArmorStand.ENTITY_TAG.TYPE));
+ map.put(CraftMetaAxolotlBucket.class, Set.of(CraftMetaAxolotlBucket.ENTITY_TAG.TYPE, CraftMetaAxolotlBucket.BUCKET_ENTITY_TAG.TYPE));
-+ map.put(CraftMetaBanner.class, Set.of(/*CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT, */CraftMetaBanner.PATTERNS.TYPE)); // banner uses same tag as block state
++ map.put(CraftMetaBanner.class, Set.of(CraftMetaBanner.PATTERNS.TYPE)); // banner uses same tag as block state
++ map.put(CraftMetaShield.class, Set.of(CraftMetaShield.BASE_COLOR.TYPE, CraftMetaBanner.PATTERNS.TYPE));
+ map.put(CraftMetaBlockState.class, Set.of(CraftMetaBlockState.BLOCK_ENTITY_TAG.TYPE));
+ map.put(CraftMetaBook.class, Set.of(CraftMetaBook.BOOK_CONTENT.TYPE));
+ map.put(CraftMetaBookSigned.class, Set.of(CraftMetaBookSigned.BOOK_CONTENT.TYPE));
@@ -706,6 +713,21 @@ index d1cb8d520b6d7b0981d70412def71e7aab04560a..7f9182809f6e67ff571db0f365bc7e05
getOrEmpty(tag, CraftMetaPotion.POTION_CONTENTS).ifPresent((potionContents) -> {
potionContents.potion().ifPresent((potion) -> {
this.type = CraftPotionType.minecraftHolderToBukkit(potion);
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+index c10609472c1b86c3abb19a62bef4c9ce436307ea..d2b74daa5788c1e6d9eaddb47bc3a062287ba036 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+@@ -42,8 +42,8 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ }
+ }
+
+- CraftMetaShield(DataComponentPatch tag) {
+- super(tag);
++ CraftMetaShield(DataComponentPatch tag, java.util.Set<net.minecraft.core.component.DataComponentType<?>> extraHandledDcts) { // Paper - improve checking handled tags in item meta
++ super(tag, extraHandledDcts); // Paper - improve checking handled tags in item meta
+
+ getOrEmpty(tag, CraftMetaShield.BASE_COLOR).ifPresent((color) -> {
+ this.banner = CraftMetaShield.getBlockState(DyeColor.getByWoolData((byte) color.getId()));
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
index d6e161374e0235031128a6ee86d1ffa875ea48aa..ab860f1179fa2618c8fbc30ac5f48ff78b8abb60 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
@@ -722,7 +744,7 @@ index d6e161374e0235031128a6ee86d1ffa875ea48aa..ab860f1179fa2618c8fbc30ac5f48ff7
getOrEmpty(tag, CraftMetaSkull.SKULL_PROFILE).ifPresent((resolvableProfile) -> {
this.setProfile(resolvableProfile.gameProfile());
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
-index 2c6ee95edea9dc959d8d31d689dc27fea4080467..e4b8637e6d82e2ce7cfee2130e6422f0ef4e1fbc 100644
+index 6c2c3b514be0dab47f3e44f65bdc6a3574e59b7c..8ddf091b3ff1262b6c97e8fe72e0a80db5e1037d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java
@@ -33,8 +33,8 @@ public class CraftMetaSpawnEgg extends CraftMetaItem implements SpawnEggMeta {
diff --git a/patches/server/0967-General-ItemMeta-fixes.patch b/patches/server/0966-General-ItemMeta-fixes.patch
index 321e5f3b03..7730aa8d80 100644
--- a/patches/server/0967-General-ItemMeta-fixes.patch
+++ b/patches/server/0966-General-ItemMeta-fixes.patch
@@ -12,7 +12,7 @@ public net/minecraft/world/level/block/entity/BlockEntity saveId(Lnet/minecraft/
Co-authored-by: GhastCraftHD <[email protected]>
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index fa4bdf8bdbd6eaeb854e62a2acb45d7998e4aa2b..8309d2f7872ccdbc9d76f0fbf481411f74080148 100644
+index ebe470ca361ec5747a843b60d82f567d41d7c9fa..f9a4bebb321207abb00b1af1c17ebda623cc950e 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1275,6 +1275,11 @@ public final class ItemStack implements DataComponentHolder {
@@ -158,10 +158,10 @@ index 1c17fb294d83d99ae657eff6a8a986bf72c6ec47..b9d6a4a8f78a0e26d888b6bfdff25c3a
for (Pattern p : this.patterns) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d46261c1252af 100644
+index ed6e9d1f2d42392d92f4e3ae6f67c8d4ed700fb5..d8ec01c65c6a57accf1b510499f9446e73c2f7e4 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-@@ -50,9 +50,24 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -51,9 +51,24 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
@ItemMetaKey.Specific(ItemMetaKey.Specific.To.NBT)
static final ItemMetaKeyType<CustomData> BLOCK_ENTITY_TAG = new ItemMetaKeyType<>(DataComponents.BLOCK_ENTITY_DATA, "BlockEntityTag");
@@ -181,13 +181,13 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
+ this.blockEntityTag = this.blockEntityTag != null ? this.blockEntityTag : CustomData.EMPTY;
+ }
+ private Material materialForBlockEntityType() {
-+ return (this.material != Material.SHIELD) ? this.material : CraftMetaBlockState.shieldToBannerHack();
++ return this.material;
+ }
+ // Paper end
private CompoundTag internalTag;
CraftMetaBlockState(CraftMetaItem meta, Material material) {
-@@ -61,41 +76,61 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -62,41 +77,61 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
if (!(meta instanceof CraftMetaBlockState)
|| ((CraftMetaBlockState) meta).material != material) {
@@ -262,19 +262,16 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
}
}
-@@ -108,7 +143,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
- } else {
+@@ -110,7 +145,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
this.material = Material.AIR;
}
-- this.blockEntityTag = CraftMetaBlockState.getBlockState(this.material, this.internalTag);
-+ // Paper start
-+ if (this.internalTag != null) { // legacy
-+ this.setBlockState(CraftMetaBlockState.getBlockState(this.material, this.internalTag));
-+ }
- this.internalTag = null;
+ if (this.internalTag != null) {
+- this.blockEntityTag = CraftMetaBlockState.getBlockState(this.material, this.internalTag);
++ this.setBlockState(CraftMetaBlockState.getBlockState(this.material, this.internalTag)); // Paper - general item meta fixes - pass through setter
+ this.internalTag = null;
+ }
}
-
-@@ -116,13 +154,21 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -119,13 +154,21 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
void applyToItem(CraftMetaItem.Applicator tag) {
super.applyToItem(tag);
@@ -301,7 +298,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
}
@Override
-@@ -131,14 +177,29 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -134,14 +177,29 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
if (tag.contains(CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND)) {
this.internalTag = tag.getCompound(CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT);
@@ -333,7 +330,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
}
@Override
-@@ -152,9 +213,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -155,9 +213,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
int applyHash() {
final int original;
int hash = original = super.applyHash();
@@ -347,7 +344,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
return original != hash ? CraftMetaBlockState.class.hashCode() ^ hash : hash;
}
-@@ -166,45 +228,71 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -169,45 +228,71 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
if (meta instanceof CraftMetaBlockState) {
CraftMetaBlockState that = (CraftMetaBlockState) meta;
@@ -429,9 +426,9 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
}
private static CraftBlockEntityState<?> getBlockState(Material material, CompoundTag blockEntityTag) {
-@@ -234,7 +322,23 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -237,7 +322,23 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
Class<?> blockStateType = CraftBlockStates.getBlockStateType(stateMaterial);
- Preconditions.checkArgument(blockStateType == blockState.getClass() && blockState instanceof CraftBlockEntityState, "Invalid blockState for " + this.material);
+ Preconditions.checkArgument(blockStateType == blockState.getClass() && blockState instanceof CraftBlockEntityState, "Invalid blockState for %s", this.material);
- this.blockEntityTag = (CraftBlockEntityState<?>) blockState;
+ // Paper start - when a new BlockState is set, the components from that block entity
@@ -453,7 +450,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626
+ // Paper end
}
- private static Material shieldToBannerHack() {
+ private static Material shieldToBannerHack(CompoundTag tag) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
index 257c835bc280eee9ee73ae75b5249bb568a687d0..70f20de37c1f8d57a8d9fe00dcd864fdd9948ec2 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -805,7 +802,7 @@ index 9600b23666668d7d581e2920a4e03e59cc2339fb..0eceacbb096481d3bd31f5f99e964c88
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0d246e36e 100644
+index bee2f2f5675b8aaeb2a04ada1f6dba9aa9a14ed3..67181b215312f1f572d6ac5afd289c6540b12829 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -182,9 +182,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -851,7 +848,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
CraftMetaItem.getOrEmpty(tag, CraftMetaItem.NAME).ifPresent((component) -> {
this.displayName = component;
});
-@@ -791,7 +797,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -798,7 +804,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
Map<?, ?> mods = SerializableMeta.getObject(Map.class, map, key.BUKKIT, true);
Multimap<Attribute, AttributeModifier> result = LinkedHashMultimap.create();
if (mods == null) {
@@ -860,7 +857,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
}
for (Object obj : mods.keySet()) {
-@@ -894,7 +900,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -901,7 +907,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
itemTag.put(CraftMetaItem.JUKEBOX_PLAYABLE, this.jukebox.getHandle());
}
@@ -869,7 +866,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
itemTag.put(CraftMetaItem.DAMAGE, this.damage);
}
-@@ -959,10 +965,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -966,10 +972,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
void applyModifiers(Multimap<Attribute, AttributeModifier> modifiers, CraftMetaItem.Applicator tag) {
@@ -882,7 +879,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
return;
}
-@@ -999,7 +1003,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1006,7 +1010,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Overridden
boolean isEmpty() {
@@ -891,7 +888,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
}
// Paper start
-@@ -1095,6 +1099,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1102,6 +1106,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public void lore(final List<? extends net.kyori.adventure.text.Component> lore) {
@@ -899,7 +896,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
this.lore = lore != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(lore) : null;
}
// Paper end
-@@ -1153,7 +1158,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1160,7 +1165,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public void removeEnchantments() {
if (this.hasEnchants()) {
@@ -908,7 +905,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
}
}
-@@ -1219,6 +1224,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1226,6 +1231,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
// Paper end
@Override
public void setLore(List<String> lore) {
@@ -916,7 +913,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
if (lore == null || lore.isEmpty()) {
this.lore = null;
} else {
-@@ -1234,6 +1240,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1241,6 +1247,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
// Paper start
@Override
public void setLoreComponents(List<net.md_5.bungee.api.chat.BaseComponent[]> lore) {
@@ -924,7 +921,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
if (lore == null) {
this.lore = null;
} else {
-@@ -1375,7 +1382,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1382,7 +1389,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public FoodComponent getFood() {
@@ -933,7 +930,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
}
@Override
-@@ -1431,7 +1438,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1438,7 +1445,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(@Nullable EquipmentSlot slot) {
@@ -942,7 +939,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
SetMultimap<Attribute, AttributeModifier> result = LinkedHashMultimap.create();
for (Map.Entry<Attribute, AttributeModifier> entry : this.attributeModifiers.entries()) {
if (entry.getValue().getSlot() == null || entry.getValue().getSlot() == slot) {
-@@ -1444,6 +1451,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1451,6 +1458,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public Collection<AttributeModifier> getAttributeModifiers(@Nonnull Attribute attribute) {
Preconditions.checkNotNull(attribute, "Attribute cannot be null");
@@ -950,7 +947,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
return this.attributeModifiers.containsKey(attribute) ? ImmutableList.copyOf(this.attributeModifiers.get(attribute)) : null;
}
-@@ -1451,22 +1459,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1458,22 +1466,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
public boolean addAttributeModifier(@Nonnull Attribute attribute, @Nonnull AttributeModifier modifier) {
Preconditions.checkNotNull(attribute, "Attribute cannot be null");
Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null");
@@ -988,7 +985,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
Iterator<Map.Entry<Attribute, AttributeModifier>> iterator = attributeModifiers.entries().iterator();
while (iterator.hasNext()) {
-@@ -1476,6 +1495,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1483,6 +1502,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
iterator.remove();
continue;
}
@@ -996,7 +993,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
this.attributeModifiers.put(next.getKey(), next.getValue());
}
}
-@@ -1483,13 +1503,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1490,13 +1510,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public boolean removeAttributeModifier(@Nonnull Attribute attribute) {
Preconditions.checkNotNull(attribute, "Attribute cannot be null");
@@ -1012,7 +1009,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
int removed = 0;
Iterator<Map.Entry<Attribute, AttributeModifier>> iter = this.attributeModifiers.entries().iterator();
-@@ -1509,7 +1529,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1516,7 +1536,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
public boolean removeAttributeModifier(@Nonnull Attribute attribute, @Nonnull AttributeModifier modifier) {
Preconditions.checkNotNull(attribute, "Attribute cannot be null");
Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null");
@@ -1021,7 +1018,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
int removed = 0;
Iterator<Map.Entry<Attribute, AttributeModifier>> iter = this.attributeModifiers.entries().iterator();
-@@ -1531,7 +1551,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1538,7 +1558,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public String getAsString() {
@@ -1030,7 +1027,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
this.applyToItem(tag);
DataComponentPatch patch = tag.build();
Tag nbt = DataComponentPatch.CODEC.encodeStart(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), patch).getOrThrow();
-@@ -1540,7 +1560,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1547,7 +1567,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public String getAsComponentString() {
@@ -1039,7 +1036,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
this.applyToItem(tag);
DataComponentPatch patch = tag.build();
-@@ -1580,6 +1600,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1587,6 +1607,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (first == null || second == null) {
return false;
}
@@ -1047,7 +1044,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
for (Map.Entry<Attribute, AttributeModifier> entry : first.entries()) {
if (!second.containsEntry(entry.getKey(), entry.getValue())) {
return false;
-@@ -1595,19 +1616,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1602,19 +1623,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public boolean hasDamage() {
@@ -1083,7 +1080,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
@Override
public boolean hasMaxDamage() {
return this.maxDamage != null;
-@@ -1621,6 +1656,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1628,6 +1663,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public void setMaxDamage(Integer maxDamage) {
@@ -1091,7 +1088,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
this.maxDamage = maxDamage;
}
-@@ -1652,7 +1688,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1659,7 +1695,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hasCustomModelData() ? that.hasCustomModelData() && this.customModelData.equals(that.customModelData) : !that.hasCustomModelData())
&& (this.hasBlockData() ? that.hasBlockData() && this.blockData.equals(that.blockData) : !that.hasBlockData())
&& (this.hasRepairCost() ? that.hasRepairCost() && this.repairCost == that.repairCost : !that.hasRepairCost())
@@ -1100,7 +1097,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
&& (this.unhandledTags.equals(that.unhandledTags))
&& (this.removedTags.equals(that.removedTags))
&& (Objects.equals(this.customTag, that.customTag))
-@@ -1667,7 +1703,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1674,7 +1710,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hasFood() ? that.hasFood() && this.food.equals(that.food) : !that.hasFood())
&& (this.hasTool() ? that.hasTool() && this.tool.equals(that.tool) : !that.hasTool())
&& (this.hasJukeboxPlayable() ? that.hasJukeboxPlayable() && this.jukebox.equals(that.jukebox) : !that.hasJukeboxPlayable())
@@ -1109,7 +1106,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
&& (this.hasMaxDamage() ? that.hasMaxDamage() && this.maxDamage.equals(that.maxDamage) : !that.hasMaxDamage())
&& (this.canPlaceOnPredicates != null ? that.canPlaceOnPredicates != null && this.canPlaceOnPredicates.equals(that.canPlaceOnPredicates) : that.canPlaceOnPredicates == null) // Paper
&& (this.canBreakPredicates != null ? that.canBreakPredicates != null && this.canBreakPredicates.equals(that.canBreakPredicates) : that.canBreakPredicates == null) // Paper
-@@ -1713,9 +1749,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1720,9 +1756,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
hash = 61 * hash + (this.hasFood() ? this.food.hashCode() : 0);
hash = 61 * hash + (this.hasTool() ? this.tool.hashCode() : 0);
hash = 61 * hash + (this.hasJukeboxPlayable() ? this.jukebox.hashCode() : 0);
@@ -1122,7 +1119,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
hash = 61 * hash + (this.canPlaceOnPredicates != null ? this.canPlaceOnPredicates.hashCode() : 0); // Paper
hash = 61 * hash + (this.canBreakPredicates != null ? this.canBreakPredicates.hashCode() : 0); // Paper
hash = 61 * hash + this.version;
-@@ -1735,7 +1771,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1742,7 +1778,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (this.enchantments != null) {
clone.enchantments = new EnchantmentMap(this.enchantments); // Paper
}
@@ -1131,7 +1128,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
}
if (this.customTag != null) {
-@@ -1863,7 +1899,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1870,7 +1906,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
builder.put(CraftMetaItem.JUKEBOX_PLAYABLE.BUKKIT, this.jukebox);
}
@@ -1140,7 +1137,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
builder.put(CraftMetaItem.DAMAGE.BUKKIT, this.damage);
}
-@@ -1964,7 +2000,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1971,7 +2007,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
static void serializeModifiers(Multimap<Attribute, AttributeModifier> modifiers, ImmutableMap.Builder<String, Object> builder, ItemMetaKey key) {
@@ -1149,7 +1146,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
return;
}
-@@ -2046,7 +2082,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -2053,7 +2089,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
// Paper start - improve checking handled tags
@org.jetbrains.annotations.VisibleForTesting
public static final Map<Class<? extends CraftMetaItem>, Set<DataComponentType<?>>> HANDLED_DCTS_PER_TYPE = new HashMap<>();
@@ -1158,7 +1155,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0
CraftMetaItem.NAME.TYPE,
CraftMetaItem.ITEM_NAME.TYPE,
CraftMetaItem.LORE.TYPE,
-@@ -2114,7 +2150,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -2122,7 +2158,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
// Paper end - improve checking handled data component types
protected static <T> Optional<? extends T> getOrEmpty(DataComponentPatch tag, ItemMetaKeyType<T> type) {
@@ -1390,6 +1387,306 @@ index 7f9182809f6e67ff571db0f365bc7e05f600775a..01c49df291f721bab3acb788ff2f2787
}
@Override
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+index 967d8940aec0065bce496d5d7a8c73de5733bd2c..57a2dc0581d1e59ce201d84ca0c0f7606577bf4c 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+@@ -28,17 +28,29 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+
+ static final ItemMetaKeyType<net.minecraft.world.item.DyeColor> BASE_COLOR = new ItemMetaKeyType<>(DataComponents.BASE_COLOR, "Base", "base-color");
+
+- private Banner banner;
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ private @org.jetbrains.annotations.Nullable List<Pattern> patterns;
++ private @org.jetbrains.annotations.Nullable DyeColor baseColor;
++
++ // An empty pattern list is the same as the default on the Shield item, and will hence not be present in the data components of the stack.
++ private boolean hasPatterns() {
++ return this.patterns != null && !this.patterns.isEmpty();
++ }
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+
+ CraftMetaShield(CraftMetaItem meta) {
+ super(meta);
+
+ if (meta instanceof CraftMetaShield craftMetaShield) {
+- if (craftMetaShield.banner != null) {
+- this.banner = (Banner) craftMetaShield.banner.copy();
+- }
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ if (craftMetaShield.patterns != null) this.patterns = new ArrayList<>(craftMetaShield.getPatterns());
++ if (craftMetaShield.baseColor != null) this.baseColor = craftMetaShield.baseColor;
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ } else if (meta instanceof CraftMetaBlockState state && state.hasBlockState() && state.getBlockState() instanceof Banner banner) {
+- this.banner = (Banner) banner.copy();
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ this.patterns = banner.getPatterns();
++ this.baseColor = banner.getBaseColor();
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ }
+ }
+
+@@ -46,7 +58,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ super(tag, extraHandledDcts); // Paper - improve checking handled tags in item meta
+
+ getOrEmpty(tag, CraftMetaShield.BASE_COLOR).ifPresent((color) -> {
+- this.banner = CraftMetaShield.getBlockState(DyeColor.getByWoolData((byte) color.getId()));
++ this.baseColor = DyeColor.getByWoolData((byte) color.getId()); // Paper - general item meta fixes - decoupled base colour and patterns
+ });
+
+ getOrEmpty(tag, CraftMetaBanner.PATTERNS).ifPresent((entityTag) -> {
+@@ -68,7 +80,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+
+ String baseColor = SerializableMeta.getString(map, CraftMetaShield.BASE_COLOR.BUKKIT, true);
+ if (baseColor != null) {
+- this.banner = CraftMetaShield.getBlockState(DyeColor.valueOf(baseColor));
++ this.baseColor = DyeColor.valueOf(baseColor); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ Iterable<?> rawPatternList = SerializableMeta.getObject(Iterable.class, map, CraftMetaBanner.PATTERNS.BUKKIT, true);
+@@ -86,13 +98,14 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ void applyToItem(CraftMetaItem.Applicator tag) {
+ super.applyToItem(tag);
+
+- if (this.banner != null) {
+- tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byId(this.banner.getBaseColor().getWoolData()));
+-
+- if (this.banner.numberOfPatterns() > 0) {
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ if (this.baseColor != null) tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byId(this.baseColor.getWoolData()));
++ if (this.patterns != null && !this.patterns.isEmpty()) {
++ {
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ List<BannerPatternLayers.Layer> newPatterns = new ArrayList<>();
+
+- for (Pattern p : this.banner.getPatterns()) {
++ for (Pattern p : this.patterns) { // Paper - general item meta fixes - decoupled base colour and patterns
+ newPatterns.add(new BannerPatternLayers.Layer(CraftPatternType.bukkitToMinecraftHolder(p.getPattern()), net.minecraft.world.item.DyeColor.byId(p.getColor().getWoolData())));
+ }
+
+@@ -103,108 +116,84 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+
+ @Override
+ public List<Pattern> getPatterns() {
+- if (this.banner == null) {
++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns
+ return new ArrayList<>();
+ }
+
+- return this.banner.getPatterns();
++ return new ArrayList<>(this.patterns); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public void setPatterns(List<Pattern> patterns) {
+- if (this.banner == null) {
+- if (patterns.isEmpty()) {
+- return;
+- }
+-
+- this.banner = CraftMetaShield.getBlockState(null);
+- }
+-
+- this.banner.setPatterns(patterns);
++ this.patterns = new ArrayList<>(patterns); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public void addPattern(Pattern pattern) {
+- if (this.banner == null) {
+- this.banner = CraftMetaShield.getBlockState(null);
+- }
+-
+- this.banner.addPattern(pattern);
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ if (this.patterns == null) this.patterns = new ArrayList<>();
++ this.patterns.add(pattern);
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public Pattern getPattern(int i) {
+- if (this.banner == null) {
++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns
+ throw new IndexOutOfBoundsException(i);
+ }
+
+- return this.banner.getPattern(i);
++ return this.patterns.get(i); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public Pattern removePattern(int i) {
+- if (this.banner == null) {
++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns
+ throw new IndexOutOfBoundsException(i);
+ }
+
+- return this.banner.removePattern(i);
++ return this.patterns.remove(i); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public void setPattern(int i, Pattern pattern) {
+- if (this.banner == null) {
++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns
+ throw new IndexOutOfBoundsException(i);
+ }
+
+- this.banner.setPattern(i, pattern);
++ this.patterns.set(i, pattern); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public int numberOfPatterns() {
+- if (this.banner == null) {
++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns
+ return 0;
+ }
+
+- return this.banner.numberOfPatterns();
++ return this.patterns.size(); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public DyeColor getBaseColor() {
+- if (this.banner == null) {
+- return null;
+- }
+-
+- return this.banner.getBaseColor();
++ return this.baseColor; // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public void setBaseColor(DyeColor baseColor) {
+- if (baseColor == null) {
+- if (this.banner.numberOfPatterns() > 0) {
+- this.banner.setBaseColor(DyeColor.WHITE);
+- } else {
+- this.banner = null;
+- }
+- } else {
+- if (this.banner == null) {
+- this.banner = CraftMetaShield.getBlockState(baseColor);
+- }
+-
+- this.banner.setBaseColor(baseColor);
+- }
++ this.baseColor = baseColor; // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ ImmutableMap.Builder<String, Object> serialize(ImmutableMap.Builder<String, Object> builder) {
+ super.serialize(builder);
+
+- if (this.banner != null) {
+- builder.put(CraftMetaShield.BASE_COLOR.BUKKIT, this.banner.getBaseColor().toString());
+-
+- if (this.banner.numberOfPatterns() > 0) {
+- builder.put(CraftMetaBanner.PATTERNS.BUKKIT, this.banner.getPatterns());
+- }
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ if (this.baseColor != null) {
++ builder.put(CraftMetaShield.BASE_COLOR.BUKKIT, this.baseColor.toString());
++ }
++ if (hasPatterns()) {
++ builder.put(CraftMetaBanner.PATTERNS.BUKKIT, this.patterns);
+ }
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+
+ return builder;
+ }
+@@ -213,8 +202,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ int applyHash() {
+ final int original;
+ int hash = original = super.applyHash();
+- if (this.banner != null) {
+- hash = 61 * hash + this.banner.hashCode();
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ if (this.baseColor != null) {
++ hash = 61 * hash + this.baseColor.hashCode();
++ }
++ if (hasPatterns()) {
++ hash = 61 * hash + this.patterns.hashCode();
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ }
+ return original != hash ? CraftMetaShield.class.hashCode() ^ hash : hash;
+ }
+@@ -225,29 +219,33 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ return false;
+ }
+ if (meta instanceof CraftMetaShield that) {
+- return Objects.equal(this.banner, that.banner);
++ return Objects.equal(this.baseColor, that.baseColor) && Objects.equal(this.hasPatterns(), that.hasPatterns()); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+ return true;
+ }
+
+ @Override
+ boolean notUncommon(CraftMetaItem meta) {
+- return super.notUncommon(meta) && (meta instanceof CraftMetaShield || this.banner == null);
++ return super.notUncommon(meta) && (meta instanceof CraftMetaShield || (this.baseColor == null && !hasPatterns())); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ boolean isEmpty() {
+- return super.isEmpty() && this.banner == null;
++ return super.isEmpty() && this.baseColor == null && !hasPatterns(); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public boolean hasBlockState() {
+- return this.banner != null;
++ return this.baseColor != null || hasPatterns(); // Paper - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+ public BlockState getBlockState() {
+- return (this.banner != null) ? this.banner.copy() : CraftMetaShield.getBlockState(null);
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ final Banner banner = CraftMetaShield.getBlockState(this.baseColor);
++ if (this.patterns != null) banner.setPatterns(this.patterns);
++ return banner;
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ }
+
+ @Override
+@@ -255,13 +253,18 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ Preconditions.checkArgument(blockState != null, "blockState must not be null");
+ Preconditions.checkArgument(blockState instanceof Banner, "Invalid blockState");
+
+- this.banner = (Banner) blockState;
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ final Banner banner = (Banner) blockState;
++ this.baseColor = banner.getBaseColor();
++ this.patterns = banner.getPatterns();
++ // Paper end - general item meta fixes - decoupled base colour and patterns
+ }
+
+ // Paper start - add method to clear block state
+ @Override
+ public void clearBlockState() {
+- this.banner = null;
++ this.baseColor = null;
++ this.patterns = null;
+ }
+ // Paper end - add method to clear block state
+
+@@ -275,9 +278,10 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
+ @Override
+ public CraftMetaShield clone() {
+ CraftMetaShield meta = (CraftMetaShield) super.clone();
+- if (this.banner != null) {
+- meta.banner = (Banner) this.banner.copy();
+- }
++ // Paper start - general item meta fixes - decoupled base colour and patterns
++ meta.baseColor = this.baseColor;
++ meta.patterns = this.patterns == null ? null : new ArrayList<>(this.patterns);
++ // Paper start - general item meta fixes - decoupled base colour and patterns
+ return meta;
+ }
+
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
index ab860f1179fa2618c8fbc30ac5f48ff78b8abb60..7de2ed297d0b2bf8adf2058e75a9b594ec2197bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
@@ -1458,10 +1755,10 @@ index 17705059b81942e4df43a4a5180092e09c985ade..80e6b85a107d5236edba99540cb5074e
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java b/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java
-index b7e93a6ec72ec3e3390fefa52fda0c2cd8e17c0c..758778650bebf7b96eefab42543e812849124b2f 100644
+index e00b757d6059715e8697428008fcb3e6e7abbe2e..dcf02bd0f7f4c67f5ab98003cc932b960704eef1 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java
-@@ -128,4 +128,21 @@ public final class SerializableMeta implements ConfigurationSerializable {
+@@ -136,4 +136,21 @@ public final class SerializableMeta implements ConfigurationSerializable {
}
throw new IllegalArgumentException(field + "(" + object + ") is not a valid " + clazz);
}
@@ -1484,10 +1781,10 @@ index b7e93a6ec72ec3e3390fefa52fda0c2cd8e17c0c..758778650bebf7b96eefab42543e8128
+ // Paper end - General ItemMeta Fixes
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java b/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java
-index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38a674b61c 100644
+index 92cad73219e11dc5922630769f9dd3a329ea6da1..bde61de7eda72b2e24ddef56ff93a0b46c08670c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java
-@@ -109,6 +109,7 @@ public final class CraftFoodComponent implements FoodComponent {
+@@ -114,6 +114,7 @@ public final class CraftFoodComponent implements FoodComponent {
@Override
public void setEatSeconds(float eatSeconds) {
@@ -1495,7 +1792,7 @@ index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38
this.handle = new FoodProperties(this.handle.nutrition(), this.handle.saturation(), this.handle.canAlwaysEat(), eatSeconds, this.handle.usingConvertsTo(), this.handle.effects());
}
-@@ -119,6 +120,7 @@ public final class CraftFoodComponent implements FoodComponent {
+@@ -124,6 +125,7 @@ public final class CraftFoodComponent implements FoodComponent {
@Override
public void setUsingConvertsTo(ItemStack item) {
@@ -1503,7 +1800,7 @@ index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38
this.handle = new FoodProperties(this.handle.nutrition(), this.handle.saturation(), this.handle.canAlwaysEat(), this.handle.eatSeconds(), Optional.ofNullable(item).map(CraftItemStack::asNMSCopy), this.handle.effects());
}
-@@ -134,6 +136,7 @@ public final class CraftFoodComponent implements FoodComponent {
+@@ -139,6 +141,7 @@ public final class CraftFoodComponent implements FoodComponent {
@Override
public FoodEffect addEffect(PotionEffect effect, float probability) {
@@ -1561,7 +1858,7 @@ index 6bed0a5c8d9f1ca72678cdf4699128e441a24541..8e03e14d0e65bfdf2196a08220d1408b
assertEquals(itemMeta, new CraftMetaItem(compound.build(), null)); // Paper
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
-index d6018439015583fa0344c7c01b2e60a13de29795..aabe3730fa582f442ee0544dd1a9f3123f719c68 100644
+index b6da1c2902139d4c7b01ac7b3407d4f6ac3990e2..1a582ee78334835df79f93cc9fd3669c347d8b3a 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
@@ -66,7 +66,7 @@ import org.junit.jupiter.api.Test;
diff --git a/patches/server/0968-Expose-hasColor-to-leather-armor.patch b/patches/server/0967-Expose-hasColor-to-leather-armor.patch
index fb4dc944de..fb4dc944de 100644
--- a/patches/server/0968-Expose-hasColor-to-leather-armor.patch
+++ b/patches/server/0967-Expose-hasColor-to-leather-armor.patch
diff --git a/patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch b/patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch
index 305f6bd981..3b19743dfc 100644
--- a/patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch
+++ b/patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch
@@ -35,7 +35,7 @@ index 96355e1da8feb6687ea0069dda4a82fcd7e25e8a..1f696644b958538e9f5d568a2e4bba69
} else {
super.channelRead(ctx, msg);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 94524dee7e3ff78d378bd7812c49d041d07e138d..65a6952d48f40f3fd73d6693b61be9d29741f2f6 100644
+index 29c5855b9d31e803eb856584b92dfd35f6fad39a..12010a078542b7e89f0f4c0e7983eb15e75c4f1f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -265,7 +265,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0970-More-Chest-Block-API.patch b/patches/server/0969-More-Chest-Block-API.patch
index 020d97d086..020d97d086 100644
--- a/patches/server/0970-More-Chest-Block-API.patch
+++ b/patches/server/0969-More-Chest-Block-API.patch
diff --git a/patches/server/0971-Print-data-component-type-on-encoding-error.patch b/patches/server/0970-Print-data-component-type-on-encoding-error.patch
index a60bdfee87..a60bdfee87 100644
--- a/patches/server/0971-Print-data-component-type-on-encoding-error.patch
+++ b/patches/server/0970-Print-data-component-type-on-encoding-error.patch
diff --git a/patches/server/0972-Brigadier-based-command-API.patch b/patches/server/0971-Brigadier-based-command-API.patch
index ed16e97611..ed16e97611 100644
--- a/patches/server/0972-Brigadier-based-command-API.patch
+++ b/patches/server/0971-Brigadier-based-command-API.patch
diff --git a/patches/server/0973-Fix-issues-with-Recipe-API.patch b/patches/server/0972-Fix-issues-with-Recipe-API.patch
index bb85dca687..bb85dca687 100644
--- a/patches/server/0973-Fix-issues-with-Recipe-API.patch
+++ b/patches/server/0972-Fix-issues-with-Recipe-API.patch
diff --git a/patches/server/0974-Fix-equipment-slot-and-group-API.patch b/patches/server/0973-Fix-equipment-slot-and-group-API.patch
index 05b6eafa06..a843a57c9f 100644
--- a/patches/server/0974-Fix-equipment-slot-and-group-API.patch
+++ b/patches/server/0973-Fix-equipment-slot-and-group-API.patch
@@ -52,10 +52,10 @@ index 9d74577af071954e1e37201a96368c1360076209..eafa54c870c3e2aef30c3f9f96f51660
throw new IllegalArgumentException("Not implemented. This is a bug");
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index a9acbb181dd72238b63fb08fda1b3bc0d246e36e..d87bfdda1f06a94e97465c105d28989e1d64e1e0 100644
+index 18d2531bade0bdd3da7116679b38a687c2f664ca..5a3162740b572f55431fbe3d9d41c5cb38ad338d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -1441,7 +1441,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1448,7 +1448,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (this.attributeModifiers == null) return LinkedHashMultimap.create(); // Paper - don't change the components
SetMultimap<Attribute, AttributeModifier> result = LinkedHashMultimap.create();
for (Map.Entry<Attribute, AttributeModifier> entry : this.attributeModifiers.entries()) {
@@ -64,7 +64,7 @@ index a9acbb181dd72238b63fb08fda1b3bc0d246e36e..d87bfdda1f06a94e97465c105d28989e
result.put(entry.getKey(), entry.getValue());
}
}
-@@ -1515,9 +1515,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1522,9 +1522,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
while (iter.hasNext()) {
Map.Entry<Attribute, AttributeModifier> entry = iter.next();
diff --git a/patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch b/patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch
index 980c3dc8a0..8b39d13b43 100644
--- a/patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch
+++ b/patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow Bukkit plugin to use Paper PluginLoader API
diff --git a/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java b/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java
-index f9d4b33050a6fe8c2dabe8e5eec075d95dc513e0..dc106685ecb483c33c06e4f83eda27be58251aad 100644
+index f871a329eb52da077f58d0ceaaabd3349f84cad0..21a0a4e29c0eb1b4f7dc89ad3df481ca89dbf1a4 100644
--- a/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java
+++ b/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java
@@ -41,15 +41,7 @@ public class PaperClasspathBuilder implements PluginClasspathBuilder {
@@ -76,7 +76,7 @@ index 75a2b687d58d76b94f8bec111df8613f120ff74b..0fd1040ed376f19c6d5326767baaf304
throw ex;
} catch (Throwable ex) {
diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java b/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java
-index fdb52ad85cfaa1d53aadcad72cec3d3c8c12c058..38075b7348ad7ca3cfece2bfae63e0cce827c694 100644
+index 1bf0fa1530b8e5f94d726d0313b7a00f675b500c..9edf79dffd2836b40d41da4437c18d6145853f89 100644
--- a/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java
+++ b/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java
@@ -1,9 +1,18 @@
diff --git a/patches/server/0976-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch
index 077dab00a8..077dab00a8 100644
--- a/patches/server/0976-Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch
diff --git a/patches/server/0977-Prevent-NPE-if-hooked-entity-was-cleared.patch b/patches/server/0976-Prevent-NPE-if-hooked-entity-was-cleared.patch
index 8d3547db93..8d3547db93 100644
--- a/patches/server/0977-Prevent-NPE-if-hooked-entity-was-cleared.patch
+++ b/patches/server/0976-Prevent-NPE-if-hooked-entity-was-cleared.patch
diff --git a/patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch b/patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch
index 8af7943ca8..42e5eac389 100644
--- a/patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch
+++ b/patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix cancelling BlockPlaceEvent calling onRemove
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 8309d2f7872ccdbc9d76f0fbf481411f74080148..de32bf4947af8d2ec64e8799580a129b038dd35e 100644
+index f9a4bebb321207abb00b1af1c17ebda623cc950e..bb28e35c0d53fcc0145518123795d54ff59514a8 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -494,9 +494,11 @@ public final class ItemStack implements DataComponentHolder {
@@ -21,7 +21,7 @@ index 8309d2f7872ccdbc9d76f0fbf481411f74080148..de32bf4947af8d2ec64e8799580a129b
// Brute force all possible updates
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index c6c9400fa155831ab11d0f059971d0123617e622..e27d3547d1e19c137e05e6b8d075127a8bafb237 100644
+index a2877f3eb206ab9ccb93e3606f1c9b3401def5d6..e5abde76c354c3dd9940dd4e5ae3fe8b6a2b4680 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -151,6 +151,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0979-Add-missing-fishing-event-state.patch b/patches/server/0978-Add-missing-fishing-event-state.patch
index 6ad1a92dd0..6ad1a92dd0 100644
--- a/patches/server/0979-Add-missing-fishing-event-state.patch
+++ b/patches/server/0978-Add-missing-fishing-event-state.patch
diff --git a/patches/server/0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch b/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch
index 1af38ab7e6..1af38ab7e6 100644
--- a/patches/server/0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch
+++ b/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch
diff --git a/patches/server/0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch b/patches/server/0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch
index 1abf467e7e..1abf467e7e 100644
--- a/patches/server/0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch
+++ b/patches/server/0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch
diff --git a/patches/server/0982-Adopt-MaterialRerouting.patch b/patches/server/0981-Adopt-MaterialRerouting.patch
index acdc787b2c..acdc787b2c 100644
--- a/patches/server/0982-Adopt-MaterialRerouting.patch
+++ b/patches/server/0981-Adopt-MaterialRerouting.patch
diff --git a/patches/server/0983-Suspicious-Effect-Entry-API.patch b/patches/server/0982-Suspicious-Effect-Entry-API.patch
index bc26031199..bc26031199 100644
--- a/patches/server/0983-Suspicious-Effect-Entry-API.patch
+++ b/patches/server/0982-Suspicious-Effect-Entry-API.patch
diff --git a/patches/server/0984-check-if-itemstack-is-stackable-first.patch b/patches/server/0983-check-if-itemstack-is-stackable-first.patch
index 8e11960bdd..8e11960bdd 100644
--- a/patches/server/0984-check-if-itemstack-is-stackable-first.patch
+++ b/patches/server/0983-check-if-itemstack-is-stackable-first.patch
diff --git a/patches/server/0985-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0984-Fix-removing-recipes-from-RecipeIterator.patch
index 461c3eb854..461c3eb854 100644
--- a/patches/server/0985-Fix-removing-recipes-from-RecipeIterator.patch
+++ b/patches/server/0984-Fix-removing-recipes-from-RecipeIterator.patch
diff --git a/patches/server/0986-Configurable-damage-tick-when-blocking-with-shield.patch b/patches/server/0985-Configurable-damage-tick-when-blocking-with-shield.patch
index 5854c4306d..5854c4306d 100644
--- a/patches/server/0986-Configurable-damage-tick-when-blocking-with-shield.patch
+++ b/patches/server/0985-Configurable-damage-tick-when-blocking-with-shield.patch
diff --git a/patches/server/0987-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/server/0986-Properly-remove-the-experimental-smithing-inventory-.patch
index 9ede88caa7..9ede88caa7 100644
--- a/patches/server/0987-Properly-remove-the-experimental-smithing-inventory-.patch
+++ b/patches/server/0986-Properly-remove-the-experimental-smithing-inventory-.patch
diff --git a/patches/server/0988-Moonrise-optimisation-patches.patch b/patches/server/0987-Moonrise-optimisation-patches.patch
index 8e70453dec..f027d72f2c 100644
--- a/patches/server/0988-Moonrise-optimisation-patches.patch
+++ b/patches/server/0987-Moonrise-optimisation-patches.patch
@@ -28981,10 +28981,10 @@ index d775ab8b0d37797f29e650842191d40691fb7afc..a7108b2be0746aa1f0e574d8c6f5ffad
public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) {}
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a28472dd49a6 100644
+index f2036917c5ba9f536087d7ee559704055469730e..d0109633e8bdf109cfc9178963d7b6cf92f8b189 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -762,7 +762,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -763,7 +763,7 @@ public abstract class BlockBehaviour implements FeatureElement {
boolean test(BlockState state, BlockGetter world, BlockPos pos);
}
@@ -28993,7 +28993,7 @@ index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a284
private final int lightEmission;
private final boolean useShapeForLightOcclusion;
-@@ -794,6 +794,76 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -795,6 +795,76 @@ public abstract class BlockBehaviour implements FeatureElement {
private FluidState fluidState;
private boolean isRandomlyTicking;
@@ -29070,7 +29070,7 @@ index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a284
protected BlockStateBase(Block block, Reference2ObjectArrayMap<Property<?>, Comparable<?>> propertyMap, MapCodec<BlockState> codec) {
super(block, propertyMap, codec);
this.fluidState = Fluids.EMPTY.defaultFluidState();
-@@ -858,6 +928,43 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -859,6 +929,43 @@ public abstract class BlockBehaviour implements FeatureElement {
this.shapeExceedsCube = this.cache == null || this.cache.largeCollisionShape; // Paper - moved from actual method to here
this.legacySolid = this.calculateSolid();
diff --git a/patches/server/0989-Rewrite-dataconverter-system.patch b/patches/server/0988-Rewrite-dataconverter-system.patch
index 1e689d81de..1e689d81de 100644
--- a/patches/server/0989-Rewrite-dataconverter-system.patch
+++ b/patches/server/0988-Rewrite-dataconverter-system.patch
diff --git a/patches/server/0990-disable-forced-empty-world-ticks.patch b/patches/server/0989-disable-forced-empty-world-ticks.patch
index e3bca0910f..e3bca0910f 100644
--- a/patches/server/0990-disable-forced-empty-world-ticks.patch
+++ b/patches/server/0989-disable-forced-empty-world-ticks.patch
diff --git a/patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
index ed5debe49c..3046e40be7 100644
--- a/patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
+++ b/patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch
@@ -29,7 +29,7 @@ index 02367ef1371dde94ff6c4cd40bd32e800d6ccaaf..7b0fc7135bc107103dcaed6dc0707b18
this.x = x;
this.y = y;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index a016fb2140d6a43172c3fbc623b23f6d57798d9e..5b893b93a3495b13ae266fb8054d0a454cf02660 100644
+index 347334130e99dbf938d570bd36440a96f92d475a..c69ed3e899fc8d48afeb731bb3b2d97b5969e6e3 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -824,7 +824,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
diff --git a/patches/server/0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
index b5c9d92ddb..b5c9d92ddb 100644
--- a/patches/server/0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
+++ b/patches/server/0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch
diff --git a/patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
index 23a10511a6..38ce2a6066 100644
--- a/patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
+++ b/patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
@@ -62,7 +62,7 @@ index bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3..0fa131a6c98adb498fc8d534e0e39647
default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) {
// Paper start - Add predicate for blocks when raytracing
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 5b893b93a3495b13ae266fb8054d0a454cf02660..77b7c252d27f527d9b51e8419abe7af1d4b51d29 100644
+index c69ed3e899fc8d48afeb731bb3b2d97b5969e6e3..574175449af5b767f28e95ff8708ed37fedf4c7d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -816,10 +816,87 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
diff --git a/patches/server/0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
index f51a3d8642..f51a3d8642 100644
--- a/patches/server/0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
+++ b/patches/server/0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch
diff --git a/patches/server/0995-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0994-Allow-Saving-of-Oversized-Chunks.patch
index 4eef25929e..4eef25929e 100644
--- a/patches/server/0995-Allow-Saving-of-Oversized-Chunks.patch
+++ b/patches/server/0994-Allow-Saving-of-Oversized-Chunks.patch
diff --git a/patches/server/0996-Flat-bedrock-generator-settings.patch b/patches/server/0995-Flat-bedrock-generator-settings.patch
index da68e7d65b..da68e7d65b 100644
--- a/patches/server/0996-Flat-bedrock-generator-settings.patch
+++ b/patches/server/0995-Flat-bedrock-generator-settings.patch
diff --git a/patches/server/0997-Entity-Activation-Range-2.0.patch b/patches/server/0996-Entity-Activation-Range-2.0.patch
index ef299ab7d1..ef299ab7d1 100644
--- a/patches/server/0997-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0996-Entity-Activation-Range-2.0.patch
diff --git a/patches/server/0998-Optional-per-player-mob-spawns.patch b/patches/server/0997-Optional-per-player-mob-spawns.patch
index ebd9566469..ebd9566469 100644
--- a/patches/server/0998-Optional-per-player-mob-spawns.patch
+++ b/patches/server/0997-Optional-per-player-mob-spawns.patch
diff --git a/patches/server/0999-Anti-Xray.patch b/patches/server/0998-Anti-Xray.patch
index 87839cda7a..87839cda7a 100644
--- a/patches/server/0999-Anti-Xray.patch
+++ b/patches/server/0998-Anti-Xray.patch
diff --git a/patches/server/1000-Eigencraft-redstone-implementation.patch b/patches/server/0999-Eigencraft-redstone-implementation.patch
index b3e3db6504..b3e3db6504 100644
--- a/patches/server/1000-Eigencraft-redstone-implementation.patch
+++ b/patches/server/0999-Eigencraft-redstone-implementation.patch
diff --git a/patches/server/1001-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1000-Add-Alternate-Current-redstone-implementation.patch
index d3dea51359..d3dea51359 100644
--- a/patches/server/1001-Add-Alternate-Current-redstone-implementation.patch
+++ b/patches/server/1000-Add-Alternate-Current-redstone-implementation.patch
diff --git a/patches/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
index 1c39518b9a..1c39518b9a 100644
--- a/patches/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
+++ b/patches/server/1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
diff --git a/patches/server/1003-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1002-Use-Velocity-compression-and-cipher-natives.patch
index 276343645a..276343645a 100644
--- a/patches/server/1003-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/1002-Use-Velocity-compression-and-cipher-natives.patch
diff --git a/patches/server/1004-Optimize-Collision-to-not-load-chunks.patch b/patches/server/1003-Optimize-Collision-to-not-load-chunks.patch
index 857d525339..857d525339 100644
--- a/patches/server/1004-Optimize-Collision-to-not-load-chunks.patch
+++ b/patches/server/1003-Optimize-Collision-to-not-load-chunks.patch
diff --git a/patches/server/1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
index 65f5e3531e..65f5e3531e 100644
--- a/patches/server/1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
+++ b/patches/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch
diff --git a/patches/server/1006-Optimize-Hoppers.patch b/patches/server/1005-Optimize-Hoppers.patch
index dc55a79c71..4d6c370ff4 100644
--- a/patches/server/1006-Optimize-Hoppers.patch
+++ b/patches/server/1005-Optimize-Hoppers.patch
@@ -62,7 +62,7 @@ index 4a4ce372dd105d07f58d7d93d856cb3969969806..fb3dcce4e1888f96fdd260740d9d9559
this.profiler.push(() -> {
String s = String.valueOf(worldserver);
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index de32bf4947af8d2ec64e8799580a129b038dd35e..0f2b3c5ca88478a541bf9e61ae61cc99a7d08836 100644
+index bb28e35c0d53fcc0145518123795d54ff59514a8..3254124180df02d787202f4b00a4c52d40c6e7cf 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -809,10 +809,16 @@ public final class ItemStack implements DataComponentHolder {
@@ -105,7 +105,7 @@ index cd3b952a228c09077c2e74183a34ddb32811280b..c0563260277f9f4bd9ff08993b2efb4b
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
-index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500fe7350ce 100644
+index 542a5501ac94f57810d34e0f769a9a7855604f91..cab403efd471bb61835224eea4e99570d34dcaaa 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -156,6 +156,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -370,7 +370,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
private static boolean ejectItems(Level world, BlockPos pos, HopperBlockEntity blockEntity) {
Container iinventory = HopperBlockEntity.getAttachedContainer(world, pos, blockEntity);
-@@ -209,48 +443,51 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -209,52 +443,55 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (HopperBlockEntity.isFullContainer(iinventory, enumdirection)) {
return false;
} else {
@@ -400,6 +400,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
- blockEntity.setCooldown(world.spigotConfig.hopperTransfer); // Delay hopper checks // Spigot
- return false;
- }
+- int origCount = event.getItem().getAmount(); // Spigot
- ItemStack itemstack1 = HopperBlockEntity.addItem(blockEntity, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
- // CraftBukkit end
-
@@ -409,7 +410,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
- }
-
- itemstack.setCount(j);
-- if (j == 1) {
+- // Spigot start
+- itemstack.shrink(origCount - itemstack1.getCount());
+- if (j <= world.spigotConfig.hopperAmount) {
+- // Spigot end
- blockEntity.setItem(i, itemstack);
- }
- }
@@ -444,6 +448,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
+ // blockEntity.setCooldown(world.spigotConfig.hopperTransfer); // Delay hopper checks // Spigot
+ // return false;
+ // }
++ // int origCount = event.getItem().getAmount(); // Spigot
+ // ItemStack itemstack1 = HopperBlockEntity.addItem(blockEntity, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
+ // // CraftBukkit end
+
@@ -453,7 +458,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
+ // }
+
+ // itemstack.setCount(j);
-+ // if (j == 1) {
++ // // Spigot start
++ // itemstack.shrink(origCount - itemstack1.getCount());
++ // if (j <= world.spigotConfig.hopperAmount) {
++ // // Spigot end
+ // blockEntity.setItem(i, itemstack);
+ // }
+ // }
@@ -464,7 +472,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
}
}
}
-@@ -301,7 +538,6 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -305,7 +542,6 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
return false;
}
}
@@ -472,7 +480,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
return true;
}
-@@ -312,6 +548,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -316,6 +552,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
if (iinventory != null) {
Direction enumdirection = Direction.DOWN;
@@ -480,7 +488,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
int[] aint = HopperBlockEntity.getSlots(iinventory, enumdirection);
int i = aint.length;
-@@ -347,45 +584,48 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -351,49 +588,52 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
ItemStack itemstack = iinventory.getItem(i);
if (!itemstack.isEmpty() && HopperBlockEntity.canTakeItemFromContainer(ihopper, iinventory, itemstack, i, enumdirection)) {
@@ -511,6 +519,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
-
- return false;
- }
+- int origCount = event.getItem().getAmount(); // Spigot
- ItemStack itemstack1 = HopperBlockEntity.addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null);
- // CraftBukkit end
-
@@ -520,7 +529,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
- }
-
- itemstack.setCount(j);
-- if (j == 1) {
+- // Spigot start
+- itemstack.shrink(origCount - itemstack1.getCount());
+- if (j <= world.spigotConfig.hopperAmount) {
+- // Spigot end
- iinventory.setItem(i, itemstack);
- }
+ // Paper start - Perf: Optimize Hoppers
@@ -552,6 +564,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
+
+ // return false;
+ // }
++ // int origCount = event.getItem().getAmount(); // Spigot
+ // ItemStack itemstack1 = HopperBlockEntity.addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null);
+ // // CraftBukkit end
+
@@ -561,14 +574,17 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
+ // }
+
+ // itemstack.setCount(j);
-+ // if (j == 1) {
++ // // Spigot start
++ // itemstack.shrink(origCount - itemstack1.getCount());
++ // if (j <= world.spigotConfig.hopperAmount) {
++ // // Spigot end
+ // iinventory.setItem(i, itemstack);
+ // }
+ // Paper end - Perf: Optimize Hoppers
}
return false;
-@@ -394,12 +634,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -402,12 +642,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
public static boolean addItem(Container inventory, ItemEntity itemEntity) {
boolean flag = false;
// CraftBukkit start
@@ -584,7 +600,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
ItemStack itemstack = itemEntity.getItem().copy();
ItemStack itemstack1 = HopperBlockEntity.addItem((Container) null, inventory, itemstack, (Direction) null);
-@@ -493,7 +735,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -501,7 +743,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
stack = stack.split(to.getMaxStackSize());
}
// Spigot end
@@ -594,7 +610,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
stack = leftover; // Paper - Make hoppers respect inventory max stack size
flag = true;
} else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) {
-@@ -573,14 +817,20 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -581,14 +825,20 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@Nullable
public static Container getContainerAt(Level world, BlockPos pos) {
@@ -617,7 +633,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500
iinventory = HopperBlockEntity.getEntityContainer(world, x, y, z);
}
-@@ -615,13 +865,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
+@@ -623,13 +873,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@Nullable
private static Container getEntityContainer(Level world, double x, double y, double z) {
diff --git a/patches/server/1007-Entity-load-save-limit-per-chunk.patch b/patches/server/1006-Entity-load-save-limit-per-chunk.patch
index 380beda077..380beda077 100644
--- a/patches/server/1007-Entity-load-save-limit-per-chunk.patch
+++ b/patches/server/1006-Entity-load-save-limit-per-chunk.patch
diff --git a/patches/server/1008-Optimize-Voxel-Shape-Merging.patch b/patches/server/1007-Optimize-Voxel-Shape-Merging.patch
index 114ee7cb28..114ee7cb28 100644
--- a/patches/server/1008-Optimize-Voxel-Shape-Merging.patch
+++ b/patches/server/1007-Optimize-Voxel-Shape-Merging.patch
diff --git a/patches/server/1009-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1008-Optimize-Bit-Operations-by-inlining.patch
index b7d93a56b9..b7d93a56b9 100644
--- a/patches/server/1009-Optimize-Bit-Operations-by-inlining.patch
+++ b/patches/server/1008-Optimize-Bit-Operations-by-inlining.patch
diff --git a/patches/server/1010-Remove-streams-from-hot-code.patch b/patches/server/1009-Remove-streams-from-hot-code.patch
index 4c6d94f7bf..4c6d94f7bf 100644
--- a/patches/server/1010-Remove-streams-from-hot-code.patch
+++ b/patches/server/1009-Remove-streams-from-hot-code.patch
diff --git a/patches/server/1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
index 6fc4445bbf..6fc4445bbf 100644
--- a/patches/server/1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
+++ b/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
diff --git a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch
index 96d90abea3..96d90abea3 100644
--- a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch
+++ b/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch
diff --git a/patches/server/1013-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1012-Fix-entity-type-tags-suggestions-in-selectors.patch
index a8e41e99e4..a8e41e99e4 100644
--- a/patches/server/1013-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/1012-Fix-entity-type-tags-suggestions-in-selectors.patch
diff --git a/patches/server/1014-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1013-Handle-Oversized-block-entities-in-chunks.patch
index d3283fd63f..d3283fd63f 100644
--- a/patches/server/1014-Handle-Oversized-block-entities-in-chunks.patch
+++ b/patches/server/1013-Handle-Oversized-block-entities-in-chunks.patch
diff --git a/patches/server/1015-API-for-checking-sent-chunks.patch b/patches/server/1014-API-for-checking-sent-chunks.patch
index f3f1bf8f5c..f3f1bf8f5c 100644
--- a/patches/server/1015-API-for-checking-sent-chunks.patch
+++ b/patches/server/1014-API-for-checking-sent-chunks.patch
diff --git a/patches/server/1016-Check-distance-in-entity-interactions.patch b/patches/server/1015-Check-distance-in-entity-interactions.patch
index 64fd802e0e..64fd802e0e 100644
--- a/patches/server/1016-Check-distance-in-entity-interactions.patch
+++ b/patches/server/1015-Check-distance-in-entity-interactions.patch
diff --git a/patches/server/1017-Configurable-Sand-Duping.patch b/patches/server/1016-Configurable-Sand-Duping.patch
index cbc52697db..cbc52697db 100644
--- a/patches/server/1017-Configurable-Sand-Duping.patch
+++ b/patches/server/1016-Configurable-Sand-Duping.patch
diff --git a/patches/server/1018-Optimise-general-POI-access.patch b/patches/server/1017-Optimise-general-POI-access.patch
index b3636fe591..b3636fe591 100644
--- a/patches/server/1018-Optimise-general-POI-access.patch
+++ b/patches/server/1017-Optimise-general-POI-access.patch
diff --git a/patches/server/1019-Improve-performance-of-mass-crafts.patch b/patches/server/1018-Improve-performance-of-mass-crafts.patch
index 15701b21e0..15701b21e0 100644
--- a/patches/server/1019-Improve-performance-of-mass-crafts.patch
+++ b/patches/server/1018-Improve-performance-of-mass-crafts.patch
diff --git a/patches/server/1020-Properly-resend-entities.patch b/patches/server/1019-Properly-resend-entities.patch
index de1c348724..de1c348724 100644
--- a/patches/server/1020-Properly-resend-entities.patch
+++ b/patches/server/1019-Properly-resend-entities.patch
diff --git a/patches/server/1021-Registry-Modification-API.patch b/patches/server/1020-Registry-Modification-API.patch
index 8c55ac4526..f478968684 100644
--- a/patches/server/1021-Registry-Modification-API.patch
+++ b/patches/server/1020-Registry-Modification-API.patch
@@ -9,7 +9,7 @@ public net.minecraft.resources.RegistryOps lookupProvider
public net.minecraft.resources.RegistryOps$HolderLookupAdapter
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
-index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c3893c7960d6 100644
+index 675f5d03478907e3d8284cbea191f01c1eb15769..32ade3ed8533b127e8f5c1cc8b3466249e5444a3 100644
--- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
@@ -2,6 +2,7 @@ package io.papermc.paper.registry;
@@ -20,7 +20,7 @@ index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c389
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.List;
-@@ -54,6 +55,7 @@ import org.checkerframework.framework.qual.DefaultQualifier;
+@@ -56,6 +57,7 @@ import org.checkerframework.framework.qual.DefaultQualifier;
import static io.papermc.paper.registry.entry.RegistryEntry.apiOnly;
import static io.papermc.paper.registry.entry.RegistryEntry.entry;
@@ -28,7 +28,7 @@ index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c389
@DefaultQualifier(NonNull.class)
public final class PaperRegistries {
-@@ -136,6 +138,15 @@ public final class PaperRegistries {
+@@ -138,6 +140,15 @@ public final class PaperRegistries {
return ResourceKey.create((ResourceKey<? extends Registry<M>>) PaperRegistries.registryToNms(typedKey.registryKey()), PaperAdventure.asVanilla(typedKey.key()));
}
@@ -1311,10 +1311,10 @@ index 397bdacab9517354875ebc0bc68d35059b3c318b..908431652a0fea79b5a0cee1efd0c7a7
return writableRegistry;
},
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index fc9aec589414bf8d3f672183928235b5b51d1a02..0f3c46b8bb93fc42160300c9988d04bed68f493b 100644
+index c2824cc07b761958a0df4b110bdfc53bd853b9e7..cacbb35d365c66881f2a42d099bb88c494b584ee 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -163,11 +163,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -165,11 +165,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
private final Map<NamespacedKey, B> cache = new HashMap<>();
private final Map<B, NamespacedKey> byValue = new java.util.IdentityHashMap<>(); // Paper - improve Registry
private final net.minecraft.core.Registry<M> minecraftRegistry;
@@ -1328,7 +1328,7 @@ index fc9aec589414bf8d3f672183928235b5b51d1a02..0f3c46b8bb93fc42160300c9988d04be
this.bukkitClass = bukkitClass;
this.minecraftRegistry = minecraftRegistry;
this.minecraftToBukkit = minecraftToBukkit;
-@@ -240,4 +240,17 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -242,4 +242,17 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
return this.byValue.get(value);
}
// Paper end - improve Registry
diff --git a/patches/server/1022-Add-registry-entry-and-builders.patch b/patches/server/1021-Add-registry-entry-and-builders.patch
index cbb53a94e4..ff658dd1be 100644
--- a/patches/server/1022-Add-registry-entry-and-builders.patch
+++ b/patches/server/1021-Add-registry-entry-and-builders.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add registry entry and builders
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
-index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d4a0f4ee5 100644
+index 32ade3ed8533b127e8f5c1cc8b3466249e5444a3..6ec9d9b9acf557aa2ebf39d38a14225b0205fae1 100644
--- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
@@ -1,6 +1,8 @@
@@ -17,7 +17,7 @@ index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d
import io.papermc.paper.registry.entry.RegistryEntry;
import io.papermc.paper.registry.tag.TagKey;
import java.util.Collections;
-@@ -66,7 +68,7 @@ public final class PaperRegistries {
+@@ -68,7 +70,7 @@ public final class PaperRegistries {
static {
REGISTRY_ENTRIES = List.of(
// built-ins
@@ -26,15 +26,15 @@ index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d
entry(Registries.INSTRUMENT, RegistryKey.INSTRUMENT, MusicInstrument.class, CraftMusicInstrument::new),
entry(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, PotionEffectType.class, CraftPotionEffectType::new),
entry(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, StructureType.class, CraftStructureType::new),
-@@ -84,7 +86,7 @@ public final class PaperRegistries {
+@@ -86,7 +88,7 @@ public final class PaperRegistries {
entry(Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, TrimPattern.class, CraftTrimPattern::new).delayed(),
entry(Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE, DamageType.class, CraftDamageType::new).delayed(),
entry(Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, Wolf.Variant.class, CraftWolf.CraftVariant::new).delayed(),
- entry(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(),
+ writable(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new, PaperEnchantmentRegistryEntry.PaperBuilder::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(),
entry(Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, JukeboxSong.class, CraftJukeboxSong::new).delayed(),
+ entry(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, PatternType.class, CraftPatternType::new).delayed(),
- // api-only
diff --git a/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java b/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9501554a0738776c265852184c7dbae3fe98c8c
diff --git a/patches/server/1023-Improved-Watchdog-Support.patch b/patches/server/1022-Improved-Watchdog-Support.patch
index be44d14993..be44d14993 100644
--- a/patches/server/1023-Improved-Watchdog-Support.patch
+++ b/patches/server/1022-Improved-Watchdog-Support.patch
diff --git a/patches/server/1024-Proxy-ItemStack-to-CraftItemStack.patch b/patches/server/1023-Proxy-ItemStack-to-CraftItemStack.patch
index 6ce5ce92ca..6ce5ce92ca 100644
--- a/patches/server/1024-Proxy-ItemStack-to-CraftItemStack.patch
+++ b/patches/server/1023-Proxy-ItemStack-to-CraftItemStack.patch
diff --git a/patches/server/1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch b/patches/server/1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
index 430f84e5a5..430f84e5a5 100644
--- a/patches/server/1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
+++ b/patches/server/1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch
diff --git a/patches/server/1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch b/patches/server/1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch
index 6e36d9a7b3..6e36d9a7b3 100644
--- a/patches/server/1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch
+++ b/patches/server/1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch
diff --git a/patches/server/1027-optimize-dirt-and-snow-spreading.patch b/patches/server/1026-optimize-dirt-and-snow-spreading.patch
index 49de7fcab9..49de7fcab9 100644
--- a/patches/server/1027-optimize-dirt-and-snow-spreading.patch
+++ b/patches/server/1026-optimize-dirt-and-snow-spreading.patch
diff --git a/patches/server/1028-Fix-NPE-for-Jukebox-setRecord.patch b/patches/server/1027-Fix-NPE-for-Jukebox-setRecord.patch
index e15a77ee75..e15a77ee75 100644
--- a/patches/server/1028-Fix-NPE-for-Jukebox-setRecord.patch
+++ b/patches/server/1027-Fix-NPE-for-Jukebox-setRecord.patch
diff --git a/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch b/patches/server/1028-Fix-CraftWorld-isChunkGenerated.patch
index 48ae6e61ad..48ae6e61ad 100644
--- a/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch
+++ b/patches/server/1028-Fix-CraftWorld-isChunkGenerated.patch
diff --git a/patches/server/1030-fix-horse-inventories.patch b/patches/server/1029-fix-horse-inventories.patch
index ca5b9c08cd..ca5b9c08cd 100644
--- a/patches/server/1030-fix-horse-inventories.patch
+++ b/patches/server/1029-fix-horse-inventories.patch
diff --git a/patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch b/patches/server/1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch
index 1b7439c07a..1b7439c07a 100644
--- a/patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch
+++ b/patches/server/1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch
diff --git a/patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch b/patches/server/1031-Fix-entity-tracker-desync-when-new-players-are-added.patch
index f953c50390..f953c50390 100644
--- a/patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch
+++ b/patches/server/1031-Fix-entity-tracker-desync-when-new-players-are-added.patch
diff --git a/patches/server/1033-Lag-compensation-ticks.patch b/patches/server/1032-Lag-compensation-ticks.patch
index ef9a724904..ef9a724904 100644
--- a/patches/server/1033-Lag-compensation-ticks.patch
+++ b/patches/server/1032-Lag-compensation-ticks.patch
diff --git a/patches/server/1034-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1033-Detail-more-information-in-watchdog-dumps.patch
index 7497c32cc5..7497c32cc5 100644
--- a/patches/server/1034-Detail-more-information-in-watchdog-dumps.patch
+++ b/patches/server/1033-Detail-more-information-in-watchdog-dumps.patch
diff --git a/patches/server/1035-Write-SavedData-IO-async.patch b/patches/server/1034-Write-SavedData-IO-async.patch
index 538d0fcba4..538d0fcba4 100644
--- a/patches/server/1035-Write-SavedData-IO-async.patch
+++ b/patches/server/1034-Write-SavedData-IO-async.patch
diff --git a/patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch b/patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch
index 6637cd6cd0..5dd198b395 100644
--- a/patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch
+++ b/patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch
@@ -17,7 +17,7 @@ stack to not disrupt potential new vanilla changes that might depend on
this behaviour.
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 0f2b3c5ca88478a541bf9e61ae61cc99a7d08836..2c312c0b741fb96a008881e9e01fa660a1fb63ab 100644
+index 3254124180df02d787202f4b00a4c52d40c6e7cf..d1340691d508c21c15237ec4a4626e9219d7c4f7 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -731,8 +731,10 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/1037-Add-ItemType-getItemRarity.patch b/patches/server/1036-Add-ItemType-getItemRarity.patch
index 35ebf5036b..35ebf5036b 100644
--- a/patches/server/1037-Add-ItemType-getItemRarity.patch
+++ b/patches/server/1036-Add-ItemType-getItemRarity.patch
diff --git a/patches/server/1038-Incremental-chunk-and-player-saving.patch b/patches/server/1037-Incremental-chunk-and-player-saving.patch
index a19a5893eb..a19a5893eb 100644
--- a/patches/server/1038-Incremental-chunk-and-player-saving.patch
+++ b/patches/server/1037-Incremental-chunk-and-player-saving.patch
diff --git a/patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
index 3b391d165a..3b391d165a 100644
--- a/patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
+++ b/patches/server/1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
diff --git a/patches/server/1042-Bundle-spark.patch b/patches/server/1039-Bundle-spark.patch
index 5f68e17337..5f68e17337 100644
--- a/patches/server/1042-Bundle-spark.patch
+++ b/patches/server/1039-Bundle-spark.patch
diff --git a/patches/server/1043-Add-plugin-info-at-startup.patch b/patches/server/1040-Add-plugin-info-at-startup.patch
index 051309bbed..051309bbed 100644
--- a/patches/server/1043-Add-plugin-info-at-startup.patch
+++ b/patches/server/1040-Add-plugin-info-at-startup.patch
diff --git a/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch b/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch
deleted file mode 100644
index 3e85c7f987..0000000000
--- a/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Bjarne Koll <[email protected]>
-Date: Fri, 19 Jul 2024 17:27:38 +0200
-Subject: [PATCH] Move CraftComplexRecipe to extend CraftingRecipe
-
-A craft complex recipe wraps a CustomRecipe, which itself is a
-CraftingRecipe.
-As such, this complex recipe should also be a crafting recipe.
-
-diff --git a/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java b/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java
-index b57a2ba09f160409b5df9a2ae7ec159af3e4bf93..69a7e500c725e9da950df30f2cc4ff5f72e527d0 100644
---- a/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java
-+++ b/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java
-@@ -34,7 +34,12 @@ public abstract class CustomRecipe implements CraftingRecipe {
- // CraftBukkit start
- @Override
- public Recipe toBukkitRecipe(NamespacedKey id) {
-- return new org.bukkit.craftbukkit.inventory.CraftComplexRecipe(id, this);
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start
-+ final org.bukkit.craftbukkit.inventory.CraftComplexRecipe recipe = new org.bukkit.craftbukkit.inventory.CraftComplexRecipe(id, this);
-+ recipe.setGroup(this.getGroup());
-+ recipe.setCategory(org.bukkit.craftbukkit.inventory.CraftRecipe.getCategory(this.category()));
-+ return recipe;
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end
- }
- // CraftBukkit end
- }
-diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java
-index dcaeaa3367351eb54e2cf8e62be19ecc125a4bb4..05f42ec6177218960b22dc2c224f63cbf37d696f 100644
---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java
-+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java
-@@ -9,12 +9,17 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey;
- import org.bukkit.inventory.ComplexRecipe;
- import org.bukkit.inventory.ItemStack;
-
--public class CraftComplexRecipe implements CraftRecipe, ComplexRecipe {
-+public class CraftComplexRecipe extends org.bukkit.inventory.CraftingRecipe implements CraftRecipe, ComplexRecipe { // Paper - make CraftComplexRecipe extend CraftingRecipe
-
- private final NamespacedKey key;
- private final CustomRecipe recipe;
-
- public CraftComplexRecipe(NamespacedKey key, CustomRecipe recipe) {
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start
-+ super();
-+ super.key = key;
-+ super.output = ItemStack.empty();
-+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end
- this.key = key;
- this.recipe = recipe;
- }
diff --git a/patches/server/1041-Add-CrafterCraftEvent.patch b/patches/server/1041-Add-CrafterCraftEvent.patch
deleted file mode 100644
index 28eb5f5746..0000000000
--- a/patches/server/1041-Add-CrafterCraftEvent.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: ploppyperson <[email protected]>
-Date: Thu, 18 Jul 2024 16:38:48 +0200
-Subject: [PATCH] Add CrafterCraftEvent
-
-While not a one-to-one copy from the proposed commit upstream,
-the patch calls the preemtively pulled CrafterCraftEvent.
-
-See: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/1450/overview
-
-diff --git a/src/main/java/net/minecraft/world/level/block/CrafterBlock.java b/src/main/java/net/minecraft/world/level/block/CrafterBlock.java
-index 6c24b25a7c8ce6e34aceb5702f1a0a6732ebca44..391a6af36d4c27a04000b31583297a25b89125d3 100644
---- a/src/main/java/net/minecraft/world/level/block/CrafterBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/CrafterBlock.java
-@@ -163,6 +163,16 @@ public class CrafterBlock extends BaseEntityBlock {
- } else {
- RecipeHolder<CraftingRecipe> recipeHolder = optional.get();
- ItemStack itemStack = recipeHolder.value().assemble(var11, world.registryAccess());
-+ // Paper start - call CrafterCraftEvent
-+ final org.bukkit.event.block.CrafterCraftEvent event = new org.bukkit.event.block.CrafterCraftEvent(
-+ org.bukkit.craftbukkit.block.CraftBlock.at(world, pos),
-+ (org.bukkit.inventory.CraftingRecipe) recipeHolder.toBukkitRecipe(),
-+ org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack)
-+ );
-+ if (!event.callEvent()) return;
-+
-+ itemStack = org.bukkit.craftbukkit.inventory.CraftItemStack.unwrap(event.getResult());
-+ // Paper end - call CrafterCraftEvent
- if (itemStack.isEmpty()) {
- world.levelEvent(1050, pos, 0);
- } else {
diff --git a/patches/server/1044-Make-interaction-leniency-distance-configurable.patch b/patches/server/1041-Make-interaction-leniency-distance-configurable.patch
index 341e13affd..341e13affd 100644
--- a/patches/server/1044-Make-interaction-leniency-distance-configurable.patch
+++ b/patches/server/1041-Make-interaction-leniency-distance-configurable.patch
diff --git a/patches/server/1045-Fix-PickupStatus-getting-reset.patch b/patches/server/1042-Fix-PickupStatus-getting-reset.patch
index 795972058b..795972058b 100644
--- a/patches/server/1045-Fix-PickupStatus-getting-reset.patch
+++ b/patches/server/1042-Fix-PickupStatus-getting-reset.patch
diff --git a/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch b/patches/server/1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch
index f060e79368..f060e79368 100644
--- a/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch
+++ b/patches/server/1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 3a3bea52057e094e4060239ad8a5ce16cf4c8dc
+Subproject 2ec53f498e32b3af989cb24672fc54dfab08715
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 403accd56333f091f4ef8b5f870591785e26cdf
+Subproject 8ee6fd1b8db9896590aa321d0199453de1fc35d
diff --git a/work/Spigot b/work/Spigot
-Subproject 5bbef5ad33ea0f6a5f743ce123b385d3d22ff3f
+Subproject fb8fb722a327a2f9f097f2ded700ac5de815740