aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2023-06-12 16:51:45 -0700
committerGitHub <[email protected]>2023-06-12 16:51:45 -0700
commitc287e921a96438964f32f3c4e394d6809e0d06fa (patch)
treefcc826670454d8a8f5547838414583ce5f1df02d
parentb48e2e352e21c56d6a9e90bb8d9e548d3658a691 (diff)
downloadPaper-c287e921a96438964f32f3c4e394d6809e0d06fa.tar.gz
Paper-c287e921a96438964f32f3c4e394d6809e0d06fa.zip
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9301)1.20
-rw-r--r--patches/api/0005-Adventure.patch159
-rw-r--r--patches/api/0010-Timings-v2.patch8
-rw-r--r--patches/api/0013-Add-getTPS-method.patch8
-rw-r--r--patches/api/0020-Expose-server-CommandMap.patch8
-rw-r--r--patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch8
-rw-r--r--patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch8
-rw-r--r--patches/api/0043-Allow-Reloading-of-Command-Aliases.patch8
-rw-r--r--patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch8
-rw-r--r--patches/api/0055-Fix-upstream-javadocs.patch14
-rw-r--r--patches/api/0059-Basic-PlayerProfile-API.patch8
-rw-r--r--patches/api/0091-Player.setPlayerProfile-API.patch16
-rw-r--r--patches/api/0092-getPlayerUniqueId-API.patch8
-rw-r--r--patches/api/0160-Make-the-default-permission-message-configurable.patch8
-rw-r--r--patches/api/0172-Fix-Spigot-annotation-mistakes.patch16
-rw-r--r--patches/api/0176-Mob-Spawner-API-Enhancements.patch4
-rw-r--r--patches/api/0180-Expose-the-internal-current-tick.patch8
-rw-r--r--patches/api/0186-Add-tick-times-API.patch8
-rw-r--r--patches/api/0187-Expose-MinecraftServer-isRunning.patch8
-rw-r--r--patches/api/0195-Add-Mob-Goal-API.patch8
-rw-r--r--patches/api/0207-Add-BellRingEvent.patch (renamed from patches/api/0208-Add-BellRingEvent.patch)0
-rw-r--r--patches/api/0207-Add-setMaxPlayers-API.patch48
-rw-r--r--patches/api/0208-Add-moon-phase-API.patch (renamed from patches/api/0209-Add-moon-phase-API.patch)0
-rw-r--r--patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch (renamed from patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch)0
-rw-r--r--patches/api/0210-Add-more-Evoker-API.patch (renamed from patches/api/0211-Add-more-Evoker-API.patch)0
-rw-r--r--patches/api/0211-Add-methods-to-get-translation-keys.patch (renamed from patches/api/0212-Add-methods-to-get-translation-keys.patch)0
-rw-r--r--patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch (renamed from patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch)0
-rw-r--r--patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch (renamed from patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch)0
-rw-r--r--patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch (renamed from patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch)0
-rw-r--r--patches/api/0215-Entity-isTicking.patch (renamed from patches/api/0216-Entity-isTicking.patch)0
-rw-r--r--patches/api/0216-Villager-resetOffers.patch (renamed from patches/api/0217-Villager-resetOffers.patch)0
-rw-r--r--patches/api/0217-Player-elytra-boost-API.patch (renamed from patches/api/0218-Player-elytra-boost-API.patch)0
-rw-r--r--patches/api/0218-Add-getOfflinePlayerIfCached-String.patch (renamed from patches/api/0219-Add-getOfflinePlayerIfCached-String.patch)8
-rw-r--r--patches/api/0219-Add-ignore-discounts-API.patch (renamed from patches/api/0220-Add-ignore-discounts-API.patch)0
-rw-r--r--patches/api/0220-Item-no-age-no-player-pickup.patch (renamed from patches/api/0221-Item-no-age-no-player-pickup.patch)0
-rw-r--r--patches/api/0221-Beacon-API-custom-effect-ranges.patch (renamed from patches/api/0222-Beacon-API-custom-effect-ranges.patch)0
-rw-r--r--patches/api/0222-Add-API-for-quit-reason.patch (renamed from patches/api/0223-Add-API-for-quit-reason.patch)0
-rw-r--r--patches/api/0223-Add-Destroy-Speed-API.patch (renamed from patches/api/0224-Add-Destroy-Speed-API.patch)0
-rw-r--r--patches/api/0224-Add-LivingEntity-clearActiveItem.patch (renamed from patches/api/0225-Add-LivingEntity-clearActiveItem.patch)0
-rw-r--r--patches/api/0225-Add-PlayerItemCooldownEvent.patch (renamed from patches/api/0226-Add-PlayerItemCooldownEvent.patch)0
-rw-r--r--patches/api/0226-More-lightning-API.patch (renamed from patches/api/0227-More-lightning-API.patch)0
-rw-r--r--patches/api/0227-Add-PlayerShearBlockEvent.patch (renamed from patches/api/0228-Add-PlayerShearBlockEvent.patch)0
-rw-r--r--patches/api/0228-Player-Chunk-Load-Unload-Events.patch (renamed from patches/api/0229-Player-Chunk-Load-Unload-Events.patch)0
-rw-r--r--patches/api/0229-Expose-LivingEntity-hurt-direction.patch (renamed from patches/api/0230-Expose-LivingEntity-hurt-direction.patch)0
-rw-r--r--patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch (renamed from patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch)0
-rw-r--r--patches/api/0231-Added-PlayerTradeEvent.patch (renamed from patches/api/0232-Added-PlayerTradeEvent.patch)0
-rw-r--r--patches/api/0232-Add-TargetHitEvent-API.patch (renamed from patches/api/0233-Add-TargetHitEvent-API.patch)0
-rw-r--r--patches/api/0233-Additional-Block-Material-API-s.patch (renamed from patches/api/0234-Additional-Block-Material-API-s.patch)0
-rw-r--r--patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch (renamed from patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch)0
-rw-r--r--patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch (renamed from patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch)0
-rw-r--r--patches/api/0236-Zombie-API-breaking-doors.patch (renamed from patches/api/0237-Zombie-API-breaking-doors.patch)0
-rw-r--r--patches/api/0237-Add-EntityLoadCrossbowEvent.patch (renamed from patches/api/0238-Add-EntityLoadCrossbowEvent.patch)0
-rw-r--r--patches/api/0238-Added-WorldGameRuleChangeEvent.patch (renamed from patches/api/0239-Added-WorldGameRuleChangeEvent.patch)0
-rw-r--r--patches/api/0239-Added-ServerResourcesReloadedEvent.patch (renamed from patches/api/0240-Added-ServerResourcesReloadedEvent.patch)0
-rw-r--r--patches/api/0240-Add-BlockFailedDispenseEvent.patch (renamed from patches/api/0241-Add-BlockFailedDispenseEvent.patch)0
-rw-r--r--patches/api/0241-Added-PlayerLecternPageChangeEvent.patch (renamed from patches/api/0242-Added-PlayerLecternPageChangeEvent.patch)0
-rw-r--r--patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch (renamed from patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch)0
-rw-r--r--patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch (renamed from patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch)0
-rw-r--r--patches/api/0244-Add-sendOpLevel-API.patch (renamed from patches/api/0245-Add-sendOpLevel-API.patch)0
-rw-r--r--patches/api/0245-Add-PaperRegistry.patch (renamed from patches/api/0246-Add-PaperRegistry.patch)0
-rw-r--r--patches/api/0246-Add-StructuresLocateEvent.patch (renamed from patches/api/0247-Add-StructuresLocateEvent.patch)0
-rw-r--r--patches/api/0247-Add-BlockPreDispenseEvent.patch (renamed from patches/api/0248-Add-BlockPreDispenseEvent.patch)0
-rw-r--r--patches/api/0248-Added-missing-vanilla-tags.patch (renamed from patches/api/0249-Added-missing-vanilla-tags.patch)0
-rw-r--r--patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch (renamed from patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch)0
-rw-r--r--patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch (renamed from patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch)0
-rw-r--r--patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch (renamed from patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch)0
-rw-r--r--patches/api/0252-add-DragonEggFormEvent.patch (renamed from patches/api/0253-add-DragonEggFormEvent.patch)0
-rw-r--r--patches/api/0253-EntityMoveEvent.patch (renamed from patches/api/0254-EntityMoveEvent.patch)0
-rw-r--r--patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch (renamed from patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch)0
-rw-r--r--patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch (renamed from patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch)0
-rw-r--r--patches/api/0256-living-entity-allow-attribute-registration.patch (renamed from patches/api/0257-living-entity-allow-attribute-registration.patch)0
-rw-r--r--patches/api/0257-Add-missing-effects.patch (renamed from patches/api/0258-Add-missing-effects.patch)0
-rw-r--r--patches/api/0258-Expose-Tracked-Players.patch (renamed from patches/api/0259-Expose-Tracked-Players.patch)0
-rw-r--r--patches/api/0259-Cache-the-result-of-Material-isBlock.patch (renamed from patches/api/0260-Cache-the-result-of-Material-isBlock.patch)0
-rw-r--r--patches/api/0260-Add-worldborder-events.patch (renamed from patches/api/0261-Add-worldborder-events.patch)0
-rw-r--r--patches/api/0261-added-PlayerNameEntityEvent.patch (renamed from patches/api/0262-added-PlayerNameEntityEvent.patch)0
-rw-r--r--patches/api/0262-Add-recipe-to-cook-events.patch (renamed from patches/api/0263-Add-recipe-to-cook-events.patch)0
-rw-r--r--patches/api/0263-Add-Block-isValidTool.patch (renamed from patches/api/0264-Add-Block-isValidTool.patch)0
-rw-r--r--patches/api/0264-Expand-world-key-API.patch (renamed from patches/api/0265-Expand-world-key-API.patch)8
-rw-r--r--patches/api/0265-Item-Rarity-API.patch (renamed from patches/api/0266-Item-Rarity-API.patch)0
-rw-r--r--patches/api/0266-Expose-protocol-version.patch (renamed from patches/api/0267-Expose-protocol-version.patch)0
-rw-r--r--patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch (renamed from patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch)0
-rw-r--r--patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch (renamed from patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch)0
-rw-r--r--patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch (renamed from patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch)0
-rw-r--r--patches/api/0270-Added-PlayerDeepSleepEvent.patch (renamed from patches/api/0271-Added-PlayerDeepSleepEvent.patch)0
-rw-r--r--patches/api/0271-More-World-API.patch (renamed from patches/api/0272-More-World-API.patch)0
-rw-r--r--patches/api/0272-Added-PlayerBedFailEnterEvent.patch (renamed from patches/api/0273-Added-PlayerBedFailEnterEvent.patch)0
-rw-r--r--patches/api/0273-Introduce-beacon-activation-deactivation-events.patch (renamed from patches/api/0274-Introduce-beacon-activation-deactivation-events.patch)0
-rw-r--r--patches/api/0274-PlayerMoveEvent-Improvements.patch (renamed from patches/api/0275-PlayerMoveEvent-Improvements.patch)0
-rw-r--r--patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch (renamed from patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch)0
-rw-r--r--patches/api/0276-Add-more-WanderingTrader-API.patch (renamed from patches/api/0277-Add-more-WanderingTrader-API.patch)0
-rw-r--r--patches/api/0277-Add-EntityBlockStorage-clearEntities.patch (renamed from patches/api/0278-Add-EntityBlockStorage-clearEntities.patch)0
-rw-r--r--patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch (renamed from patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch)0
-rw-r--r--patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch)0
-rw-r--r--patches/api/0280-Inventory-close.patch (renamed from patches/api/0281-Inventory-close.patch)0
-rw-r--r--patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch (renamed from patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch)0
-rw-r--r--patches/api/0282-Add-basic-Datapack-API.patch (renamed from patches/api/0283-Add-basic-Datapack-API.patch)12
-rw-r--r--patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch (renamed from patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch)0
-rw-r--r--patches/api/0284-ItemStack-repair-check-API.patch (renamed from patches/api/0285-ItemStack-repair-check-API.patch)0
-rw-r--r--patches/api/0285-More-Enchantment-API.patch (renamed from patches/api/0286-More-Enchantment-API.patch)0
-rw-r--r--patches/api/0286-Add-Mob-lookAt-API.patch (renamed from patches/api/0287-Add-Mob-lookAt-API.patch)0
-rw-r--r--patches/api/0287-ItemStack-editMeta.patch (renamed from patches/api/0288-ItemStack-editMeta.patch)0
-rw-r--r--patches/api/0288-Add-EntityInsideBlockEvent.patch (renamed from patches/api/0289-Add-EntityInsideBlockEvent.patch)0
-rw-r--r--patches/api/0289-Attributes-API-for-item-defaults.patch (renamed from patches/api/0290-Attributes-API-for-item-defaults.patch)0
-rw-r--r--patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch (renamed from patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch)0
-rw-r--r--patches/api/0291-More-Lidded-Block-API.patch (renamed from patches/api/0292-More-Lidded-Block-API.patch)0
-rw-r--r--patches/api/0292-Add-PlayerKickEvent-causes.patch (renamed from patches/api/0293-Add-PlayerKickEvent-causes.patch)0
-rw-r--r--patches/api/0293-Add-PufferFishStateChangeEvent.patch (renamed from patches/api/0294-Add-PufferFishStateChangeEvent.patch)0
-rw-r--r--patches/api/0294-Add-BellRevealRaiderEvent.patch (renamed from patches/api/0295-Add-BellRevealRaiderEvent.patch)0
-rw-r--r--patches/api/0295-Add-ElderGuardianAppearanceEvent.patch (renamed from patches/api/0296-Add-ElderGuardianAppearanceEvent.patch)0
-rw-r--r--patches/api/0296-Add-more-line-of-sight-methods.patch (renamed from patches/api/0297-Add-more-line-of-sight-methods.patch)0
-rw-r--r--patches/api/0297-Add-WaterBottleSplashEvent.patch (renamed from patches/api/0298-Add-WaterBottleSplashEvent.patch)0
-rw-r--r--patches/api/0298-Add-more-LimitedRegion-API.patch (renamed from patches/api/0299-Add-more-LimitedRegion-API.patch)0
-rw-r--r--patches/api/0299-Missing-Entity-Behavior-API.patch (renamed from patches/api/0300-Missing-Entity-Behavior-API.patch)0
-rw-r--r--patches/api/0300-Adds-PlayerArmSwingEvent.patch (renamed from patches/api/0301-Adds-PlayerArmSwingEvent.patch)0
-rw-r--r--patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch (renamed from patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch)0
-rw-r--r--patches/api/0302-fix-empty-array-elements-in-command-arguments.patch (renamed from patches/api/0303-fix-empty-array-elements-in-command-arguments.patch)0
-rw-r--r--patches/api/0303-Stinger-API.patch (renamed from patches/api/0304-Stinger-API.patch)0
-rw-r--r--patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch (renamed from patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch)0
-rw-r--r--patches/api/0305-Add-PlayerSetSpawnEvent.patch (renamed from patches/api/0306-Add-PlayerSetSpawnEvent.patch)0
-rw-r--r--patches/api/0306-Added-EntityDamageItemEvent.patch (renamed from patches/api/0307-Added-EntityDamageItemEvent.patch)0
-rw-r--r--patches/api/0307-Make-EntityUnleashEvent-cancellable.patch (renamed from patches/api/0308-Make-EntityUnleashEvent-cancellable.patch)0
-rw-r--r--patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch)0
-rw-r--r--patches/api/0309-Add-BlockBreakBlockEvent.patch (renamed from patches/api/0310-Add-BlockBreakBlockEvent.patch)0
-rw-r--r--patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch (renamed from patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch)0
-rw-r--r--patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch (renamed from patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch)0
-rw-r--r--patches/api/0312-More-CommandBlock-API.patch (renamed from patches/api/0313-More-CommandBlock-API.patch)0
-rw-r--r--patches/api/0313-Add-missing-team-sidebar-display-slots.patch (renamed from patches/api/0314-Add-missing-team-sidebar-display-slots.patch)0
-rw-r--r--patches/api/0314-add-back-EntityPortalExitEvent.patch (renamed from patches/api/0315-add-back-EntityPortalExitEvent.patch)0
-rw-r--r--patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch)0
-rw-r--r--patches/api/0316-Get-entity-default-attributes.patch (renamed from patches/api/0317-Get-entity-default-attributes.patch)0
-rw-r--r--patches/api/0317-Left-handed-API.patch (renamed from patches/api/0318-Left-handed-API.patch)0
-rw-r--r--patches/api/0318-Add-more-advancement-API.patch (renamed from patches/api/0319-Add-more-advancement-API.patch)0
-rw-r--r--patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch (renamed from patches/api/0320-Add-ItemFactory-getSpawnEgg-API.patch)0
-rw-r--r--patches/api/0320-Add-critical-damage-API.patch (renamed from patches/api/0321-Add-critical-damage-API.patch)0
-rw-r--r--patches/api/0321-Fix-issues-with-mob-conversion.patch (renamed from patches/api/0322-Fix-issues-with-mob-conversion.patch)0
-rw-r--r--patches/api/0322-Add-isCollidable-methods-to-various-places.patch (renamed from patches/api/0323-Add-isCollidable-methods-to-various-places.patch)0
-rw-r--r--patches/api/0323-Goat-ram-API.patch (renamed from patches/api/0324-Goat-ram-API.patch)0
-rw-r--r--patches/api/0324-Add-API-for-resetting-a-single-score.patch (renamed from patches/api/0325-Add-API-for-resetting-a-single-score.patch)0
-rw-r--r--patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/api/0326-Add-Raw-Byte-Entity-Serialization.patch)0
-rw-r--r--patches/api/0326-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/api/0327-Add-PlayerItemFrameChangeEvent.patch)0
-rw-r--r--patches/api/0327-Add-player-health-update-API.patch (renamed from patches/api/0328-Add-player-health-update-API.patch)0
-rw-r--r--patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch (renamed from patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch)8
-rw-r--r--patches/api/0329-Add-more-Campfire-API.patch (renamed from patches/api/0330-Add-more-Campfire-API.patch)0
-rw-r--r--patches/api/0330-Move-VehicleCollisionEvent-HandlerList-up.patch (renamed from patches/api/0331-Move-VehicleCollisionEvent-HandlerList-up.patch)0
-rw-r--r--patches/api/0331-Improve-scoreboard-entries.patch (renamed from patches/api/0332-Improve-scoreboard-entries.patch)0
-rw-r--r--patches/api/0332-Entity-powdered-snow-API.patch (renamed from patches/api/0333-Entity-powdered-snow-API.patch)0
-rw-r--r--patches/api/0333-Add-API-for-item-entity-health.patch (renamed from patches/api/0334-Add-API-for-item-entity-health.patch)0
-rw-r--r--patches/api/0334-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (renamed from patches/api/0335-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch)0
-rw-r--r--patches/api/0335-Bucketable-API.patch (renamed from patches/api/0336-Bucketable-API.patch)0
-rw-r--r--patches/api/0336-System-prop-for-default-config-comment-parsing.patch (renamed from patches/api/0337-System-prop-for-default-config-comment-parsing.patch)0
-rw-r--r--patches/api/0337-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (renamed from patches/api/0338-Expose-vanilla-BiomeProvider-from-WorldInfo.patch)0
-rw-r--r--patches/api/0338-Add-new-overload-to-PersistentDataContainer-has.patch (renamed from patches/api/0339-Add-new-overload-to-PersistentDataContainer-has.patch)0
-rw-r--r--patches/api/0339-Multiple-Entries-with-Scoreboards.patch (renamed from patches/api/0340-Multiple-Entries-with-Scoreboards.patch)0
-rw-r--r--patches/api/0340-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/api/0341-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch)0
-rw-r--r--patches/api/0341-Warn-on-strange-EventHandler-return-types.patch (renamed from patches/api/0342-Warn-on-strange-EventHandler-return-types.patch)0
-rw-r--r--patches/api/0342-Multi-Block-Change-API.patch (renamed from patches/api/0343-Multi-Block-Change-API.patch)0
-rw-r--r--patches/api/0343-Fix-NotePlayEvent.patch (renamed from patches/api/0344-Fix-NotePlayEvent.patch)0
-rw-r--r--patches/api/0344-Freeze-Tick-Lock-API.patch (renamed from patches/api/0345-Freeze-Tick-Lock-API.patch)0
-rw-r--r--patches/api/0345-Dolphin-API.patch (renamed from patches/api/0346-Dolphin-API.patch)0
-rw-r--r--patches/api/0346-More-PotionEffectType-API.patch (renamed from patches/api/0347-More-PotionEffectType-API.patch)0
-rw-r--r--patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch (renamed from patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch)8
-rw-r--r--patches/api/0348-Implement-regenerateChunk.patch (renamed from patches/api/0349-Implement-regenerateChunk.patch)0
-rw-r--r--patches/api/0349-Add-GameEvent-tags.patch (renamed from patches/api/0350-Add-GameEvent-tags.patch)0
-rw-r--r--patches/api/0350-Furnace-RecipesUsed-API.patch (renamed from patches/api/0351-Furnace-RecipesUsed-API.patch)0
-rw-r--r--patches/api/0351-Configurable-sculk-sensor-listener-range.patch (renamed from patches/api/0352-Configurable-sculk-sensor-listener-range.patch)0
-rw-r--r--patches/api/0352-Add-missing-block-data-mins-and-maxes.patch (renamed from patches/api/0353-Add-missing-block-data-mins-and-maxes.patch)0
-rw-r--r--patches/api/0353-Custom-Potion-Mixes.patch (renamed from patches/api/0354-Custom-Potion-Mixes.patch)8
-rw-r--r--patches/api/0354-Expose-furnace-minecart-push-values.patch (renamed from patches/api/0355-Expose-furnace-minecart-push-values.patch)0
-rw-r--r--patches/api/0355-More-Projectile-API.patch (renamed from patches/api/0356-More-Projectile-API.patch)0
-rw-r--r--patches/api/0356-Add-getComputedBiome-API.patch (renamed from patches/api/0357-Add-getComputedBiome-API.patch)0
-rw-r--r--patches/api/0357-Add-enchantWithLevels-API.patch (renamed from patches/api/0358-Add-enchantWithLevels-API.patch)0
-rw-r--r--patches/api/0358-Add-TameableDeathMessageEvent.patch (renamed from patches/api/0359-Add-TameableDeathMessageEvent.patch)0
-rw-r--r--patches/api/0359-Allow-to-change-the-podium-of-the-EnderDragon.patch (renamed from patches/api/0360-Allow-to-change-the-podium-of-the-EnderDragon.patch)0
-rw-r--r--patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch (renamed from patches/api/0361-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch)0
-rw-r--r--patches/api/0361-WorldCreator-keepSpawnLoaded.patch (renamed from patches/api/0362-WorldCreator-keepSpawnLoaded.patch)0
-rw-r--r--patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch (renamed from patches/api/0363-Add-EntityDyeEvent-and-CollarColorable-interface.patch)0
-rw-r--r--patches/api/0363-Add-PlayerStopUsingItemEvent.patch (renamed from patches/api/0364-Add-PlayerStopUsingItemEvent.patch)0
-rw-r--r--patches/api/0364-FallingBlock-auto-expire-setting.patch (renamed from patches/api/0365-FallingBlock-auto-expire-setting.patch)0
-rw-r--r--patches/api/0365-Keyed-Cat-Type.patch (renamed from patches/api/0366-Keyed-Cat-Type.patch)0
-rw-r--r--patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch (renamed from patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch)12
-rw-r--r--patches/api/0367-Add-WardenAngerChangeEvent.patch (renamed from patches/api/0368-Add-WardenAngerChangeEvent.patch)0
-rw-r--r--patches/api/0368-Nameable-Banner-API.patch (renamed from patches/api/0369-Nameable-Banner-API.patch)0
-rw-r--r--patches/api/0369-Add-Player-getFishHook.patch (renamed from patches/api/0370-Add-Player-getFishHook.patch)0
-rw-r--r--patches/api/0370-More-Teleport-API.patch (renamed from patches/api/0371-More-Teleport-API.patch)0
-rw-r--r--patches/api/0371-Add-EntityPortalReadyEvent.patch (renamed from patches/api/0372-Add-EntityPortalReadyEvent.patch)0
-rw-r--r--patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch (renamed from patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch)0
-rw-r--r--patches/api/0373-Collision-API.patch (renamed from patches/api/0374-Collision-API.patch)0
-rw-r--r--patches/api/0374-Block-Ticking-API.patch (renamed from patches/api/0375-Block-Ticking-API.patch)0
-rw-r--r--patches/api/0375-Add-NamespacedKey-biome-methods.patch (renamed from patches/api/0376-Add-NamespacedKey-biome-methods.patch)0
-rw-r--r--patches/api/0376-Also-load-resources-from-LibraryLoader.patch (renamed from patches/api/0377-Also-load-resources-from-LibraryLoader.patch)0
-rw-r--r--patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch (renamed from patches/api/0378-Added-byte-array-serialization-deserialization-for-P.patch)0
-rw-r--r--patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (renamed from patches/api/0379-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch)0
-rw-r--r--patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch (renamed from patches/api/0380-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch)0
-rw-r--r--patches/api/0380-Add-getDrops-to-BlockState.patch (renamed from patches/api/0381-Add-getDrops-to-BlockState.patch)0
-rw-r--r--patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch (renamed from patches/api/0382-Add-PlayerInventorySlotChangeEvent.patch)0
-rw-r--r--patches/api/0382-Elder-Guardian-appearance-API.patch (renamed from patches/api/0383-Elder-Guardian-appearance-API.patch)0
-rw-r--r--patches/api/0383-Allow-changing-bed-s-occupied-property.patch (renamed from patches/api/0384-Allow-changing-bed-s-occupied-property.patch)0
-rw-r--r--patches/api/0384-Add-EquipmentSlot-convenience-methods.patch (renamed from patches/api/0385-Add-EquipmentSlot-convenience-methods.patch)0
-rw-r--r--patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch (renamed from patches/api/0386-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch)0
-rw-r--r--patches/api/0386-Add-entity-knockback-API.patch (renamed from patches/api/0387-Add-entity-knockback-API.patch)0
-rw-r--r--patches/api/0387-Added-EntityToggleSitEvent.patch (renamed from patches/api/0388-Added-EntityToggleSitEvent.patch)0
-rw-r--r--patches/api/0388-Add-Moving-Piston-API.patch (renamed from patches/api/0389-Add-Moving-Piston-API.patch)0
-rw-r--r--patches/api/0389-Add-PrePlayerAttackEntityEvent.patch (renamed from patches/api/0390-Add-PrePlayerAttackEntityEvent.patch)0
-rw-r--r--patches/api/0390-Add-Player-Warden-Warning-API.patch (renamed from patches/api/0391-Add-Player-Warden-Warning-API.patch)0
-rw-r--r--patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch (renamed from patches/api/0392-More-vanilla-friendly-methods-to-update-trades.patch)0
-rw-r--r--patches/api/0392-Add-paper-dumplisteners-command.patch (renamed from patches/api/0393-Add-paper-dumplisteners-command.patch)0
-rw-r--r--patches/api/0393-ItemStack-damage-API.patch (renamed from patches/api/0394-ItemStack-damage-API.patch)0
-rw-r--r--patches/api/0394-Add-Tick-TemporalUnit.patch (renamed from patches/api/0395-Add-Tick-TemporalUnit.patch)0
-rw-r--r--patches/api/0395-Friction-API.patch (renamed from patches/api/0396-Friction-API.patch)0
-rw-r--r--patches/api/0396-Player-Entity-Tracking-Events.patch (renamed from patches/api/0397-Player-Entity-Tracking-Events.patch)0
-rw-r--r--patches/api/0397-Add-missing-Fluid-type.patch (renamed from patches/api/0398-Add-missing-Fluid-type.patch)0
-rw-r--r--patches/api/0398-fix-Instruments.patch (renamed from patches/api/0399-fix-Instruments.patch)0
-rw-r--r--patches/api/0399-Add-BlockLockCheckEvent.patch (renamed from patches/api/0400-Add-BlockLockCheckEvent.patch)0
-rw-r--r--patches/api/0400-Add-Sneaking-API-for-Entities.patch (renamed from patches/api/0401-Add-Sneaking-API-for-Entities.patch)0
-rw-r--r--patches/api/0401-Improve-PortalEvents.patch (renamed from patches/api/0402-Improve-PortalEvents.patch)0
-rw-r--r--patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch (renamed from patches/api/0403-Add-exploded-block-state-to-BlockExplodeEvent.patch)0
-rw-r--r--patches/api/0403-Flying-Fall-Damage-API.patch (renamed from patches/api/0404-Flying-Fall-Damage-API.patch)0
-rw-r--r--patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (renamed from patches/api/0405-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch)0
-rw-r--r--patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch (renamed from patches/api/0406-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch)0
-rw-r--r--patches/api/0406-Win-Screen-API.patch (renamed from patches/api/0407-Win-Screen-API.patch)0
-rw-r--r--patches/api/0407-Add-Entity-Body-Yaw-API.patch (renamed from patches/api/0408-Add-Entity-Body-Yaw-API.patch)0
-rw-r--r--patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch (renamed from patches/api/0409-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch)0
-rw-r--r--patches/api/0409-Add-EntityFertilizeEggEvent.patch (renamed from patches/api/0410-Add-EntityFertilizeEggEvent.patch)0
-rw-r--r--patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/api/0411-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/api/0411-Add-Shearable-API.patch (renamed from patches/api/0412-Add-Shearable-API.patch)0
-rw-r--r--patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch (renamed from patches/api/0413-Fix-SpawnEggMeta-get-setSpawnedType.patch)0
-rw-r--r--patches/api/0413-Add-Mob-Experience-reward-API.patch (renamed from patches/api/0414-Add-Mob-Experience-reward-API.patch)0
-rw-r--r--patches/api/0414-Expand-PlayerItemMendEvent.patch (renamed from patches/api/0415-Expand-PlayerItemMendEvent.patch)0
-rw-r--r--patches/api/0415-Add-transient-modifier-API.patch (renamed from patches/api/0416-Add-transient-modifier-API.patch)0
-rw-r--r--patches/api/0416-Add-API-for-waxed-signs.patch (renamed from patches/api/0417-Add-API-for-waxed-signs.patch)0
-rw-r--r--patches/api/0417-Properly-remove-the-experimental-smithing-inventory-.patch (renamed from patches/api/0418-Properly-remove-the-experimental-smithing-inventory-.patch)0
-rw-r--r--patches/server/0002-Remap-fixes.patch25
-rw-r--r--patches/server/0005-Paper-config-files.patch4
-rw-r--r--patches/server/0008-CB-fixes.patch6
-rw-r--r--patches/server/0009-MC-Utils.patch26
-rw-r--r--patches/server/0010-Adventure.patch240
-rw-r--r--patches/server/0011-Paper-command.patch6
-rw-r--r--patches/server/0013-Paper-Plugins.patch14
-rw-r--r--patches/server/0014-Timings-v2.patch56
-rw-r--r--patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch4
-rw-r--r--patches/server/0019-Rewrite-chunk-system.patch60
-rw-r--r--patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch8
-rw-r--r--patches/server/0028-Implement-Paper-VersionChecker.patch4
-rw-r--r--patches/server/0030-Player-affects-spawning-API.patch6
-rw-r--r--patches/server/0031-Further-improve-server-tick-loop.patch20
-rw-r--r--patches/server/0032-Only-refresh-abilities-if-needed.patch8
-rw-r--r--patches/server/0033-Entity-Origin-API.patch6
-rw-r--r--patches/server/0040-Optimize-explosions.patch4
-rw-r--r--patches/server/0045-Implement-PlayerLocaleChangeEvent.patch6
-rw-r--r--patches/server/0052-Ensure-commands-are-not-ran-async.patch20
-rw-r--r--patches/server/0054-Expose-server-CommandMap.patch4
-rw-r--r--patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch20
-rw-r--r--patches/server/0056-Player-Tab-List-and-Title-APIs.patch4
-rw-r--r--patches/server/0058-Add-velocity-warnings.patch6
-rw-r--r--patches/server/0059-Configurable-inter-world-teleportation-safety.patch4
-rw-r--r--patches/server/0060-Add-exception-reporting-event.patch20
-rw-r--r--patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch6
-rw-r--r--patches/server/0065-Complete-resource-pack-API.patch14
-rw-r--r--patches/server/0066-Default-loading-permissions.yml-before-plugins.patch6
-rw-r--r--patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch4
-rw-r--r--patches/server/0068-Remove-Metadata-on-reload.patch4
-rw-r--r--patches/server/0069-Handle-Item-Meta-Inconsistencies.patch46
-rw-r--r--patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch4
-rw-r--r--patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch4
-rw-r--r--patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch4
-rw-r--r--patches/server/0088-Configurable-Player-Collision.patch6
-rw-r--r--patches/server/0093-remove-null-possibility-for-getServer-singleton.patch6
-rw-r--r--patches/server/0098-Async-GameProfileCache-saving.patch4
-rw-r--r--patches/server/0105-Add-setting-for-proxy-online-mode-status.patch4
-rw-r--r--patches/server/0107-Configurable-packet-in-spam-threshold.patch4
-rw-r--r--patches/server/0109-Add-EntityZapEvent.patch4
-rw-r--r--patches/server/0112-Allow-Reloading-of-Command-Aliases.patch4
-rw-r--r--patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch4
-rw-r--r--patches/server/0114-Add-ProjectileCollideEvent.patch6
-rw-r--r--patches/server/0120-String-based-Action-Bar-API.patch4
-rw-r--r--patches/server/0121-Properly-fix-item-duplication-bug.patch6
-rw-r--r--patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch4
-rw-r--r--patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch4
-rw-r--r--patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch12
-rw-r--r--patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch8
-rw-r--r--patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch4
-rw-r--r--patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch4
-rw-r--r--patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch18
-rw-r--r--patches/server/0140-Add-UnknownCommandEvent.patch6
-rw-r--r--patches/server/0141-Basic-PlayerProfile-API.patch12
-rw-r--r--patches/server/0142-Shoulder-Entities-Release-API.patch4
-rw-r--r--patches/server/0145-Entity-fromMobSpawner.patch16
-rw-r--r--patches/server/0146-Improve-the-Saddle-API-for-Horses.patch8
-rw-r--r--patches/server/0147-Implement-ensureServerConversions-API.patch4
-rw-r--r--patches/server/0148-Implement-getI18NDisplayName.patch4
-rw-r--r--patches/server/0151-LivingEntity-setKiller.patch4
-rw-r--r--patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch12
-rw-r--r--patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch4
-rw-r--r--patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch4
-rw-r--r--patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch6
-rw-r--r--patches/server/0167-AsyncTabCompleteEvent.patch6
-rw-r--r--patches/server/0169-Ability-to-apply-mending-to-XP-API.patch4
-rw-r--r--patches/server/0175-Add-ArmorStand-Item-Meta.patch4
-rw-r--r--patches/server/0177-Tameable-getOwnerUniqueId-API.patch4
-rw-r--r--patches/server/0180-Implement-extended-PaperServerListPingEvent.patch4
-rw-r--r--patches/server/0182-Player.setPlayerProfile-API.patch16
-rw-r--r--patches/server/0183-getPlayerUniqueId-API.patch4
-rw-r--r--patches/server/0184-Improved-Async-Task-Scheduler.patch40
-rw-r--r--patches/server/0187-Flag-to-disable-the-channel-limit.patch6
-rw-r--r--patches/server/0188-Add-openSign-method-to-HumanEntity.patch4
-rw-r--r--patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch9
-rw-r--r--patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch4
-rw-r--r--patches/server/0201-ItemStack-getMaxItemUseDuration.patch6
-rw-r--r--patches/server/0204-Fix-CraftEntity-hashCode.patch4
-rw-r--r--patches/server/0207-Make-shield-blocking-delay-configurable.patch4
-rw-r--r--patches/server/0211-Expand-Explosions-API.patch4
-rw-r--r--patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch4
-rw-r--r--patches/server/0215-Implement-World.getEntity-UUID-API.patch6
-rw-r--r--patches/server/0216-InventoryCloseEvent-Reason-API.patch24
-rw-r--r--patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch4
-rw-r--r--patches/server/0226-Vanished-players-don-t-have-rights.patch4
-rw-r--r--patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch4
-rw-r--r--patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch10
-rw-r--r--patches/server/0249-Inventory-removeItemAnySlot.patch8
-rw-r--r--patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch4
-rw-r--r--patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch4
-rw-r--r--patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch4
-rw-r--r--patches/server/0253-Improve-death-events.patch8
-rw-r--r--patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch44
-rw-r--r--patches/server/0265-Add-LivingEntity-getTargetEntity.patch4
-rw-r--r--patches/server/0266-Add-sun-related-API.patch4
-rw-r--r--patches/server/0274-Reset-players-airTicks-on-respawn.patch4
-rw-r--r--patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch4
-rw-r--r--patches/server/0277-Optimize-World-Time-Updates.patch4
-rw-r--r--patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch4
-rw-r--r--patches/server/0282-Make-the-default-permission-message-configurable.patch4
-rw-r--r--patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch14
-rw-r--r--patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch4
-rw-r--r--patches/server/0294-Async-command-map-building.patch4
-rw-r--r--patches/server/0297-Limit-Client-Sign-length-more.patch4
-rw-r--r--patches/server/0301-Entity-getEntitySpawnReason.patch16
-rw-r--r--patches/server/0305-Server-Tick-Events.patch6
-rw-r--r--patches/server/0308-Add-Heightmap-API.patch4
-rw-r--r--patches/server/0309-Mob-Spawner-API-Enhancements.patch12
-rw-r--r--patches/server/0312-Implement-CraftBlockSoundGroup.patch4
-rw-r--r--patches/server/0313-Configurable-Keep-Spawn-Loaded-range-per-world.patch10
-rw-r--r--patches/server/0315-Expose-the-internal-current-tick.patch4
-rw-r--r--patches/server/0316-Fix-World-isChunkGenerated-calls.patch6
-rw-r--r--patches/server/0337-Entity-Activation-Range-2.0.patch8
-rw-r--r--patches/server/0343-Anti-Xray.patch10
-rw-r--r--patches/server/0345-Improve-Block-breakNaturally-API.patch6
-rw-r--r--patches/server/0350-Entity-Jump-API.patch4
-rw-r--r--patches/server/0359-Add-tick-times-API-and-mspt-command.patch14
-rw-r--r--patches/server/0360-Expose-MinecraftServer-isRunning.patch4
-rw-r--r--patches/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch4
-rw-r--r--patches/server/0371-Improved-Watchdog-Support.patch30
-rw-r--r--patches/server/0375-Prevent-opening-inventories-when-frozen.patch8
-rw-r--r--patches/server/0377-Implement-Player-Client-Options-API.patch6
-rw-r--r--patches/server/0385-Villager-Restocks-API.patch4
-rw-r--r--patches/server/0387-Expose-game-version.patch4
-rw-r--r--patches/server/0390-misc-debugging-dumps.patch12
-rw-r--r--patches/server/0391-Prevent-teleporting-dead-entities.patch4
-rw-r--r--patches/server/0393-Implement-Mob-Goal-API.patch4
-rw-r--r--patches/server/0394-Add-villager-reputation-API.patch6
-rw-r--r--patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch4
-rw-r--r--patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch8
-rw-r--r--patches/server/0409-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch4
-rw-r--r--patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch6
-rw-r--r--patches/server/0416-Improve-Arrow-API.patch4
-rw-r--r--patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch4
-rw-r--r--patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch24
-rw-r--r--patches/server/0425-Add-Plugin-Tickets-to-API-Chunk-Methods.patch22
-rw-r--r--patches/server/0426-incremental-chunk-and-player-saving.patch10
-rw-r--r--patches/server/0429-Convert-legacy-attributes-in-Item-Meta.patch4
-rw-r--r--patches/server/0432-Support-components-in-ItemMeta.patch14
-rw-r--r--patches/server/0434-Add-entity-liquid-API.patch4
-rw-r--r--patches/server/0437-Add-PrepareResultEvent.patch4
-rw-r--r--patches/server/0449-Brand-support.patch12
-rw-r--r--patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch (renamed from patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch)4
-rw-r--r--patches/server/0450-Add-setMaxPlayers-API.patch37
-rw-r--r--patches/server/0451-Don-t-require-FACING-data.patch (renamed from patches/server/0452-Don-t-require-FACING-data.patch)0
-rw-r--r--patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch (renamed from patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch)4
-rw-r--r--patches/server/0453-Add-moon-phase-API.patch (renamed from patches/server/0454-Add-moon-phase-API.patch)4
-rw-r--r--patches/server/0454-Prevent-headless-pistons-from-being-created.patch (renamed from patches/server/0455-Prevent-headless-pistons-from-being-created.patch)0
-rw-r--r--patches/server/0455-Add-BellRingEvent.patch (renamed from patches/server/0456-Add-BellRingEvent.patch)2
-rw-r--r--patches/server/0456-Add-zombie-targets-turtle-egg-config.patch (renamed from patches/server/0457-Add-zombie-targets-turtle-egg-config.patch)0
-rw-r--r--patches/server/0457-Buffer-joins-to-world.patch (renamed from patches/server/0458-Buffer-joins-to-world.patch)0
-rw-r--r--patches/server/0458-Eigencraft-redstone-implementation.patch (renamed from patches/server/0459-Eigencraft-redstone-implementation.patch)0
-rw-r--r--patches/server/0459-Fix-hex-colors-not-working-in-some-kick-messages.patch (renamed from patches/server/0460-Fix-hex-colors-not-working-in-some-kick-messages.patch)0
-rw-r--r--patches/server/0460-PortalCreateEvent-needs-to-know-its-entity.patch (renamed from patches/server/0461-PortalCreateEvent-needs-to-know-its-entity.patch)0
-rw-r--r--patches/server/0461-Add-more-Evoker-API.patch (renamed from patches/server/0463-Add-more-Evoker-API.patch)0
-rw-r--r--patches/server/0462-Add-methods-to-get-translation-keys.patch (renamed from patches/server/0464-Add-methods-to-get-translation-keys.patch)4
-rw-r--r--patches/server/0462-Fix-CraftTeam-null-check.patch19
-rw-r--r--patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch (renamed from patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch)4
-rw-r--r--patches/server/0464-Cache-block-data-strings.patch (renamed from patches/server/0466-Cache-block-data-strings.patch)4
-rw-r--r--patches/server/0465-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch (renamed from patches/server/0467-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch)10
-rw-r--r--patches/server/0466-Add-additional-open-container-api-to-HumanEntity.patch (renamed from patches/server/0468-Add-additional-open-container-api-to-HumanEntity.patch)4
-rw-r--r--patches/server/0467-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch (renamed from patches/server/0469-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch)0
-rw-r--r--patches/server/0468-Extend-block-drop-capture-to-capture-all-items-added.patch (renamed from patches/server/0470-Extend-block-drop-capture-to-capture-all-items-added.patch)0
-rw-r--r--patches/server/0469-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch (renamed from patches/server/0471-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch)6
-rw-r--r--patches/server/0470-Lazily-track-plugin-scoreboards-by-default.patch (renamed from patches/server/0472-Lazily-track-plugin-scoreboards-by-default.patch)18
-rw-r--r--patches/server/0471-Entity-isTicking.patch (renamed from patches/server/0473-Entity-isTicking.patch)6
-rw-r--r--patches/server/0472-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch (renamed from patches/server/0474-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch)4
-rw-r--r--patches/server/0473-Fix-Concurrency-issue-in-ShufflingList.patch (renamed from patches/server/0475-Fix-Concurrency-issue-in-ShufflingList.patch)0
-rw-r--r--patches/server/0474-Reset-Ender-Crystals-on-Dragon-Spawn.patch (renamed from patches/server/0476-Reset-Ender-Crystals-on-Dragon-Spawn.patch)0
-rw-r--r--patches/server/0475-Fix-for-large-move-vectors-crashing-server.patch (renamed from patches/server/0477-Fix-for-large-move-vectors-crashing-server.patch)2
-rw-r--r--patches/server/0476-Optimise-getType-calls.patch (renamed from patches/server/0478-Optimise-getType-calls.patch)12
-rw-r--r--patches/server/0477-Villager-resetOffers.patch (renamed from patches/server/0479-Villager-resetOffers.patch)0
-rw-r--r--patches/server/0478-Retain-block-place-order-when-capturing-blockstates.patch (renamed from patches/server/0480-Retain-block-place-order-when-capturing-blockstates.patch)0
-rw-r--r--patches/server/0479-Reduce-blockpos-allocation-from-pathfinding.patch (renamed from patches/server/0481-Reduce-blockpos-allocation-from-pathfinding.patch)0
-rw-r--r--patches/server/0480-Fix-item-locations-dropped-from-campfires.patch (renamed from patches/server/0482-Fix-item-locations-dropped-from-campfires.patch)0
-rw-r--r--patches/server/0481-Player-elytra-boost-API.patch (renamed from patches/server/0483-Player-elytra-boost-API.patch)10
-rw-r--r--patches/server/0482-Fixed-TileEntityBell-memory-leak.patch (renamed from patches/server/0484-Fixed-TileEntityBell-memory-leak.patch)0
-rw-r--r--patches/server/0483-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch (renamed from patches/server/0485-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch)0
-rw-r--r--patches/server/0484-Add-getOfflinePlayerIfCached-String.patch (renamed from patches/server/0486-Add-getOfflinePlayerIfCached-String.patch)10
-rw-r--r--patches/server/0485-Add-ignore-discounts-API.patch (renamed from patches/server/0487-Add-ignore-discounts-API.patch)0
-rw-r--r--patches/server/0486-Toggle-for-removing-existing-dragon.patch (renamed from patches/server/0488-Toggle-for-removing-existing-dragon.patch)0
-rw-r--r--patches/server/0487-Fix-client-lag-on-advancement-loading.patch (renamed from patches/server/0489-Fix-client-lag-on-advancement-loading.patch)4
-rw-r--r--patches/server/0488-Item-no-age-no-player-pickup.patch (renamed from patches/server/0490-Item-no-age-no-player-pickup.patch)0
-rw-r--r--patches/server/0489-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (renamed from patches/server/0491-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch)0
-rw-r--r--patches/server/0490-Beacon-API-custom-effect-ranges.patch (renamed from patches/server/0492-Beacon-API-custom-effect-ranges.patch)0
-rw-r--r--patches/server/0491-Add-API-for-quit-reason.patch (renamed from patches/server/0493-Add-API-for-quit-reason.patch)6
-rw-r--r--patches/server/0492-Add-Wandering-Trader-spawn-rate-config-options.patch (renamed from patches/server/0494-Add-Wandering-Trader-spawn-rate-config-options.patch)0
-rw-r--r--patches/server/0493-Expose-world-spawn-angle.patch (renamed from patches/server/0495-Expose-world-spawn-angle.patch)2
-rw-r--r--patches/server/0494-Add-Destroy-Speed-API.patch (renamed from patches/server/0496-Add-Destroy-Speed-API.patch)4
-rw-r--r--patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch (renamed from patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch)8
-rw-r--r--patches/server/0496-Add-LivingEntity-clearActiveItem.patch (renamed from patches/server/0498-Add-LivingEntity-clearActiveItem.patch)4
-rw-r--r--patches/server/0497-Add-PlayerItemCooldownEvent.patch (renamed from patches/server/0499-Add-PlayerItemCooldownEvent.patch)0
-rw-r--r--patches/server/0498-Significantly-improve-performance-of-the-end-generat.patch (renamed from patches/server/0500-Significantly-improve-performance-of-the-end-generat.patch)0
-rw-r--r--patches/server/0499-More-lightning-API.patch (renamed from patches/server/0501-More-lightning-API.patch)0
-rw-r--r--patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch (renamed from patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch)2
-rw-r--r--patches/server/0501-Added-missing-default-perms-for-commands.patch (renamed from patches/server/0503-Added-missing-default-perms-for-commands.patch)0
-rw-r--r--patches/server/0502-Add-PlayerShearBlockEvent.patch (renamed from patches/server/0504-Add-PlayerShearBlockEvent.patch)0
-rw-r--r--patches/server/0503-Fix-curing-zombie-villager-discount-exploit.patch (renamed from patches/server/0505-Fix-curing-zombie-villager-discount-exploit.patch)0
-rw-r--r--patches/server/0504-Limit-recipe-packets.patch (renamed from patches/server/0506-Limit-recipe-packets.patch)4
-rw-r--r--patches/server/0505-Fix-CraftSound-backwards-compatibility.patch (renamed from patches/server/0507-Fix-CraftSound-backwards-compatibility.patch)0
-rw-r--r--patches/server/0506-Player-Chunk-Load-Unload-Events.patch (renamed from patches/server/0508-Player-Chunk-Load-Unload-Events.patch)2
-rw-r--r--patches/server/0507-Optimize-Dynamic-get-Missing-Keys.patch (renamed from patches/server/0509-Optimize-Dynamic-get-Missing-Keys.patch)0
-rw-r--r--patches/server/0508-Expose-LivingEntity-hurt-direction.patch (renamed from patches/server/0510-Expose-LivingEntity-hurt-direction.patch)6
-rw-r--r--patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch (renamed from patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch)2
-rw-r--r--patches/server/0510-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch (renamed from patches/server/0512-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch)0
-rw-r--r--patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch (renamed from patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch)2
-rw-r--r--patches/server/0512-Implement-TargetHitEvent.patch (renamed from patches/server/0514-Implement-TargetHitEvent.patch)0
-rw-r--r--patches/server/0513-MC-4-Fix-item-position-desync.patch (renamed from patches/server/0515-MC-4-Fix-item-position-desync.patch)2
-rw-r--r--patches/server/0514-Additional-Block-Material-API-s.patch (renamed from patches/server/0516-Additional-Block-Material-API-s.patch)4
-rw-r--r--patches/server/0515-Fix-harming-potion-dupe.patch (renamed from patches/server/0517-Fix-harming-potion-dupe.patch)0
-rw-r--r--patches/server/0516-Implement-API-to-get-Material-from-Boats-and-Minecar.patch (renamed from patches/server/0518-Implement-API-to-get-Material-from-Boats-and-Minecar.patch)0
-rw-r--r--patches/server/0517-Cache-burn-durations.patch (renamed from patches/server/0519-Cache-burn-durations.patch)0
-rw-r--r--patches/server/0518-Allow-disabling-mob-spawner-spawn-egg-transformation.patch (renamed from patches/server/0520-Allow-disabling-mob-spawner-spawn-egg-transformation.patch)0
-rw-r--r--patches/server/0519-Fix-Not-a-string-Map-Conversion-spam.patch (renamed from patches/server/0521-Fix-Not-a-string-Map-Conversion-spam.patch)0
-rw-r--r--patches/server/0520-Implement-PlayerFlowerPotManipulateEvent.patch (renamed from patches/server/0522-Implement-PlayerFlowerPotManipulateEvent.patch)0
-rw-r--r--patches/server/0521-Fix-interact-event-not-being-called-in-adventure.patch (renamed from patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch)6
-rw-r--r--patches/server/0522-Zombie-API-breaking-doors.patch (renamed from patches/server/0524-Zombie-API-breaking-doors.patch)0
-rw-r--r--patches/server/0523-Fix-nerfed-slime-when-splitting.patch (renamed from patches/server/0525-Fix-nerfed-slime-when-splitting.patch)0
-rw-r--r--patches/server/0524-Add-EntityLoadCrossbowEvent.patch (renamed from patches/server/0526-Add-EntityLoadCrossbowEvent.patch)0
-rw-r--r--patches/server/0525-Added-WorldGameRuleChangeEvent.patch (renamed from patches/server/0527-Added-WorldGameRuleChangeEvent.patch)6
-rw-r--r--patches/server/0526-Added-ServerResourcesReloadedEvent.patch (renamed from patches/server/0528-Added-ServerResourcesReloadedEvent.patch)6
-rw-r--r--patches/server/0527-Added-world-settings-for-mobs-picking-up-loot.patch (renamed from patches/server/0529-Added-world-settings-for-mobs-picking-up-loot.patch)0
-rw-r--r--patches/server/0528-Implemented-BlockFailedDispenseEvent.patch (renamed from patches/server/0530-Implemented-BlockFailedDispenseEvent.patch)4
-rw-r--r--patches/server/0529-Added-PlayerLecternPageChangeEvent.patch (renamed from patches/server/0531-Added-PlayerLecternPageChangeEvent.patch)0
-rw-r--r--patches/server/0530-Added-PlayerLoomPatternSelectEvent.patch (renamed from patches/server/0532-Added-PlayerLoomPatternSelectEvent.patch)0
-rw-r--r--patches/server/0531-Configurable-door-breaking-difficulty.patch (renamed from patches/server/0533-Configurable-door-breaking-difficulty.patch)0
-rw-r--r--patches/server/0532-Empty-commands-shall-not-be-dispatched.patch (renamed from patches/server/0534-Empty-commands-shall-not-be-dispatched.patch)0
-rw-r--r--patches/server/0533-Implement-API-to-expose-exact-interaction-point.patch (renamed from patches/server/0535-Implement-API-to-expose-exact-interaction-point.patch)4
-rw-r--r--patches/server/0534-Remove-stale-POIs.patch (renamed from patches/server/0536-Remove-stale-POIs.patch)0
-rw-r--r--patches/server/0535-Fix-villager-boat-exploit.patch (renamed from patches/server/0537-Fix-villager-boat-exploit.patch)2
-rw-r--r--patches/server/0536-Add-sendOpLevel-API.patch (renamed from patches/server/0538-Add-sendOpLevel-API.patch)6
-rw-r--r--patches/server/0537-TODO-Registry-Modification-API.patch (renamed from patches/server/0539-TODO-Registry-Modification-API.patch)0
-rw-r--r--patches/server/0538-Add-StructuresLocateEvent.patch (renamed from patches/server/0540-Add-StructuresLocateEvent.patch)0
-rw-r--r--patches/server/0539-Collision-option-for-requiring-a-player-participant.patch (renamed from patches/server/0541-Collision-option-for-requiring-a-player-participant.patch)2
-rw-r--r--patches/server/0540-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch (renamed from patches/server/0542-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch)0
-rw-r--r--patches/server/0541-Return-chat-component-with-empty-text-instead-of-thr.patch (renamed from patches/server/0543-Return-chat-component-with-empty-text-instead-of-thr.patch)0
-rw-r--r--patches/server/0542-Make-schedule-command-per-world.patch (renamed from patches/server/0544-Make-schedule-command-per-world.patch)0
-rw-r--r--patches/server/0543-Configurable-max-leash-distance.patch (renamed from patches/server/0545-Configurable-max-leash-distance.patch)0
-rw-r--r--patches/server/0544-Implement-BlockPreDispenseEvent.patch (renamed from patches/server/0546-Implement-BlockPreDispenseEvent.patch)4
-rw-r--r--patches/server/0545-Added-firing-of-PlayerChangeBeaconEffectEvent.patch (renamed from patches/server/0547-Added-firing-of-PlayerChangeBeaconEffectEvent.patch)0
-rw-r--r--patches/server/0546-Add-toggle-for-always-placing-the-dragon-egg.patch (renamed from patches/server/0548-Add-toggle-for-always-placing-the-dragon-egg.patch)0
-rw-r--r--patches/server/0547-Added-PlayerStonecutterRecipeSelectEvent.patch (renamed from patches/server/0549-Added-PlayerStonecutterRecipeSelectEvent.patch)0
-rw-r--r--patches/server/0548-Add-dropLeash-variable-to-EntityUnleashEvent.patch (renamed from patches/server/0550-Add-dropLeash-variable-to-EntityUnleashEvent.patch)4
-rw-r--r--patches/server/0549-Reset-shield-blocking-on-dimension-change.patch (renamed from patches/server/0551-Reset-shield-blocking-on-dimension-change.patch)2
-rw-r--r--patches/server/0550-add-DragonEggFormEvent.patch (renamed from patches/server/0552-add-DragonEggFormEvent.patch)0
-rw-r--r--patches/server/0551-EntityMoveEvent.patch (renamed from patches/server/0553-EntityMoveEvent.patch)4
-rw-r--r--patches/server/0552-added-option-to-disable-pathfinding-updates-on-block.patch (renamed from patches/server/0554-added-option-to-disable-pathfinding-updates-on-block.patch)0
-rw-r--r--patches/server/0553-Inline-shift-direction-fields.patch (renamed from patches/server/0555-Inline-shift-direction-fields.patch)0
-rw-r--r--patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch (renamed from patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch)2
-rw-r--r--patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch (renamed from patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch)8
-rw-r--r--patches/server/0556-living-entity-allow-attribute-registration.patch (renamed from patches/server/0558-living-entity-allow-attribute-registration.patch)4
-rw-r--r--patches/server/0557-fix-dead-slime-setSize-invincibility.patch (renamed from patches/server/0559-fix-dead-slime-setSize-invincibility.patch)0
-rw-r--r--patches/server/0558-Merchant-getRecipes-should-return-an-immutable-list.patch (renamed from patches/server/0560-Merchant-getRecipes-should-return-an-immutable-list.patch)0
-rw-r--r--patches/server/0559-Expose-Tracked-Players.patch (renamed from patches/server/0561-Expose-Tracked-Players.patch)4
-rw-r--r--patches/server/0560-Remove-streams-from-SensorNearest.patch (renamed from patches/server/0562-Remove-streams-from-SensorNearest.patch)0
-rw-r--r--patches/server/0561-Throw-proper-exception-on-empty-JsonList-file.patch (renamed from patches/server/0563-Throw-proper-exception-on-empty-JsonList-file.patch)0
-rw-r--r--patches/server/0562-Improve-ServerGUI.patch (renamed from patches/server/0564-Improve-ServerGUI.patch)0
-rw-r--r--patches/server/0563-fix-converting-txt-to-json-file.patch (renamed from patches/server/0565-fix-converting-txt-to-json-file.patch)2
-rw-r--r--patches/server/0564-Add-worldborder-events.patch (renamed from patches/server/0566-Add-worldborder-events.patch)0
-rw-r--r--patches/server/0565-added-PlayerNameEntityEvent.patch (renamed from patches/server/0567-added-PlayerNameEntityEvent.patch)0
-rw-r--r--patches/server/0566-Prevent-grindstones-from-overstacking-items.patch (renamed from patches/server/0568-Prevent-grindstones-from-overstacking-items.patch)0
-rw-r--r--patches/server/0567-Add-recipe-to-cook-events.patch (renamed from patches/server/0569-Add-recipe-to-cook-events.patch)0
-rw-r--r--patches/server/0568-Add-Block-isValidTool.patch (renamed from patches/server/0570-Add-Block-isValidTool.patch)4
-rw-r--r--patches/server/0569-Allow-using-signs-inside-spawn-protection.patch (renamed from patches/server/0571-Allow-using-signs-inside-spawn-protection.patch)4
-rw-r--r--patches/server/0570-Expand-world-key-API.patch (renamed from patches/server/0572-Expand-world-key-API.patch)18
-rw-r--r--patches/server/0571-Add-fast-alternative-constructor-for-Rotations.patch (renamed from patches/server/0573-Add-fast-alternative-constructor-for-Rotations.patch)0
-rw-r--r--patches/server/0572-Item-Rarity-API.patch (renamed from patches/server/0574-Item-Rarity-API.patch)4
-rw-r--r--patches/server/0573-Drop-carried-item-when-player-has-disconnected.patch (renamed from patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch)2
-rw-r--r--patches/server/0574-forced-whitelist-use-configurable-kick-message.patch (renamed from patches/server/0576-forced-whitelist-use-configurable-kick-message.patch)4
-rw-r--r--patches/server/0575-Don-t-ignore-result-of-PlayerEditBookEvent.patch (renamed from patches/server/0577-Don-t-ignore-result-of-PlayerEditBookEvent.patch)2
-rw-r--r--patches/server/0576-Expose-protocol-version.patch (renamed from patches/server/0578-Expose-protocol-version.patch)4
-rw-r--r--patches/server/0577-Enhance-console-tab-completions-for-brigadier-comman.patch (renamed from patches/server/0579-Enhance-console-tab-completions-for-brigadier-comman.patch)0
-rw-r--r--patches/server/0578-Fix-PlayerItemConsumeEvent-cancelling-properly.patch (renamed from patches/server/0580-Fix-PlayerItemConsumeEvent-cancelling-properly.patch)0
-rw-r--r--patches/server/0579-Add-bypass-host-check.patch (renamed from patches/server/0581-Add-bypass-host-check.patch)0
-rw-r--r--patches/server/0580-Set-area-affect-cloud-rotation.patch (renamed from patches/server/0582-Set-area-affect-cloud-rotation.patch)4
-rw-r--r--patches/server/0581-add-isDeeplySleeping-to-HumanEntity.patch (renamed from patches/server/0583-add-isDeeplySleeping-to-HumanEntity.patch)2
-rw-r--r--patches/server/0582-add-consumeFuel-to-FurnaceBurnEvent.patch (renamed from patches/server/0584-add-consumeFuel-to-FurnaceBurnEvent.patch)0
-rw-r--r--patches/server/0583-add-get-set-drop-chance-to-EntityEquipment.patch (renamed from patches/server/0585-add-get-set-drop-chance-to-EntityEquipment.patch)4
-rw-r--r--patches/server/0584-fix-PigZombieAngerEvent-cancellation.patch (renamed from patches/server/0586-fix-PigZombieAngerEvent-cancellation.patch)0
-rw-r--r--patches/server/0585-fix-PlayerItemHeldEvent-firing-twice.patch (renamed from patches/server/0587-fix-PlayerItemHeldEvent-firing-twice.patch)4
-rw-r--r--patches/server/0586-Added-PlayerDeepSleepEvent.patch (renamed from patches/server/0588-Added-PlayerDeepSleepEvent.patch)0
-rw-r--r--patches/server/0587-More-World-API.patch (renamed from patches/server/0589-More-World-API.patch)6
-rw-r--r--patches/server/0588-Added-PlayerBedFailEnterEvent.patch (renamed from patches/server/0590-Added-PlayerBedFailEnterEvent.patch)0
-rw-r--r--patches/server/0589-Entity-load-save-limit-per-chunk.patch (renamed from patches/server/0591-Entity-load-save-limit-per-chunk.patch)0
-rw-r--r--patches/server/0590-Implement-methods-to-convert-between-Component-and-B.patch (renamed from patches/server/0592-Implement-methods-to-convert-between-Component-and-B.patch)0
-rw-r--r--patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch (renamed from patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch)2
-rw-r--r--patches/server/0592-Introduce-beacon-activation-deactivation-events.patch (renamed from patches/server/0594-Introduce-beacon-activation-deactivation-events.patch)0
-rw-r--r--patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch (renamed from patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch)6
-rw-r--r--patches/server/0594-Add-Channel-initialization-listeners.patch (renamed from patches/server/0596-Add-Channel-initialization-listeners.patch)0
-rw-r--r--patches/server/0595-Send-empty-commands-if-tab-completion-is-disabled.patch (renamed from patches/server/0597-Send-empty-commands-if-tab-completion-is-disabled.patch)0
-rw-r--r--patches/server/0596-Add-more-WanderingTrader-API.patch (renamed from patches/server/0598-Add-more-WanderingTrader-API.patch)0
-rw-r--r--patches/server/0597-Add-EntityBlockStorage-clearEntities.patch (renamed from patches/server/0599-Add-EntityBlockStorage-clearEntities.patch)0
-rw-r--r--patches/server/0598-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch (renamed from patches/server/0600-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch)0
-rw-r--r--patches/server/0599-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/server/0601-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch)0
-rw-r--r--patches/server/0600-Inventory-close.patch (renamed from patches/server/0602-Inventory-close.patch)2
-rw-r--r--patches/server/0601-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch (renamed from patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch)0
-rw-r--r--patches/server/0602-Fix-CraftPotionBrewer-cache.patch (renamed from patches/server/0604-Fix-CraftPotionBrewer-cache.patch)0
-rw-r--r--patches/server/0603-Add-basic-Datapack-API.patch (renamed from patches/server/0605-Add-basic-Datapack-API.patch)8
-rw-r--r--patches/server/0604-Add-environment-variable-to-disable-server-gui.patch (renamed from patches/server/0606-Add-environment-variable-to-disable-server-gui.patch)0
-rw-r--r--patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch (renamed from patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch)14
-rw-r--r--patches/server/0606-ItemStack-repair-check-API.patch (renamed from patches/server/0608-ItemStack-repair-check-API.patch)4
-rw-r--r--patches/server/0607-More-Enchantment-API.patch (renamed from patches/server/0609-More-Enchantment-API.patch)4
-rw-r--r--patches/server/0608-Move-range-check-for-block-placing-up.patch (renamed from patches/server/0610-Move-range-check-for-block-placing-up.patch)4
-rw-r--r--patches/server/0609-Fix-and-optimise-world-force-upgrading.patch (renamed from patches/server/0611-Fix-and-optimise-world-force-upgrading.patch)19
-rw-r--r--patches/server/0610-Add-Mob-lookAt-API.patch (renamed from patches/server/0612-Add-Mob-lookAt-API.patch)0
-rw-r--r--patches/server/0611-Add-Unix-domain-socket-support.patch (renamed from patches/server/0613-Add-Unix-domain-socket-support.patch)4
-rw-r--r--patches/server/0612-Add-EntityInsideBlockEvent.patch (renamed from patches/server/0614-Add-EntityInsideBlockEvent.patch)0
-rw-r--r--patches/server/0613-Attributes-API-for-item-defaults.patch (renamed from patches/server/0615-Attributes-API-for-item-defaults.patch)4
-rw-r--r--patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch (renamed from patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch)6
-rw-r--r--patches/server/0615-More-Lidded-Block-API.patch (renamed from patches/server/0617-More-Lidded-Block-API.patch)0
-rw-r--r--patches/server/0616-Limit-item-frame-cursors-on-maps.patch (renamed from patches/server/0618-Limit-item-frame-cursors-on-maps.patch)0
-rw-r--r--patches/server/0617-Add-PlayerKickEvent-causes.patch (renamed from patches/server/0619-Add-PlayerKickEvent-causes.patch)56
-rw-r--r--patches/server/0618-Add-PufferFishStateChangeEvent.patch (renamed from patches/server/0620-Add-PufferFishStateChangeEvent.patch)0
-rw-r--r--patches/server/0619-Fix-PlayerBucketEmptyEvent-result-itemstack.patch (renamed from patches/server/0621-Fix-PlayerBucketEmptyEvent-result-itemstack.patch)0
-rw-r--r--patches/server/0620-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch (renamed from patches/server/0622-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch)0
-rw-r--r--patches/server/0621-Add-option-to-fix-items-merging-through-walls.patch (renamed from patches/server/0623-Add-option-to-fix-items-merging-through-walls.patch)0
-rw-r--r--patches/server/0622-Add-BellRevealRaiderEvent.patch (renamed from patches/server/0624-Add-BellRevealRaiderEvent.patch)0
-rw-r--r--patches/server/0623-Fix-invulnerable-end-crystals.patch (renamed from patches/server/0625-Fix-invulnerable-end-crystals.patch)0
-rw-r--r--patches/server/0624-Add-ElderGuardianAppearanceEvent.patch (renamed from patches/server/0626-Add-ElderGuardianAppearanceEvent.patch)0
-rw-r--r--patches/server/0625-Fix-dangerous-end-portal-logic.patch (renamed from patches/server/0627-Fix-dangerous-end-portal-logic.patch)2
-rw-r--r--patches/server/0626-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch (renamed from patches/server/0628-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch)0
-rw-r--r--patches/server/0627-Make-item-validations-configurable.patch (renamed from patches/server/0629-Make-item-validations-configurable.patch)8
-rw-r--r--patches/server/0628-Line-Of-Sight-Changes.patch (renamed from patches/server/0630-Line-Of-Sight-Changes.patch)24
-rw-r--r--patches/server/0629-add-per-world-spawn-limits.patch (renamed from patches/server/0631-add-per-world-spawn-limits.patch)4
-rw-r--r--patches/server/0630-Fix-potions-splash-events.patch (renamed from patches/server/0632-Fix-potions-splash-events.patch)0
-rw-r--r--patches/server/0631-Add-more-LimitedRegion-API.patch (renamed from patches/server/0633-Add-more-LimitedRegion-API.patch)4
-rw-r--r--patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch (renamed from patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch)2
-rw-r--r--patches/server/0633-Missing-Entity-Behavior-API.patch (renamed from patches/server/0635-Missing-Entity-Behavior-API.patch)20
-rw-r--r--patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch (renamed from patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch)2
-rw-r--r--patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch (renamed from patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch)4
-rw-r--r--patches/server/0636-Use-getChunkIfLoadedImmediately-in-places.patch (renamed from patches/server/0638-Use-getChunkIfLoadedImmediately-in-places.patch)0
-rw-r--r--patches/server/0637-Fix-commands-from-signs-not-firing-command-events.patch (renamed from patches/server/0639-Fix-commands-from-signs-not-firing-command-events.patch)0
-rw-r--r--patches/server/0638-Adds-PlayerArmSwingEvent.patch (renamed from patches/server/0640-Adds-PlayerArmSwingEvent.patch)4
-rw-r--r--patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch (renamed from patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch)10
-rw-r--r--patches/server/0640-Add-config-for-mobs-immune-to-default-effects.patch (renamed from patches/server/0642-Add-config-for-mobs-immune-to-default-effects.patch)0
-rw-r--r--patches/server/0641-Fix-incorrect-message-for-outdated-client.patch (renamed from patches/server/0643-Fix-incorrect-message-for-outdated-client.patch)0
-rw-r--r--patches/server/0642-Don-t-apply-cramming-damage-to-players.patch (renamed from patches/server/0644-Don-t-apply-cramming-damage-to-players.patch)2
-rw-r--r--patches/server/0643-Rate-options-and-timings-for-sensors-and-behaviors.patch (renamed from patches/server/0645-Rate-options-and-timings-for-sensors-and-behaviors.patch)0
-rw-r--r--patches/server/0644-Add-a-bunch-of-missing-forceDrop-toggles.patch (renamed from patches/server/0646-Add-a-bunch-of-missing-forceDrop-toggles.patch)0
-rw-r--r--patches/server/0645-Stinger-API.patch (renamed from patches/server/0647-Stinger-API.patch)4
-rw-r--r--patches/server/0646-Fix-incosistency-issue-with-empty-map-items-in-CB.patch (renamed from patches/server/0648-Fix-incosistency-issue-with-empty-map-items-in-CB.patch)0
-rw-r--r--patches/server/0647-Add-System.out-err-catcher.patch (renamed from patches/server/0649-Add-System.out-err-catcher.patch)4
-rw-r--r--patches/server/0648-Fix-test-not-bootstrapping.patch (renamed from patches/server/0650-Fix-test-not-bootstrapping.patch)0
-rw-r--r--patches/server/0649-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch (renamed from patches/server/0651-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch)0
-rw-r--r--patches/server/0650-Improve-boat-collision-performance.patch (renamed from patches/server/0652-Improve-boat-collision-performance.patch)0
-rw-r--r--patches/server/0651-Prevent-AFK-kick-while-watching-end-credits.patch (renamed from patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch)2
-rw-r--r--patches/server/0652-Allow-skipping-writing-of-comments-to-server.propert.patch (renamed from patches/server/0654-Allow-skipping-writing-of-comments-to-server.propert.patch)0
-rw-r--r--patches/server/0653-Add-PlayerSetSpawnEvent.patch (renamed from patches/server/0655-Add-PlayerSetSpawnEvent.patch)8
-rw-r--r--patches/server/0654-Make-hoppers-respect-inventory-max-stack-size.patch (renamed from patches/server/0656-Make-hoppers-respect-inventory-max-stack-size.patch)0
-rw-r--r--patches/server/0655-Optimize-entity-tracker-passenger-checks.patch (renamed from patches/server/0657-Optimize-entity-tracker-passenger-checks.patch)0
-rw-r--r--patches/server/0656-Config-option-for-Piglins-guarding-chests.patch (renamed from patches/server/0658-Config-option-for-Piglins-guarding-chests.patch)0
-rw-r--r--patches/server/0657-Added-EntityDamageItemEvent.patch (renamed from patches/server/0659-Added-EntityDamageItemEvent.patch)0
-rw-r--r--patches/server/0658-Optimize-indirect-passenger-iteration.patch (renamed from patches/server/0660-Optimize-indirect-passenger-iteration.patch)2
-rw-r--r--patches/server/0659-Configurable-item-frame-map-cursor-update-interval.patch (renamed from patches/server/0661-Configurable-item-frame-map-cursor-update-interval.patch)0
-rw-r--r--patches/server/0660-Make-EntityUnleashEvent-cancellable.patch (renamed from patches/server/0662-Make-EntityUnleashEvent-cancellable.patch)0
-rw-r--r--patches/server/0661-Clear-bucket-NBT-after-dispense.patch (renamed from patches/server/0663-Clear-bucket-NBT-after-dispense.patch)0
-rw-r--r--patches/server/0662-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/server/0664-Change-EnderEye-target-without-changing-other-things.patch)0
-rw-r--r--patches/server/0663-Add-BlockBreakBlockEvent.patch (renamed from patches/server/0665-Add-BlockBreakBlockEvent.patch)0
-rw-r--r--patches/server/0664-Option-to-prevent-NBT-copy-in-smithing-recipes.patch (renamed from patches/server/0666-Option-to-prevent-NBT-copy-in-smithing-recipes.patch)0
-rw-r--r--patches/server/0665-More-CommandBlock-API.patch (renamed from patches/server/0667-More-CommandBlock-API.patch)0
-rw-r--r--patches/server/0666-Add-missing-team-sidebar-display-slots.patch (renamed from patches/server/0668-Add-missing-team-sidebar-display-slots.patch)0
-rw-r--r--patches/server/0667-Add-back-EntityPortalExitEvent.patch (renamed from patches/server/0669-Add-back-EntityPortalExitEvent.patch)2
-rw-r--r--patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch)4
-rw-r--r--patches/server/0669-Get-entity-default-attributes.patch (renamed from patches/server/0671-Get-entity-default-attributes.patch)4
-rw-r--r--patches/server/0670-Left-handed-API.patch (renamed from patches/server/0672-Left-handed-API.patch)0
-rw-r--r--patches/server/0671-Add-more-advancement-API.patch (renamed from patches/server/0673-Add-more-advancement-API.patch)0
-rw-r--r--patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch (renamed from patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch)4
-rw-r--r--patches/server/0673-Add-critical-damage-API.patch (renamed from patches/server/0675-Add-critical-damage-API.patch)4
-rw-r--r--patches/server/0674-Fix-issues-with-mob-conversion.patch (renamed from patches/server/0676-Fix-issues-with-mob-conversion.patch)0
-rw-r--r--patches/server/0675-Add-isCollidable-methods-to-various-places.patch (renamed from patches/server/0677-Add-isCollidable-methods-to-various-places.patch)16
-rw-r--r--patches/server/0676-Goat-ram-API.patch (renamed from patches/server/0678-Goat-ram-API.patch)0
-rw-r--r--patches/server/0677-Add-API-for-resetting-a-single-score.patch (renamed from patches/server/0679-Add-API-for-resetting-a-single-score.patch)0
-rw-r--r--patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch)10
-rw-r--r--patches/server/0679-Vanilla-command-permission-fixes.patch (renamed from patches/server/0681-Vanilla-command-permission-fixes.patch)2
-rw-r--r--patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (renamed from patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch)2
-rw-r--r--patches/server/0681-Fix-GameProfileCache-concurrency.patch (renamed from patches/server/0683-Fix-GameProfileCache-concurrency.patch)0
-rw-r--r--patches/server/0682-Improve-and-expand-AsyncCatcher.patch (renamed from patches/server/0684-Improve-and-expand-AsyncCatcher.patch)8
-rw-r--r--patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch (renamed from patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch)12
-rw-r--r--patches/server/0684-Sanitize-ResourceLocation-error-logging.patch (renamed from patches/server/0686-Sanitize-ResourceLocation-error-logging.patch)0
-rw-r--r--patches/server/0685-Allow-controlled-flushing-for-network-manager.patch (renamed from patches/server/0687-Allow-controlled-flushing-for-network-manager.patch)0
-rw-r--r--patches/server/0686-Optimise-general-POI-access.patch (renamed from patches/server/0688-Optimise-general-POI-access.patch)0
-rw-r--r--patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch (renamed from patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch)2
-rw-r--r--patches/server/0688-Optimise-chunk-tick-iteration.patch (renamed from patches/server/0690-Optimise-chunk-tick-iteration.patch)0
-rw-r--r--patches/server/0689-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/0691-Execute-chunk-tasks-mid-tick.patch)6
-rw-r--r--patches/server/0690-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/0692-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)0
-rw-r--r--patches/server/0691-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/0693-Custom-table-implementation-for-blockstate-state-loo.patch)0
-rw-r--r--patches/server/0692-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/0694-Detail-more-information-in-watchdog-dumps.patch)2
-rw-r--r--patches/server/0693-Manually-inline-methods-in-BlockPosition.patch (renamed from patches/server/0695-Manually-inline-methods-in-BlockPosition.patch)0
-rw-r--r--patches/server/0694-Distance-manager-tick-timings.patch (renamed from patches/server/0696-Distance-manager-tick-timings.patch)0
-rw-r--r--patches/server/0695-Name-craft-scheduler-threads-according-to-the-plugin.patch (renamed from patches/server/0697-Name-craft-scheduler-threads-according-to-the-plugin.patch)0
-rw-r--r--patches/server/0696-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (renamed from patches/server/0698-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch)0
-rw-r--r--patches/server/0697-Add-packet-limiter-config.patch (renamed from patches/server/0699-Add-packet-limiter-config.patch)0
-rw-r--r--patches/server/0698-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (renamed from patches/server/0700-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch)0
-rw-r--r--patches/server/0699-Consolidate-flush-calls-for-entity-tracker-packets.patch (renamed from patches/server/0701-Consolidate-flush-calls-for-entity-tracker-packets.patch)0
-rw-r--r--patches/server/0700-Don-t-lookup-fluid-state-when-raytracing.patch (renamed from patches/server/0702-Don-t-lookup-fluid-state-when-raytracing.patch)0
-rw-r--r--patches/server/0701-Time-scoreboard-search.patch (renamed from patches/server/0703-Time-scoreboard-search.patch)2
-rw-r--r--patches/server/0702-Send-full-pos-packets-for-hard-colliding-entities.patch (renamed from patches/server/0704-Send-full-pos-packets-for-hard-colliding-entities.patch)0
-rw-r--r--patches/server/0703-Do-not-run-raytrace-logic-for-AIR.patch (renamed from patches/server/0705-Do-not-run-raytrace-logic-for-AIR.patch)0
-rw-r--r--patches/server/0704-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/server/0706-Oprimise-map-impl-for-tracked-players.patch)0
-rw-r--r--patches/server/0705-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/server/0707-Optimise-BlockSoil-nearby-water-lookup.patch)0
-rw-r--r--patches/server/0706-Optimise-random-block-ticking.patch (renamed from patches/server/0708-Optimise-random-block-ticking.patch)0
-rw-r--r--patches/server/0707-Optimise-non-flush-packet-sending.patch (renamed from patches/server/0709-Optimise-non-flush-packet-sending.patch)0
-rw-r--r--patches/server/0708-Optimise-nearby-player-lookups.patch (renamed from patches/server/0710-Optimise-nearby-player-lookups.patch)0
-rw-r--r--patches/server/0709-Remove-streams-for-villager-AI.patch (renamed from patches/server/0711-Remove-streams-for-villager-AI.patch)0
-rw-r--r--patches/server/0710-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/0712-Use-Velocity-compression-and-cipher-natives.patch)0
-rw-r--r--patches/server/0711-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch (renamed from patches/server/0713-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch)0
-rw-r--r--patches/server/0712-Fix-Bukkit-NamespacedKey-shenanigans.patch (renamed from patches/server/0714-Fix-Bukkit-NamespacedKey-shenanigans.patch)0
-rw-r--r--patches/server/0713-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/server/0715-Fix-merchant-inventory-not-closing-on-entity-removal.patch)0
-rw-r--r--patches/server/0714-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/server/0716-Check-requirement-before-suggesting-root-nodes.patch)0
-rw-r--r--patches/server/0715-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/server/0717-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch)2
-rw-r--r--patches/server/0716-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/server/0718-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch)0
-rw-r--r--patches/server/0717-Ensure-valid-vehicle-status.patch (renamed from patches/server/0719-Ensure-valid-vehicle-status.patch)2
-rw-r--r--patches/server/0718-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/server/0720-Prevent-softlocked-end-exit-portal-generation.patch)0
-rw-r--r--patches/server/0719-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/server/0721-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch)0
-rw-r--r--patches/server/0720-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/server/0722-Don-t-log-debug-logging-being-disabled.patch)0
-rw-r--r--patches/server/0721-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/server/0723-fix-various-menus-with-empty-level-accesses.patch)0
-rw-r--r--patches/server/0722-Preserve-overstacked-loot.patch (renamed from patches/server/0724-Preserve-overstacked-loot.patch)0
-rw-r--r--patches/server/0723-Update-head-rotation-in-missing-places.patch (renamed from patches/server/0725-Update-head-rotation-in-missing-places.patch)2
-rw-r--r--patches/server/0724-prevent-unintended-light-block-manipulation.patch (renamed from patches/server/0726-prevent-unintended-light-block-manipulation.patch)0
-rw-r--r--patches/server/0725-Fix-CraftCriteria-defaults-map.patch (renamed from patches/server/0727-Fix-CraftCriteria-defaults-map.patch)0
-rw-r--r--patches/server/0726-Fix-upstreams-block-state-factories.patch (renamed from patches/server/0728-Fix-upstreams-block-state-factories.patch)0
-rw-r--r--patches/server/0727-Add-config-option-for-logging-player-ip-addresses.patch (renamed from patches/server/0729-Add-config-option-for-logging-player-ip-addresses.patch)2
-rw-r--r--patches/server/0728-Configurable-feature-seeds.patch (renamed from patches/server/0730-Configurable-feature-seeds.patch)0
-rw-r--r--patches/server/0729-VanillaCommandWrapper-didnt-account-for-entity-sende.patch (renamed from patches/server/0731-VanillaCommandWrapper-didnt-account-for-entity-sende.patch)2
-rw-r--r--patches/server/0730-Add-root-admin-user-detection.patch (renamed from patches/server/0732-Add-root-admin-user-detection.patch)0
-rw-r--r--patches/server/0731-Always-allow-item-changing-in-Fireball.patch (renamed from patches/server/0733-Always-allow-item-changing-in-Fireball.patch)0
-rw-r--r--patches/server/0732-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/server/0734-don-t-attempt-to-teleport-dead-entities.patch)2
-rw-r--r--patches/server/0733-Prevent-excessive-velocity-through-repeated-crits.patch (renamed from patches/server/0735-Prevent-excessive-velocity-through-repeated-crits.patch)0
-rw-r--r--patches/server/0734-Remove-client-side-code-using-deprecated-for-removal.patch (renamed from patches/server/0736-Remove-client-side-code-using-deprecated-for-removal.patch)0
-rw-r--r--patches/server/0735-Fix-removing-recipes-from-RecipeIterator.patch (renamed from patches/server/0737-Fix-removing-recipes-from-RecipeIterator.patch)13
-rw-r--r--patches/server/0736-Prevent-sending-oversized-item-data-in-equipment-and.patch (renamed from patches/server/0738-Prevent-sending-oversized-item-data-in-equipment-and.patch)0
-rw-r--r--patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch (renamed from patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch)4
-rw-r--r--patches/server/0738-Fix-Spigot-growth-modifiers.patch (renamed from patches/server/0740-Fix-Spigot-growth-modifiers.patch)0
-rw-r--r--patches/server/0739-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/server/0741-Prevent-ContainerOpenersCounter-openCount-from-going.patch)0
-rw-r--r--patches/server/0740-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/server/0742-Add-PlayerItemFrameChangeEvent.patch)0
-rw-r--r--patches/server/0741-Add-player-health-update-API.patch (renamed from patches/server/0743-Add-player-health-update-API.patch)6
-rw-r--r--patches/server/0742-Optimize-HashMapPalette.patch (renamed from patches/server/0744-Optimize-HashMapPalette.patch)0
-rw-r--r--patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch (renamed from patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch)4
-rw-r--r--patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch (renamed from patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch)6
-rw-r--r--patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch)4
-rw-r--r--patches/server/0746-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (renamed from patches/server/0748-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch)0
-rw-r--r--patches/server/0747-Add-more-Campfire-API.patch (renamed from patches/server/0749-Add-more-Campfire-API.patch)0
-rw-r--r--patches/server/0748-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (renamed from patches/server/0750-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch)0
-rw-r--r--patches/server/0749-Fix-tripwire-state-inconsistency.patch (renamed from patches/server/0751-Fix-tripwire-state-inconsistency.patch)0
-rw-r--r--patches/server/0750-Forward-CraftEntity-in-teleport-command.patch (renamed from patches/server/0752-Forward-CraftEntity-in-teleport-command.patch)2
-rw-r--r--patches/server/0751-Improve-scoreboard-entries.patch (renamed from patches/server/0753-Improve-scoreboard-entries.patch)24
-rw-r--r--patches/server/0752-Entity-powdered-snow-API.patch (renamed from patches/server/0754-Entity-powdered-snow-API.patch)4
-rw-r--r--patches/server/0753-Add-API-for-item-entity-health.patch (renamed from patches/server/0755-Add-API-for-item-entity-health.patch)0
-rw-r--r--patches/server/0754-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/0756-Fix-entity-type-tags-suggestions-in-selectors.patch)0
-rw-r--r--patches/server/0755-Configurable-max-block-light-for-monster-spawning.patch (renamed from patches/server/0757-Configurable-max-block-light-for-monster-spawning.patch)0
-rw-r--r--patches/server/0756-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (renamed from patches/server/0758-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch)0
-rw-r--r--patches/server/0757-Load-effect-amplifiers-greater-than-127-correctly.patch (renamed from patches/server/0759-Load-effect-amplifiers-greater-than-127-correctly.patch)0
-rw-r--r--patches/server/0758-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (renamed from patches/server/0760-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch)0
-rw-r--r--patches/server/0759-Fix-bees-aging-inside-hives.patch (renamed from patches/server/0761-Fix-bees-aging-inside-hives.patch)0
-rw-r--r--patches/server/0760-Bucketable-API.patch (renamed from patches/server/0762-Bucketable-API.patch)0
-rw-r--r--patches/server/0761-Validate-usernames.patch (renamed from patches/server/0763-Validate-usernames.patch)2
-rw-r--r--patches/server/0762-Make-water-animal-spawn-height-configurable.patch (renamed from patches/server/0764-Make-water-animal-spawn-height-configurable.patch)0
-rw-r--r--patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (renamed from patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch)12
-rw-r--r--patches/server/0764-Add-config-option-for-worlds-affected-by-time-cmd.patch (renamed from patches/server/0766-Add-config-option-for-worlds-affected-by-time-cmd.patch)0
-rw-r--r--patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch (renamed from patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch)4
-rw-r--r--patches/server/0766-Multiple-Entries-with-Scoreboards.patch (renamed from patches/server/0768-Multiple-Entries-with-Scoreboards.patch)10
-rw-r--r--patches/server/0767-Reset-placed-block-on-exception.patch (renamed from patches/server/0769-Reset-placed-block-on-exception.patch)0
-rw-r--r--patches/server/0768-Add-configurable-height-for-slime-spawn.patch (renamed from patches/server/0770-Add-configurable-height-for-slime-spawn.patch)0
-rw-r--r--patches/server/0769-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/server/0771-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch)0
-rw-r--r--patches/server/0770-Fix-xp-reward-for-baby-zombies.patch (renamed from patches/server/0772-Fix-xp-reward-for-baby-zombies.patch)0
-rw-r--r--patches/server/0771-Kick-on-main-for-illegal-chat.patch (renamed from patches/server/0773-Kick-on-main-for-illegal-chat.patch)8
-rw-r--r--patches/server/0772-Multi-Block-Change-API-Implementation.patch (renamed from patches/server/0774-Multi-Block-Change-API-Implementation.patch)4
-rw-r--r--patches/server/0773-Fix-NotePlayEvent.patch (renamed from patches/server/0775-Fix-NotePlayEvent.patch)0
-rw-r--r--patches/server/0774-Freeze-Tick-Lock-API.patch (renamed from patches/server/0776-Freeze-Tick-Lock-API.patch)4
-rw-r--r--patches/server/0775-Dolphin-API.patch (renamed from patches/server/0777-Dolphin-API.patch)0
-rw-r--r--patches/server/0776-More-PotionEffectType-API.patch (renamed from patches/server/0778-More-PotionEffectType-API.patch)0
-rw-r--r--patches/server/0777-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (renamed from patches/server/0779-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch)0
-rw-r--r--patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch (renamed from patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch)6
-rw-r--r--patches/server/0779-Add-missing-structure-set-seed-configs.patch (renamed from patches/server/0781-Add-missing-structure-set-seed-configs.patch)0
-rw-r--r--patches/server/0780-Implement-regenerateChunk.patch (renamed from patches/server/0782-Implement-regenerateChunk.patch)6
-rw-r--r--patches/server/0781-Fix-cancelled-powdered-snow-bucket-placement.patch (renamed from patches/server/0783-Fix-cancelled-powdered-snow-bucket-placement.patch)0
-rw-r--r--patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (renamed from patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch)8
-rw-r--r--patches/server/0783-Add-GameEvent-tags.patch (renamed from patches/server/0785-Add-GameEvent-tags.patch)6
-rw-r--r--patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (renamed from patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch)6
-rw-r--r--patches/server/0785-Furnace-RecipesUsed-API.patch (renamed from patches/server/0787-Furnace-RecipesUsed-API.patch)0
-rw-r--r--patches/server/0786-Configurable-sculk-sensor-listener-range.patch (renamed from patches/server/0788-Configurable-sculk-sensor-listener-range.patch)0
-rw-r--r--patches/server/0787-Add-missing-block-data-mins-and-maxes.patch (renamed from patches/server/0789-Add-missing-block-data-mins-and-maxes.patch)0
-rw-r--r--patches/server/0788-Option-to-have-default-CustomSpawners-in-custom-worl.patch (renamed from patches/server/0790-Option-to-have-default-CustomSpawners-in-custom-worl.patch)4
-rw-r--r--patches/server/0789-Put-world-into-worldlist-before-initing-the-world.patch (renamed from patches/server/0791-Put-world-into-worldlist-before-initing-the-world.patch)8
-rw-r--r--patches/server/0790-Fix-Entity-Position-Desync.patch (renamed from patches/server/0792-Fix-Entity-Position-Desync.patch)0
-rw-r--r--patches/server/0791-Custom-Potion-Mixes.patch (renamed from patches/server/0793-Custom-Potion-Mixes.patch)16
-rw-r--r--patches/server/0792-Force-close-world-loading-screen.patch (renamed from patches/server/0794-Force-close-world-loading-screen.patch)2
-rw-r--r--patches/server/0793-Fix-falling-block-spawn-methods.patch (renamed from patches/server/0795-Fix-falling-block-spawn-methods.patch)18
-rw-r--r--patches/server/0794-Expose-furnace-minecart-push-values.patch (renamed from patches/server/0796-Expose-furnace-minecart-push-values.patch)0
-rw-r--r--patches/server/0795-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (renamed from patches/server/0797-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch)0
-rw-r--r--patches/server/0796-More-Projectile-API.patch (renamed from patches/server/0798-More-Projectile-API.patch)30
-rw-r--r--patches/server/0797-Fix-swamp-hut-cat-generation-deadlock.patch (renamed from patches/server/0799-Fix-swamp-hut-cat-generation-deadlock.patch)0
-rw-r--r--patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch (renamed from patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch)2
-rw-r--r--patches/server/0799-Implement-getComputedBiome-API.patch (renamed from patches/server/0801-Implement-getComputedBiome-API.patch)10
-rw-r--r--patches/server/0800-Make-some-itemstacks-nonnull.patch (renamed from patches/server/0802-Make-some-itemstacks-nonnull.patch)4
-rw-r--r--patches/server/0801-Implement-enchantWithLevels-API.patch (renamed from patches/server/0803-Implement-enchantWithLevels-API.patch)14
-rw-r--r--patches/server/0802-Fix-saving-in-unloadWorld.patch (renamed from patches/server/0804-Fix-saving-in-unloadWorld.patch)4
-rw-r--r--patches/server/0803-Buffer-OOB-setBlock-calls.patch (renamed from patches/server/0805-Buffer-OOB-setBlock-calls.patch)0
-rw-r--r--patches/server/0804-Add-TameableDeathMessageEvent.patch (renamed from patches/server/0806-Add-TameableDeathMessageEvent.patch)0
-rw-r--r--patches/server/0805-Fix-new-block-data-for-EntityChangeBlockEvent.patch (renamed from patches/server/0807-Fix-new-block-data-for-EntityChangeBlockEvent.patch)0
-rw-r--r--patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch (renamed from patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch)2
-rw-r--r--patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch (renamed from patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch)2
-rw-r--r--patches/server/0808-Guard-against-invalid-entity-positions.patch (renamed from patches/server/0810-Guard-against-invalid-entity-positions.patch)2
-rw-r--r--patches/server/0809-cache-resource-keys.patch (renamed from patches/server/0811-cache-resource-keys.patch)4
-rw-r--r--patches/server/0810-Allow-to-change-the-podium-for-the-EnderDragon.patch (renamed from patches/server/0812-Allow-to-change-the-podium-for-the-EnderDragon.patch)0
-rw-r--r--patches/server/0811-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch (renamed from patches/server/0813-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch)0
-rw-r--r--patches/server/0812-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch (renamed from patches/server/0814-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch)0
-rw-r--r--patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch (renamed from patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch)4
-rw-r--r--patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch (renamed from patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch)2
-rw-r--r--patches/server/0815-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch (renamed from patches/server/0817-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch)0
-rw-r--r--patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch (renamed from patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch)10
-rw-r--r--patches/server/0817-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch (renamed from patches/server/0819-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch)0
-rw-r--r--patches/server/0818-WorldCreator-keepSpawnLoaded.patch (renamed from patches/server/0820-WorldCreator-keepSpawnLoaded.patch)4
-rw-r--r--patches/server/0819-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (renamed from patches/server/0821-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch)0
-rw-r--r--patches/server/0820-Add-EntityDyeEvent-and-CollarColorable-interface.patch (renamed from patches/server/0822-Add-EntityDyeEvent-and-CollarColorable-interface.patch)0
-rw-r--r--patches/server/0821-Fire-CauldronLevelChange-on-initial-fill.patch (renamed from patches/server/0823-Fire-CauldronLevelChange-on-initial-fill.patch)0
-rw-r--r--patches/server/0822-fix-powder-snow-cauldrons-not-turning-to-water.patch (renamed from patches/server/0824-fix-powder-snow-cauldrons-not-turning-to-water.patch)0
-rw-r--r--patches/server/0823-Add-PlayerStopUsingItemEvent.patch (renamed from patches/server/0825-Add-PlayerStopUsingItemEvent.patch)0
-rw-r--r--patches/server/0824-FallingBlock-auto-expire-setting.patch (renamed from patches/server/0826-FallingBlock-auto-expire-setting.patch)0
-rw-r--r--patches/server/0825-Don-t-tick-markers.patch (renamed from patches/server/0827-Don-t-tick-markers.patch)2
-rw-r--r--patches/server/0826-Do-not-accept-invalid-client-settings.patch (renamed from patches/server/0828-Do-not-accept-invalid-client-settings.patch)4
-rw-r--r--patches/server/0827-Add-support-for-Proxy-Protocol.patch (renamed from patches/server/0829-Add-support-for-Proxy-Protocol.patch)0
-rw-r--r--patches/server/0828-Fix-OfflinePlayer-getBedSpawnLocation.patch (renamed from patches/server/0830-Fix-OfflinePlayer-getBedSpawnLocation.patch)0
-rw-r--r--patches/server/0829-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch (renamed from patches/server/0831-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch)0
-rw-r--r--patches/server/0830-Sanitize-Sent-BlockEntity-NBT.patch (renamed from patches/server/0832-Sanitize-Sent-BlockEntity-NBT.patch)0
-rw-r--r--patches/server/0831-Disable-component-selector-resolving-in-books-by-def.patch (renamed from patches/server/0833-Disable-component-selector-resolving-in-books-by-def.patch)0
-rw-r--r--patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch (renamed from patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch)2
-rw-r--r--patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch (renamed from patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch)16
-rw-r--r--patches/server/0834-Add-Alternate-Current-redstone-implementation.patch (renamed from patches/server/0836-Add-Alternate-Current-redstone-implementation.patch)0
-rw-r--r--patches/server/0835-Dont-resent-entity-on-art-update.patch (renamed from patches/server/0837-Dont-resent-entity-on-art-update.patch)0
-rw-r--r--patches/server/0836-Add-WardenAngerChangeEvent.patch (renamed from patches/server/0838-Add-WardenAngerChangeEvent.patch)0
-rw-r--r--patches/server/0837-Add-option-for-strict-advancement-dimension-checks.patch (renamed from patches/server/0839-Add-option-for-strict-advancement-dimension-checks.patch)2
-rw-r--r--patches/server/0838-Add-missing-important-BlockStateListPopulator-method.patch (renamed from patches/server/0840-Add-missing-important-BlockStateListPopulator-method.patch)0
-rw-r--r--patches/server/0839-Nameable-Banner-API.patch (renamed from patches/server/0841-Nameable-Banner-API.patch)0
-rw-r--r--patches/server/0840-Don-t-broadcast-messages-to-command-blocks.patch (renamed from patches/server/0842-Don-t-broadcast-messages-to-command-blocks.patch)4
-rw-r--r--patches/server/0841-Prevent-empty-items-from-being-added-to-world.patch (renamed from patches/server/0843-Prevent-empty-items-from-being-added-to-world.patch)0
-rw-r--r--patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch (renamed from patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch)2
-rw-r--r--patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch (renamed from patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch)4
-rw-r--r--patches/server/0844-Add-Player-getFishHook.patch (renamed from patches/server/0846-Add-Player-getFishHook.patch)2
-rw-r--r--patches/server/0845-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch (renamed from patches/server/0847-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch)0
-rw-r--r--patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch (renamed from patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch)2
-rw-r--r--patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch (renamed from patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch)4
-rw-r--r--patches/server/0848-Fix-Bee-flower-NPE.patch (renamed from patches/server/0850-Fix-Bee-flower-NPE.patch)0
-rw-r--r--patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch (renamed from patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch)4
-rw-r--r--patches/server/0850-More-Teleport-API.patch (renamed from patches/server/0852-More-Teleport-API.patch)16
-rw-r--r--patches/server/0851-Add-EntityPortalReadyEvent.patch (renamed from patches/server/0853-Add-EntityPortalReadyEvent.patch)2
-rw-r--r--patches/server/0852-Don-t-use-level-random-in-entity-constructors.patch (renamed from patches/server/0854-Don-t-use-level-random-in-entity-constructors.patch)0
-rw-r--r--patches/server/0853-Send-block-entities-after-destroy-prediction.patch (renamed from patches/server/0855-Send-block-entities-after-destroy-prediction.patch)4
-rw-r--r--patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch (renamed from patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch)16
-rw-r--r--patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch (renamed from patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch)4
-rw-r--r--patches/server/0856-Add-missing-BlockFadeEvents.patch (renamed from patches/server/0858-Add-missing-BlockFadeEvents.patch)0
-rw-r--r--patches/server/0857-Collision-API.patch (renamed from patches/server/0859-Collision-API.patch)8
-rw-r--r--patches/server/0858-Fix-suggest-command-message-for-brigadier-syntax-exc.patch (renamed from patches/server/0860-Fix-suggest-command-message-for-brigadier-syntax-exc.patch)0
-rw-r--r--patches/server/0859-Remove-invalid-signature-login-stacktrace.patch (renamed from patches/server/0861-Remove-invalid-signature-login-stacktrace.patch)4
-rw-r--r--patches/server/0860-Block-Ticking-API.patch (renamed from patches/server/0862-Block-Ticking-API.patch)4
-rw-r--r--patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch (renamed from patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch)2
-rw-r--r--patches/server/0862-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch (renamed from patches/server/0864-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch)0
-rw-r--r--patches/server/0863-Add-NamespacedKey-biome-methods.patch (renamed from patches/server/0865-Add-NamespacedKey-biome-methods.patch)4
-rw-r--r--patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch (renamed from patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch)4
-rw-r--r--patches/server/0865-Stop-large-look-changes-from-crashing-the-server.patch (renamed from patches/server/0867-Stop-large-look-changes-from-crashing-the-server.patch)0
-rw-r--r--patches/server/0866-Fire-EntityChangeBlockEvent-in-more-places.patch (renamed from patches/server/0868-Fire-EntityChangeBlockEvent-in-more-places.patch)0
-rw-r--r--patches/server/0867-Missing-eating-regain-reason.patch (renamed from patches/server/0869-Missing-eating-regain-reason.patch)0
-rw-r--r--patches/server/0868-Missing-effect-cause.patch (renamed from patches/server/0870-Missing-effect-cause.patch)0
-rw-r--r--patches/server/0869-Added-byte-array-serialization-deserialization-for-P.patch (renamed from patches/server/0871-Added-byte-array-serialization-deserialization-for-P.patch)2
-rw-r--r--patches/server/0870-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (renamed from patches/server/0872-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch)10
-rw-r--r--patches/server/0871-Call-BlockPhysicsEvent-more-often.patch (renamed from patches/server/0873-Call-BlockPhysicsEvent-more-often.patch)0
-rw-r--r--patches/server/0872-Configurable-chat-thread-limit.patch (renamed from patches/server/0874-Configurable-chat-thread-limit.patch)0
-rw-r--r--patches/server/0873-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch (renamed from patches/server/0875-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch)0
-rw-r--r--patches/server/0874-fix-Jigsaw-block-kicking-user.patch (renamed from patches/server/0876-fix-Jigsaw-block-kicking-user.patch)0
-rw-r--r--patches/server/0875-use-BlockFormEvent-for-mud-converting-into-clay.patch (renamed from patches/server/0877-use-BlockFormEvent-for-mud-converting-into-clay.patch)0
-rw-r--r--patches/server/0876-Add-getDrops-to-BlockState.patch (renamed from patches/server/0878-Add-getDrops-to-BlockState.patch)4
-rw-r--r--patches/server/0877-Fix-a-bunch-of-vanilla-bugs.patch (renamed from patches/server/0879-Fix-a-bunch-of-vanilla-bugs.patch)0
-rw-r--r--patches/server/0878-Remove-unnecessary-onTrackingStart-during-navigation.patch (renamed from patches/server/0880-Remove-unnecessary-onTrackingStart-during-navigation.patch)0
-rw-r--r--patches/server/0879-Fix-custom-piglin-loved-items.patch (renamed from patches/server/0881-Fix-custom-piglin-loved-items.patch)0
-rw-r--r--patches/server/0880-EntityPickupItemEvent-fixes.patch (renamed from patches/server/0882-EntityPickupItemEvent-fixes.patch)0
-rw-r--r--patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch (renamed from patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch)2
-rw-r--r--patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch (renamed from patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch)2
-rw-r--r--patches/server/0883-Elder-Guardian-appearance-API.patch (renamed from patches/server/0885-Elder-Guardian-appearance-API.patch)4
-rw-r--r--patches/server/0884-Allow-changing-bed-s-occupied-property.patch (renamed from patches/server/0886-Allow-changing-bed-s-occupied-property.patch)0
-rw-r--r--patches/server/0885-Add-entity-knockback-API.patch (renamed from patches/server/0887-Add-entity-knockback-API.patch)4
-rw-r--r--patches/server/0886-Detect-headless-JREs.patch (renamed from patches/server/0888-Detect-headless-JREs.patch)0
-rw-r--r--patches/server/0887-fixed-entity-vehicle-collision-event-not-called.patch (renamed from patches/server/0889-fixed-entity-vehicle-collision-event-not-called.patch)0
-rw-r--r--patches/server/0888-optimized-dirt-and-snow-spreading.patch (renamed from patches/server/0890-optimized-dirt-and-snow-spreading.patch)0
-rw-r--r--patches/server/0889-Added-EntityToggleSitEvent.patch (renamed from patches/server/0891-Added-EntityToggleSitEvent.patch)0
-rw-r--r--patches/server/0890-Add-fire-tick-delay-option.patch (renamed from patches/server/0892-Add-fire-tick-delay-option.patch)0
-rw-r--r--patches/server/0891-Add-Moving-Piston-API.patch (renamed from patches/server/0893-Add-Moving-Piston-API.patch)0
-rw-r--r--patches/server/0892-Ignore-impossible-spawn-tick.patch (renamed from patches/server/0894-Ignore-impossible-spawn-tick.patch)2
-rw-r--r--patches/server/0893-Track-projectile-source-for-fireworks-from-dispenser.patch (renamed from patches/server/0895-Track-projectile-source-for-fireworks-from-dispenser.patch)0
-rw-r--r--patches/server/0894-Fix-EntityArgument-suggestion-permissions-to-align-w.patch (renamed from patches/server/0896-Fix-EntityArgument-suggestion-permissions-to-align-w.patch)0
-rw-r--r--patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch (renamed from patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch)2
-rw-r--r--patches/server/0896-Prevent-compass-from-loading-chunks.patch (renamed from patches/server/0898-Prevent-compass-from-loading-chunks.patch)0
-rw-r--r--patches/server/0897-Add-PrePlayerAttackEntityEvent.patch (renamed from patches/server/0899-Add-PrePlayerAttackEntityEvent.patch)0
-rw-r--r--patches/server/0898-ensure-reset-EnderDragon-boss-event-name.patch (renamed from patches/server/0900-ensure-reset-EnderDragon-boss-event-name.patch)0
-rw-r--r--patches/server/0899-fix-MC-252817-green-map-markers-do-not-disappear.patch (renamed from patches/server/0901-fix-MC-252817-green-map-markers-do-not-disappear.patch)0
-rw-r--r--patches/server/0900-Add-Player-Warden-Warning-API.patch (renamed from patches/server/0902-Add-Player-Warden-Warning-API.patch)4
-rw-r--r--patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch (renamed from patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch)4
-rw-r--r--patches/server/0902-Add-paper-dumplisteners-command.patch (renamed from patches/server/0904-Add-paper-dumplisteners-command.patch)0
-rw-r--r--patches/server/0903-check-global-player-list-where-appropriate.patch (renamed from patches/server/0905-check-global-player-list-where-appropriate.patch)0
-rw-r--r--patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch (renamed from patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch)2
-rw-r--r--patches/server/0905-ItemStack-damage-API.patch (renamed from patches/server/0907-ItemStack-damage-API.patch)4
-rw-r--r--patches/server/0906-Friction-API.patch (renamed from patches/server/0908-Friction-API.patch)4
-rw-r--r--patches/server/0907-Ability-to-control-player-s-insomnia-and-phantoms.patch (renamed from patches/server/0909-Ability-to-control-player-s-insomnia-and-phantoms.patch)0
-rw-r--r--patches/server/0908-Fix-player-kick-on-shutdown.patch (renamed from patches/server/0910-Fix-player-kick-on-shutdown.patch)0
-rw-r--r--patches/server/0909-Sync-offhand-slot-in-menus.patch (renamed from patches/server/0911-Sync-offhand-slot-in-menus.patch)2
-rw-r--r--patches/server/0910-Player-Entity-Tracking-Events.patch (renamed from patches/server/0912-Player-Entity-Tracking-Events.patch)2
-rw-r--r--patches/server/0911-Limit-pet-look-distance.patch (renamed from patches/server/0913-Limit-pet-look-distance.patch)0
-rw-r--r--patches/server/0912-Properly-resend-entities.patch (renamed from patches/server/0914-Properly-resend-entities.patch)6
-rw-r--r--patches/server/0913-Fixes-and-additions-to-the-SpawnReason-API.patch (renamed from patches/server/0915-Fixes-and-additions-to-the-SpawnReason-API.patch)0
-rw-r--r--patches/server/0914-fix-Instruments.patch53
-rw-r--r--patches/server/0915-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch (renamed from patches/server/0917-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch)0
-rw-r--r--patches/server/0916-Fix-inconsistencies-in-dispense-events-regarding-sta.patch (renamed from patches/server/0918-Fix-inconsistencies-in-dispense-events-regarding-sta.patch)0
-rw-r--r--patches/server/0916-fix-Instruments.patch85
-rw-r--r--patches/server/0917-Improve-logging-and-errors.patch (renamed from patches/server/0919-Improve-logging-and-errors.patch)2
-rw-r--r--patches/server/0918-Add-BlockLockCheckEvent.patch (renamed from patches/server/0920-Add-BlockLockCheckEvent.patch)0
-rw-r--r--patches/server/0919-Add-Sneaking-API-for-Entities.patch (renamed from patches/server/0921-Add-Sneaking-API-for-Entities.patch)4
-rw-r--r--patches/server/0920-Improve-PortalEvents.patch (renamed from patches/server/0922-Improve-PortalEvents.patch)2
-rw-r--r--patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch (renamed from patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch)2
-rw-r--r--patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch (renamed from patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch)4
-rw-r--r--patches/server/0923-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch (renamed from patches/server/0925-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch)0
-rw-r--r--patches/server/0924-Flying-Fall-Damage.patch (renamed from patches/server/0926-Flying-Fall-Damage.patch)4
-rw-r--r--patches/server/0925-Add-exploded-block-state-to-BlockExplodeEvent.patch (renamed from patches/server/0927-Add-exploded-block-state-to-BlockExplodeEvent.patch)0
-rw-r--r--patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (renamed from patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch)2
-rw-r--r--patches/server/0927-config-for-disabling-entity-tag-tags.patch (renamed from patches/server/0929-config-for-disabling-entity-tag-tags.patch)0
-rw-r--r--patches/server/0928-Use-single-player-info-update-packet-on-join.patch (renamed from patches/server/0930-Use-single-player-info-update-packet-on-join.patch)6
-rw-r--r--patches/server/0929-Correctly-shrink-items-during-EntityResurrectEvent.patch (renamed from patches/server/0931-Correctly-shrink-items-during-EntityResurrectEvent.patch)0
-rw-r--r--patches/server/0930-Win-Screen-API.patch (renamed from patches/server/0932-Win-Screen-API.patch)4
-rw-r--r--patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch (renamed from patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch)4
-rw-r--r--patches/server/0932-Fix-force-opening-enchantment-tables.patch (renamed from patches/server/0934-Fix-force-opening-enchantment-tables.patch)4
-rw-r--r--patches/server/0933-Add-Entity-Body-Yaw-API.patch (renamed from patches/server/0935-Add-Entity-Body-Yaw-API.patch)4
-rw-r--r--patches/server/0934-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch (renamed from patches/server/0936-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch)0
-rw-r--r--patches/server/0935-Update-the-flag-when-a-captured-block-state-is-outda.patch (renamed from patches/server/0937-Update-the-flag-when-a-captured-block-state-is-outda.patch)0
-rw-r--r--patches/server/0936-Add-EntityFertilizeEggEvent.patch (renamed from patches/server/0938-Add-EntityFertilizeEggEvent.patch)4
-rw-r--r--patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch (renamed from patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch)4
-rw-r--r--patches/server/0938-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/server/0940-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/server/0939-Correctly-handle-ArmorStand-invisibility.patch (renamed from patches/server/0941-Correctly-handle-ArmorStand-invisibility.patch)0
-rw-r--r--patches/server/0940-Fix-advancement-triggers-for-entity-damage.patch (renamed from patches/server/0942-Fix-advancement-triggers-for-entity-damage.patch)0
-rw-r--r--patches/server/0941-Fix-text-display-error-on-spawn.patch (renamed from patches/server/0943-Fix-text-display-error-on-spawn.patch)0
-rw-r--r--patches/server/0942-Fix-certain-inventories-returning-null-Locations.patch (renamed from patches/server/0944-Fix-certain-inventories-returning-null-Locations.patch)0
-rw-r--r--patches/server/0943-Add-Shearable-API.patch (renamed from patches/server/0945-Add-Shearable-API.patch)0
-rw-r--r--patches/server/0944-Fix-SpawnEggMeta-get-setSpawnedType.patch (renamed from patches/server/0946-Fix-SpawnEggMeta-get-setSpawnedType.patch)0
-rw-r--r--patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch (renamed from patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch)4
-rw-r--r--patches/server/0946-Optimize-Hoppers.patch (renamed from patches/server/0948-Optimize-Hoppers.patch)4
-rw-r--r--patches/server/0947-Fix-beehives-generating-from-using-bonemeal.patch (renamed from patches/server/0949-Fix-beehives-generating-from-using-bonemeal.patch)0
-rw-r--r--patches/server/0948-Fix-api-checking-banned-ips.patch (renamed from patches/server/0950-Fix-api-checking-banned-ips.patch)4
-rw-r--r--patches/server/0949-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch (renamed from patches/server/0951-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch)0
-rw-r--r--patches/server/0950-Treat-sequence-violations-like-they-should-be.patch (renamed from patches/server/0952-Treat-sequence-violations-like-they-should-be.patch)4
-rw-r--r--patches/server/0951-remove-duplicate-animate-packet-for-records.patch (renamed from patches/server/0953-remove-duplicate-animate-packet-for-records.patch)0
-rw-r--r--patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch (renamed from patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch)4
-rw-r--r--patches/server/0953-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch (renamed from patches/server/0955-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch)0
-rw-r--r--patches/server/0954-Use-array-for-gamerule-storage.patch (renamed from patches/server/0956-Use-array-for-gamerule-storage.patch)0
-rw-r--r--patches/server/0955-Fix-a-couple-of-upstream-bed-issues.patch (renamed from patches/server/0957-Fix-a-couple-of-upstream-bed-issues.patch)0
-rw-r--r--patches/server/0956-Fix-demo-flag-not-enabling-demo-mode.patch (renamed from patches/server/0958-Fix-demo-flag-not-enabling-demo-mode.patch)0
-rw-r--r--patches/server/0957-Add-Mob-Experience-reward-API.patch (renamed from patches/server/0959-Add-Mob-Experience-reward-API.patch)0
-rw-r--r--patches/server/0958-Break-redstone-on-top-of-trap-doors-early.patch (renamed from patches/server/0960-Break-redstone-on-top-of-trap-doors-early.patch)0
-rw-r--r--patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch (renamed from patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch)2
-rw-r--r--patches/server/0960-Avoid-Lazy-Initialization-for-Enum-Fields.patch (renamed from patches/server/0962-Avoid-Lazy-Initialization-for-Enum-Fields.patch)0
-rw-r--r--patches/server/0961-More-accurate-isInOpenWater-impl.patch (renamed from patches/server/0963-More-accurate-isInOpenWater-impl.patch)4
-rw-r--r--patches/server/0962-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch (renamed from patches/server/0964-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch)0
-rw-r--r--patches/server/0963-Optimise-recalcBlockCounts-for-empty-sections.patch (renamed from patches/server/0965-Optimise-recalcBlockCounts-for-empty-sections.patch)0
-rw-r--r--patches/server/0964-Fix-destroying-beehive-without-any-players-nearby-th.patch (renamed from patches/server/0966-Fix-destroying-beehive-without-any-players-nearby-th.patch)0
-rw-r--r--patches/server/0965-Expand-PlayerItemMendEvent.patch (renamed from patches/server/0967-Expand-PlayerItemMendEvent.patch)8
-rw-r--r--patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch (renamed from patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch)2
-rw-r--r--patches/server/0967-Add-transient-modifier-API.patch (renamed from patches/server/0969-Add-transient-modifier-API.patch)0
-rw-r--r--patches/server/0968-Fix-block-place-logic.patch (renamed from patches/server/0970-Fix-block-place-logic.patch)0
-rw-r--r--patches/server/0969-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch (renamed from patches/server/0971-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch)0
-rw-r--r--patches/server/0970-Ignore-inline-definitions-of-trim-material-pattern.patch (renamed from patches/server/0972-Ignore-inline-definitions-of-trim-material-pattern.patch)0
-rw-r--r--patches/server/0971-Call-BlockGrowEvent-for-the-pitcher-crop.patch (renamed from patches/server/0973-Call-BlockGrowEvent-for-the-pitcher-crop.patch)0
-rw-r--r--patches/server/0972-Add-API-for-waxed-signs.patch (renamed from patches/server/0974-Add-API-for-waxed-signs.patch)0
-rw-r--r--patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch (renamed from patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch)2
-rw-r--r--patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch (renamed from patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch)4
m---------work/Bukkit0
m---------work/CraftBukkit0
m---------work/Spigot0
904 files changed, 1594 insertions, 1691 deletions
diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index 25d1c82bb2..1fa6ca4e57 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -753,10 +753,10 @@ index 0000000000000000000000000000000000000000..6e94562d79206d88b74b53814f9423f1
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad749c8579 100644
+index ff86f4f5d7f460e8986c4a4fa483f5b5a1d3a1b6..cd9566aeace9e2e1e01fb014b0c50ba93af305d7 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -379,7 +379,9 @@ public final class Bukkit {
+@@ -388,7 +388,9 @@ public final class Bukkit {
*
* @param message the message
* @return the number of players
@@ -766,7 +766,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static int broadcastMessage(@NotNull String message) {
return server.broadcastMessage(message);
}
-@@ -1095,6 +1097,19 @@ public final class Bukkit {
+@@ -1104,6 +1106,19 @@ public final class Bukkit {
server.shutdown();
}
@@ -786,7 +786,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Broadcasts the specified message to every user with the given
* permission name.
-@@ -1104,6 +1119,21 @@ public final class Bukkit {
+@@ -1113,6 +1128,21 @@ public final class Bukkit {
* permissibles} must have to receive the broadcast
* @return number of message recipients
*/
@@ -808,7 +808,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static int broadcast(@NotNull String message, @NotNull String permission) {
return server.broadcast(message, permission);
}
-@@ -1342,6 +1372,7 @@ public final class Bukkit {
+@@ -1351,6 +1381,7 @@ public final class Bukkit {
return server.createInventory(owner, type);
}
@@ -816,7 +816,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1367,6 +1398,38 @@ public final class Bukkit {
+@@ -1376,6 +1407,38 @@ public final class Bukkit {
* @see InventoryType#isCreatable()
*/
@NotNull
@@ -855,7 +855,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) {
return server.createInventory(owner, type, title);
}
-@@ -1385,6 +1448,7 @@ public final class Bukkit {
+@@ -1394,6 +1457,7 @@ public final class Bukkit {
return server.createInventory(owner, size);
}
@@ -863,7 +863,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1397,10 +1461,30 @@ public final class Bukkit {
+@@ -1406,10 +1470,30 @@ public final class Bukkit {
* @throws IllegalArgumentException if the size is not a multiple of 9
*/
@NotNull
@@ -894,7 +894,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
/**
* Creates an empty merchant.
*
-@@ -1408,7 +1492,20 @@ public final class Bukkit {
+@@ -1417,7 +1501,20 @@ public final class Bukkit {
* when the merchant inventory is viewed
* @return a new merchant
*/
@@ -915,7 +915,7 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static Merchant createMerchant(@Nullable String title) {
return server.createMerchant(title);
}
-@@ -1525,22 +1622,47 @@ public final class Bukkit {
+@@ -1534,12 +1631,43 @@ public final class Bukkit {
return server.isPrimaryThread();
}
@@ -928,6 +928,24 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
+ @NotNull public static net.kyori.adventure.text.Component motd() {
+ return server.motd();
+ }
++
++ /**
++ * Set the message that is displayed on the server list.
++ *
++ * @param motd The message to be displayed
++ */
++ public static void motd(final net.kyori.adventure.text.@NotNull Component motd) {
++ server.motd(motd);
++ }
++
++ /**
++ * Gets the default message that is displayed when the server is stopped.
++ *
++ * @return the shutdown message
++ */
++ public static net.kyori.adventure.text.@Nullable Component shutdownMessage() {
++ return server.shutdownMessage();
++ }
+ // Paper end
+
/**
@@ -941,18 +959,17 @@ index f8051479fbf0b63f671a343cdb375429a3f7bd2f..fe86d25bfc444ad7143fb60e88bc46ad
public static String getMotd() {
return server.getMotd();
}
-
-+ // Paper start
-+ /**
-+ * Gets the default message that is displayed when the server is stopped.
-+ *
-+ * @return the shutdown message
-+ */
-+ public static net.kyori.adventure.text.@Nullable Component shutdownMessage() {
-+ return server.shutdownMessage();
-+ }
-+ // Paper end
- /**
+@@ -1548,7 +1676,9 @@ public final class Bukkit {
+ * Set the message that is displayed on the server list.
+ *
+ * @param motd The message to be displayed
++ * @deprecated in favour of {@link #motd(net.kyori.adventure.text.Component)}
+ */
++ @Deprecated // Paper
+ public static void setMotd(@NotNull String motd) {
+ server.setMotd(motd);
+ }
+@@ -1557,8 +1687,10 @@ public final class Bukkit {
* Gets the default message that is displayed when the server is stopped.
*
* @return the shutdown message
@@ -1132,7 +1149,7 @@ index c559f38fdb92cfee9f2e0ffb7088d1cf74a7f73d..a42f1d53340e4073038d46b7fabf5d44
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca7bfedba7 100644
+index d3684494b81d06b82eab72c6cfbd76d36dfc0e97..e359bc68007fbe62270ee62be762f844cbafe2d9 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -60,13 +60,13 @@ import org.jetbrains.annotations.Nullable;
@@ -1160,7 +1177,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
*/
public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user";
-@@ -320,7 +320,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -327,7 +327,9 @@ public interface Server extends PluginMessageRecipient {
*
* @param message the message
* @return the number of players
@@ -1170,7 +1187,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
public int broadcastMessage(@NotNull String message);
/**
-@@ -938,8 +940,33 @@ public interface Server extends PluginMessageRecipient {
+@@ -945,8 +947,33 @@ public interface Server extends PluginMessageRecipient {
* @param permission the required permission {@link Permissible
* permissibles} must have to receive the broadcast
* @return number of message recipients
@@ -1204,21 +1221,11 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
/**
* Gets the player by the given name, regardless if they are offline or
-@@ -1137,6 +1164,7 @@ public interface Server extends PluginMessageRecipient {
+@@ -1144,6 +1171,35 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type);
+ // Paper start
- /**
- * Creates an empty inventory with the specified type and title. If the type
- * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1162,6 +1190,36 @@ public interface Server extends PluginMessageRecipient {
- * @see InventoryType#isCreatable()
- */
- @NotNull
-+ Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, net.kyori.adventure.text.@NotNull Component title);
-+ // Paper end
-+
+ /**
+ * Creates an empty inventory with the specified type and title. If the type
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
@@ -1240,16 +1247,29 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ * @return The new inventory.
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
+ * viewed.
-+ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
+ *
+ * @see InventoryType#isCreatable()
+ */
-+ @Deprecated // Paper
+ @NotNull
++ Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, net.kyori.adventure.text.@NotNull Component title);
++ // Paper end
++
+ /**
+ * Creates an empty inventory with the specified type and title. If the type
+ * is {@link InventoryType#CHEST}, the new inventory has a size of 27;
+@@ -1165,9 +1221,11 @@ public interface Server extends PluginMessageRecipient {
+ * @return The new inventory.
+ * @throws IllegalArgumentException if the {@link InventoryType} cannot be
+ * viewed.
++ * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)}
+ *
+ * @see InventoryType#isCreatable()
+ */
++ @Deprecated // Paper
+ @NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title);
- /**
-@@ -1176,6 +1234,22 @@ public interface Server extends PluginMessageRecipient {
+@@ -1183,6 +1241,22 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException;
@@ -1272,7 +1292,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1186,10 +1260,13 @@ public interface Server extends PluginMessageRecipient {
+@@ -1193,18 +1267,32 @@ public interface Server extends PluginMessageRecipient {
* viewed
* @return a new inventory
* @throws IllegalArgumentException if the size is not a multiple of 9
@@ -1283,29 +1303,29 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException;
+ // Paper start
- /**
- * Creates an empty merchant.
- *
-@@ -1197,7 +1274,18 @@ public interface Server extends PluginMessageRecipient {
- * when the merchant inventory is viewed
- * @return a new merchant
- */
-+ @NotNull Merchant createMerchant(net.kyori.adventure.text.@Nullable Component title);
-+ // Paper start
+ /**
+ * Creates an empty merchant.
+ *
+ * @param title the title of the corresponding merchant inventory, displayed
+ * when the merchant inventory is viewed
+ * @return a new merchant
-+ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
+ */
++ @NotNull Merchant createMerchant(net.kyori.adventure.text.@Nullable Component title);
++ // Paper start
+ /**
+ * Creates an empty merchant.
+ *
+ * @param title the title of the corresponding merchant inventory, displayed
+ * when the merchant inventory is viewed
+ * @return a new merchant
++ * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)}
+ */
@NotNull
+ @Deprecated // Paper
Merchant createMerchant(@Nullable String title);
/**
-@@ -1293,20 +1381,41 @@ public interface Server extends PluginMessageRecipient {
+@@ -1300,27 +1388,56 @@ public interface Server extends PluginMessageRecipient {
*/
boolean isPrimaryThread();
@@ -1316,6 +1336,20 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ * @return the server's MOTD
+ */
+ net.kyori.adventure.text.@NotNull Component motd();
++
++ /**
++ * Set the message that is displayed on the server list.
++ *
++ * @param motd The message to be displayed
++ */
++ void motd(final net.kyori.adventure.text.@NotNull Component motd);
++
++ /**
++ * Gets the default message that is displayed when the server is stopped.
++ *
++ * @return the shutdown message
++ */
++ net.kyori.adventure.text.@Nullable Component shutdownMessage();
+ // Paper end
+
/**
@@ -1328,14 +1362,15 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
+ @Deprecated // Paper
String getMotd();
-+ // Paper start
-+ /**
-+ * Gets the default message that is displayed when the server is stopped.
-+ *
-+ * @return the shutdown message
-+ */
-+ net.kyori.adventure.text.@Nullable Component shutdownMessage();
-+ // Paper end
+ /**
+ * Set the message that is displayed on the server list.
+ *
+ * @param motd The message to be displayed
++ * @deprecated in favour of {@link #motd(net.kyori.adventure.text.Component)}
+ */
++ @Deprecated // Paper
+ void setMotd(@NotNull String motd);
+
/**
* Gets the default message that is displayed when the server is stopped.
*
@@ -1347,7 +1382,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
String getShutdownMessage();
/**
-@@ -1688,7 +1797,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1702,7 +1819,9 @@ public interface Server extends PluginMessageRecipient {
* Sends the component to the player
*
* @param component the components to send
@@ -1357,7 +1392,7 @@ index 6f97c680535fabf88509a49ec21704eb527b2add..b516021b6772d8266ed72b73170510ca
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1697,7 +1808,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1711,7 +1830,9 @@ public interface Server extends PluginMessageRecipient {
* Sends an array of components as a single message to the player
*
* @param components the components to send
diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch
index f93edb3393..ac048d78e1 100644
--- a/patches/api/0010-Timings-v2.patch
+++ b/patches/api/0010-Timings-v2.patch
@@ -2854,10 +2854,10 @@ index 0000000000000000000000000000000000000000..3e61a926620a67daec3af54b72a1b911
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index fe86d25bfc444ad7143fb60e88bc46ad749c8579..ffacdd168e2b68663becfcfc5c917a41f8ec817d 100644
+index cd9566aeace9e2e1e01fb014b0c50ba93af305d7..1f4df6984a8b8bd3e72a5eb7fb1c66b6bfddfbf5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -823,7 +823,6 @@ public final class Bukkit {
+@@ -832,7 +832,6 @@ public final class Bukkit {
*/
public static void reload() {
server.reload();
@@ -2866,10 +2866,10 @@ index fe86d25bfc444ad7143fb60e88bc46ad749c8579..ffacdd168e2b68663becfcfc5c917a41
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b516021b6772d8266ed72b73170510ca7bfedba7..cadf590c7e597a503078892b3d5671642a80eb3f 100644
+index e359bc68007fbe62270ee62be762f844cbafe2d9..e773b40ff5fa9890c72e45e5c75a155bd7d02954 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1793,6 +1793,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1815,6 +1815,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/patches/api/0013-Add-getTPS-method.patch b/patches/api/0013-Add-getTPS-method.patch
index e49e4e2edf..f5bdf29597 100644
--- a/patches/api/0013-Add-getTPS-method.patch
+++ b/patches/api/0013-Add-getTPS-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 003d1613fb1b5a24146fb3eeba0be7bf5a4eb8b8..ad7ab68bb2cb4516217984c1c8c07f7a892734a0 100644
+index d77a7acb3ea82a331cb773bfda3e66d26a2bbd68..b2effed0281997a64dd0fdc965bce2a54af0cf4d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1912,6 +1912,17 @@ public final class Bukkit {
+@@ -1940,6 +1940,17 @@ public final class Bukkit {
return server.getEntity(uuid);
}
@@ -27,10 +27,10 @@ index 003d1613fb1b5a24146fb3eeba0be7bf5a4eb8b8..ad7ab68bb2cb4516217984c1c8c07f7a
* Get the advancement specified by this key.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 15b07d05d948d5df21591dc9e1b0fc0232c984ec..1f09705726d9114821eeb8321805cac0f7966944 100644
+index 76d28815a51d73fc79ef8bb5abe8fc7758e6fd23..04f5191398dcfac02eb6553d549e77207c06e550 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1630,6 +1630,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1652,6 +1652,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
Entity getEntity(@NotNull UUID uuid);
diff --git a/patches/api/0020-Expose-server-CommandMap.patch b/patches/api/0020-Expose-server-CommandMap.patch
index 804b176eb2..f64662cba3 100644
--- a/patches/api/0020-Expose-server-CommandMap.patch
+++ b/patches/api/0020-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ad7ab68bb2cb4516217984c1c8c07f7a892734a0..b28d196a810e121d0502e0035b16d2c6ed2efe2d 100644
+index b2effed0281997a64dd0fdc965bce2a54af0cf4d..f3a976ea2d7433623202c1d7cbf777608b0ba457 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2113,6 +2113,19 @@ public final class Bukkit {
+@@ -2141,6 +2141,19 @@ public final class Bukkit {
return server.getUnsafe();
}
@@ -29,10 +29,10 @@ index ad7ab68bb2cb4516217984c1c8c07f7a892734a0..b28d196a810e121d0502e0035b16d2c6
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 1f09705726d9114821eeb8321805cac0f7966944..b6ff3a80fcb5c0e843caa1cfdb165cf2cadb8bd2 100644
+index 04f5191398dcfac02eb6553d549e77207c06e550..c0c67866014940a1331cd714d5c6eb50256ae143 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1640,6 +1640,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1662,6 +1662,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public double[] getTPS();
// Paper end
diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index 4f056b16b8..d11eb796ca 100644
--- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b28d196a810e121d0502e0035b16d2c6ed2efe2d..61734532c341dcbc0565189b63fd05f53b041039 100644
+index f3a976ea2d7433623202c1d7cbf777608b0ba457..77b267c50523433eee0fa35c6c5b8a9e121c0862 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -400,6 +400,30 @@ public final class Bukkit {
+@@ -409,6 +409,30 @@ public final class Bukkit {
return server.broadcastMessage(message);
}
@@ -41,10 +41,10 @@ index b28d196a810e121d0502e0035b16d2c6ed2efe2d..61734532c341dcbc0565189b63fd05f5
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b6ff3a80fcb5c0e843caa1cfdb165cf2cadb8bd2..f24bb5b22975bcbdce1bf1e80cf7a1b338ad12a5 100644
+index c0c67866014940a1331cd714d5c6eb50256ae143..0e63d438a74b96075d7d8fb51ddbd21be3447377 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -337,6 +337,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -344,6 +344,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Deprecated // Paper
public int broadcastMessage(@NotNull String message);
diff --git a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
index e73aa3393f..94d7e38e7d 100644
--- a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
+++ b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 61734532c341dcbc0565189b63fd05f53b041039..cb021ea553f7330473f8e8bcc47803f8c544971a 100644
+index 77b267c50523433eee0fa35c6c5b8a9e121c0862..0b9b28b7a07a8176142b18cfa767c81f5035d52d 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2148,6 +2148,13 @@ public final class Bukkit {
+@@ -2176,6 +2176,13 @@ public final class Bukkit {
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
}
@@ -24,10 +24,10 @@ index 61734532c341dcbc0565189b63fd05f53b041039..cb021ea553f7330473f8e8bcc47803f8
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index f24bb5b22975bcbdce1bf1e80cf7a1b338ad12a5..ecd0b92f487b9c2d1f7fed1e98e10c8c0946ab9e 100644
+index 0e63d438a74b96075d7d8fb51ddbd21be3447377..e76c11688760a24f8395f562108b4c5fd7139b42 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1901,4 +1901,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1923,4 +1923,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
Spigot spigot();
// Spigot end
diff --git a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
index 1b4a34b2e9..7e19f95ecf 100644
--- a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cb021ea553f7330473f8e8bcc47803f8c544971a..7f5da77075a8c180848312d85e554a0e309fa3e5 100644
+index 0b9b28b7a07a8176142b18cfa767c81f5035d52d..22d9538abe61ccb3e5d3ae407d54446fa172fa39 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2155,6 +2155,15 @@ public final class Bukkit {
+@@ -2183,6 +2183,15 @@ public final class Bukkit {
public static void reloadPermissions() {
server.reloadPermissions();
}
@@ -26,10 +26,10 @@ index cb021ea553f7330473f8e8bcc47803f8c544971a..7f5da77075a8c180848312d85e554a0e
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index ecd0b92f487b9c2d1f7fed1e98e10c8c0946ab9e..b2d13b1e31a09aad903f0c24b14641f911cfaee5 100644
+index e76c11688760a24f8395f562108b4c5fd7139b42..26516ae5519675dac359b578d0f06ea2c0745ab3 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1903,4 +1903,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1925,4 +1925,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Spigot end
void reloadPermissions(); // Paper
diff --git a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
index 6a08ac19e0..2013c6f360 100644
--- a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 7f5da77075a8c180848312d85e554a0e309fa3e5..8bc4615fd1e227de53d18c3ad6172f62fd38893b 100644
+index 22d9538abe61ccb3e5d3ae407d54446fa172fa39..68a79316cec0c4ab83c6f986e3a9561440994319 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2164,6 +2164,16 @@ public final class Bukkit {
+@@ -2192,6 +2192,16 @@ public final class Bukkit {
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
@@ -27,10 +27,10 @@ index 7f5da77075a8c180848312d85e554a0e309fa3e5..8bc4615fd1e227de53d18c3ad6172f62
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b2d13b1e31a09aad903f0c24b14641f911cfaee5..3f307c4e1f9231164f146d7d44a7327aee0293bd 100644
+index 26516ae5519675dac359b578d0f06ea2c0745ab3..0cf214c45078d83d678f12f6cb350e50fc5f1e94 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1905,4 +1905,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1927,4 +1927,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch
index 525e38db78..13aa3bf13d 100644
--- a/patches/api/0055-Fix-upstream-javadocs.patch
+++ b/patches/api/0055-Fix-upstream-javadocs.patch
@@ -53,10 +53,10 @@ index 96ef22fe879c7be4f67bbb4d60c45ad11764dd5b..5dc9f9ede98d93925c99ee382e93f15f
* @param target the target to remove from this list
*/
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 8bc4615fd1e227de53d18c3ad6172f62fd38893b..a0faa4ef90086bfb7b49bd59e566c01fa9ec380d 100644
+index 68a79316cec0c4ab83c6f986e3a9561440994319..316fc8348445b99af7ffc7c4ad24948a1115dfe6 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1290,10 +1290,7 @@ public final class Bukkit {
+@@ -1299,10 +1299,7 @@ public final class Bukkit {
}
/**
@@ -68,7 +68,7 @@ index 8bc4615fd1e227de53d18c3ad6172f62fd38893b..a0faa4ef90086bfb7b49bd59e566c01f
*
* @param type the type of list to fetch, cannot be null
* @return a ban list of the specified type
-@@ -1355,6 +1352,8 @@ public final class Bukkit {
+@@ -1364,6 +1361,8 @@ public final class Bukkit {
/**
* Gets every player that has ever played on this server.
@@ -130,10 +130,10 @@ index 43f5aab2fe70af5f570de1f21eca83905f1e2f57..05c29cbd2ae1ca0434a90f8389479bd6
* @param statePredicate The predicate which should get used to test if a block should be set or not.
* @return true if the tree was created successfully, otherwise false
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b8f71fd83 100644
+index 0cf214c45078d83d678f12f6cb350e50fc5f1e94..d7b081ac72d7d2aa3b675c6cbb8fb66f73facc99 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -535,13 +535,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -542,13 +542,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* </ul>
* <p>
* <b>Note:</b> If set to 0, {@link SpawnCategory} mobs spawning will be disabled.
@@ -148,7 +148,7 @@ index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b
*/
public int getTicksPerSpawns(@NotNull SpawnCategory spawnCategory);
-@@ -1101,10 +1098,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1108,10 +1105,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public Set<OfflinePlayer> getBannedPlayers();
/**
@@ -160,7 +160,7 @@ index 3f307c4e1f9231164f146d7d44a7327aee0293bd..8f64461f8c05143e8e8e10c0efbb6d6b
*
* @param type the type of list to fetch, cannot be null
* @return a ban list of the specified type
-@@ -1154,6 +1148,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1161,6 +1155,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Gets every player that has ever played on this server.
diff --git a/patches/api/0059-Basic-PlayerProfile-API.patch b/patches/api/0059-Basic-PlayerProfile-API.patch
index 4b1765e69f..13200b1ca2 100644
--- a/patches/api/0059-Basic-PlayerProfile-API.patch
+++ b/patches/api/0059-Basic-PlayerProfile-API.patch
@@ -321,10 +321,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a0faa4ef90086bfb7b49bd59e566c01fa9ec380d..cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2 100644
+index 316fc8348445b99af7ffc7c4ad24948a1115dfe6..10eeb288ef41dfc6bd70fc8f6ec218dabc60b2a4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2173,6 +2173,83 @@ public final class Bukkit {
+@@ -2201,6 +2201,83 @@ public final class Bukkit {
public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -409,10 +409,10 @@ index a0faa4ef90086bfb7b49bd59e566c01fa9ec380d..cbd89729d1ba4866fdb9b72b7f0a4fbd
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 8f64461f8c05143e8e8e10c0efbb6d6b8f71fd83..7f6400c58530d4827c197f3d1fbabfa34554010f 100644
+index d7b081ac72d7d2aa3b675c6cbb8fb66f73facc99..1487b5de4fba5304b7e2105c6f88872923aa7974 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1910,5 +1910,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1932,5 +1932,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch
index 0b50ab4d3c..9cb130248a 100644
--- a/patches/api/0091-Player.setPlayerProfile-API.patch
+++ b/patches/api/0091-Player.setPlayerProfile-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bde05a5a1c 100644
+index 10eeb288ef41dfc6bd70fc8f6ec218dabc60b2a4..ace8904541fb4571cb03f14e6e3baa02ae460d1e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1220,8 +1220,10 @@ public final class Bukkit {
+@@ -1229,8 +1229,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* <code>null</code> and the name is <code>null</code> or blank
@@ -20,7 +20,7 @@ index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bd
public static PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name) {
return server.createPlayerProfile(uniqueId, name);
}
-@@ -1232,8 +1234,10 @@ public final class Bukkit {
+@@ -1241,8 +1243,10 @@ public final class Bukkit {
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is <code>null</code>
@@ -31,7 +31,7 @@ index cbd89729d1ba4866fdb9b72b7f0a4fbd4e161cd2..551948a83965b38bf29aeb8daafc25bd
public static PlayerProfile createPlayerProfile(@NotNull UUID uniqueId) {
return server.createPlayerProfile(uniqueId);
}
-@@ -1245,8 +1249,10 @@ public final class Bukkit {
+@@ -1254,8 +1258,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is <code>null</code> or
* blank
@@ -56,10 +56,10 @@ index 5acb0d36a008cf5ad332c867e9303d35235b4028..b1ded556a1ce4e1d3c873ab9d7f799b6
/**
* Checks if this player is banned or not
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327e987a460 100644
+index 1487b5de4fba5304b7e2105c6f88872923aa7974..e4f8031ab979ba7e3fd7242b788e41974f490565 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1042,8 +1042,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1049,8 +1049,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* <code>null</code> and the name is <code>null</code> or blank
@@ -70,7 +70,7 @@ index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327
PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name);
/**
-@@ -1052,8 +1054,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1059,8 +1061,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is <code>null</code>
@@ -81,7 +81,7 @@ index 7f6400c58530d4827c197f3d1fbabfa34554010f..e4c85e67713c5ed4b8b1fcc3c4231327
PlayerProfile createPlayerProfile(@NotNull UUID uniqueId);
/**
-@@ -1063,8 +1067,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1070,8 +1074,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is <code>null</code> or
* blank
diff --git a/patches/api/0092-getPlayerUniqueId-API.patch b/patches/api/0092-getPlayerUniqueId-API.patch
index 0cf3122de1..ad0e12f4d8 100644
--- a/patches/api/0092-getPlayerUniqueId-API.patch
+++ b/patches/api/0092-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 551948a83965b38bf29aeb8daafc25bde05a5a1c..7113f38eac400bc86a427972e501b0ca5653dae6 100644
+index ace8904541fb4571cb03f14e6e3baa02ae460d1e..36c5294e6169c3aa4517cd2c945b5dfb7a2a0c51 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -678,6 +678,20 @@ public final class Bukkit {
+@@ -687,6 +687,20 @@ public final class Bukkit {
return server.getPlayer(id);
}
@@ -34,10 +34,10 @@ index 551948a83965b38bf29aeb8daafc25bde05a5a1c..7113f38eac400bc86a427972e501b0ca
* Gets the plugin manager for interfacing with plugins.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index e4c85e67713c5ed4b8b1fcc3c4231327e987a460..878b3ff92be8fcb977240824ae404fb5bed42d48 100644
+index e4f8031ab979ba7e3fd7242b788e41974f490565..2ac191185e4dabb2f39b05a56548b0d97daa2979 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -584,6 +584,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -591,6 +591,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public Player getPlayer(@NotNull UUID id);
diff --git a/patches/api/0160-Make-the-default-permission-message-configurable.patch b/patches/api/0160-Make-the-default-permission-message-configurable.patch
index 83e5645e29..fdedf8eed1 100644
--- a/patches/api/0160-Make-the-default-permission-message-configurable.patch
+++ b/patches/api/0160-Make-the-default-permission-message-configurable.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 733b537d4236e5cb06efc188183ad876db31c0ff..71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd 100644
+index 36a127864be2a75a38bcc6eacafde5109e5c6c69..8649a3453bd3c3ee5f2bf5b706b125cb70d3bb1b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2213,6 +2213,28 @@ public final class Bukkit {
+@@ -2241,6 +2241,28 @@ public final class Bukkit {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -38,10 +38,10 @@ index 733b537d4236e5cb06efc188183ad876db31c0ff..71cd6f405c35e1e1a02c1bac64b509ae
* Creates a PlayerProfile for the specified uuid, with name as null.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 878b3ff92be8fcb977240824ae404fb5bed42d48..43c14b492879d56993586a7b64eb374654ca67a6 100644
+index 2ac191185e4dabb2f39b05a56548b0d97daa2979..771a504a6f64644f434e2a6d20d285d338b5dff4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1929,6 +1929,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1951,6 +1951,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index 9ffda1d027..a7a3aec004 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -9,10 +9,10 @@ a ton of noise to plugin developers.
These do not help plugin developers if they bring moise noise than value.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d00a0b4fa7 100644
+index 8649a3453bd3c3ee5f2bf5b706b125cb70d3bb1b..ef7445fc5c169e64a73dce4f71a2885fb976caf3 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -827,9 +827,8 @@ public final class Bukkit {
+@@ -836,9 +836,8 @@ public final class Bukkit {
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -23,7 +23,7 @@ index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d0
@Nullable
public static MapView getMap(int id) {
return server.getMap(id);
-@@ -1221,10 +1220,8 @@ public final class Bukkit {
+@@ -1230,10 +1229,8 @@ public final class Bukkit {
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -35,7 +35,7 @@ index 71cd6f405c35e1e1a02c1bac64b509ae6ba5c7cd..a5b792d94a2357f0536def00e80430d0
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
-@@ -1770,7 +1767,7 @@ public final class Bukkit {
+@@ -1798,7 +1795,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -203,10 +203,10 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4
CRACKED(0x0),
GLYPHED(0x1),
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c598bdb1000 100644
+index 771a504a6f64644f434e2a6d20d285d338b5dff4..5edef1114f1c94e921656972141d62a9d6338105 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -695,9 +695,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -702,9 +702,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -217,7 +217,7 @@ index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c59
@Nullable
public MapView getMap(int id);
-@@ -1026,10 +1025,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1033,10 +1032,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -229,7 +229,7 @@ index 43c14b492879d56993586a7b64eb374654ca67a6..38eb76e9f0dc8dd377bb82990eea0c59
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
-@@ -1492,7 +1489,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1514,7 +1511,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
diff --git a/patches/api/0176-Mob-Spawner-API-Enhancements.patch b/patches/api/0176-Mob-Spawner-API-Enhancements.patch
index 2bbe92cbe9..4928839428 100644
--- a/patches/api/0176-Mob-Spawner-API-Enhancements.patch
+++ b/patches/api/0176-Mob-Spawner-API-Enhancements.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Mob Spawner API Enhancements
diff --git a/src/main/java/org/bukkit/block/CreatureSpawner.java b/src/main/java/org/bukkit/block/CreatureSpawner.java
-index cb447a4ad5a9dce7c98999a5d7fcd6111fc9b10e..5bbae759ce39d42886994e500fd9454ec328f804 100644
+index 8dae9611e702d93b202563597c50752c5f5b77d4..3dcab76632c4f8646d7ae62bb8de287eb6ef55b5 100644
--- a/src/main/java/org/bukkit/block/CreatureSpawner.java
+++ b/src/main/java/org/bukkit/block/CreatureSpawner.java
@@ -199,4 +199,30 @@ public interface CreatureSpawner extends TileState {
@@ -36,6 +36,6 @@ index cb447a4ad5a9dce7c98999a5d7fcd6111fc9b10e..5bbae759ce39d42886994e500fd9454e
+ * @param itemStack The item to spawn. Must not {@link org.bukkit.Material#isAir be air}.
+ * @see #setSpawnedType(EntityType)
+ */
-+ void setSpawnedItem(@NotNull org.bukkit.inventory.ItemStack itemStack);
++ void setSpawnedItem([email protected] ItemStack itemStack);
+ // Paper end
}
diff --git a/patches/api/0180-Expose-the-internal-current-tick.patch b/patches/api/0180-Expose-the-internal-current-tick.patch
index 8966f3b1ca..401df320b5 100644
--- a/patches/api/0180-Expose-the-internal-current-tick.patch
+++ b/patches/api/0180-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a5b792d94a2357f0536def00e80430d00a0b4fa7..e32094b8e7710158f75450c477c91110d83ba71b 100644
+index ef7445fc5c169e64a73dce4f71a2885fb976caf3..d39c6b5d3fef5fe9727868175cf266fd68c2efa4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2308,6 +2308,10 @@ public final class Bukkit {
+@@ -2336,6 +2336,10 @@ public final class Bukkit {
public static com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name) {
return server.createProfileExact(uuid, name);
}
@@ -20,10 +20,10 @@ index a5b792d94a2357f0536def00e80430d00a0b4fa7..e32094b8e7710158f75450c477c91110
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 38eb76e9f0dc8dd377bb82990eea0c598bdb1000..fc8a6468c61a84a1fe719505adb274d48e24e8f4 100644
+index 5edef1114f1c94e921656972141d62a9d6338105..e02bd7323e117e9977275b3a5d3e070ff891fdbd 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2011,5 +2011,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2033,5 +2033,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name);
diff --git a/patches/api/0186-Add-tick-times-API.patch b/patches/api/0186-Add-tick-times-API.patch
index c6d8b2838a..491be377a9 100644
--- a/patches/api/0186-Add-tick-times-API.patch
+++ b/patches/api/0186-Add-tick-times-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index e32094b8e7710158f75450c477c91110d83ba71b..82940fa20f5f958e6473f318ee2c5da3647e0228 100644
+index d39c6b5d3fef5fe9727868175cf266fd68c2efa4..354fa01b30ec26f78f874a06e57a89f14ef13ef4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1980,6 +1980,25 @@ public final class Bukkit {
+@@ -2008,6 +2008,25 @@ public final class Bukkit {
public static double[] getTPS() {
return server.getTPS();
}
@@ -35,10 +35,10 @@ index e32094b8e7710158f75450c477c91110d83ba71b..82940fa20f5f958e6473f318ee2c5da3
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index fc8a6468c61a84a1fe719505adb274d48e24e8f4..ffd1f47690083b40aa349ed0f92d6fc2fdc56609 100644
+index e02bd7323e117e9977275b3a5d3e070ff891fdbd..edceaefe5e46515300c819351aebe0fce576d599 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1673,6 +1673,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1695,6 +1695,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
public double[] getTPS();
diff --git a/patches/api/0187-Expose-MinecraftServer-isRunning.patch b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
index fa313e183e..5e8b1257f3 100644
--- a/patches/api/0187-Expose-MinecraftServer-isRunning.patch
+++ b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 82940fa20f5f958e6473f318ee2c5da3647e0228..39fdcada6aa98058491aa6b5e5b9943c8a57a59d 100644
+index 354fa01b30ec26f78f874a06e57a89f14ef13ef4..725de23dc102e3b63da5e49bb1eafca96e33fc4c 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2331,6 +2331,15 @@ public final class Bukkit {
+@@ -2359,6 +2359,15 @@ public final class Bukkit {
public static int getCurrentTick() {
return server.getCurrentTick();
}
@@ -26,10 +26,10 @@ index 82940fa20f5f958e6473f318ee2c5da3647e0228..39fdcada6aa98058491aa6b5e5b9943c
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index ffd1f47690083b40aa349ed0f92d6fc2fdc56609..65daa359f000cf1acc3067af62e3210ced378519 100644
+index edceaefe5e46515300c819351aebe0fce576d599..960fc19a04bc3475bd81301ec283c9bb32f62821 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2033,5 +2033,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2055,5 +2055,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return Current tick
*/
int getCurrentTick();
diff --git a/patches/api/0195-Add-Mob-Goal-API.patch b/patches/api/0195-Add-Mob-Goal-API.patch
index a80c726ba2..a9605fb0bc 100644
--- a/patches/api/0195-Add-Mob-Goal-API.patch
+++ b/patches/api/0195-Add-Mob-Goal-API.patch
@@ -525,10 +525,10 @@ index 0000000000000000000000000000000000000000..c9837c7c47314b5bdf6c7973e6bc962d
+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey<Mob> UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset"));
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index e1a9a0ec6036133aa8fb195d22611df221bf5661..ce409a88b1f7fc519b2d7795005752b4349e4176 100644
+index dfeaddc2d71f8569c349740c00c96868f9a56a12..4e5e29251b713885eee562091ea4f253f027bdbb 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2352,6 +2352,16 @@ public final class Bukkit {
+@@ -2380,6 +2380,16 @@ public final class Bukkit {
public static boolean isStopping() {
return server.isStopping();
}
@@ -546,10 +546,10 @@ index e1a9a0ec6036133aa8fb195d22611df221bf5661..ce409a88b1f7fc519b2d7795005752b4
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 357f59f07387d3de75a0792e7e883cb82aafa2e2..d080d535275b28400471265315e0d70bf806cbb8 100644
+index ccec37c00f8ab318d41350907b40a64118e4fab1..9634d82d603426979cab978f9474cc041e1cb701 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2050,5 +2050,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2072,5 +2072,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if server is in the process of being shutdown
*/
boolean isStopping();
diff --git a/patches/api/0208-Add-BellRingEvent.patch b/patches/api/0207-Add-BellRingEvent.patch
index 33c564bdae..33c564bdae 100644
--- a/patches/api/0208-Add-BellRingEvent.patch
+++ b/patches/api/0207-Add-BellRingEvent.patch
diff --git a/patches/api/0207-Add-setMaxPlayers-API.patch b/patches/api/0207-Add-setMaxPlayers-API.patch
deleted file mode 100644
index 5170c3b9a5..0000000000
--- a/patches/api/0207-Add-setMaxPlayers-API.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mariell Hoversholm <[email protected]>
-Date: Sat, 22 Aug 2020 23:59:25 +0200
-Subject: [PATCH] Add #setMaxPlayers API
-
-
-diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ce409a88b1f7fc519b2d7795005752b4349e4176..bae2ef297ba585c916ea06c4316e9511696000da 100644
---- a/src/main/java/org/bukkit/Bukkit.java
-+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -209,6 +209,17 @@ public final class Bukkit {
- return server.getMaxPlayers();
- }
-
-+ // Paper start
-+ /**
-+ * Set the maximum amount of players which can login to this server.
-+ *
-+ * @param maxPlayers the amount of players this server allows
-+ */
-+ public static void setMaxPlayers(int maxPlayers) {
-+ server.setMaxPlayers(maxPlayers);
-+ }
-+ // Paper end
-+
- /**
- * Get the game port that the server runs on.
- *
-diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index d080d535275b28400471265315e0d70bf806cbb8..31e8a002f9b0641f16bc4cf330e6022b13942321 100644
---- a/src/main/java/org/bukkit/Server.java
-+++ b/src/main/java/org/bukkit/Server.java
-@@ -161,6 +161,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
- */
- public int getMaxPlayers();
-
-+ // Paper start
-+ /**
-+ * Set the maximum amount of players which can login to this server.
-+ *
-+ * @param maxPlayers the amount of players this server allows
-+ */
-+ public void setMaxPlayers(int maxPlayers);
-+ // Paper end
-+
- /**
- * Get the game port that the server runs on.
- *
diff --git a/patches/api/0209-Add-moon-phase-API.patch b/patches/api/0208-Add-moon-phase-API.patch
index 68b36e3b64..68b36e3b64 100644
--- a/patches/api/0209-Add-moon-phase-API.patch
+++ b/patches/api/0208-Add-moon-phase-API.patch
diff --git a/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch
index 89bd0bb3fc..89bd0bb3fc 100644
--- a/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch
+++ b/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch
diff --git a/patches/api/0211-Add-more-Evoker-API.patch b/patches/api/0210-Add-more-Evoker-API.patch
index 0d6f0f7328..0d6f0f7328 100644
--- a/patches/api/0211-Add-more-Evoker-API.patch
+++ b/patches/api/0210-Add-more-Evoker-API.patch
diff --git a/patches/api/0212-Add-methods-to-get-translation-keys.patch b/patches/api/0211-Add-methods-to-get-translation-keys.patch
index 96b7bbb309..96b7bbb309 100644
--- a/patches/api/0212-Add-methods-to-get-translation-keys.patch
+++ b/patches/api/0211-Add-methods-to-get-translation-keys.patch
diff --git a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
index 49e64dc27d..49e64dc27d 100644
--- a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
diff --git a/patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch
index 9512168843..9512168843 100644
--- a/patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch
+++ b/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch
diff --git a/patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index f151559a94..f151559a94 100644
--- a/patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
diff --git a/patches/api/0216-Entity-isTicking.patch b/patches/api/0215-Entity-isTicking.patch
index 625612008d..625612008d 100644
--- a/patches/api/0216-Entity-isTicking.patch
+++ b/patches/api/0215-Entity-isTicking.patch
diff --git a/patches/api/0217-Villager-resetOffers.patch b/patches/api/0216-Villager-resetOffers.patch
index 60fedfba0f..60fedfba0f 100644
--- a/patches/api/0217-Villager-resetOffers.patch
+++ b/patches/api/0216-Villager-resetOffers.patch
diff --git a/patches/api/0218-Player-elytra-boost-API.patch b/patches/api/0217-Player-elytra-boost-API.patch
index e34634af65..e34634af65 100644
--- a/patches/api/0218-Player-elytra-boost-API.patch
+++ b/patches/api/0217-Player-elytra-boost-API.patch
diff --git a/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
index 4812d992db..6d5e161e24 100644
--- a/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index bae2ef297ba585c916ea06c4316e9511696000da..0bc59cd1b27303dff7f13f79087b13097606ae65 100644
+index 4e5e29251b713885eee562091ea4f253f027bdbb..6d5423f6b6b1aa013a1f77d368058e4cdf2cbe84 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1250,6 +1250,27 @@ public final class Bukkit {
+@@ -1248,6 +1248,27 @@ public final class Bukkit {
return server.getOfflinePlayer(name);
}
@@ -37,10 +37,10 @@ index bae2ef297ba585c916ea06c4316e9511696000da..0bc59cd1b27303dff7f13f79087b1309
* Gets the player by the given UUID, regardless if they are offline or
* online.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 31e8a002f9b0641f16bc4cf330e6022b13942321..247bd6d2101d280a00727cacdeb8f40a7d7c4dcb 100644
+index 9634d82d603426979cab978f9474cc041e1cb701..f8ef98c9d266e12a3a3f69647cf4d7a9bc633419 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1049,6 +1049,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1047,6 +1047,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
diff --git a/patches/api/0220-Add-ignore-discounts-API.patch b/patches/api/0219-Add-ignore-discounts-API.patch
index 89655ddef8..89655ddef8 100644
--- a/patches/api/0220-Add-ignore-discounts-API.patch
+++ b/patches/api/0219-Add-ignore-discounts-API.patch
diff --git a/patches/api/0221-Item-no-age-no-player-pickup.patch b/patches/api/0220-Item-no-age-no-player-pickup.patch
index 5dd7572120..5dd7572120 100644
--- a/patches/api/0221-Item-no-age-no-player-pickup.patch
+++ b/patches/api/0220-Item-no-age-no-player-pickup.patch
diff --git a/patches/api/0222-Beacon-API-custom-effect-ranges.patch b/patches/api/0221-Beacon-API-custom-effect-ranges.patch
index effd7b3ae9..effd7b3ae9 100644
--- a/patches/api/0222-Beacon-API-custom-effect-ranges.patch
+++ b/patches/api/0221-Beacon-API-custom-effect-ranges.patch
diff --git a/patches/api/0223-Add-API-for-quit-reason.patch b/patches/api/0222-Add-API-for-quit-reason.patch
index 0350afaf92..0350afaf92 100644
--- a/patches/api/0223-Add-API-for-quit-reason.patch
+++ b/patches/api/0222-Add-API-for-quit-reason.patch
diff --git a/patches/api/0224-Add-Destroy-Speed-API.patch b/patches/api/0223-Add-Destroy-Speed-API.patch
index 6e2512b8b7..6e2512b8b7 100644
--- a/patches/api/0224-Add-Destroy-Speed-API.patch
+++ b/patches/api/0223-Add-Destroy-Speed-API.patch
diff --git a/patches/api/0225-Add-LivingEntity-clearActiveItem.patch b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch
index 224ac62396..224ac62396 100644
--- a/patches/api/0225-Add-LivingEntity-clearActiveItem.patch
+++ b/patches/api/0224-Add-LivingEntity-clearActiveItem.patch
diff --git a/patches/api/0226-Add-PlayerItemCooldownEvent.patch b/patches/api/0225-Add-PlayerItemCooldownEvent.patch
index 378f88f6e6..378f88f6e6 100644
--- a/patches/api/0226-Add-PlayerItemCooldownEvent.patch
+++ b/patches/api/0225-Add-PlayerItemCooldownEvent.patch
diff --git a/patches/api/0227-More-lightning-API.patch b/patches/api/0226-More-lightning-API.patch
index 3ff480a14c..3ff480a14c 100644
--- a/patches/api/0227-More-lightning-API.patch
+++ b/patches/api/0226-More-lightning-API.patch
diff --git a/patches/api/0228-Add-PlayerShearBlockEvent.patch b/patches/api/0227-Add-PlayerShearBlockEvent.patch
index 051544b4a9..051544b4a9 100644
--- a/patches/api/0228-Add-PlayerShearBlockEvent.patch
+++ b/patches/api/0227-Add-PlayerShearBlockEvent.patch
diff --git a/patches/api/0229-Player-Chunk-Load-Unload-Events.patch b/patches/api/0228-Player-Chunk-Load-Unload-Events.patch
index e2ce87ec9d..e2ce87ec9d 100644
--- a/patches/api/0229-Player-Chunk-Load-Unload-Events.patch
+++ b/patches/api/0228-Player-Chunk-Load-Unload-Events.patch
diff --git a/patches/api/0230-Expose-LivingEntity-hurt-direction.patch b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch
index 717b97d228..717b97d228 100644
--- a/patches/api/0230-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/api/0229-Expose-LivingEntity-hurt-direction.patch
diff --git a/patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index 00552e9137..00552e9137 100644
--- a/patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
diff --git a/patches/api/0232-Added-PlayerTradeEvent.patch b/patches/api/0231-Added-PlayerTradeEvent.patch
index e09b088160..e09b088160 100644
--- a/patches/api/0232-Added-PlayerTradeEvent.patch
+++ b/patches/api/0231-Added-PlayerTradeEvent.patch
diff --git a/patches/api/0233-Add-TargetHitEvent-API.patch b/patches/api/0232-Add-TargetHitEvent-API.patch
index 247421fb61..247421fb61 100644
--- a/patches/api/0233-Add-TargetHitEvent-API.patch
+++ b/patches/api/0232-Add-TargetHitEvent-API.patch
diff --git a/patches/api/0234-Additional-Block-Material-API-s.patch b/patches/api/0233-Additional-Block-Material-API-s.patch
index 91196a2442..91196a2442 100644
--- a/patches/api/0234-Additional-Block-Material-API-s.patch
+++ b/patches/api/0233-Additional-Block-Material-API-s.patch
diff --git a/patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
index d297dd5c24..d297dd5c24 100644
--- a/patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
+++ b/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch
diff --git a/patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch b/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch
index d9cd5a9f01..d9cd5a9f01 100644
--- a/patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch
+++ b/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch
diff --git a/patches/api/0237-Zombie-API-breaking-doors.patch b/patches/api/0236-Zombie-API-breaking-doors.patch
index cda09b776b..cda09b776b 100644
--- a/patches/api/0237-Zombie-API-breaking-doors.patch
+++ b/patches/api/0236-Zombie-API-breaking-doors.patch
diff --git a/patches/api/0238-Add-EntityLoadCrossbowEvent.patch b/patches/api/0237-Add-EntityLoadCrossbowEvent.patch
index 1e0386a9aa..1e0386a9aa 100644
--- a/patches/api/0238-Add-EntityLoadCrossbowEvent.patch
+++ b/patches/api/0237-Add-EntityLoadCrossbowEvent.patch
diff --git a/patches/api/0239-Added-WorldGameRuleChangeEvent.patch b/patches/api/0238-Added-WorldGameRuleChangeEvent.patch
index 8ef5f7efcd..8ef5f7efcd 100644
--- a/patches/api/0239-Added-WorldGameRuleChangeEvent.patch
+++ b/patches/api/0238-Added-WorldGameRuleChangeEvent.patch
diff --git a/patches/api/0240-Added-ServerResourcesReloadedEvent.patch b/patches/api/0239-Added-ServerResourcesReloadedEvent.patch
index de081bbae7..de081bbae7 100644
--- a/patches/api/0240-Added-ServerResourcesReloadedEvent.patch
+++ b/patches/api/0239-Added-ServerResourcesReloadedEvent.patch
diff --git a/patches/api/0241-Add-BlockFailedDispenseEvent.patch b/patches/api/0240-Add-BlockFailedDispenseEvent.patch
index 126714b965..126714b965 100644
--- a/patches/api/0241-Add-BlockFailedDispenseEvent.patch
+++ b/patches/api/0240-Add-BlockFailedDispenseEvent.patch
diff --git a/patches/api/0242-Added-PlayerLecternPageChangeEvent.patch b/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch
index 2b65c3a245..2b65c3a245 100644
--- a/patches/api/0242-Added-PlayerLecternPageChangeEvent.patch
+++ b/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch
diff --git a/patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch b/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch
index 5677026956..5677026956 100644
--- a/patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch
+++ b/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch
diff --git a/patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch b/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
index afc3f45d28..afc3f45d28 100644
--- a/patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
+++ b/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
diff --git a/patches/api/0245-Add-sendOpLevel-API.patch b/patches/api/0244-Add-sendOpLevel-API.patch
index a15a9cc2a8..a15a9cc2a8 100644
--- a/patches/api/0245-Add-sendOpLevel-API.patch
+++ b/patches/api/0244-Add-sendOpLevel-API.patch
diff --git a/patches/api/0246-Add-PaperRegistry.patch b/patches/api/0245-Add-PaperRegistry.patch
index 8cc1e1b931..8cc1e1b931 100644
--- a/patches/api/0246-Add-PaperRegistry.patch
+++ b/patches/api/0245-Add-PaperRegistry.patch
diff --git a/patches/api/0247-Add-StructuresLocateEvent.patch b/patches/api/0246-Add-StructuresLocateEvent.patch
index 51a892b911..51a892b911 100644
--- a/patches/api/0247-Add-StructuresLocateEvent.patch
+++ b/patches/api/0246-Add-StructuresLocateEvent.patch
diff --git a/patches/api/0248-Add-BlockPreDispenseEvent.patch b/patches/api/0247-Add-BlockPreDispenseEvent.patch
index fb0b89a4ee..fb0b89a4ee 100644
--- a/patches/api/0248-Add-BlockPreDispenseEvent.patch
+++ b/patches/api/0247-Add-BlockPreDispenseEvent.patch
diff --git a/patches/api/0249-Added-missing-vanilla-tags.patch b/patches/api/0248-Added-missing-vanilla-tags.patch
index 0b81d3e855..0b81d3e855 100644
--- a/patches/api/0249-Added-missing-vanilla-tags.patch
+++ b/patches/api/0248-Added-missing-vanilla-tags.patch
diff --git a/patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch
index 336e7b1302..336e7b1302 100644
--- a/patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch
+++ b/patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch
diff --git a/patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch
index ce446c46fe..ce446c46fe 100644
--- a/patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch
+++ b/patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch
diff --git a/patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch
index f85f2a4f26..f85f2a4f26 100644
--- a/patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch
+++ b/patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch
diff --git a/patches/api/0253-add-DragonEggFormEvent.patch b/patches/api/0252-add-DragonEggFormEvent.patch
index c465295e88..c465295e88 100644
--- a/patches/api/0253-add-DragonEggFormEvent.patch
+++ b/patches/api/0252-add-DragonEggFormEvent.patch
diff --git a/patches/api/0254-EntityMoveEvent.patch b/patches/api/0253-EntityMoveEvent.patch
index 2855c3bdef..2855c3bdef 100644
--- a/patches/api/0254-EntityMoveEvent.patch
+++ b/patches/api/0253-EntityMoveEvent.patch
diff --git a/patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch
index 984da00f52..984da00f52 100644
--- a/patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch
diff --git a/patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch
index bbb81fdcf6..bbb81fdcf6 100644
--- a/patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch
+++ b/patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch
diff --git a/patches/api/0257-living-entity-allow-attribute-registration.patch b/patches/api/0256-living-entity-allow-attribute-registration.patch
index e7ded6dabb..e7ded6dabb 100644
--- a/patches/api/0257-living-entity-allow-attribute-registration.patch
+++ b/patches/api/0256-living-entity-allow-attribute-registration.patch
diff --git a/patches/api/0258-Add-missing-effects.patch b/patches/api/0257-Add-missing-effects.patch
index 1a3589e272..1a3589e272 100644
--- a/patches/api/0258-Add-missing-effects.patch
+++ b/patches/api/0257-Add-missing-effects.patch
diff --git a/patches/api/0259-Expose-Tracked-Players.patch b/patches/api/0258-Expose-Tracked-Players.patch
index c32bb8acf2..c32bb8acf2 100644
--- a/patches/api/0259-Expose-Tracked-Players.patch
+++ b/patches/api/0258-Expose-Tracked-Players.patch
diff --git a/patches/api/0260-Cache-the-result-of-Material-isBlock.patch b/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
index 49dab657f2..49dab657f2 100644
--- a/patches/api/0260-Cache-the-result-of-Material-isBlock.patch
+++ b/patches/api/0259-Cache-the-result-of-Material-isBlock.patch
diff --git a/patches/api/0261-Add-worldborder-events.patch b/patches/api/0260-Add-worldborder-events.patch
index 2a1d4164b2..2a1d4164b2 100644
--- a/patches/api/0261-Add-worldborder-events.patch
+++ b/patches/api/0260-Add-worldborder-events.patch
diff --git a/patches/api/0262-added-PlayerNameEntityEvent.patch b/patches/api/0261-added-PlayerNameEntityEvent.patch
index a38082f8e8..a38082f8e8 100644
--- a/patches/api/0262-added-PlayerNameEntityEvent.patch
+++ b/patches/api/0261-added-PlayerNameEntityEvent.patch
diff --git a/patches/api/0263-Add-recipe-to-cook-events.patch b/patches/api/0262-Add-recipe-to-cook-events.patch
index b0b34773c0..b0b34773c0 100644
--- a/patches/api/0263-Add-recipe-to-cook-events.patch
+++ b/patches/api/0262-Add-recipe-to-cook-events.patch
diff --git a/patches/api/0264-Add-Block-isValidTool.patch b/patches/api/0263-Add-Block-isValidTool.patch
index 182e364647..182e364647 100644
--- a/patches/api/0264-Add-Block-isValidTool.patch
+++ b/patches/api/0263-Add-Block-isValidTool.patch
diff --git a/patches/api/0265-Expand-world-key-API.patch b/patches/api/0264-Expand-world-key-API.patch
index bfe79e8921..1908ecc58e 100644
--- a/patches/api/0265-Expand-world-key-API.patch
+++ b/patches/api/0264-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 0bc59cd1b27303dff7f13f79087b13097606ae65..cda896b2278dfb71f1fac8665397a01abcc0d096 100644
+index 6d5423f6b6b1aa013a1f77d368058e4cdf2cbe84..be32ddb8ad5d6290b76cb520d159d456ed16f1b1 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -832,6 +832,18 @@ public final class Bukkit {
+@@ -830,6 +830,18 @@ public final class Bukkit {
public static World getWorld(@NotNull UUID uid) {
return server.getWorld(uid);
}
@@ -56,10 +56,10 @@ index 501dd5a26c27294420821b3d75f8938596afb1a8..71ef9b479888aa83455757560b607455
// Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 247bd6d2101d280a00727cacdeb8f40a7d7c4dcb..1044ffa10c12b645e2e82431ba809641048e757f 100644
+index f8ef98c9d266e12a3a3f69647cf4d7a9bc633419..d1d035ee86264b38b6bb50135d031946daf25a00 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -696,6 +696,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -694,6 +694,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public World getWorld(@NotNull UUID uid);
diff --git a/patches/api/0266-Item-Rarity-API.patch b/patches/api/0265-Item-Rarity-API.patch
index 5c25c66d65..5c25c66d65 100644
--- a/patches/api/0266-Item-Rarity-API.patch
+++ b/patches/api/0265-Item-Rarity-API.patch
diff --git a/patches/api/0267-Expose-protocol-version.patch b/patches/api/0266-Expose-protocol-version.patch
index 278855acb1..278855acb1 100644
--- a/patches/api/0267-Expose-protocol-version.patch
+++ b/patches/api/0266-Expose-protocol-version.patch
diff --git a/patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch
index fc6f6dcab3..fc6f6dcab3 100644
--- a/patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch
+++ b/patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch
diff --git a/patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch
index 6c8b681cd9..6c8b681cd9 100644
--- a/patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch
+++ b/patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch
diff --git a/patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch
index a9a1c98000..a9a1c98000 100644
--- a/patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch
+++ b/patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch
diff --git a/patches/api/0271-Added-PlayerDeepSleepEvent.patch b/patches/api/0270-Added-PlayerDeepSleepEvent.patch
index d8dccca755..d8dccca755 100644
--- a/patches/api/0271-Added-PlayerDeepSleepEvent.patch
+++ b/patches/api/0270-Added-PlayerDeepSleepEvent.patch
diff --git a/patches/api/0272-More-World-API.patch b/patches/api/0271-More-World-API.patch
index 75e34c8b2b..75e34c8b2b 100644
--- a/patches/api/0272-More-World-API.patch
+++ b/patches/api/0271-More-World-API.patch
diff --git a/patches/api/0273-Added-PlayerBedFailEnterEvent.patch b/patches/api/0272-Added-PlayerBedFailEnterEvent.patch
index a622f2b98f..a622f2b98f 100644
--- a/patches/api/0273-Added-PlayerBedFailEnterEvent.patch
+++ b/patches/api/0272-Added-PlayerBedFailEnterEvent.patch
diff --git a/patches/api/0274-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0273-Introduce-beacon-activation-deactivation-events.patch
index c2f0577191..c2f0577191 100644
--- a/patches/api/0274-Introduce-beacon-activation-deactivation-events.patch
+++ b/patches/api/0273-Introduce-beacon-activation-deactivation-events.patch
diff --git a/patches/api/0275-PlayerMoveEvent-Improvements.patch b/patches/api/0274-PlayerMoveEvent-Improvements.patch
index 33cf16e54b..33cf16e54b 100644
--- a/patches/api/0275-PlayerMoveEvent-Improvements.patch
+++ b/patches/api/0274-PlayerMoveEvent-Improvements.patch
diff --git a/patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch
index c596be8b98..c596be8b98 100644
--- a/patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch
+++ b/patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch
diff --git a/patches/api/0277-Add-more-WanderingTrader-API.patch b/patches/api/0276-Add-more-WanderingTrader-API.patch
index 99045d4949..99045d4949 100644
--- a/patches/api/0277-Add-more-WanderingTrader-API.patch
+++ b/patches/api/0276-Add-more-WanderingTrader-API.patch
diff --git a/patches/api/0278-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0277-Add-EntityBlockStorage-clearEntities.patch
index 7032ba6155..7032ba6155 100644
--- a/patches/api/0278-Add-EntityBlockStorage-clearEntities.patch
+++ b/patches/api/0277-Add-EntityBlockStorage-clearEntities.patch
diff --git a/patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
index 16af3a7728..16af3a7728 100644
--- a/patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
+++ b/patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
diff --git a/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
index f42f7eed00..f42f7eed00 100644
--- a/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
+++ b/patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/api/0281-Inventory-close.patch b/patches/api/0280-Inventory-close.patch
index 87dfa1a083..87dfa1a083 100644
--- a/patches/api/0281-Inventory-close.patch
+++ b/patches/api/0280-Inventory-close.patch
diff --git a/patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
index 3103f1ce2c..3103f1ce2c 100644
--- a/patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
+++ b/patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff --git a/patches/api/0283-Add-basic-Datapack-API.patch b/patches/api/0282-Add-basic-Datapack-API.patch
index 98cb3fedc1..0582d74ff9 100644
--- a/patches/api/0283-Add-basic-Datapack-API.patch
+++ b/patches/api/0282-Add-basic-Datapack-API.patch
@@ -70,10 +70,10 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7
+
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e219c7405 100644
+index be32ddb8ad5d6290b76cb520d159d456ed16f1b1..a6fef51a8435eced8c2981588ae98046c42d8ed4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -318,9 +318,11 @@ public final class Bukkit {
+@@ -316,9 +316,11 @@ public final class Bukkit {
/**
* Get the DataPack Manager.
*
@@ -85,7 +85,7 @@ index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e
public static DataPackManager getDataPackManager() {
return server.getDataPackManager();
}
-@@ -2406,6 +2408,14 @@ public final class Bukkit {
+@@ -2423,6 +2425,14 @@ public final class Bukkit {
public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return server.getMobGoals();
}
@@ -101,10 +101,10 @@ index cda896b2278dfb71f1fac8665397a01abcc0d096..ce47379dec112f204062092e2e056a2e
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 1044ffa10c12b645e2e82431ba809641048e757f..7f289d358480806b6af3a02b88a0f632a5b5681c 100644
+index d1d035ee86264b38b6bb50135d031946daf25a00..529054834865813520ebe6784894e759c22ec4f4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -256,9 +256,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -254,9 +254,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Get the DataPack Manager.
*
@@ -116,7 +116,7 @@ index 1044ffa10c12b645e2e82431ba809641048e757f..7f289d358480806b6af3a02b88a0f632
public DataPackManager getDataPackManager();
/**
-@@ -2097,5 +2099,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2110,5 +2112,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
diff --git a/patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch
index b2e65ae490..b2e65ae490 100644
--- a/patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch
diff --git a/patches/api/0285-ItemStack-repair-check-API.patch b/patches/api/0284-ItemStack-repair-check-API.patch
index d35e2fa9ad..d35e2fa9ad 100644
--- a/patches/api/0285-ItemStack-repair-check-API.patch
+++ b/patches/api/0284-ItemStack-repair-check-API.patch
diff --git a/patches/api/0286-More-Enchantment-API.patch b/patches/api/0285-More-Enchantment-API.patch
index 0ccfe049b4..0ccfe049b4 100644
--- a/patches/api/0286-More-Enchantment-API.patch
+++ b/patches/api/0285-More-Enchantment-API.patch
diff --git a/patches/api/0287-Add-Mob-lookAt-API.patch b/patches/api/0286-Add-Mob-lookAt-API.patch
index 0dd5126905..0dd5126905 100644
--- a/patches/api/0287-Add-Mob-lookAt-API.patch
+++ b/patches/api/0286-Add-Mob-lookAt-API.patch
diff --git a/patches/api/0288-ItemStack-editMeta.patch b/patches/api/0287-ItemStack-editMeta.patch
index 7893a035c9..7893a035c9 100644
--- a/patches/api/0288-ItemStack-editMeta.patch
+++ b/patches/api/0287-ItemStack-editMeta.patch
diff --git a/patches/api/0289-Add-EntityInsideBlockEvent.patch b/patches/api/0288-Add-EntityInsideBlockEvent.patch
index 91451b592d..91451b592d 100644
--- a/patches/api/0289-Add-EntityInsideBlockEvent.patch
+++ b/patches/api/0288-Add-EntityInsideBlockEvent.patch
diff --git a/patches/api/0290-Attributes-API-for-item-defaults.patch b/patches/api/0289-Attributes-API-for-item-defaults.patch
index abd3dd1e69..abd3dd1e69 100644
--- a/patches/api/0290-Attributes-API-for-item-defaults.patch
+++ b/patches/api/0289-Attributes-API-for-item-defaults.patch
diff --git a/patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch
index 8e5d45d87b..8e5d45d87b 100644
--- a/patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch
diff --git a/patches/api/0292-More-Lidded-Block-API.patch b/patches/api/0291-More-Lidded-Block-API.patch
index a89f206f9a..a89f206f9a 100644
--- a/patches/api/0292-More-Lidded-Block-API.patch
+++ b/patches/api/0291-More-Lidded-Block-API.patch
diff --git a/patches/api/0293-Add-PlayerKickEvent-causes.patch b/patches/api/0292-Add-PlayerKickEvent-causes.patch
index 739a6a6825..739a6a6825 100644
--- a/patches/api/0293-Add-PlayerKickEvent-causes.patch
+++ b/patches/api/0292-Add-PlayerKickEvent-causes.patch
diff --git a/patches/api/0294-Add-PufferFishStateChangeEvent.patch b/patches/api/0293-Add-PufferFishStateChangeEvent.patch
index c3014534d3..c3014534d3 100644
--- a/patches/api/0294-Add-PufferFishStateChangeEvent.patch
+++ b/patches/api/0293-Add-PufferFishStateChangeEvent.patch
diff --git a/patches/api/0295-Add-BellRevealRaiderEvent.patch b/patches/api/0294-Add-BellRevealRaiderEvent.patch
index b3b35c594f..b3b35c594f 100644
--- a/patches/api/0295-Add-BellRevealRaiderEvent.patch
+++ b/patches/api/0294-Add-BellRevealRaiderEvent.patch
diff --git a/patches/api/0296-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0295-Add-ElderGuardianAppearanceEvent.patch
index 8d925d10ac..8d925d10ac 100644
--- a/patches/api/0296-Add-ElderGuardianAppearanceEvent.patch
+++ b/patches/api/0295-Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/api/0297-Add-more-line-of-sight-methods.patch b/patches/api/0296-Add-more-line-of-sight-methods.patch
index f8182b74f7..f8182b74f7 100644
--- a/patches/api/0297-Add-more-line-of-sight-methods.patch
+++ b/patches/api/0296-Add-more-line-of-sight-methods.patch
diff --git a/patches/api/0298-Add-WaterBottleSplashEvent.patch b/patches/api/0297-Add-WaterBottleSplashEvent.patch
index 198b488051..198b488051 100644
--- a/patches/api/0298-Add-WaterBottleSplashEvent.patch
+++ b/patches/api/0297-Add-WaterBottleSplashEvent.patch
diff --git a/patches/api/0299-Add-more-LimitedRegion-API.patch b/patches/api/0298-Add-more-LimitedRegion-API.patch
index 292f95c890..292f95c890 100644
--- a/patches/api/0299-Add-more-LimitedRegion-API.patch
+++ b/patches/api/0298-Add-more-LimitedRegion-API.patch
diff --git a/patches/api/0300-Missing-Entity-Behavior-API.patch b/patches/api/0299-Missing-Entity-Behavior-API.patch
index 5bcf3a9146..5bcf3a9146 100644
--- a/patches/api/0300-Missing-Entity-Behavior-API.patch
+++ b/patches/api/0299-Missing-Entity-Behavior-API.patch
diff --git a/patches/api/0301-Adds-PlayerArmSwingEvent.patch b/patches/api/0300-Adds-PlayerArmSwingEvent.patch
index 0a501495fe..0a501495fe 100644
--- a/patches/api/0301-Adds-PlayerArmSwingEvent.patch
+++ b/patches/api/0300-Adds-PlayerArmSwingEvent.patch
diff --git a/patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch
index 69d9053262..69d9053262 100644
--- a/patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch
+++ b/patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch
diff --git a/patches/api/0303-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0302-fix-empty-array-elements-in-command-arguments.patch
index 4b66990211..4b66990211 100644
--- a/patches/api/0303-fix-empty-array-elements-in-command-arguments.patch
+++ b/patches/api/0302-fix-empty-array-elements-in-command-arguments.patch
diff --git a/patches/api/0304-Stinger-API.patch b/patches/api/0303-Stinger-API.patch
index 4011649092..4011649092 100644
--- a/patches/api/0304-Stinger-API.patch
+++ b/patches/api/0303-Stinger-API.patch
diff --git a/patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
index 5ae9132b78..5ae9132b78 100644
--- a/patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
+++ b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
diff --git a/patches/api/0306-Add-PlayerSetSpawnEvent.patch b/patches/api/0305-Add-PlayerSetSpawnEvent.patch
index 9229c768c6..9229c768c6 100644
--- a/patches/api/0306-Add-PlayerSetSpawnEvent.patch
+++ b/patches/api/0305-Add-PlayerSetSpawnEvent.patch
diff --git a/patches/api/0307-Added-EntityDamageItemEvent.patch b/patches/api/0306-Added-EntityDamageItemEvent.patch
index 8bbe79f9f3..8bbe79f9f3 100644
--- a/patches/api/0307-Added-EntityDamageItemEvent.patch
+++ b/patches/api/0306-Added-EntityDamageItemEvent.patch
diff --git a/patches/api/0308-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0307-Make-EntityUnleashEvent-cancellable.patch
index e99584c277..e99584c277 100644
--- a/patches/api/0308-Make-EntityUnleashEvent-cancellable.patch
+++ b/patches/api/0307-Make-EntityUnleashEvent-cancellable.patch
diff --git a/patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch
index d8e53593ae..d8e53593ae 100644
--- a/patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch
+++ b/patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/api/0310-Add-BlockBreakBlockEvent.patch b/patches/api/0309-Add-BlockBreakBlockEvent.patch
index dfd13b1355..dfd13b1355 100644
--- a/patches/api/0310-Add-BlockBreakBlockEvent.patch
+++ b/patches/api/0309-Add-BlockBreakBlockEvent.patch
diff --git a/patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch
index 9dac2fe612..9dac2fe612 100644
--- a/patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch
+++ b/patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch
diff --git a/patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
index a37dea550d..a37dea550d 100644
--- a/patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
+++ b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
diff --git a/patches/api/0313-More-CommandBlock-API.patch b/patches/api/0312-More-CommandBlock-API.patch
index 46ea583f90..46ea583f90 100644
--- a/patches/api/0313-More-CommandBlock-API.patch
+++ b/patches/api/0312-More-CommandBlock-API.patch
diff --git a/patches/api/0314-Add-missing-team-sidebar-display-slots.patch b/patches/api/0313-Add-missing-team-sidebar-display-slots.patch
index 1d9b731fb4..1d9b731fb4 100644
--- a/patches/api/0314-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/api/0313-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/api/0315-add-back-EntityPortalExitEvent.patch b/patches/api/0314-add-back-EntityPortalExitEvent.patch
index 5a153e2345..5a153e2345 100644
--- a/patches/api/0315-add-back-EntityPortalExitEvent.patch
+++ b/patches/api/0314-add-back-EntityPortalExitEvent.patch
diff --git a/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
index f8c58e9869..f8c58e9869 100644
--- a/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch
diff --git a/patches/api/0317-Get-entity-default-attributes.patch b/patches/api/0316-Get-entity-default-attributes.patch
index 32c28f3adf..32c28f3adf 100644
--- a/patches/api/0317-Get-entity-default-attributes.patch
+++ b/patches/api/0316-Get-entity-default-attributes.patch
diff --git a/patches/api/0318-Left-handed-API.patch b/patches/api/0317-Left-handed-API.patch
index 6b5d42a329..6b5d42a329 100644
--- a/patches/api/0318-Left-handed-API.patch
+++ b/patches/api/0317-Left-handed-API.patch
diff --git a/patches/api/0319-Add-more-advancement-API.patch b/patches/api/0318-Add-more-advancement-API.patch
index 179dbdc225..179dbdc225 100644
--- a/patches/api/0319-Add-more-advancement-API.patch
+++ b/patches/api/0318-Add-more-advancement-API.patch
diff --git a/patches/api/0320-Add-ItemFactory-getSpawnEgg-API.patch b/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch
index bf76f634c7..bf76f634c7 100644
--- a/patches/api/0320-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch
diff --git a/patches/api/0321-Add-critical-damage-API.patch b/patches/api/0320-Add-critical-damage-API.patch
index 3a9d1f8070..3a9d1f8070 100644
--- a/patches/api/0321-Add-critical-damage-API.patch
+++ b/patches/api/0320-Add-critical-damage-API.patch
diff --git a/patches/api/0322-Fix-issues-with-mob-conversion.patch b/patches/api/0321-Fix-issues-with-mob-conversion.patch
index f451d967b6..f451d967b6 100644
--- a/patches/api/0322-Fix-issues-with-mob-conversion.patch
+++ b/patches/api/0321-Fix-issues-with-mob-conversion.patch
diff --git a/patches/api/0323-Add-isCollidable-methods-to-various-places.patch b/patches/api/0322-Add-isCollidable-methods-to-various-places.patch
index 62fba2ca0e..62fba2ca0e 100644
--- a/patches/api/0323-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/api/0322-Add-isCollidable-methods-to-various-places.patch
diff --git a/patches/api/0324-Goat-ram-API.patch b/patches/api/0323-Goat-ram-API.patch
index 06d426a786..06d426a786 100644
--- a/patches/api/0324-Goat-ram-API.patch
+++ b/patches/api/0323-Goat-ram-API.patch
diff --git a/patches/api/0325-Add-API-for-resetting-a-single-score.patch b/patches/api/0324-Add-API-for-resetting-a-single-score.patch
index 997ebf42f6..997ebf42f6 100644
--- a/patches/api/0325-Add-API-for-resetting-a-single-score.patch
+++ b/patches/api/0324-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/api/0326-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch
index f824dd3957..f824dd3957 100644
--- a/patches/api/0326-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch
diff --git a/patches/api/0327-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch
index a62e452bb4..a62e452bb4 100644
--- a/patches/api/0327-Add-PlayerItemFrameChangeEvent.patch
+++ b/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/api/0328-Add-player-health-update-API.patch b/patches/api/0327-Add-player-health-update-API.patch
index c810b7ddae..c810b7ddae 100644
--- a/patches/api/0328-Add-player-health-update-API.patch
+++ b/patches/api/0327-Add-player-health-update-API.patch
diff --git a/patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch
index 23ce352ffc..f31c8284f6 100644
--- a/patches/api/0329-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/api/0328-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ce47379dec112f204062092e2e056a2e219c7405..d4b522ee3d44ec755046cc406708086b5f5cf625 100644
+index a6fef51a8435eced8c2981588ae98046c42d8ed4..e75da4494582594dfa8f21e6abd36fb345558127 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1926,6 +1926,24 @@ public final class Bukkit {
+@@ -1943,6 +1943,24 @@ public final class Bukkit {
return server.createChunkData(world);
}
@@ -34,10 +34,10 @@ index ce47379dec112f204062092e2e056a2e219c7405..d4b522ee3d44ec755046cc406708086b
* Creates a boss bar instance to display to players. The progress
* defaults to 1.0
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7f289d358480806b6af3a02b88a0f632a5b5681c..feb2c76bd20c1146d22ec1988943e5b94a982de9 100644
+index 529054834865813520ebe6784894e759c22ec4f4..b6e8dd95cc58f53e3e6ca64dd796ed6633630cf4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1625,6 +1625,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1638,6 +1638,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ChunkGenerator.ChunkData createChunkData(@NotNull World world);
diff --git a/patches/api/0330-Add-more-Campfire-API.patch b/patches/api/0329-Add-more-Campfire-API.patch
index 80cdc0bb39..80cdc0bb39 100644
--- a/patches/api/0330-Add-more-Campfire-API.patch
+++ b/patches/api/0329-Add-more-Campfire-API.patch
diff --git a/patches/api/0331-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0330-Move-VehicleCollisionEvent-HandlerList-up.patch
index 4be8907b49..4be8907b49 100644
--- a/patches/api/0331-Move-VehicleCollisionEvent-HandlerList-up.patch
+++ b/patches/api/0330-Move-VehicleCollisionEvent-HandlerList-up.patch
diff --git a/patches/api/0332-Improve-scoreboard-entries.patch b/patches/api/0331-Improve-scoreboard-entries.patch
index bb288528e5..bb288528e5 100644
--- a/patches/api/0332-Improve-scoreboard-entries.patch
+++ b/patches/api/0331-Improve-scoreboard-entries.patch
diff --git a/patches/api/0333-Entity-powdered-snow-API.patch b/patches/api/0332-Entity-powdered-snow-API.patch
index 3ed79d314d..3ed79d314d 100644
--- a/patches/api/0333-Entity-powdered-snow-API.patch
+++ b/patches/api/0332-Entity-powdered-snow-API.patch
diff --git a/patches/api/0334-Add-API-for-item-entity-health.patch b/patches/api/0333-Add-API-for-item-entity-health.patch
index 94373dbdf2..94373dbdf2 100644
--- a/patches/api/0334-Add-API-for-item-entity-health.patch
+++ b/patches/api/0333-Add-API-for-item-entity-health.patch
diff --git a/patches/api/0335-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0334-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
index f094cdc255..f094cdc255 100644
--- a/patches/api/0335-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
+++ b/patches/api/0334-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/api/0336-Bucketable-API.patch b/patches/api/0335-Bucketable-API.patch
index 26dbdc9f5d..26dbdc9f5d 100644
--- a/patches/api/0336-Bucketable-API.patch
+++ b/patches/api/0335-Bucketable-API.patch
diff --git a/patches/api/0337-System-prop-for-default-config-comment-parsing.patch b/patches/api/0336-System-prop-for-default-config-comment-parsing.patch
index 632f71e519..632f71e519 100644
--- a/patches/api/0337-System-prop-for-default-config-comment-parsing.patch
+++ b/patches/api/0336-System-prop-for-default-config-comment-parsing.patch
diff --git a/patches/api/0338-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0337-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 9b189fc918..9b189fc918 100644
--- a/patches/api/0338-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/api/0337-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
diff --git a/patches/api/0339-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0338-Add-new-overload-to-PersistentDataContainer-has.patch
index 73c49a2fc8..73c49a2fc8 100644
--- a/patches/api/0339-Add-new-overload-to-PersistentDataContainer-has.patch
+++ b/patches/api/0338-Add-new-overload-to-PersistentDataContainer-has.patch
diff --git a/patches/api/0340-Multiple-Entries-with-Scoreboards.patch b/patches/api/0339-Multiple-Entries-with-Scoreboards.patch
index 0a4fbab3a7..0a4fbab3a7 100644
--- a/patches/api/0340-Multiple-Entries-with-Scoreboards.patch
+++ b/patches/api/0339-Multiple-Entries-with-Scoreboards.patch
diff --git a/patches/api/0341-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0340-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
index 2d133482d3..2d133482d3 100644
--- a/patches/api/0341-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
+++ b/patches/api/0340-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/api/0342-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0341-Warn-on-strange-EventHandler-return-types.patch
index c7807b823b..c7807b823b 100644
--- a/patches/api/0342-Warn-on-strange-EventHandler-return-types.patch
+++ b/patches/api/0341-Warn-on-strange-EventHandler-return-types.patch
diff --git a/patches/api/0343-Multi-Block-Change-API.patch b/patches/api/0342-Multi-Block-Change-API.patch
index 70e9276737..70e9276737 100644
--- a/patches/api/0343-Multi-Block-Change-API.patch
+++ b/patches/api/0342-Multi-Block-Change-API.patch
diff --git a/patches/api/0344-Fix-NotePlayEvent.patch b/patches/api/0343-Fix-NotePlayEvent.patch
index d3f827bfd8..d3f827bfd8 100644
--- a/patches/api/0344-Fix-NotePlayEvent.patch
+++ b/patches/api/0343-Fix-NotePlayEvent.patch
diff --git a/patches/api/0345-Freeze-Tick-Lock-API.patch b/patches/api/0344-Freeze-Tick-Lock-API.patch
index fdf81b1a62..fdf81b1a62 100644
--- a/patches/api/0345-Freeze-Tick-Lock-API.patch
+++ b/patches/api/0344-Freeze-Tick-Lock-API.patch
diff --git a/patches/api/0346-Dolphin-API.patch b/patches/api/0345-Dolphin-API.patch
index 73beed437b..73beed437b 100644
--- a/patches/api/0346-Dolphin-API.patch
+++ b/patches/api/0345-Dolphin-API.patch
diff --git a/patches/api/0347-More-PotionEffectType-API.patch b/patches/api/0346-More-PotionEffectType-API.patch
index 5cd5753a92..5cd5753a92 100644
--- a/patches/api/0347-More-PotionEffectType-API.patch
+++ b/patches/api/0346-More-PotionEffectType-API.patch
diff --git a/patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch
index 967c5e198e..d9bb4574b2 100644
--- a/patches/api/0348-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/api/0347-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] API for creating command sender which forwards feedback
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index d4b522ee3d44ec755046cc406708086b5f5cf625..3c7cedf0f2654d68fc7fa9fb32a17d362bba459e 100644
+index e75da4494582594dfa8f21e6abd36fb345558127..43f93aa0efc35488fab44cb55081cfc486c319f5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1434,6 +1434,20 @@ public final class Bukkit {
+@@ -1432,6 +1432,20 @@ public final class Bukkit {
return server.getConsoleSender();
}
@@ -30,10 +30,10 @@ index d4b522ee3d44ec755046cc406708086b5f5cf625..3c7cedf0f2654d68fc7fa9fb32a17d36
* Gets the folder that contains all of the various {@link World}s.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index feb2c76bd20c1146d22ec1988943e5b94a982de9..57e117583ba6d562e2ffd308e058e5ea7de90b24 100644
+index b6e8dd95cc58f53e3e6ca64dd796ed6633630cf4..693e07b7e4aeef2ebc7fba5d20d6c6071762896c 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1204,6 +1204,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1202,6 +1202,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ConsoleCommandSender getConsoleSender();
diff --git a/patches/api/0349-Implement-regenerateChunk.patch b/patches/api/0348-Implement-regenerateChunk.patch
index ee4594616d..ee4594616d 100644
--- a/patches/api/0349-Implement-regenerateChunk.patch
+++ b/patches/api/0348-Implement-regenerateChunk.patch
diff --git a/patches/api/0350-Add-GameEvent-tags.patch b/patches/api/0349-Add-GameEvent-tags.patch
index 1aabdd065a..1aabdd065a 100644
--- a/patches/api/0350-Add-GameEvent-tags.patch
+++ b/patches/api/0349-Add-GameEvent-tags.patch
diff --git a/patches/api/0351-Furnace-RecipesUsed-API.patch b/patches/api/0350-Furnace-RecipesUsed-API.patch
index 7fed82db21..7fed82db21 100644
--- a/patches/api/0351-Furnace-RecipesUsed-API.patch
+++ b/patches/api/0350-Furnace-RecipesUsed-API.patch
diff --git a/patches/api/0352-Configurable-sculk-sensor-listener-range.patch b/patches/api/0351-Configurable-sculk-sensor-listener-range.patch
index b1ad0cdb5b..b1ad0cdb5b 100644
--- a/patches/api/0352-Configurable-sculk-sensor-listener-range.patch
+++ b/patches/api/0351-Configurable-sculk-sensor-listener-range.patch
diff --git a/patches/api/0353-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0352-Add-missing-block-data-mins-and-maxes.patch
index 600497b952..600497b952 100644
--- a/patches/api/0353-Add-missing-block-data-mins-and-maxes.patch
+++ b/patches/api/0352-Add-missing-block-data-mins-and-maxes.patch
diff --git a/patches/api/0354-Custom-Potion-Mixes.patch b/patches/api/0353-Custom-Potion-Mixes.patch
index ddea78ba36..a8c7167526 100644
--- a/patches/api/0354-Custom-Potion-Mixes.patch
+++ b/patches/api/0353-Custom-Potion-Mixes.patch
@@ -102,10 +102,10 @@ index 0000000000000000000000000000000000000000..cb6d93526b637946aec311bef103ad30
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 3c7cedf0f2654d68fc7fa9fb32a17d362bba459e..7c2f5f1e3ce496d55471027cc069d7f1863dc7e6 100644
+index 43f93aa0efc35488fab44cb55081cfc486c319f5..ac6a49e39790aa9f12c7d98990f4cac297200cb0 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2448,6 +2448,15 @@ public final class Bukkit {
+@@ -2465,6 +2465,15 @@ public final class Bukkit {
public static io.papermc.paper.datapack.DatapackManager getDatapackManager() {
return server.getDatapackManager();
}
@@ -122,10 +122,10 @@ index 3c7cedf0f2654d68fc7fa9fb32a17d362bba459e..7c2f5f1e3ce496d55471027cc069d7f1
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 57e117583ba6d562e2ffd308e058e5ea7de90b24..474835e0a0d174a97ad25406d4a13a43d7a3644e 100644
+index 693e07b7e4aeef2ebc7fba5d20d6c6071762896c..18f4ae463f0e1406842c451b91f333a1bfabae69 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2133,5 +2133,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2146,5 +2146,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
io.papermc.paper.datapack.DatapackManager getDatapackManager();
diff --git a/patches/api/0355-Expose-furnace-minecart-push-values.patch b/patches/api/0354-Expose-furnace-minecart-push-values.patch
index 3d8c2336e7..3d8c2336e7 100644
--- a/patches/api/0355-Expose-furnace-minecart-push-values.patch
+++ b/patches/api/0354-Expose-furnace-minecart-push-values.patch
diff --git a/patches/api/0356-More-Projectile-API.patch b/patches/api/0355-More-Projectile-API.patch
index fac92210c3..fac92210c3 100644
--- a/patches/api/0356-More-Projectile-API.patch
+++ b/patches/api/0355-More-Projectile-API.patch
diff --git a/patches/api/0357-Add-getComputedBiome-API.patch b/patches/api/0356-Add-getComputedBiome-API.patch
index a1ec54fe08..a1ec54fe08 100644
--- a/patches/api/0357-Add-getComputedBiome-API.patch
+++ b/patches/api/0356-Add-getComputedBiome-API.patch
diff --git a/patches/api/0358-Add-enchantWithLevels-API.patch b/patches/api/0357-Add-enchantWithLevels-API.patch
index fe08c8a617..fe08c8a617 100644
--- a/patches/api/0358-Add-enchantWithLevels-API.patch
+++ b/patches/api/0357-Add-enchantWithLevels-API.patch
diff --git a/patches/api/0359-Add-TameableDeathMessageEvent.patch b/patches/api/0358-Add-TameableDeathMessageEvent.patch
index 6152eacbe6..6152eacbe6 100644
--- a/patches/api/0359-Add-TameableDeathMessageEvent.patch
+++ b/patches/api/0358-Add-TameableDeathMessageEvent.patch
diff --git a/patches/api/0360-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0359-Allow-to-change-the-podium-of-the-EnderDragon.patch
index c2f08b9adc..c2f08b9adc 100644
--- a/patches/api/0360-Allow-to-change-the-podium-of-the-EnderDragon.patch
+++ b/patches/api/0359-Allow-to-change-the-podium-of-the-EnderDragon.patch
diff --git a/patches/api/0361-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
index 5775b6f33c..5775b6f33c 100644
--- a/patches/api/0361-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
+++ b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
diff --git a/patches/api/0362-WorldCreator-keepSpawnLoaded.patch b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch
index c148a391f4..c148a391f4 100644
--- a/patches/api/0362-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch
diff --git a/patches/api/0363-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch
index 032a0872d1..032a0872d1 100644
--- a/patches/api/0363-Add-EntityDyeEvent-and-CollarColorable-interface.patch
+++ b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/api/0364-Add-PlayerStopUsingItemEvent.patch b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch
index 0743d44ae1..0743d44ae1 100644
--- a/patches/api/0364-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/api/0365-FallingBlock-auto-expire-setting.patch b/patches/api/0364-FallingBlock-auto-expire-setting.patch
index 82ddf953e9..82ddf953e9 100644
--- a/patches/api/0365-FallingBlock-auto-expire-setting.patch
+++ b/patches/api/0364-FallingBlock-auto-expire-setting.patch
diff --git a/patches/api/0366-Keyed-Cat-Type.patch b/patches/api/0365-Keyed-Cat-Type.patch
index b0797d78b7..b0797d78b7 100644
--- a/patches/api/0366-Keyed-Cat-Type.patch
+++ b/patches/api/0365-Keyed-Cat-Type.patch
diff --git a/patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch
index a1c72f1d3f..57225f80c3 100644
--- a/patches/api/0367-Add-method-isTickingWorlds-to-Bukkit.patch
+++ b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53f003eda1 100644
+index ac6a49e39790aa9f12c7d98990f4cac297200cb0..ef36d793ab77c7b7208f8f5994815599cff470d1 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -776,12 +776,26 @@ public final class Bukkit {
+@@ -774,12 +774,26 @@ public final class Bukkit {
return server.getWorlds();
}
@@ -35,7 +35,7 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
*
* @param creator the options to use when creating the world
* @return newly created or loaded world
-@@ -793,6 +807,9 @@ public final class Bukkit {
+@@ -791,6 +805,9 @@ public final class Bukkit {
/**
* Unloads a world with the given name.
@@ -45,7 +45,7 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
*
* @param name Name of the world to unload
* @param save whether to save the chunks before unloading
-@@ -804,6 +821,9 @@ public final class Bukkit {
+@@ -802,6 +819,9 @@ public final class Bukkit {
/**
* Unloads the given world.
@@ -56,10 +56,10 @@ index 7c2f5f1e3ce496d55471027cc069d7f1863dc7e6..b0bc2df41506770e2854a287813f1c53
* @param world the world to unload
* @param save whether to save the chunks before unloading
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 474835e0a0d174a97ad25406d4a13a43d7a3644e..1d1a1d087dabc9794e0062a064da2cced4062309 100644
+index 18f4ae463f0e1406842c451b91f333a1bfabae69..5b225bbb128893d67251a96ab318035802a0cf76 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -649,34 +649,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -647,34 +647,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public List<World> getWorlds();
diff --git a/patches/api/0368-Add-WardenAngerChangeEvent.patch b/patches/api/0367-Add-WardenAngerChangeEvent.patch
index acf45b5314..acf45b5314 100644
--- a/patches/api/0368-Add-WardenAngerChangeEvent.patch
+++ b/patches/api/0367-Add-WardenAngerChangeEvent.patch
diff --git a/patches/api/0369-Nameable-Banner-API.patch b/patches/api/0368-Nameable-Banner-API.patch
index eba196daaf..eba196daaf 100644
--- a/patches/api/0369-Nameable-Banner-API.patch
+++ b/patches/api/0368-Nameable-Banner-API.patch
diff --git a/patches/api/0370-Add-Player-getFishHook.patch b/patches/api/0369-Add-Player-getFishHook.patch
index 291eac5db5..291eac5db5 100644
--- a/patches/api/0370-Add-Player-getFishHook.patch
+++ b/patches/api/0369-Add-Player-getFishHook.patch
diff --git a/patches/api/0371-More-Teleport-API.patch b/patches/api/0370-More-Teleport-API.patch
index 2727bab492..2727bab492 100644
--- a/patches/api/0371-More-Teleport-API.patch
+++ b/patches/api/0370-More-Teleport-API.patch
diff --git a/patches/api/0372-Add-EntityPortalReadyEvent.patch b/patches/api/0371-Add-EntityPortalReadyEvent.patch
index 4b1b1f1e1f..4b1b1f1e1f 100644
--- a/patches/api/0372-Add-EntityPortalReadyEvent.patch
+++ b/patches/api/0371-Add-EntityPortalReadyEvent.patch
diff --git a/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch
index 6b068b9325..6b068b9325 100644
--- a/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch
diff --git a/patches/api/0374-Collision-API.patch b/patches/api/0373-Collision-API.patch
index 24bcebc503..24bcebc503 100644
--- a/patches/api/0374-Collision-API.patch
+++ b/patches/api/0373-Collision-API.patch
diff --git a/patches/api/0375-Block-Ticking-API.patch b/patches/api/0374-Block-Ticking-API.patch
index 20b123e5f9..20b123e5f9 100644
--- a/patches/api/0375-Block-Ticking-API.patch
+++ b/patches/api/0374-Block-Ticking-API.patch
diff --git a/patches/api/0376-Add-NamespacedKey-biome-methods.patch b/patches/api/0375-Add-NamespacedKey-biome-methods.patch
index 24cd2b9867..24cd2b9867 100644
--- a/patches/api/0376-Add-NamespacedKey-biome-methods.patch
+++ b/patches/api/0375-Add-NamespacedKey-biome-methods.patch
diff --git a/patches/api/0377-Also-load-resources-from-LibraryLoader.patch b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
index ee5785d8cb..ee5785d8cb 100644
--- a/patches/api/0377-Also-load-resources-from-LibraryLoader.patch
+++ b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
diff --git a/patches/api/0378-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch
index 161c82afe3..161c82afe3 100644
--- a/patches/api/0378-Added-byte-array-serialization-deserialization-for-P.patch
+++ b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch
diff --git a/patches/api/0379-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
index bec7a5d015..bec7a5d015 100644
--- a/patches/api/0379-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
+++ b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
diff --git a/patches/api/0380-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
index 9b5ef25cf4..9b5ef25cf4 100644
--- a/patches/api/0380-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
+++ b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
diff --git a/patches/api/0381-Add-getDrops-to-BlockState.patch b/patches/api/0380-Add-getDrops-to-BlockState.patch
index 48f3a99f04..48f3a99f04 100644
--- a/patches/api/0381-Add-getDrops-to-BlockState.patch
+++ b/patches/api/0380-Add-getDrops-to-BlockState.patch
diff --git a/patches/api/0382-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch
index f094f9dbc9..f094f9dbc9 100644
--- a/patches/api/0382-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch
diff --git a/patches/api/0383-Elder-Guardian-appearance-API.patch b/patches/api/0382-Elder-Guardian-appearance-API.patch
index 7bd14b5041..7bd14b5041 100644
--- a/patches/api/0383-Elder-Guardian-appearance-API.patch
+++ b/patches/api/0382-Elder-Guardian-appearance-API.patch
diff --git a/patches/api/0384-Allow-changing-bed-s-occupied-property.patch b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch
index 8dfafd6d33..8dfafd6d33 100644
--- a/patches/api/0384-Allow-changing-bed-s-occupied-property.patch
+++ b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/api/0385-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch
index 0ef6b4c9b0..0ef6b4c9b0 100644
--- a/patches/api/0385-Add-EquipmentSlot-convenience-methods.patch
+++ b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch
diff --git a/patches/api/0386-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
index 1a53a5fcc5..1a53a5fcc5 100644
--- a/patches/api/0386-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
+++ b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
diff --git a/patches/api/0387-Add-entity-knockback-API.patch b/patches/api/0386-Add-entity-knockback-API.patch
index f53aa9c293..f53aa9c293 100644
--- a/patches/api/0387-Add-entity-knockback-API.patch
+++ b/patches/api/0386-Add-entity-knockback-API.patch
diff --git a/patches/api/0388-Added-EntityToggleSitEvent.patch b/patches/api/0387-Added-EntityToggleSitEvent.patch
index af2476123b..af2476123b 100644
--- a/patches/api/0388-Added-EntityToggleSitEvent.patch
+++ b/patches/api/0387-Added-EntityToggleSitEvent.patch
diff --git a/patches/api/0389-Add-Moving-Piston-API.patch b/patches/api/0388-Add-Moving-Piston-API.patch
index 8f889f1e3d..8f889f1e3d 100644
--- a/patches/api/0389-Add-Moving-Piston-API.patch
+++ b/patches/api/0388-Add-Moving-Piston-API.patch
diff --git a/patches/api/0390-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch
index 507b313e56..507b313e56 100644
--- a/patches/api/0390-Add-PrePlayerAttackEntityEvent.patch
+++ b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch
diff --git a/patches/api/0391-Add-Player-Warden-Warning-API.patch b/patches/api/0390-Add-Player-Warden-Warning-API.patch
index f7a13abbca..f7a13abbca 100644
--- a/patches/api/0391-Add-Player-Warden-Warning-API.patch
+++ b/patches/api/0390-Add-Player-Warden-Warning-API.patch
diff --git a/patches/api/0392-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch
index f13fdb5601..f13fdb5601 100644
--- a/patches/api/0392-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch
diff --git a/patches/api/0393-Add-paper-dumplisteners-command.patch b/patches/api/0392-Add-paper-dumplisteners-command.patch
index 8053dc2c4f..8053dc2c4f 100644
--- a/patches/api/0393-Add-paper-dumplisteners-command.patch
+++ b/patches/api/0392-Add-paper-dumplisteners-command.patch
diff --git a/patches/api/0394-ItemStack-damage-API.patch b/patches/api/0393-ItemStack-damage-API.patch
index 12c1e68439..12c1e68439 100644
--- a/patches/api/0394-ItemStack-damage-API.patch
+++ b/patches/api/0393-ItemStack-damage-API.patch
diff --git a/patches/api/0395-Add-Tick-TemporalUnit.patch b/patches/api/0394-Add-Tick-TemporalUnit.patch
index 96c1dddab8..96c1dddab8 100644
--- a/patches/api/0395-Add-Tick-TemporalUnit.patch
+++ b/patches/api/0394-Add-Tick-TemporalUnit.patch
diff --git a/patches/api/0396-Friction-API.patch b/patches/api/0395-Friction-API.patch
index f4d3031506..f4d3031506 100644
--- a/patches/api/0396-Friction-API.patch
+++ b/patches/api/0395-Friction-API.patch
diff --git a/patches/api/0397-Player-Entity-Tracking-Events.patch b/patches/api/0396-Player-Entity-Tracking-Events.patch
index a824ae278f..a824ae278f 100644
--- a/patches/api/0397-Player-Entity-Tracking-Events.patch
+++ b/patches/api/0396-Player-Entity-Tracking-Events.patch
diff --git a/patches/api/0398-Add-missing-Fluid-type.patch b/patches/api/0397-Add-missing-Fluid-type.patch
index c260bf8497..c260bf8497 100644
--- a/patches/api/0398-Add-missing-Fluid-type.patch
+++ b/patches/api/0397-Add-missing-Fluid-type.patch
diff --git a/patches/api/0399-fix-Instruments.patch b/patches/api/0398-fix-Instruments.patch
index 6895bc81f1..6895bc81f1 100644
--- a/patches/api/0399-fix-Instruments.patch
+++ b/patches/api/0398-fix-Instruments.patch
diff --git a/patches/api/0400-Add-BlockLockCheckEvent.patch b/patches/api/0399-Add-BlockLockCheckEvent.patch
index 55a23307b1..55a23307b1 100644
--- a/patches/api/0400-Add-BlockLockCheckEvent.patch
+++ b/patches/api/0399-Add-BlockLockCheckEvent.patch
diff --git a/patches/api/0401-Add-Sneaking-API-for-Entities.patch b/patches/api/0400-Add-Sneaking-API-for-Entities.patch
index 3417aa7f9c..3417aa7f9c 100644
--- a/patches/api/0401-Add-Sneaking-API-for-Entities.patch
+++ b/patches/api/0400-Add-Sneaking-API-for-Entities.patch
diff --git a/patches/api/0402-Improve-PortalEvents.patch b/patches/api/0401-Improve-PortalEvents.patch
index f7f53b19fc..f7f53b19fc 100644
--- a/patches/api/0402-Improve-PortalEvents.patch
+++ b/patches/api/0401-Improve-PortalEvents.patch
diff --git a/patches/api/0403-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch
index bdc2de6d23..bdc2de6d23 100644
--- a/patches/api/0403-Add-exploded-block-state-to-BlockExplodeEvent.patch
+++ b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch
diff --git a/patches/api/0404-Flying-Fall-Damage-API.patch b/patches/api/0403-Flying-Fall-Damage-API.patch
index de4b34833e..de4b34833e 100644
--- a/patches/api/0404-Flying-Fall-Damage-API.patch
+++ b/patches/api/0403-Flying-Fall-Damage-API.patch
diff --git a/patches/api/0405-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index 25fa280b26..25fa280b26 100644
--- a/patches/api/0405-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
diff --git a/patches/api/0406-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
index 3936bb4a92..3936bb4a92 100644
--- a/patches/api/0406-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
+++ b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
diff --git a/patches/api/0407-Win-Screen-API.patch b/patches/api/0406-Win-Screen-API.patch
index 6bc0c47e1f..6bc0c47e1f 100644
--- a/patches/api/0407-Win-Screen-API.patch
+++ b/patches/api/0406-Win-Screen-API.patch
diff --git a/patches/api/0408-Add-Entity-Body-Yaw-API.patch b/patches/api/0407-Add-Entity-Body-Yaw-API.patch
index 1d6aba7a15..1d6aba7a15 100644
--- a/patches/api/0408-Add-Entity-Body-Yaw-API.patch
+++ b/patches/api/0407-Add-Entity-Body-Yaw-API.patch
diff --git a/patches/api/0409-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
index 98799cd97d..98799cd97d 100644
--- a/patches/api/0409-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
+++ b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
diff --git a/patches/api/0410-Add-EntityFertilizeEggEvent.patch b/patches/api/0409-Add-EntityFertilizeEggEvent.patch
index 52283a9df2..52283a9df2 100644
--- a/patches/api/0410-Add-EntityFertilizeEggEvent.patch
+++ b/patches/api/0409-Add-EntityFertilizeEggEvent.patch
diff --git a/patches/api/0411-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index f720032bf2..f720032bf2 100644
--- a/patches/api/0411-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/api/0412-Add-Shearable-API.patch b/patches/api/0411-Add-Shearable-API.patch
index 96049cfd38..96049cfd38 100644
--- a/patches/api/0412-Add-Shearable-API.patch
+++ b/patches/api/0411-Add-Shearable-API.patch
diff --git a/patches/api/0413-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch
index 4014e17083..4014e17083 100644
--- a/patches/api/0413-Fix-SpawnEggMeta-get-setSpawnedType.patch
+++ b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/api/0414-Add-Mob-Experience-reward-API.patch b/patches/api/0413-Add-Mob-Experience-reward-API.patch
index e399177aeb..e399177aeb 100644
--- a/patches/api/0414-Add-Mob-Experience-reward-API.patch
+++ b/patches/api/0413-Add-Mob-Experience-reward-API.patch
diff --git a/patches/api/0415-Expand-PlayerItemMendEvent.patch b/patches/api/0414-Expand-PlayerItemMendEvent.patch
index 223922e05e..223922e05e 100644
--- a/patches/api/0415-Expand-PlayerItemMendEvent.patch
+++ b/patches/api/0414-Expand-PlayerItemMendEvent.patch
diff --git a/patches/api/0416-Add-transient-modifier-API.patch b/patches/api/0415-Add-transient-modifier-API.patch
index a32e4c86a9..a32e4c86a9 100644
--- a/patches/api/0416-Add-transient-modifier-API.patch
+++ b/patches/api/0415-Add-transient-modifier-API.patch
diff --git a/patches/api/0417-Add-API-for-waxed-signs.patch b/patches/api/0416-Add-API-for-waxed-signs.patch
index 38a844fdb2..38a844fdb2 100644
--- a/patches/api/0417-Add-API-for-waxed-signs.patch
+++ b/patches/api/0416-Add-API-for-waxed-signs.patch
diff --git a/patches/api/0418-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0417-Properly-remove-the-experimental-smithing-inventory-.patch
index 58275cea90..58275cea90 100644
--- a/patches/api/0418-Properly-remove-the-experimental-smithing-inventory-.patch
+++ b/patches/api/0417-Properly-remove-the-experimental-smithing-inventory-.patch
diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch
index 22510b7636..dc9145fd2d 100644
--- a/patches/server/0002-Remap-fixes.patch
+++ b/patches/server/0002-Remap-fixes.patch
@@ -103,6 +103,31 @@ index ad52c3fc6210939a39ef77a382c640a24ee44838..6b7dd01778f0a5d3a96d2d04af4b525d
assertThat(color, is(Color.fromRGB(nmsColor)));
}
}
+diff --git a/src/test/java/org/bukkit/RegistryConstantsTest.java b/src/test/java/org/bukkit/RegistryConstantsTest.java
+index 34e6b84c63e50972c650c0e4bc17bc0749e1b7c3..cd96cbba4d495c18f984dec6f861f75baf4300cc 100644
+--- a/src/test/java/org/bukkit/RegistryConstantsTest.java
++++ b/src/test/java/org/bukkit/RegistryConstantsTest.java
+@@ -19,17 +19,17 @@ public class RegistryConstantsTest extends AbstractTestingBase {
+
+ @Test
+ public void testTrimMaterial() {
+- this.testExcessConstants(TrimMaterial.class, Registry.TRIM_MATERIAL);
++ this.testExcessConstants(TrimMaterial.class, org.bukkit.Registry.TRIM_MATERIAL); // Paper - remap fix
+ this.testMissingConstants(TrimMaterial.class, Registries.TRIM_MATERIAL);
+ }
+
+ @Test
+ public void testTrimPattern() {
+- this.testExcessConstants(TrimPattern.class, Registry.TRIM_PATTERN);
++ this.testExcessConstants(TrimPattern.class, org.bukkit.Registry.TRIM_PATTERN); // Paper - remap fix
+ this.testMissingConstants(TrimPattern.class, Registries.TRIM_PATTERN);
+ }
+
+- private <T extends Keyed> void testExcessConstants(Class<T> clazz, Registry<T> registry) {
++ private <T extends Keyed> void testExcessConstants(Class<T> clazz, org.bukkit.Registry<T> registry) { // Paper - remap fix
+ List<NamespacedKey> excessKeys = new ArrayList<>();
+
+ for (Field field : clazz.getFields()) {
diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java
index b1de312e902c83a2f95d80040abb9255e64431a9..aafa6f472c82f851fe7f5ae3111488bb732d0bcc 100644
--- a/src/test/java/org/bukkit/entity/EntityTypesTest.java
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 0c3c77d746..7fbde73ffb 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -4571,10 +4571,10 @@ index cda55e481ddbcc1de5478125c5db20ebba168e7d..bacd4d875642cd93c3185f788745dd73
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c1c575593b2470aeaf73ce6f9f45f4f7f9b16c04..9c82e4d2f5676808bb57c5e7dd19d0e7615ca884 100644
+index 56ad43d30f5dfec7564edab364328d32313501db..84c9a7f5ecb47f6a95ca89ecfcdba663fef803ae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -903,6 +903,7 @@ public final class CraftServer implements Server {
+@@ -910,6 +910,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch
index 66aad2fa8a..013b5023df 100644
--- a/patches/server/0008-CB-fixes.patch
+++ b/patches/server/0008-CB-fixes.patch
@@ -83,11 +83,11 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd
this.registryAccess = registryManager;
this.structureTemplateManager = structureTemplateManager;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9c82e4d2f5676808bb57c5e7dd19d0e7615ca884..9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0 100644
+index 84c9a7f5ecb47f6a95ca89ecfcdba663fef803ae..c3c30cbb74062fc25c1daf9b17c8956857766306 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2324,7 +2324,13 @@ public final class CraftServer implements Server {
- Validate.notNull(key, "NamespacedKey cannot be null");
+@@ -2340,7 +2340,13 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null");
LootDataManager registry = this.getServer().getLootData();
- return new CraftLootTable(key, registry.getLootTable(CraftNamespacedKey.toMinecraft(key)));
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index f729fe9a55..27baee9eca 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -6530,7 +6530,7 @@ index ebae711991a3ae35e35c2cffa8d928677c205492..7be97441aed66fa3a21d13ad2211b3e0
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) {
// IRegistryCustom.Dimension iregistrycustom_dimension = minecraftserver.registryAccess(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e1a8dc23249c04de66289fbf157d349e7fae606d..931955a7f5b20f04350ec91b3bc95146e8e219a3 100644
+index 4a2205fca9b9487b92b120ece69f1548bf764056..ba89c0d7ae99e53350249365d0e035e6f14e1c5f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -255,6 +255,8 @@ public class ServerPlayer extends Player {
@@ -6595,7 +6595,7 @@ index a63d5ba706a5b8e430aedc045bdeb3a410bd0eef..e96a0ca47e4701ba187555bd92c96834
public BlockState getBlockState(BlockPos pos) {
return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 1413df83d5dad892a505850fd863d49148c185f0..5d572a56d7926a849af73f5335a749f30f250026 100644
+index d1a94a7de19b0c46454040f7459a492e30265e9c..edf629f2e810eebf014b1565021888f96def92a1 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -185,6 +185,7 @@ public abstract class PlayerList {
@@ -6625,7 +6625,7 @@ index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a962134
@Override
public void tell(R runnable) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index cb3354c5ec73ef7c2c2b4af5dbaf994836d6ef7d..18b019aa5908bbc02caa162accbf088abcefc2e2 100644
+index ff52a7319c6d80528a44389178b947cf4d8f48dc..a4e5961991a6debff959d63d70b71b1ded76e72a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -323,6 +323,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -7291,10 +7291,10 @@ index 25156be63f91a1c41ef41154f675d04eb97459a8..47bab513feec217d875192afef61f3af
return false;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337846c75ac 100644
+index ee22b5419098834c3b388bbf78d6bd6d7951964a..379b8a7d94c784db54ada01ad6bd04a54f8a089f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -243,8 +243,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -242,8 +242,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk[] getLoadedChunks() {
@@ -7305,7 +7305,7 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
}
@Override
-@@ -319,7 +319,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -318,7 +318,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean refreshChunk(int x, int z) {
@@ -7314,7 +7314,7 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
if (playerChunk == null) return false;
playerChunk.getTickingChunkFuture().thenAccept(either -> {
-@@ -1963,4 +1963,32 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1970,4 +1970,32 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.spigot;
}
// Spigot end
@@ -7348,10 +7348,10 @@ index 46d6f5b9f31e15ab286df344bc436b2762d329e5..29ef66be12ec2a2765a76eb3d419c337
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 2c824ead41389bc7d2085536ecb8d0d2b6515ddb..6807507017bbb171657ba230223f281b083da28a 100644
+index bcf8d0316386cbf4d90b73f7530acbcf554be55d..61304b316985462e898a1b80f872b716a33207c6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1182,4 +1182,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1175,4 +1175,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.spigot;
}
// Spigot end
@@ -7390,7 +7390,7 @@ index 2c824ead41389bc7d2085536ecb8d0d2b6515ddb..6807507017bbb171657ba230223f281b
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 2f52148f36e56c503e619634eedd3d46d9f44938..054fcc3713f02e358dfe049491c8d1689ccc750b 100644
+index 07249989e6f0f76f8408363d7f20e7335b7a8e06..4d94c3a19f98f78476ecc403f410d75a6ea57c2d 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -44,6 +44,7 @@ import org.bukkit.scheduler.BukkitWorker;
@@ -7612,7 +7612,7 @@ index 0000000000000000000000000000000000000000..909b2c98e7a9117d2f737245e4661792
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 141f7c287252ae319e88d8c279e5661524baa1bf..381cfd86fc1158dc9a7c1e76c3ada962b0964373 100644
+index 9026e98b6b03de7a51e853d6ca4a3d20584740d4..fee5c6809ea3d4ebe1b17fb8da580f3b058d7363 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -104,8 +104,17 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -7677,10 +7677,10 @@ index d2026d218405a40a6949c5f491c04704811b72b5..629178347039893fb9de710810fe8112
public WorldBorder getWorldBorder() {
throw new UnsupportedOperationException("Not supported yet.");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
-index d40c0d8be1b0153d62021b8bcb6e8b37fd0acb4e..e38e57b1f9ef27020de35d7ddcb36a663140f880 100644
+index aced43492a32d603690e75d0d9877667770fc6db..40d6bf127d288340e9c2500732d1e0963c186ebd 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/UnsafeList.java
-@@ -119,6 +119,32 @@ public class UnsafeList<E> extends AbstractList<E> implements List<E>, RandomAcc
+@@ -120,6 +120,32 @@ public class UnsafeList<E> extends AbstractList<E> implements List<E>, RandomAcc
return this.indexOf(o) >= 0;
}
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 0a667b0dd0..c1a071f638 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2169,7 +2169,7 @@ index 5f051cb22ae77f4d8994b07ac5b963bd0ff05673..7952635a963e28cb670c8f4869664103
list.forEach((loader) -> {
Registry<?> registry = loader.getFirst();
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7adecde96e 100644
+index 9b34e401040a45393afbb9e984ff421a89f744a0..3250a9310b57351d6d832a8ef42837d990cf6c99 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -194,6 +194,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot
@@ -2180,15 +2180,26 @@ index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7a
public static final String VANILLA_BRAND = "vanilla";
private static final float AVERAGE_TICK_TIME_SMOOTHING = 0.8F;
private static final int TICK_STATS_SPAN = 100;
-@@ -244,6 +245,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -242,8 +243,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ private boolean preventProxyConnections;
+ private boolean pvp;
private boolean allowFlight;
- @Nullable
- private String motd;
-+ @Nullable private net.kyori.adventure.text.Component cachedMotd; // Paper
+- @Nullable
+- private String motd;
++ private net.kyori.adventure.text.Component motd; // Paper - Adventure
private int playerIdleTimeout;
public final long[] tickTimes;
@Nullable
-@@ -1261,6 +1263,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1232,7 +1232,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ private ServerStatus buildServerStatus() {
+ ServerStatus.Players serverping_serverpingplayersample = this.buildPlayerStatus();
+
+- return new ServerStatus(Component.nullToEmpty(this.motd), Optional.of(serverping_serverpingplayersample), Optional.of(ServerStatus.Version.current()), Optional.ofNullable(this.statusIcon), this.enforceSecureProfile());
++ return new ServerStatus(io.papermc.paper.adventure.PaperAdventure.asVanilla(this.motd), Optional.of(serverping_serverpingplayersample), Optional.of(ServerStatus.Version.current()), Optional.ofNullable(this.statusIcon), this.enforceSecureProfile()); // Paper - Adventure
+ }
+
+ private ServerStatus.Players buildPlayerStatus() {
+@@ -1261,6 +1261,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
SpigotTimings.schedulerTimer.startTiming(); // Spigot
this.server.getScheduler().mainThreadHeartbeat(this.tickCount); // CraftBukkit
SpigotTimings.schedulerTimer.stopTiming(); // Spigot
@@ -2196,26 +2207,29 @@ index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7a
this.profiler.push("commandFunctions");
SpigotTimings.commandFunctionsTimer.startTiming(); // Spigot
this.getFunctions().tick();
-@@ -1629,8 +1632,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
- return this.motd;
+@@ -1626,10 +1627,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ public abstract boolean isCommandBlockEnabled();
+
+ public String getMotd() {
+- return this.motd;
++ return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.motd); // Paper - Adventure
}
-+ public net.kyori.adventure.text.Component getComponentMotd() {
-+ net.kyori.adventure.text.Component component = cachedMotd;
-+ if (this.motd != null && this.cachedMotd == null) {
-+ component = cachedMotd = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(this.motd);
-+ }
+ public void setMotd(String motd) {
++ // Paper start - Adventure
++ this.motd = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserializeOr(motd, net.kyori.adventure.text.Component.empty());
++ }
+
-+ return component != null ? component : net.kyori.adventure.text.Component.empty();
++ public net.kyori.adventure.text.Component motd() {
++ return this.motd;
+ }
+
- public void setMotd(String motd) {
++ public void motd(net.kyori.adventure.text.Component motd) {
++ // Paper end - Adventure
this.motd = motd;
-+ this.cachedMotd = null; // Paper
}
- public boolean isStopped() {
-@@ -2343,39 +2356,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2343,39 +2354,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void logChatMessage(Component message, ChatType.Bound params, @Nullable String prefix) {
@@ -2268,7 +2282,7 @@ index 9b34e401040a45393afbb9e984ff421a89f744a0..2d35572157b28f2e637d9b47a82c5e7a
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 931955a7f5b20f04350ec91b3bc95146e8e219a3..5872ead2fe3a64f02f8bc36603fbb856728fd255 100644
+index ba89c0d7ae99e53350249365d0e035e6f14e1c5f..dc87e56cfcd59bc1505f5b3c0363038e790271a0 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -161,6 +161,7 @@ import net.minecraft.world.scores.Score;
@@ -2373,7 +2387,7 @@ index 931955a7f5b20f04350ec91b3bc95146e8e219a3..5872ead2fe3a64f02f8bc36603fbb856
// CraftBukkit end
this.chatVisibility = packet.chatVisibility();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea99829210dbe1 100644
+index a7b85cf4fbdb04747e46f49293a2e63c744cdc5e..fa3d02895d57c17416e742d2ea1e51253bce4fad 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -187,6 +187,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
@@ -2448,7 +2462,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
// CraftBukkit end
this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> {
-@@ -1783,9 +1788,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1786,9 +1791,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
*/
this.player.disconnect();
@@ -2463,7 +2477,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
}
// CraftBukkit end
this.player.getTextFilter().leave();
-@@ -1882,11 +1889,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1885,11 +1892,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
CompletableFuture<FilteredText> completablefuture = this.filterTextPacket(playerchatmessage.signedContent());
@@ -2477,7 +2491,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
this.broadcastChatMessage(playerchatmessage1);
}, this.server.chatExecutor); // CraftBukkit - async chat
-@@ -1992,7 +1999,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1995,7 +2002,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment);
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
@@ -2486,7 +2500,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
return Optional.empty();
} else {
this.player.resetLastActionTime();
-@@ -2050,7 +2057,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2053,7 +2060,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
@@ -2500,7 +2514,7 @@ index eebd9792338f912e60a9b0ab4de0660888b841f6..a1b9a2eeba2febef1b568a4c5aea9982
Player player = this.getCraftPlayer();
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server));
String originalFormat = event.getFormat(), originalMessage = event.getMessage();
-@@ -2180,7 +2192,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2183,7 +2195,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
});
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check
@@ -2551,7 +2565,7 @@ index 1cb95db25a20d38faacd99a5805630c1598e9db3..d99b2235038eb1aba8cda474c4aa51e2
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 5d572a56d7926a849af73f5335a749f30f250026..645bee9a926d71c3730a23391d21d48418444e9a 100644
+index edf629f2e810eebf014b1565021888f96def92a1..d3dc7752aadf36985660d04dcb4377a69dfeddff 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -8,6 +8,7 @@ import com.mojang.logging.LogUtils;
@@ -2862,7 +2876,7 @@ index 614e567eb1ef10ac7514909a8425e29ac3627d3d..60596c4ac2ebb8caf19d65591624275b
}
collection = icons;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c163c5065ec 100644
+index c3c30cbb74062fc25c1daf9b17c8956857766306..85867893da6bb4f24e86c32ea9fd5ff5b5684dbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -608,8 +608,10 @@ public final class CraftServer implements Server {
@@ -2876,7 +2890,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
}
@Override
-@@ -1460,7 +1462,15 @@ public final class CraftServer implements Server {
+@@ -1465,7 +1467,15 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.spawn-radius", -1);
}
@@ -2892,7 +2906,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
public String getShutdownMessage() {
return this.configuration.getString("settings.shutdown-message");
}
-@@ -1628,7 +1638,20 @@ public final class CraftServer implements Server {
+@@ -1633,7 +1643,20 @@ public final class CraftServer implements Server {
}
@Override
@@ -2913,7 +2927,7 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
Set<CommandSender> recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
-@@ -1636,14 +1659,14 @@ public final class CraftServer implements Server {
+@@ -1641,14 +1664,14 @@ public final class CraftServer implements Server {
}
}
@@ -2930,36 +2944,36 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
for (CommandSender recipient : recipients) {
recipient.sendMessage(message);
-@@ -1894,6 +1917,14 @@ public final class CraftServer implements Server {
+@@ -1900,6 +1923,14 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
}
+ // Paper start
+ @Override
+ public Inventory createInventory(InventoryHolder owner, InventoryType type, net.kyori.adventure.text.Component title) {
-+ Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
++ Preconditions.checkArgument(type.isCreatable(), "Cannot open an inventory of type ", type);
+ return CraftInventoryCreator.INSTANCE.createInventory(owner, type, title);
+ }
+ // Paper end
+
@Override
public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
- Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
-@@ -1906,13 +1937,28 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(type != null, "InventoryType cannot be null");
+@@ -1914,13 +1945,28 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
}
+ // Paper start
+ @Override
+ public Inventory createInventory(InventoryHolder owner, int size, net.kyori.adventure.text.Component title) throws IllegalArgumentException {
-+ Validate.isTrue(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
++ Preconditions.checkArgument(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
+ return CraftInventoryCreator.INSTANCE.createInventory(owner, size, title);
+ }
+ // Paper end
+
@Override
public Inventory createInventory(InventoryHolder owner, int size, String title) throws IllegalArgumentException {
- Validate.isTrue(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got " + size + ")");
+ Preconditions.checkArgument(9 <= size && size <= 54 && size % 9 == 0, "Size for custom inventory must be a multiple of 9 between 9 and 54 slots (got %s)", size);
return CraftInventoryCreator.INSTANCE.createInventory(owner, size, title);
}
@@ -2974,20 +2988,25 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
public Merchant createMerchant(String title) {
return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
}
-@@ -1977,6 +2023,12 @@ public final class CraftServer implements Server {
+@@ -1985,6 +2031,17 @@ public final class CraftServer implements Server {
return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
}
-+ // Paper start
++ // Paper start - Adventure
+ @Override
+ public net.kyori.adventure.text.Component motd() {
-+ return console.getComponentMotd();
++ return this.console.motd();
++ }
++ @Override
++ public void motd(final net.kyori.adventure.text.Component motd) {
++ this.console.motd(motd);
+ }
+ // Paper end
++
@Override
public String getMotd() {
return this.console.getMotd();
-@@ -2403,4 +2455,53 @@ public final class CraftServer implements Server {
+@@ -2419,4 +2476,53 @@ public final class CraftServer implements Server {
return this.spigot;
}
// Spigot end
@@ -3042,10 +3061,10 @@ index 9874d0d3ae16e79f2598d9c1f93a9b7cc40f56b0..7d95f4e919f46fd415a3cf88b1bb7c16
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f13711683a61e 100644
+index 379b8a7d94c784db54ada01ad6bd04a54f8a089f..73f61f2b0c0aeefabb7b7bba7ca37914751dcc42 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -153,6 +153,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -152,6 +152,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private final BlockMetadataStore blockMetadata = new BlockMetadataStore(this);
private final Object2IntOpenHashMap<SpawnCategory> spawnCategoryLimit = new Object2IntOpenHashMap<>();
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY);
@@ -3053,7 +3072,7 @@ index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f1371
private static final Random rand = new Random();
-@@ -1597,6 +1598,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1603,6 +1604,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
entityTracker.broadcastAndSend(packet);
}
}
@@ -3093,7 +3112,7 @@ index 29ef66be12ec2a2765a76eb3d419c337846c75ac..711dbf6e5cf9b4ffabaab2bcf10f1371
private static Map<String, GameRules.Key<?>> gamerules;
public static synchronized Map<String, GameRules.Key<?>> getGameRulesNMS() {
-@@ -1990,5 +2024,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1997,5 +2031,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return ret;
}
@@ -3517,7 +3536,7 @@ index f6c614bb1184f9c79121f64a2a030bf3f094b671..e8334e2264510f5101e80b4f130e7ae1
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
return this.target;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229bd43485d 100644
+index 61304b316985462e898a1b80f872b716a33207c6..11645e01924b4a66aa4f425c8962a000be761912 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -202,6 +202,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -3528,7 +3547,7 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
public CraftEntity(final CraftServer server, final Entity entity) {
this.server = server;
-@@ -860,6 +861,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -853,6 +854,32 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.getHandle().getVehicle().getBukkitEntity();
}
@@ -3561,7 +3580,7 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
@Override
public void setCustomName(String name) {
// sane limit for name length
-@@ -939,6 +966,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -932,6 +959,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public String getName() {
return CraftChatMessage.fromComponent(this.getHandle().getName());
}
@@ -3580,10 +3599,10 @@ index 6807507017bbb171657ba230223f281b083da28a..db585082251005e2d2f861a0b292f229
@Override
public boolean isPermissionSet(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 32e1b60876482035c9fbd0dfc5d1a47947eabb38..d39869056d0ac57279e0e9e479ace4a7d402a941 100644
+index 3421498e8e5fe2e22d6b31d9cf6b3337553e1c5f..abe978078270a45f7e77eb2b8a99309f12ca51ee 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -322,9 +322,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -320,9 +320,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
container = CraftEventFactory.callInventoryOpenEvent(player, container);
if (container == null) return;
@@ -3598,7 +3617,7 @@ index 32e1b60876482035c9fbd0dfc5d1a47947eabb38..d39869056d0ac57279e0e9e479ace4a7
player.containerMenu = container;
player.initMenu(container);
}
-@@ -393,8 +396,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -391,8 +394,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Now open the window
MenuType<?> windowType = CraftContainer.getNotchInventoryType(inventory.getTopInventory());
@@ -3632,10 +3651,10 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac792ebb8d19 100644
+index bab41176551656947be4bea4fec3ec82e51146e2..e37f69880c4b439245d7edb4c35418ed3da27a5f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -285,14 +285,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -282,14 +282,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getDisplayName() {
@@ -3675,7 +3694,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
-@@ -311,42 +336,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -308,42 +333,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -3727,7 +3746,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
this.getHandle().connection.send(packet);
}
-@@ -378,6 +403,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -375,6 +400,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}
@@ -3750,8 +3769,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
+
@Override
public void setCompassTarget(Location loc) {
- if (this.getHandle().connection == null) return;
-@@ -711,6 +753,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ Preconditions.checkArgument(loc != null, "Location cannot be null");
+@@ -669,6 +711,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -3764,8 +3783,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
+ if (lines == null) {
+ lines = new java.util.ArrayList<>(4);
+ }
-+ Validate.notNull(loc, "Location cannot be null");
-+ Validate.notNull(dyeColor, "DyeColor cannot be null");
++ Preconditions.checkArgument(loc != null, "Location cannot be null");
++ Preconditions.checkArgument(dyeColor != null, "DyeColor cannot be null");
+ if (lines.size() < 4) {
+ throw new IllegalArgumentException("Must have at least 4 lines");
+ }
@@ -3776,8 +3795,8 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
-@@ -738,6 +798,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- }
+@@ -692,6 +752,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ if (this.getHandle().connection == null) return;
Component[] components = CraftSign.sanitizeLines(lines);
+ // Paper start - adventure
@@ -3788,7 +3807,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
SignText text = sign.getFrontText();
text.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
-@@ -746,7 +811,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -700,7 +765,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
text.setMessage(i, components[i]);
}
@@ -3798,7 +3817,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1639,7 +1705,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1590,7 +1656,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url) {
@@ -3807,7 +3826,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1654,7 +1720,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1605,7 +1671,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
@@ -3816,17 +3835,17 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
}
@Override
-@@ -1670,6 +1736,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1621,6 +1687,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
+ // Paper start
+ @Override
+ public void setResourcePack(String url, byte[] hashBytes, net.kyori.adventure.text.Component prompt, boolean force) {
-+ Validate.notNull(url, "Resource pack URL cannot be null");
++ Preconditions.checkArgument(url != null, "Resource pack URL cannot be null");
+ final String hash;
+ if (hashBytes != null) {
-+ Validate.isTrue(hashBytes.length == 20, "Resource pack hash should be 20 bytes long but was " + hashBytes.length);
++ Preconditions.checkArgument(hashBytes.length == 20, "Resource pack hash should be 20 bytes long but was " + hashBytes.length);
+ hash = BaseEncoding.base16().lowerCase().encode(hashBytes);
+ } else {
+ hash = "";
@@ -3838,7 +3857,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
public void addChannel(String channel) {
Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel);
channel = StandardMessenger.validateAndCorrectChannel(channel);
-@@ -2074,6 +2155,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2012,6 +2093,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance;
}
@@ -3851,7 +3870,7 @@ index 242b6cb2ac775b4fc687a5a62011b53ab7bde7f6..e087ec1f456a8eff1071700fb98eac79
@Override
public int getPing() {
return this.getHandle().latency;
-@@ -2124,6 +2211,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2062,6 +2149,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
@@ -4127,7 +4146,7 @@ index 2becf197a5c2d94f23f72a9b20cb2cd05a0807df..99096c1e3f045e4a99335faedfb8e77e
@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 3c3d5a527604d6f14abb1815816153747fcc0839..1b9a08098199f305606289724ee047e8075ffcea 100644
+index 5f994a64bf29545a528b91604c1f2e19bcfd9b2f..e0bb58d92e47516138261a673b56c5f8ce68a59c 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -838,9 +838,9 @@ public class CraftEventFactory {
@@ -4170,7 +4189,7 @@ index 7cd70d53e5816938beab9019db40cd7faedba745..8ea031537c27b219c22316bff191670c
public String getTitle() {
return title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
-index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c632cc782f7 100644
+index c9cc23757a9fcc58d30b2915d4c5cfbc7d1c767a..fc0e1212022d1aa3506699b60ef338196eb54eba 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCustom.java
@@ -19,6 +19,12 @@ public class CraftInventoryCustom extends CraftInventory {
@@ -4218,7 +4237,7 @@ index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c63
this(owner, type.getDefaultSize(), type.getDefaultTitle());
this.type = type;
@@ -57,11 +77,24 @@ public class CraftInventoryCustom extends CraftInventory {
- Validate.notNull(title, "Title cannot be null");
+ Preconditions.checkArgument(title != null, "title cannot be null");
this.items = NonNullList.withSize(size, ItemStack.EMPTY);
this.title = title;
+ this.adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(title);
@@ -4229,7 +4248,7 @@ index 6486a76466691f958349a4706d7c9caff9cb8f64..f3ebaefd949ae73afad3dcb69b8d9c63
+ // Paper start
+ public MinecraftInventory(final InventoryHolder owner, final int size, final net.kyori.adventure.text.Component title) {
-+ Validate.notNull(title, "Title cannot be null");
++ Preconditions.checkArgument(title != null, "Title cannot be null");
+ this.items = NonNullList.withSize(size, ItemStack.EMPTY);
+ this.title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(title);
+ this.adventure$title = title;
@@ -4274,10 +4293,10 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec
public String getTitle() {
return this.title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 4f9be48ebe8ec71272b19c9ab43c293cc069011f..6e050a5cbb877c85595fc97a569c2aafb272ad41 100644
+index fb58cfd68c8ababbf9486c9a5a1795b1ac9d5817..b187c4f436ac44a529675869dbf5bfddc4fac86f 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -442,4 +442,17 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -437,4 +437,17 @@ public final class CraftItemFactory implements ItemFactory {
public Material updateMaterial(ItemMeta meta, Material material) throws IllegalArgumentException {
return ((CraftMetaItem) meta).updateMaterial(material);
}
@@ -4296,7 +4315,7 @@ index 4f9be48ebe8ec71272b19c9ab43c293cc069011f..6e050a5cbb877c85595fc97a569c2aaf
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
-index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa012fd687 100644
+index 9e05a8515c5f6f340182e91150fcad8bbf80a22b..adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
@@ -13,10 +13,17 @@ import org.bukkit.craftbukkit.util.CraftChatMessage;
@@ -4323,12 +4342,12 @@ index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa
+ @Deprecated // Paper - Adventure
public MinecraftMerchant(String title) {
- Validate.notNull(title, "Title cannot be null");
+ Preconditions.checkArgument(title != null, "Title cannot be null");
this.title = CraftChatMessage.fromString(title)[0];
}
+ // Paper start
+ public MinecraftMerchant(net.kyori.adventure.text.Component title) {
-+ Validate.notNull(title, "Title cannot be null");
++ Preconditions.checkArgument(title != null, "Title cannot be null");
+ this.title = io.papermc.paper.adventure.PaperAdventure.asVanilla(title);
+ }
+ // Paper end
@@ -4336,12 +4355,12 @@ index a0334ec0a80dfc4f1e68c2e338aa486faaefb29e..257776a12ca26c1e75be22a67c94b0aa
@Override
public CraftMerchant getCraftMerchant() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e7e64bce2 100644
+index bd4524fd987877a287680cfa5744ce12045ebfbd..cf928745c36af0e6fa0a95e177395c5fb1aa821a 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-@@ -1,8 +1,9 @@
- package org.bukkit.craftbukkit.inventory;
+@@ -2,8 +2,9 @@ package org.bukkit.craftbukkit.inventory;
+ import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Lists;
@@ -4379,7 +4398,7 @@ index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e
+
+ @Override
+ public net.kyori.adventure.text.Component page(final int page) {
-+ Validate.isTrue(isValidPage(page), "Invalid page number");
++ Preconditions.checkArgument(isValidPage(page), "Invalid page number");
+ return this instanceof CraftMetaBookSigned ? net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().deserialize(pages.get(page - 1)) : net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(pages.get(page - 1));
+ }
+
@@ -4495,8 +4514,8 @@ index 4154b4489be172f1ef1693b54368b7ffc8629c31..e8413ad360e9b6c4eef13edf9dd0095e
+ // Paper end
@Override
public String getPage(final int page) {
- Validate.isTrue(this.isValidPage(page), "Invalid page number");
-@@ -405,7 +545,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
+ Preconditions.checkArgument(this.isValidPage(page), "Invalid page number (%s)", page);
+@@ -402,7 +542,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
}
@Override
@@ -4549,10 +4568,10 @@ index 507fa96a3fb904b74429df5756c9a6378ec8c5b7..abb9e88abc74135284b941e040d40586
+ // 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 5fab8014b0ae3d56610aeaaa21a8c1ba6f7f1bfd..16dd61b832d7b6519786072e41cdde9df3ab8e7f 100644
+index 02856de529023f4d63440e2f2cef28e41f2103a7..b01c268d179591a0113e4bfb46f3d6d22933efaf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -750,6 +750,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -749,6 +749,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers());
}
@@ -4571,7 +4590,7 @@ index 5fab8014b0ae3d56610aeaaa21a8c1ba6f7f1bfd..16dd61b832d7b6519786072e41cdde9d
@Override
public String getDisplayName() {
return CraftChatMessage.fromJSONComponent(displayName);
-@@ -785,6 +797,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -784,6 +796,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore != null && !this.lore.isEmpty();
}
@@ -4734,7 +4753,7 @@ index b47f18b1e448807a17ca9f2ae9609680233da837..9683d7d103af66fffd68c11abc38fb4f
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
-index 0d25c7c03f7ac21a4b21bb95b5bd921c43430cf9..b7f0277b50a0f45c32b818bf9fe1218874aa8533 100644
+index b49cc2880fbecfd48d07c2e390c9e2aa2e09b848..de5f382656f9fd08f6ae1795c69743c604d62d5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
@@ -31,6 +31,21 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
@@ -4758,12 +4777,12 @@ index 0d25c7c03f7ac21a4b21bb95b5bd921c43430cf9..b7f0277b50a0f45c32b818bf9fe12188
+ // Paper end
@Override
public String getDisplayName() throws IllegalStateException {
- CraftScoreboard scoreboard = this.checkState();
+ this.checkState();
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce481c6effbb 100644
+index f978617eaa74ff1fa0ab0acec3b6ccd14e2db55d..2471a6d0b7a8086cf4c0a41b10c05ed50d790d11 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-@@ -28,6 +28,34 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -27,6 +27,33 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
public CraftObjective registerNewObjective(String name, String criteria) throws IllegalArgumentException {
return this.registerNewObjective(name, criteria, name);
}
@@ -4785,12 +4804,11 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
+ if (displayName == null) {
+ displayName = net.kyori.adventure.text.Component.empty();
+ }
-+ Validate.notNull(name, "Objective name cannot be null");
-+ Validate.notNull(criteria, "Criteria cannot be null");
-+ Validate.notNull(displayName, "Display name cannot be null");
-+ Validate.notNull(renderType, "RenderType cannot be null");
-+ Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
-+ Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
++ Preconditions.checkArgument(name != null, "Objective name cannot be null");
++ Preconditions.checkArgument(criteria != null, "Criteria cannot be null");
++ Preconditions.checkArgument(renderType != null, "RenderType cannot be null");
++ Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length());
++ Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name);
+ net.minecraft.world.scores.Objective objective = board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));
+ return new CraftObjective(this, objective);
+ }
@@ -4798,17 +4816,17 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
@Override
public CraftObjective registerNewObjective(String name, String criteria, String displayName) throws IllegalArgumentException {
-@@ -46,16 +74,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -45,16 +72,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
@Override
public CraftObjective registerNewObjective(String name, Criteria criteria, String displayName, RenderType renderType) throws IllegalArgumentException {
-- Validate.notNull(name, "Objective name cannot be null");
-- Validate.notNull(criteria, "Criteria cannot be null");
-- Validate.notNull(displayName, "Display name cannot be null");
-- Validate.notNull(renderType, "RenderType cannot be null");
-- Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
-- Validate.isTrue(displayName.length() <= 128, "The display name '" + displayName + "' is longer than the limit of 128 characters");
-- Validate.isTrue(this.board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
+- Preconditions.checkArgument(name != null, "Objective name cannot be null");
+- Preconditions.checkArgument(criteria != null, "Criteria cannot be null");
+- Preconditions.checkArgument(displayName != null, "Display name cannot be null");
+- Preconditions.checkArgument(renderType != null, "RenderType cannot be null");
+- Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length());
+- Preconditions.checkArgument(displayName.length() <= 128, "The display name '%s' is longer than the limit of 128 characters (%s)", displayName, displayName.length());
+- Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name);
-
- net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, CraftChatMessage.fromStringOrNull(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));
- return new CraftObjective(this, objective);
@@ -4817,10 +4835,10 @@ index c624867e28dd5187d58a6bcb9067b0c10ff7e733..f367261b119ab48c1d17b2b6552cce48
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 81f16dc1ed6e102af298600db75cab21a09bc00f..18d5a26c34c848241c306241b3ad9825b5a0b9a9 100644
+index 4de9d57559e3787089a542fd912e5b28973fe73e..772206a43950db2726bd79911438e2aec2d7189c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -28,6 +28,63 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
+@@ -26,6 +26,63 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
return this.team.getName();
}
@@ -4897,7 +4915,7 @@ index 78ea79b66cc9e90402ef5cdc2e5e04e0c74b1c26..4fede2161792ba3e7cdf0cc5a1f53318
boolean hadFormat = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 381cfd86fc1158dc9a7c1e76c3ada962b0964373..0137b414a75894cb8b8413f96eba4f591453f61b 100644
+index fee5c6809ea3d4ebe1b17fb8da580f3b058d7363..a3cb26b4ba108b3c621f74034480a522492fdf2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -74,6 +74,43 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -4958,18 +4976,16 @@ index 62c66e3179b9557cdba46242df0fb15bce7e7710..73a37638abacdffbff8274291a64ea6c
public boolean isLazy() {
return this.reference == null;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
-index 838d5b877c01be3ef353f434d98e27b46c0a3fb4..5c4c0ba05f10d2d83b22d3e86805cfa85c3b50a9 100644
+index 75bc9ea10d80270217e4c75da98257a217b20097..673ab940fb53d42f6b6dbfe048d0281c4f508b0d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/LazyPlayerSet.java
-@@ -15,11 +15,17 @@ public class LazyPlayerSet extends LazyHashSet<Player> {
+@@ -16,9 +16,15 @@ public class LazyPlayerSet extends LazyHashSet<Player> {
}
@Override
- HashSet<Player> makeReference() {
+ protected HashSet<Player> makeReference() { // Paper - protected
- if (reference != null) {
- throw new IllegalStateException("Reference already created!");
- }
+ Preconditions.checkState(reference == null, "Reference already created!");
List<ServerPlayer> players = this.server.getPlayerList().players;
+ // Paper start
+ return makePlayerSet(this.server);
diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch
index 8bd8dd2e52..145c4b9074 100644
--- a/patches/server/0011-Paper-command.patch
+++ b/patches/server/0011-Paper-command.patch
@@ -615,10 +615,10 @@ index 2ac30ef2dd72582f2b7f6a05b1f94b12b44fafc9..a01d423f44b3e547b4fa4d6654f9df63
this.setPvpAllowed(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7d95f4e919f46fd415a3cf88b1bb7c163c5065ec..182c3a3852726172dfe97f2b989323001c6efad8 100644
+index 85867893da6bb4f24e86c32ea9fd5ff5b5684dbb..de9e4fd6a11b06e685804e43657d8b6589c6ca1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -927,6 +927,7 @@ public final class CraftServer implements Server {
+@@ -934,6 +934,7 @@ public final class CraftServer implements Server {
this.commandMap.clearCommands();
this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
@@ -626,7 +626,7 @@ index 7d95f4e919f46fd415a3cf88b1bb7c163c5065ec..182c3a3852726172dfe97f2b98932300
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
-@@ -2495,6 +2496,34 @@ public final class CraftServer implements Server {
+@@ -2516,6 +2517,34 @@ public final class CraftServer implements Server {
// Paper end
// Paper start
diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch
index 263bebcb9a..f2fac081cc 100644
--- a/patches/server/0013-Paper-Plugins.patch
+++ b/patches/server/0013-Paper-Plugins.patch
@@ -6973,10 +6973,10 @@ index 35e7f8e7b19c217fa5f3f55abb0f8b9cd6b16f18..72c2f0bf9434e09a0dd51294d3a2200f
Bootstrap.validate();
Util.startTimerHackThread();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea7228aa59 100644
+index de9e4fd6a11b06e685804e43657d8b6589c6ca1c..5efe98cbcb44727fbbb195ff7007d01c823372b6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -269,7 +269,8 @@ public final class CraftServer implements Server {
+@@ -268,7 +268,8 @@ public final class CraftServer implements Server {
private final CraftCommandMap commandMap = new CraftCommandMap(this);
private final SimpleHelpMap helpMap = new SimpleHelpMap(this);
private final StandardMessenger messenger = new StandardMessenger();
@@ -6986,7 +6986,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
private final StructureManager structureManager;
protected final DedicatedServer console;
protected final DedicatedPlayerList playerList;
-@@ -419,24 +420,7 @@ public final class CraftServer implements Server {
+@@ -418,24 +419,7 @@ public final class CraftServer implements Server {
}
public void loadPlugins() {
@@ -7012,7 +7012,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
}
public void enablePlugins(PluginLoadOrder type) {
-@@ -525,15 +509,17 @@ public final class CraftServer implements Server {
+@@ -524,15 +508,17 @@ public final class CraftServer implements Server {
private void enablePlugin(Plugin plugin) {
try {
List<Permission> perms = plugin.getDescription().getPermissions();
@@ -7036,7 +7036,7 @@ index 182c3a3852726172dfe97f2b989323001c6efad8..1dc5dc35830437a8511b6fbaf96201ea
this.pluginManager.enablePlugin(plugin);
} catch (Throwable ex) {
-@@ -951,6 +937,7 @@ public final class CraftServer implements Server {
+@@ -958,6 +944,7 @@ public final class CraftServer implements Server {
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
}
@@ -7062,10 +7062,10 @@ index 909b2c98e7a9117d2f737245e4661792ffafb744..d96399e9bf1a58db5a4a22e58abb99e7
@Override
public FileConfiguration getConfig() {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 0137b414a75894cb8b8413f96eba4f591453f61b..39a9a47ce7150445e1b00a32152c0429b3114302 100644
+index a3cb26b4ba108b3c621f74034480a522492fdf2f..23d594d7e24389e99f7c589d4cd7d6f3987d42c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -439,6 +439,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -437,6 +437,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
return nmsItemStack.getItem().getDescriptionId(nmsItemStack);
}
diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch
index c3a9827a13..ac01109fe4 100644
--- a/patches/server/0014-Timings-v2.patch
+++ b/patches/server/0014-Timings-v2.patch
@@ -732,7 +732,7 @@ index fc4dcd801480fe6d89a985de411baa9a3a66f6ef..4a1148a76020089caf01f888f87afdbb
} catch (Exception exception) {
if (listener.shouldPropagateHandlingExceptions()) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af205e309c 100644
+index 3250a9310b57351d6d832a8ef42837d990cf6c99..f0cd94f877a83485ab8e96e1c4e00bf658f227b7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -189,7 +189,7 @@ import org.bukkit.event.player.AsyncPlayerChatPreviewEvent;
@@ -744,7 +744,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, AutoCloseable {
-@@ -863,6 +863,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -861,6 +861,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
MinecraftServer.LOGGER.info("Stopping server");
@@ -752,7 +752,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
-@@ -1101,9 +1102,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1099,9 +1100,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private boolean haveTime() {
// CraftBukkit start
@@ -774,7 +774,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
private void executeModerately() {
this.runAllTasks();
java.util.concurrent.locks.LockSupport.parkNanos("executing tasks", 1000L);
-@@ -1111,9 +1124,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1109,9 +1122,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit end
protected void waitUntilNextTick() {
@@ -786,7 +786,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
});
}
-@@ -1198,9 +1211,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1196,9 +1209,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public void onServerExit() {}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -805,7 +805,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
++this.tickCount;
this.tickChildren(shouldKeepTicking);
if (i - this.lastServerStatus >= 5000000000L) {
-@@ -1209,15 +1230,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1207,15 +1228,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
if (this.autosavePeriod > 0 && this.tickCount % this.autosavePeriod == 0) { // CraftBukkit
@@ -826,7 +826,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
this.profiler.push("tallying");
long j = this.tickTimes[this.tickCount % 100] = Util.getNanos() - i;
-@@ -1227,8 +1251,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1225,8 +1249,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.frameTimer.logFrameDuration(k - i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -836,7 +836,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
}
private ServerStatus buildServerStatus() {
-@@ -1260,26 +1283,26 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1258,26 +1281,26 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickChildren(BooleanSupplier shouldKeepTicking) {
@@ -870,7 +870,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
// Send time updates to everyone, it will get the right time from the world the player is in.
if (this.tickCount % 20 == 0) {
for (int i = 0; i < this.getPlayerList().players.size(); ++i) {
-@@ -1287,7 +1310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1285,7 +1308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.send(new ClientboundSetTimePacket(entityplayer.level().getGameTime(), entityplayer.getPlayerTime(), entityplayer.level().getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); // Add support for per player time
}
}
@@ -879,7 +879,7 @@ index 2d35572157b28f2e637d9b47a82c5e7adecde96e..96897d883671e018bae5f71545c5f7af
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
-@@ -1333,24 +1356,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1331,24 +1354,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
this.profiler.popPush("connection");
@@ -1270,7 +1270,7 @@ index 7be97441aed66fa3a21d13ad2211b3e0e08120c0..7cb5abfa89f842194325d26c6e95b494
this.entityManager.saveAll();
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a1b9a2eeba2febef1b568a4c5aea99829210dbe1..403f7c7f31e0072b0cad0706bc981ece24733a1d 100644
+index fa3d02895d57c17416e742d2ea1e51253bce4fad..527654df6628b70fd380ccfd3890c27c7a490ef0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -339,7 +339,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1289,7 +1289,7 @@ index a1b9a2eeba2febef1b568a4c5aea99829210dbe1..403f7c7f31e0072b0cad0706bc981ece
}
-@@ -2144,7 +2142,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2147,7 +2145,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
private void handleCommand(String s) {
@@ -1298,7 +1298,7 @@ index a1b9a2eeba2febef1b568a4c5aea99829210dbe1..403f7c7f31e0072b0cad0706bc981ece
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
-@@ -2154,7 +2152,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2157,7 +2155,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1307,7 +1307,7 @@ index a1b9a2eeba2febef1b568a4c5aea99829210dbe1..403f7c7f31e0072b0cad0706bc981ece
return;
}
-@@ -2167,7 +2165,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2170,7 +2168,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
@@ -1317,7 +1317,7 @@ index a1b9a2eeba2febef1b568a4c5aea99829210dbe1..403f7c7f31e0072b0cad0706bc981ece
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 645bee9a926d71c3730a23391d21d48418444e9a..ec414e72a36ae330a3a4c6a4c7d879f3350ecb86 100644
+index d3dc7752aadf36985660d04dcb4377a69dfeddff..b922654c0b0b1b0d03beb20bb1944b817907f929 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,5 +1,6 @@
@@ -1341,7 +1341,7 @@ index 645bee9a926d71c3730a23391d21d48418444e9a..ec414e72a36ae330a3a4c6a4c7d879f3
public UserWhiteList getWhiteList() {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 18b019aa5908bbc02caa162accbf088abcefc2e2..3eb5659714158a371e8f922c47edd3f9e792c5a5 100644
+index a4e5961991a6debff959d63d70b71b1ded76e72a..fd81979963c3a7e2e03a53d6493ec4e48cad3e70 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -134,7 +134,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent;
@@ -1632,10 +1632,10 @@ index 0eb09ce5c850d85ffd7229d27cf06b3e0edda11b..cc1d7626a82881c4410d65c6a33dadae
};
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1dc5dc35830437a8511b6fbaf96201ea7228aa59..e982442204972e140f0e5ebac777a931ea7394e2 100644
+index 5efe98cbcb44727fbbb195ff7007d01c823372b6..3338b424ca228693c199d022c01a81f9e2f9af0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -369,7 +369,7 @@ public final class CraftServer implements Server {
+@@ -368,7 +368,7 @@ public final class CraftServer implements Server {
this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1644,7 +1644,7 @@ index 1dc5dc35830437a8511b6fbaf96201ea7228aa59..e982442204972e140f0e5ebac777a931
this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
-@@ -2412,12 +2412,31 @@ public final class CraftServer implements Server {
+@@ -2433,12 +2433,31 @@ public final class CraftServer implements Server {
private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot()
{
@@ -1846,10 +1846,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e087ec1f456a8eff1071700fb98eac792ebb8d19..c53b2c452d8e42dca202c5fc7e8dcca4ccf8e4ba 100644
+index e37f69880c4b439245d7edb4c35418ed3da27a5f..3c6617170c618800940d5826c7e73a3ac7f32e19 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2532,6 +2532,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2470,6 +2470,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR));
}
@@ -1865,16 +1865,16 @@ index e087ec1f456a8eff1071700fb98eac792ebb8d19..c53b2c452d8e42dca202c5fc7e8dcca4
public Player.Spigot spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 054fcc3713f02e358dfe049491c8d1689ccc750b..07c4d9cd5081378e1b903518f7174fca959cd9e3 100644
+index 4d94c3a19f98f78476ecc403f410d75a6ea57c2d..fcbf32a233c240dd45f75ee736bd102ce9f79332 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.scheduler;
+import co.aikar.timings.MinecraftTimings; // Paper
+ import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.ArrayList;
- import java.util.Comparator;
@@ -194,7 +195,8 @@ public class CraftScheduler implements BukkitScheduler {
}
@@ -1924,7 +1924,7 @@ index 054fcc3713f02e358dfe049491c8d1689ccc750b..07c4d9cd5081378e1b903518f7174fca
this.debugHead = this.debugHead.getNextHead(currentTick);
}
-@@ -492,6 +494,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -491,6 +493,7 @@ public class CraftScheduler implements BukkitScheduler {
}
private void parsePending() {
@@ -1932,7 +1932,7 @@ index 054fcc3713f02e358dfe049491c8d1689ccc750b..07c4d9cd5081378e1b903518f7174fca
CraftTask head = this.head;
CraftTask task = head.getNext();
CraftTask lastTask = head;
-@@ -510,6 +513,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -509,6 +512,7 @@ public class CraftScheduler implements BukkitScheduler {
task.setNext(null);
}
this.head = lastTask;
@@ -2046,7 +2046,7 @@ index f97eccb6a17c7876e1e002d798eb67bbe80571a0..76effc345d362047e64d064eb64a5222
+ } // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 39a9a47ce7150445e1b00a32152c0429b3114302..24319441ea6655c5cbd760c77cdde1e05c1877c4 100644
+index 23d594d7e24389e99f7c589d4cd7d6f3987d42c4..fda157258a5c96c8ef82dbad31b3a3da257f2fd2 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -224,6 +224,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -2062,7 +2062,7 @@ index 39a9a47ce7150445e1b00a32152c0429b3114302..24319441ea6655c5cbd760c77cdde1e0
public static byte toLegacyData(BlockState data) {
return CraftLegacy.toLegacyData(data);
-@@ -452,6 +458,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -450,6 +456,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftFeatureFlag.getFromNMS(namespacedKey);
}
@@ -2077,7 +2077,7 @@ index 39a9a47ce7150445e1b00a32152c0429b3114302..24319441ea6655c5cbd760c77cdde1e0
* This helper class represents the different NBT Tags.
* <p>
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index b7abac39ea685db1672dc7ba527bce8bfe025f8b..3e5d541d3d7fc3956b2fc68da9f22a0ab0367ce9 100644
+index 7cdfd82fdef19d5732ebc2126e2c377b441de596..ebd48f9977553174b14bdc7429c07d8352f5a297 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -27,7 +27,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident;
diff --git a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index dbe45b6367..61c2c430d5 100644
--- a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e982442204972e140f0e5ebac777a931ea7394e2..7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac 100644
+index 3338b424ca228693c199d022c01a81f9e2f9af0b..e9c2d5fad36e38ff1f0b34cacb9ea32516667948 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -423,6 +423,35 @@ public final class CraftServer implements Server {
+@@ -422,6 +422,35 @@ public final class CraftServer implements Server {
io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation
}
diff --git a/patches/server/0019-Rewrite-chunk-system.patch b/patches/server/0019-Rewrite-chunk-system.patch
index 8821599536..68ccf237b6 100644
--- a/patches/server/0019-Rewrite-chunk-system.patch
+++ b/patches/server/0019-Rewrite-chunk-system.patch
@@ -16798,10 +16798,10 @@ index 72c2f0bf9434e09a0dd51294d3a2200f1e0ed1b1..5d56c35d6d3478dbc53e4f5c3547d4dc
DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, worldLoader.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e856464589 100644
+index f0cd94f877a83485ab8e96e1c4e00bf658f227b7..bea4e947577ee2f5fd680eb932409283f8504ee7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
@@ -16810,7 +16810,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
((MinecraftServer) atomicreference.get()).runServer();
}, "Server thread");
-@@ -585,7 +585,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -583,7 +583,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.forceDifficulty();
for (ServerLevel worldserver : this.getAllLevels()) {
this.prepareLevels(worldserver.getChunkSource().chunkMap.progressListener, worldserver);
@@ -16819,7 +16819,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
this.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldLoadEvent(worldserver.getWorld()));
}
-@@ -785,6 +785,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -783,6 +783,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public abstract boolean shouldRconBroadcast();
public boolean saveAllChunks(boolean suppressLogs, boolean flush, boolean force) {
@@ -16832,7 +16832,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
boolean flag3 = false;
for (Iterator iterator = this.getAllLevels().iterator(); iterator.hasNext(); flag3 = true) {
-@@ -793,8 +799,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -791,8 +797,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (!suppressLogs) {
MinecraftServer.LOGGER.info("Saving chunks for level '{}'/{}", worldserver, worldserver.dimension().location());
}
@@ -16847,7 +16847,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
}
// CraftBukkit start - moved to WorldServer.save
-@@ -813,7 +823,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -811,7 +821,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
while (iterator1.hasNext()) {
ServerLevel worldserver2 = (ServerLevel) iterator1.next();
@@ -16856,7 +16856,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
}
MinecraftServer.LOGGER.info("ThreadedAnvilChunkStorage: All dimensions are saved");
-@@ -893,36 +903,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -891,36 +901,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
@@ -16894,7 +16894,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
this.isSaving = false;
this.resources.close();
-@@ -941,7 +922,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -939,7 +920,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getProfileCache().save();
}
// Spigot end
@@ -16903,7 +16903,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
}
public String getLocalIp() {
-@@ -975,6 +956,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -973,6 +954,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Spigot End
@@ -16912,7 +16912,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
protected void runServer() {
try {
if (!this.initServer()) {
-@@ -989,6 +972,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -987,6 +970,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Arrays.fill( recentTps, 20 );
long curTime, tickSection = Util.getMillis(), tickCount = 1;
while (this.running) {
@@ -16925,7 +16925,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
long i = (curTime = Util.getMillis()) - this.nextTickTime;
if (i > 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
-@@ -1101,6 +1090,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1099,6 +1088,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
private boolean haveTime() {
@@ -16937,7 +16937,7 @@ index 96897d883671e018bae5f71545c5f7af205e309c..164ce278f2696d4be6b57404648cb0e8
// CraftBukkit start
if (isOversleep) return canOversleep();// Paper - because of our changes, this logic is broken
return this.forceTicks || this.runningTask() || Util.getMillis() < (this.mayHaveDelayedTasks ? this.delayedTasksMaxNextTickTime : this.nextTickTime);
-@@ -2250,7 +2244,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2248,7 +2242,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit start
@Override
public boolean isSameThread() {
@@ -20149,7 +20149,7 @@ index 7cb5abfa89f842194325d26c6e95b49460c5968f..995be2fd84ce343d7430d9658f91868e
@Override
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5872ead2fe3a64f02f8bc36603fbb856728fd255..32ef9f1ae0c35e927133572ebb6fbf50b0729a63 100644
+index dc87e56cfcd59bc1505f5b3c0363038e790271a0..172ea32dfc93b2a2f28b5cdd520c07f8a04f2665 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -260,6 +260,48 @@ public class ServerPlayer extends Player {
@@ -20454,7 +20454,7 @@ index e96a0ca47e4701ba187555bd92c968345bc85677..73b96f804079288e9c5fcc11da54e61e
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 403f7c7f31e0072b0cad0706bc981ece24733a1d..d72e8df4f99b6219ea305742f0cf8d1c1985ffd6 100644
+index 527654df6628b70fd380ccfd3890c27c7a490ef0..023482c1662e42305cc4ca12ffdff1e36397ed15 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -788,6 +788,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -20472,7 +20472,7 @@ index 403f7c7f31e0072b0cad0706bc981ece24733a1d..d72e8df4f99b6219ea305742f0cf8d1c
StringReader stringreader = new StringReader(packet.getCommand());
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ec414e72a36ae330a3a4c6a4c7d879f3350ecb86..0363ad83af48ddcec37b5bd2fee49c3b1350576c 100644
+index b922654c0b0b1b0d03beb20bb1944b817907f929..b40ddd8fb3e2d2bafaa2ece46714815d0d6d5f75 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -262,7 +262,7 @@ public abstract class PlayerList {
@@ -20623,7 +20623,7 @@ index 12e72ad737b1219fcdf88d344d41621d9fd5feec..e0bfeebeaac1aaea64bc07cdfdf7790e
if (flag1) {
++this.converted;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 3eb5659714158a371e8f922c47edd3f9e792c5a5..f4f88f9be570cb3743ea77a7b77d165bc88ee154 100644
+index fd81979963c3a7e2e03a53d6493ec4e48cad3e70..5d3b3db5967cbc01fa73f9cc18c427e2d7be6ee2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -327,6 +327,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -22615,10 +22615,10 @@ index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b9958
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac..0a4b2529034b85609b2f8d3f3f633e8f6adbe34f 100644
+index e9c2d5fad36e38ff1f0b34cacb9ea32516667948..211e40fdd44f6a19ec6e0e98540ca963a2534995 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1176,7 +1176,7 @@ public final class CraftServer implements Server {
+@@ -1181,7 +1181,7 @@ public final class CraftServer implements Server {
this.console.addLevel(internal);
this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal);
@@ -22627,7 +22627,7 @@ index 7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac..0a4b2529034b85609b2f8d3f3f633e8f
this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld()));
return internal.getWorld();
-@@ -1220,7 +1220,7 @@ public final class CraftServer implements Server {
+@@ -1225,7 +1225,7 @@ public final class CraftServer implements Server {
}
handle.getChunkSource().close(save);
@@ -22636,7 +22636,7 @@ index 7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac..0a4b2529034b85609b2f8d3f3f633e8f
handle.convertable.close();
} catch (Exception ex) {
this.getLogger().log(Level.SEVERE, null, ex);
-@@ -2037,7 +2037,7 @@ public final class CraftServer implements Server {
+@@ -2045,7 +2045,7 @@ public final class CraftServer implements Server {
@Override
public boolean isPrimaryThread() {
@@ -22644,12 +22644,12 @@ index 7912cf0e4cab7d6c99106d43b2cdc4f4e80aebac..0a4b2529034b85609b2f8d3f3f633e8f
+ return io.papermc.paper.util.TickThread.isTickThread(); // Paper - rewrite chunk system
}
- // Paper start
+ // Paper start - Adventure
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73bf8261658 100644
+index 73f61f2b0c0aeefabb7b7bba7ca37914751dcc42..4a3593f24fc844a6a8b1b6c28ad2dc9c609c29ad 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -323,10 +323,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -322,10 +322,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.getVisibleChunkIfPresent(ChunkPos.asLong(x, z));
if (playerChunk == null) return false;
@@ -22667,7 +22667,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
ClientboundLevelChunkWithLightPacket refreshPacket = new ClientboundLevelChunkWithLightPacket(chunk, this.world.getLightEngine(), null, null);
for (ServerPlayer player : playersInRange) {
-@@ -334,8 +338,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -333,8 +337,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
player.connection.send(refreshPacket);
}
@@ -22677,7 +22677,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
return true;
}
-@@ -412,20 +415,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -411,20 +414,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Collection<Plugin> getPluginChunkTickets(int x, int z) {
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -22699,7 +22699,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
}
@Override
-@@ -433,7 +423,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -432,7 +422,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
Map<Plugin, ImmutableList.Builder<Chunk>> ret = new HashMap<>();
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -22708,7 +22708,7 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
long chunkKey = chunkTickets.getLongKey();
SortedArraySet<Ticket<?>> tickets = chunkTickets.getValue();
-@@ -1957,14 +1947,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1964,14 +1954,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot start
@Override
public int getViewDistance() {
@@ -22765,10 +22765,10 @@ index 711dbf6e5cf9b4ffabaab2bcf10f13711683a61e..7b6673c18d77dc03038924008775f73b
// Spigot start
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 11aebe27875a30dfc6bd82d486d0d79bfe2e77a1..977011bd42a5b2ffe4cd6567c058860a7f3fd48b 100644
+index 3c6617170c618800940d5826c7e73a3ac7f32e19..6894e5b29b4c59cdb46cfd8862709087cb97b923 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -184,6 +184,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -183,6 +183,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = System.currentTimeMillis();
}
@@ -22856,7 +22856,7 @@ index 629178347039893fb9de710810fe8112499bb91c..d5861dfa771c4eb217e082e3c832c3a6
+ // Paper end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index 3e5d541d3d7fc3956b2fc68da9f22a0ab0367ce9..b47b740186c200c420dcb4d1537a93c743a887c1 100644
+index ebd48f9977553174b14bdc7429c07d8352f5a297..6606a118e7bff01aa51440aea7540ec9feec6cc5 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -132,7 +132,13 @@ public class ActivationRange
diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index b97c0d5e4c..7b02cfa772 100644
--- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 164ce278f2696d4be6b57404648cb0e856464589..4d5a8c051ab7746ed40d5b79558e86238618827c 100644
+index bea4e947577ee2f5fd680eb932409283f8504ee7..b9a49f92e38daf4f80b6d3bf465eb9d249606976 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1460,7 +1460,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1458,7 +1458,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -19,10 +19,10 @@ index 164ce278f2696d4be6b57404648cb0e856464589..4d5a8c051ab7746ed40d5b79558e8623
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 0a4b2529034b85609b2f8d3f3f633e8f6adbe34f..31085570f31a5de308cb1d767472ea130193e3cf 100644
+index 211e40fdd44f6a19ec6e0e98540ca963a2534995..858b2d4557ec67a4818fcb389f6fa6053e638e61 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -260,7 +260,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -259,7 +259,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
public final class CraftServer implements Server {
diff --git a/patches/server/0028-Implement-Paper-VersionChecker.patch b/patches/server/0028-Implement-Paper-VersionChecker.patch
index 78fead6bfd..e72b095594 100644
--- a/patches/server/0028-Implement-Paper-VersionChecker.patch
+++ b/patches/server/0028-Implement-Paper-VersionChecker.patch
@@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..22a55be34fde453fedd987173d95b8b3
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 24319441ea6655c5cbd760c77cdde1e05c1877c4..f5f528e4520c5e52e1e9dae5228525f29e4eee92 100644
+index fda157258a5c96c8ef82dbad31b3a3da257f2fd2..e608b7542f6de7b3f2d7af25bb28f2705f6a9688 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -463,6 +463,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -461,6 +461,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getTimingsServerName() {
return io.papermc.paper.configuration.GlobalConfiguration.get().timings.serverName;
}
diff --git a/patches/server/0030-Player-affects-spawning-API.patch b/patches/server/0030-Player-affects-spawning-API.patch
index d1da9f1a88..74fe1cd32f 100644
--- a/patches/server/0030-Player-affects-spawning-API.patch
+++ b/patches/server/0030-Player-affects-spawning-API.patch
@@ -87,7 +87,7 @@ index a76f1ed7b8dc1aacda987931772cb3bf8f29be42..c20753645585143421eb544a03884f07
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 8d60b430357a1b761de325a21e1c52639a049403..213fed3a2b32226fc128d213ee3e9fa3ae76e88e 100644
+index ad5d8db9fb44f8e47edc82f9ba62872802bfa380..124703a7c043b6c3b651fa1a81c5ba3e99e47938 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -54,7 +54,7 @@ public abstract class BaseSpawner {
@@ -137,10 +137,10 @@ index be6e3e21ad62da01e5e2dd78e300cbc8efdbeb42..ea98625fe7c00743b8df74a24e6d4b75
for(Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 977011bd42a5b2ffe4cd6567c058860a7f3fd48b..5a013bb490b4948efd12dc2a52c4bed43508ceb8 100644
+index 6894e5b29b4c59cdb46cfd8862709087cb97b923..a0e67f97ac0b8bd1419187b61b957cf8f4457f5e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2211,8 +2211,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2149,8 +2149,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
return this.getHandle().locale;
diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch
index be0233164a..3805802cb5 100644
--- a/patches/server/0031-Further-improve-server-tick-loop.patch
+++ b/patches/server/0031-Further-improve-server-tick-loop.patch
@@ -12,10 +12,10 @@ Previous implementation did not calculate TPS correctly.
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338c89ea60e 100644
+index b9a49f92e38daf4f80b6d3bf465eb9d249606976..71c8bb318b2e99b7d0b91196ac0b1b5bfbc8bc79 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -285,7 +285,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
public ConsoleReader reader;
@@ -24,7 +24,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
public int autosavePeriod;
public Commands vanillaCommandDispatcher;
-@@ -294,7 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -292,7 +292,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Spigot start
public static final int TPS = 20;
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
@@ -33,7 +33,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
public final double[] recentTps = new double[ 3 ];
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
-@@ -954,6 +954,57 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -952,6 +952,57 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
{
return ( avg * exp ) + ( tps * ( 1 - exp ) );
}
@@ -91,7 +91,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
// Spigot End
public static volatile RuntimeException chunkSystemCrash; // Paper - rewrite chunk system
-@@ -970,7 +1021,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -968,7 +1019,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Spigot start
Arrays.fill( recentTps, 20 );
@@ -101,7 +101,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
while (this.running) {
// Paper start - rewrite chunk system
// guarantee that nothing can stop the server from halting if it can at least still tick
-@@ -978,7 +1030,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -976,7 +1028,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw this.chunkSystemCrash;
}
// Paper end - rewrite chunk system
@@ -110,7 +110,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
if (i > 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
long j = i / 50L;
-@@ -990,12 +1042,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -988,12 +1040,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
++MinecraftServer.currentTickLong; // Paper
@@ -134,7 +134,7 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
tickSection = curTime;
}
// Spigot end
-@@ -1005,7 +1063,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1003,7 +1061,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.debugCommandProfiler = new MinecraftServer.TimeProfiler(Util.getNanos(), this.tickCount);
}
@@ -145,10 +145,10 @@ index 4d5a8c051ab7746ed40d5b79558e86238618827c..92eb6e80e3b6f74dd32a878e5436d338
this.startMetricsRecordingTick();
this.profiler.push("tick");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 31085570f31a5de308cb1d767472ea130193e3cf..fb6ea46609489d802ed4b76b4074734dd3e3886f 100644
+index 858b2d4557ec67a4818fcb389f6fa6053e638e61..9da9b5b4b92996240cc93be2db82bf3a931e76c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2437,6 +2437,17 @@ public final class CraftServer implements Server {
+@@ -2458,6 +2458,17 @@ public final class CraftServer implements Server {
return CraftMagicNumbers.INSTANCE;
}
diff --git a/patches/server/0032-Only-refresh-abilities-if-needed.patch b/patches/server/0032-Only-refresh-abilities-if-needed.patch
index 33487acc93..36506c6f35 100644
--- a/patches/server/0032-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0032-Only-refresh-abilities-if-needed.patch
@@ -5,16 +5,16 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5a013bb490b4948efd12dc2a52c4bed43508ceb8..9255127fdf9cad0f44002064d0a28bcfe59f6a0a 100644
+index a0e67f97ac0b8bd1419187b61b957cf8f4457f5e..9423535cc7828e4f5286214ceffe3c481a922d9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1880,12 +1880,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1831,12 +1831,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setFlying(boolean value) {
+ boolean needsUpdate = getHandle().getAbilities().flying != value; // Paper - Only refresh abilities if needed
- if (!this.getAllowFlight() && value) {
- throw new IllegalArgumentException("Cannot make player fly if getAllowFlight() is false");
+ if (!this.getAllowFlight()) {
+ Preconditions.checkArgument(!value, "Player is not allowed to fly (check #getAllowFlight())");
}
this.getHandle().getAbilities().flying = value;
diff --git a/patches/server/0033-Entity-Origin-API.patch b/patches/server/0033-Entity-Origin-API.patch
index 2543d8a36b..294e046813 100644
--- a/patches/server/0033-Entity-Origin-API.patch
+++ b/patches/server/0033-Entity-Origin-API.patch
@@ -25,7 +25,7 @@ index 995be2fd84ce343d7430d9658f91868e653da43d..4af495424d60632b770cd1cb02157bbc
public void onTrackingEnd(Entity entity) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index f4f88f9be570cb3743ea77a7b77d165bc88ee154..c0d19d31aece8abab310b4c7bffa2ffe7a8ac845 100644
+index 5d3b3db5967cbc01fa73f9cc18c427e2d7be6ee2..b3e239df3528d149bf950a2c8a64df3444b0e013 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -312,7 +312,27 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -132,10 +132,10 @@ index 221ce518464332a27c43850c8bc25cd2fe0a9921..50fa14b045a1f75d43d90741245cc450
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index db585082251005e2d2f861a0b292f229bd43485d..0a6926f9b6be67d4d710d2fbc6bd2b1fcb0677a0 100644
+index 11645e01924b4a66aa4f425c8962a000be761912..003690e2f347821d28517b816115cc92ea5d0bd6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1252,5 +1252,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1245,5 +1245,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return ret;
}
diff --git a/patches/server/0040-Optimize-explosions.patch b/patches/server/0040-Optimize-explosions.patch
index 1a71c81043..2e4e74b96a 100644
--- a/patches/server/0040-Optimize-explosions.patch
+++ b/patches/server/0040-Optimize-explosions.patch
@@ -10,10 +10,10 @@ This patch adds a per-tick cache that is used for storing and retrieving
an entity's exposure during an explosion.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 92eb6e80e3b6f74dd32a878e5436d338c89ea60e..821725460b62ebadedb789f4408ef172416c2092 100644
+index 71c8bb318b2e99b7d0b91196ac0b1b5bfbc8bc79..3ff9a5a8f4b9a91958f6d846a7a5337a01dbb803 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1406,6 +1406,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1404,6 +1404,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.pop();
this.profiler.pop();
diff --git a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
index 39a5e23d2f..98def197f5 100644
--- a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e42c07dfba3c18464f1f8e35fbd764812d8c4e50..ee422a97a63749172f9f9643513ae9ab111c2400 100644
+index 1ef48b8415242942f00c6a76faa1de2865e11358..bcf0d4cfbfbae254bc74ad6389af372a8aa319be 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1853,7 +1853,7 @@ public class ServerPlayer extends Player {
@@ -30,10 +30,10 @@ index e42c07dfba3c18464f1f8e35fbd764812d8c4e50..ee422a97a63749172f9f9643513ae9ab
this.locale = packet.language;
// Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 9255127fdf9cad0f44002064d0a28bcfe59f6a0a..f18fa546bf9a045f7b10e8eb898339b2adf8d4a0 100644
+index 9423535cc7828e4f5286214ceffe3c481a922d9e..e67b8e85ae8ad7aba8eabcbcbef0b59b2837e60a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2211,8 +2211,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2149,8 +2149,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
diff --git a/patches/server/0052-Ensure-commands-are-not-ran-async.patch b/patches/server/0052-Ensure-commands-are-not-ran-async.patch
index 5269aa8eea..55b7bb443c 100644
--- a/patches/server/0052-Ensure-commands-are-not-ran-async.patch
+++ b/patches/server/0052-Ensure-commands-are-not-ran-async.patch
@@ -21,10 +21,10 @@ character.
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f6846cc11cbc 100644
+index 023482c1662e42305cc4ca12ffdff1e36397ed15..95d84f9a524ef0705875987c3781a0d73189dfbb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2041,7 +2041,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2044,7 +2044,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return true;
}
@@ -33,7 +33,7 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
for (int i = 0; i < message.length(); ++i) {
if (!SharedConstants.isAllowedChatCharacter(message.charAt(i))) {
return true;
-@@ -2058,7 +2058,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2061,7 +2061,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
OutgoingChatMessage outgoing = OutgoingChatMessage.create(original);
@@ -42,7 +42,7 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
-@@ -2148,7 +2148,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2151,7 +2151,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
@@ -74,11 +74,11 @@ index d72e8df4f99b6219ea305742f0cf8d1c1985ffd6..ddd437906801973e11386294e7e3f684
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fb6ea46609489d802ed4b76b4074734dd3e3886f..dd3935eeceba456b37a5fbcb874c1073bb76d473 100644
+index 9da9b5b4b92996240cc93be2db82bf3a931e76c1..c84e32f53783b2e00b829ce839894c0a3a73325e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -875,6 +875,28 @@ public final class CraftServer implements Server {
- Validate.notNull(commandLine, "CommandLine cannot be null");
+@@ -882,6 +882,28 @@ public final class CraftServer implements Server {
+ Preconditions.checkArgument(commandLine != null, "commandLine cannot be null");
org.spigotmc.AsyncCatcher.catchOp("command dispatch"); // Spigot
+ // Paper Start
@@ -107,11 +107,11 @@ index fb6ea46609489d802ed4b76b4074734dd3e3886f..dd3935eeceba456b37a5fbcb874c1073
return true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f18fa546bf9a045f7b10e8eb898339b2adf8d4a0..15c6c3a6e9d4e371425604667af7cc2b24fae021 100644
+index e67b8e85ae8ad7aba8eabcbcbef0b59b2837e60a..3290e6197e60ed2e9a667ce22a14127bc1ba3f97 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -479,7 +479,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- public void chat(String msg) {
+@@ -480,7 +480,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+
if (this.getHandle().connection == null) return;
- this.getHandle().connection.chat(msg, PlayerChatMessage.system(msg), false);
diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch
index b64c141857..a937de8515 100644
--- a/patches/server/0054-Expose-server-CommandMap.patch
+++ b/patches/server/0054-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dd3935eeceba456b37a5fbcb874c1073bb76d473..9c80c55e8c15aa847aea134dd8121ee9d0c24d1c 100644
+index c84e32f53783b2e00b829ce839894c0a3a73325e..3d47994c861f70fc560a42dc524a773d9c15cfe0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2012,6 +2012,7 @@ public final class CraftServer implements Server {
+@@ -2020,6 +2020,7 @@ public final class CraftServer implements Server {
return this.helpMap;
}
diff --git a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
index 59b0315e79..1d2852b0ba 100644
--- a/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
+++ b/patches/server/0055-Be-a-bit-more-informative-in-maxHealth-exception.patch
@@ -5,18 +5,20 @@ Subject: [PATCH] Be a bit more informative in maxHealth exception
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index f6b795ad57aec40231e262549839fa049458c634..1f67ac4484e3ee2e0a25030e0080a671f34e1a58 100644
+index 92831e64cc5f93a13dfede82d44172b3b34a57e3..a112ee18b272e2d5a61ddbb2c884169b6c6d0aec 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -102,7 +102,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -100,7 +100,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+ @Override
public void setHealth(double health) {
health = (float) health;
- if ((health < 0) || (health > this.getMaxHealth())) {
-- throw new IllegalArgumentException("Health must be between 0 and " + this.getMaxHealth() + "(" + health + ")");
-+ // Paper - Be more informative
-+ throw new IllegalArgumentException("Health must be between 0 and " + getMaxHealth() + ", but was " + health
-+ + ". (attribute base value: " + this.getHandle().getAttribute(Attributes.MAX_HEALTH).getBaseValue()
-+ + (this instanceof CraftPlayer ? ", player: " + this.getName() + ')' : ')'));
- }
+- Preconditions.checkArgument(health >= 0 && health <= this.getMaxHealth(), "Health value (%s) must be between 0 and %s", health, this.getMaxHealth());
++ // Paper start - Be more informative
++ Preconditions.checkArgument(health >= 0 && health <= this.getMaxHealth(),
++ "Health value (%s) must be between 0 and %s. (attribute base value: %s%s)",
++ health, this.getMaxHealth(), this.getHandle().getAttribute(Attributes.MAX_HEALTH).getBaseValue(), this instanceof CraftPlayer ? ", player: " + this.getName() : ""
++ );
++ // Paper end
// during world generation, we don't want to run logic for dropping items and xp
+ if (this.getHandle().generation && health == 0) {
diff --git a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
index 48800a1b12..b223c5106e 100644
--- a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch
@@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4
// Paper end
buf.writeComponent(this.text);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 15c6c3a6e9d4e371425604667af7cc2b24fae021..73dfea8999a0536e9319a9bfe8d5940dad760709 100644
+index 3290e6197e60ed2e9a667ce22a14127bc1ba3f97..0d8337e5b591cd4d7ba946f01990d7c562bba72a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1,5 +1,6 @@
@@ -73,7 +73,7 @@ index 15c6c3a6e9d4e371425604667af7cc2b24fae021..73dfea8999a0536e9319a9bfe8d5940d
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.BaseEncoding;
-@@ -325,6 +326,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -322,6 +323,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch
index 604f376234..1440922180 100644
--- a/patches/server/0058-Add-velocity-warnings.patch
+++ b/patches/server/0058-Add-velocity-warnings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add velocity warnings
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9c80c55e8c15aa847aea134dd8121ee9d0c24d1c..1cca43506306994e740278a581b0d33924d08491 100644
+index 3d47994c861f70fc560a42dc524a773d9c15cfe0..bf9d7ae4366e44938306e3f8e94376796284a263 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -296,6 +296,7 @@ public final class CraftServer implements Server {
+@@ -295,6 +295,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List<CraftPlayer> playerView;
public int reloadCount;
@@ -17,7 +17,7 @@ index 9c80c55e8c15aa847aea134dd8121ee9d0c24d1c..1cca43506306994e740278a581b0d339
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 0a6926f9b6be67d4d710d2fbc6bd2b1fcb0677a0..c9275f73be7332f79312037954f9685f6c1f800f 100644
+index 003690e2f347821d28517b816115cc92ea5d0bd6..fa2a6f44a1c25fb6c9a19e83e7eddb2c8d28a320 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -465,10 +465,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
index b68e131508..55a718bc60 100644
--- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch
@@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended
This only is the case if the player is teleporting between worlds.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 73dfea8999a0536e9319a9bfe8d5940dad760709..2a7a7c5e1490c2922c01c5c397793aa03364bbaf 100644
+index 0d8337e5b591cd4d7ba946f01990d7c562bba72a..5b7ac9efd45009142dd5da6987e2e9dad5cbba7f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1182,7 +1182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1136,7 +1136,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
entity.connection.teleport(to);
} else {
// The respawn reason should never be used if the passed location is non null.
diff --git a/patches/server/0060-Add-exception-reporting-event.patch b/patches/server/0060-Add-exception-reporting-event.patch
index 3e5da0abe4..9fa56529a0 100644
--- a/patches/server/0060-Add-exception-reporting-event.patch
+++ b/patches/server/0060-Add-exception-reporting-event.patch
@@ -192,34 +192,24 @@ index e68205fe7169c7c5b7c6fdada2ee97d86107ca97..aa8972fd1a1fade05d60ab69efb8ff24
try {
filechannel.close();
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index 07c4d9cd5081378e1b903518f7174fca959cd9e3..dfc2789009fcaa08baa8054bdac915590b8701d6 100644
+index fcbf32a233c240dd45f75ee736bd102ce9f79332..833240d2a4936343710a60876a66d01112e15a2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -17,6 +17,9 @@ import java.util.concurrent.atomic.AtomicReference;
- import java.util.function.Consumer;
- import java.util.function.IntUnaryOperator;
- import java.util.logging.Level;
-+import com.destroystokyo.paper.ServerSchedulerReportingWrapper;
-+import com.destroystokyo.paper.event.server.ServerExceptionEvent;
-+import com.destroystokyo.paper.exception.ServerSchedulerException;
- import org.apache.commons.lang.Validate;
- import org.bukkit.plugin.IllegalPluginAccessException;
- import org.bukkit.plugin.Plugin;
-@@ -434,6 +437,8 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -434,6 +434,8 @@ public class CraftScheduler implements BukkitScheduler {
msg,
throwable);
}
+ org.bukkit.Bukkit.getServer().getPluginManager().callEvent(
-+ new ServerExceptionEvent(new ServerSchedulerException(msg, throwable, task)));
++ new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerSchedulerException(msg, throwable, task)));
// Paper end
} finally {
this.currentTask = null;
-@@ -441,7 +446,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -441,7 +443,7 @@ public class CraftScheduler implements BukkitScheduler {
this.parsePending();
} else {
this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass()));
- this.executor.execute(task);
-+ this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
++ this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
diff --git a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
index ea0e8d4bb9..99be07e3cc 100644
--- a/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
+++ b/patches/server/0063-Add-methods-for-working-with-arrows-stuck-in-living-.patch
@@ -7,10 +7,10 @@ Upstream added methods for this, original methods are now
deprecated
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1f67ac4484e3ee2e0a25030e0080a671f34e1a58..3084fa8000b36f06e8d432bff124a5af4ea675ea 100644
+index a112ee18b272e2d5a61ddbb2c884169b6c6d0aec..fcb07a5f8cac994b731e3345ba9e971faa482fa1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -266,9 +266,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -265,9 +265,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
@Override
@@ -27,7 +27,7 @@ index 1f67ac4484e3ee2e0a25030e0080a671f34e1a58..3084fa8000b36f06e8d432bff124a5af
}
@Override
-@@ -764,4 +770,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -761,4 +767,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
this.getHandle().persistentInvisibility = invisible;
this.getHandle().setSharedFlag(5, invisible);
}
diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch
index 30a9942957..58a10f7d75 100644
--- a/patches/server/0065-Complete-resource-pack-API.patch
+++ b/patches/server/0065-Complete-resource-pack-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ddd437906801973e11386294e7e3f6846cc11cbc..a91cc53f9d601bbc51988b2b7855c6ebcc68d780 100644
+index 95d84f9a524ef0705875987c3781a0d73189dfbb..e60d8689e7bec90cb4b8787ff252eb7da39d6a8f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1755,8 +1755,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1758,8 +1758,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect"));
}
@@ -23,10 +23,10 @@ index ddd437906801973e11386294e7e3f6846cc11cbc..a91cc53f9d601bbc51988b2b7855c6eb
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c8c1339f9 100644
+index 5b7ac9efd45009142dd5da6987e2e9dad5cbba7f..c1ad517b8925ee19b3e251a45816e8a7ecc5e3b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -178,6 +178,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -177,6 +177,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private double healthScale = 20;
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
@@ -37,7 +37,7 @@ index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c
public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
-@@ -2334,6 +2338,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2272,6 +2276,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean getAffectsSpawning() {
return this.getHandle().affectsSpawning;
}
@@ -54,8 +54,8 @@ index 2a7a7c5e1490c2922c01c5c397793aa03364bbaf..0fdc0ecbaeff775359fd192f4be7e20c
+
+ @Override
+ public void setResourcePack(@NotNull String url, @NotNull String hash, boolean required, net.kyori.adventure.text.Component resourcePackPrompt) {
-+ Validate.notNull(url, "Resource pack URL cannot be null");
-+ Validate.notNull(hash, "Hash cannot be null");
++ Preconditions.checkArgument(url != null, "Resource pack URL cannot be null");
++ Preconditions.checkArgument(hash != null, "Hash cannot be null");
+ net.minecraft.network.chat.Component promptComponent = resourcePackPrompt != null ?
+ io.papermc.paper.adventure.PaperAdventure.asVanilla(resourcePackPrompt) :
+ null;
diff --git a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
index 2e6260b395..ca99eb9d9e 100644
--- a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
+++ b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
@@ -16,10 +16,10 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe
A config option has been added for those who depend on the previous behavior, but I don't expect that.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1cca43506306994e740278a581b0d33924d08491..e509ab35bf8ffba3c1e04f1236f98c24c1e010f4 100644
+index bf9d7ae4366e44938306e3f8e94376796284a263..43c2e3f0db683022179ae4c85703390be5bdb759 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -457,6 +457,7 @@ public final class CraftServer implements Server {
+@@ -456,6 +456,7 @@ public final class CraftServer implements Server {
if (type == PluginLoadOrder.STARTUP) {
this.helpMap.clear();
this.helpMap.initializeGeneralTopics();
@@ -27,7 +27,7 @@ index 1cca43506306994e740278a581b0d33924d08491..e509ab35bf8ffba3c1e04f1236f98c24
}
Plugin[] plugins = this.pluginManager.getPlugins();
-@@ -476,7 +477,7 @@ public final class CraftServer implements Server {
+@@ -475,7 +476,7 @@ public final class CraftServer implements Server {
this.commandMap.registerServerAliases();
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
diff --git a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
index 2c35743bdb..a30ddc19c4 100644
--- a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
+++ b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e509ab35bf8ffba3c1e04f1236f98c24c1e010f4..dea53897919d46b90c99577fbb1985b2d0c65b5e 100644
+index 43c2e3f0db683022179ae4c85703390be5bdb759..22d11ee1d782ba1218357ee16b05de3414924aeb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2603,5 +2603,23 @@ public final class CraftServer implements Server {
+@@ -2624,5 +2624,23 @@ public final class CraftServer implements Server {
}
return this.adventure$audiences;
}
diff --git a/patches/server/0068-Remove-Metadata-on-reload.patch b/patches/server/0068-Remove-Metadata-on-reload.patch
index 6bff5918c0..2f5734a37c 100644
--- a/patches/server/0068-Remove-Metadata-on-reload.patch
+++ b/patches/server/0068-Remove-Metadata-on-reload.patch
@@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
This will remove metadata on reload so it does not crash everything if a plugin uses it.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dea53897919d46b90c99577fbb1985b2d0c65b5e..dbad9e72121562d22f8476bade4032661e280066 100644
+index 22d11ee1d782ba1218357ee16b05de3414924aeb..83119de3ae3e38ba4bb77abf005043cfa82c4670 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -962,8 +962,16 @@ public final class CraftServer implements Server {
+@@ -969,8 +969,16 @@ public final class CraftServer implements Server {
world.spigotConfig.init(); // Spigot
}
diff --git a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
index 8e3b84a6df..b52904d516 100644
--- a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch
@@ -70,20 +70,12 @@ index 2e948330c4951e3df7091fa870573f163d2af286..4b19057fba6c6645dc79f6572a3fb01c
public boolean isEnchanted() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038f44027fb 100644
+index 34a54a99e7484b2934e1d174c1b55f0472ff3812..7fd9a3a7f4cb98d89b7c4cbfda756d581963e5bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -6,7 +6,6 @@ import java.util.Map;
- import net.minecraft.nbt.CompoundTag;
- import net.minecraft.nbt.ListTag;
- import net.minecraft.world.item.Item;
--import net.minecraft.world.item.enchantment.EnchantmentHelper;
- import org.apache.commons.lang.Validate;
- import org.bukkit.Material;
- import org.bukkit.NamespacedKey;
-@@ -178,28 +177,11 @@ public final class CraftItemStack extends ItemStack {
+@@ -178,28 +178,11 @@ public final class CraftItemStack extends ItemStack {
public void addUnsafeEnchantment(Enchantment ench, int level) {
- Validate.notNull(ench, "Cannot add null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
- if (!CraftItemStack.makeTag(this.handle)) {
- return;
@@ -115,17 +107,9 @@ index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038
}
static boolean makeTag(net.minecraft.world.item.ItemStack item) {
-@@ -225,57 +207,29 @@ public final class CraftItemStack extends ItemStack {
- if (this.handle == null) {
- return 0;
- }
-- return EnchantmentHelper.getItemEnchantmentLevel(CraftEnchantment.getRaw(ench), handle);
-+ return net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(CraftEnchantment.getRaw(ench), handle); // Paper
- }
-
- @Override
+@@ -232,50 +215,22 @@ public final class CraftItemStack extends ItemStack {
public int removeEnchantment(Enchantment ench) {
- Validate.notNull(ench, "Cannot remove null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
- ListTag list = CraftItemStack.getEnchantmentList(this.handle), listCopy;
- if (list == null) {
@@ -184,7 +168,7 @@ index ae55364f6c33687361c053d90ad47c6192a1e62b..bdfce4a49cc6fed46de5864d1c443038
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 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f02693fee 100644
+index b01c268d179591a0113e4bfb46f3d6d22933efaf..bfd5661d55a6ed767cb3bed2d9bb24535c1f7335 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;
@@ -211,7 +195,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
-@@ -276,7 +279,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -275,7 +278,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private List<String> lore; // null and empty are two different states internally
private Integer customModelData;
private CompoundTag blockData;
@@ -220,7 +204,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
private Multimap<Attribute, AttributeModifier> attributeModifiers;
private int repairCost;
private int hideFlag;
-@@ -287,7 +290,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -286,7 +289,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
private CompoundTag internalTag;
@@ -229,7 +213,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY);
private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only
-@@ -308,7 +311,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -307,7 +310,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.blockData = meta.blockData;
if (meta.enchantments != null) { // Spigot
@@ -238,7 +222,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
}
if (meta.hasAttributeModifiers()) {
-@@ -391,13 +394,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -390,13 +393,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -254,7 +238,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
for (int i = 0; i < ench.size(); i++) {
String id = ((CompoundTag) ench.get(i)).getString(ENCHANTMENTS_ID.NBT);
-@@ -550,13 +553,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -549,13 +552,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -270,7 +254,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
for (Map.Entry<?, ?> entry : ench.entrySet()) {
// Doctor older enchants
String enchantKey = entry.getKey().toString();
-@@ -832,14 +835,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -831,14 +834,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Override
public Map<Enchantment, Integer> getEnchants() {
@@ -280,14 +264,14 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
@Override
public boolean addEnchant(Enchantment ench, int level, boolean ignoreRestrictions) {
- Validate.notNull(ench, "Enchantment cannot be null");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
if (this.enchantments == null) {
- this.enchantments = new LinkedHashMap<Enchantment, Integer>(4);
+ this.enchantments = new EnchantmentMap(); // Paper
}
if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
-@@ -1228,7 +1231,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1227,7 +1230,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.customModelData = this.customModelData;
clone.blockData = this.blockData;
if (this.enchantments != null) {
@@ -296,7 +280,7 @@ index 16dd61b832d7b6519786072e41cdde9df3ab8e7f..5d892f76f42486ce1890fe0507b19b2f
}
if (this.hasAttributeModifiers()) {
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -1467,4 +1470,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1464,4 +1467,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return CraftMetaItem.HANDLED_TAGS;
}
}
diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index 3fc589185e..c3861ff441 100644
--- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,10 +44,10 @@ index 1238da8b035a0b0dd3d00557ca0de7a82f5fdf53..5e40ee2695b7ed50fddc0e8226f0b1b4
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 0fdc0ecbaeff775359fd192f4be7e20c8c1339f9..a47334fbef1056f644b588453666039f4daa3e33 100644
+index c1ad517b8925ee19b3e251a45816e8a7ecc5e3b8..10a42c5c69ea99bc90d08b51bc9f342504d1da7d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2138,6 +2138,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2076,6 +2076,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {
diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
index 42404327c2..d2397e8813 100644
--- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
+++ b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 821725460b62ebadedb789f4408ef172416c2092..81abb732e2bb3bca683028d505e7485052c0ec8d 100644
+index 3ff9a5a8f4b9a91958f6d846a7a5337a01dbb803..1af6a1ed4111e5e1feaede68be2783070ed90c76 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1367,6 +1367,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1365,6 +1365,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
diff --git a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
index 1171770f13..a82e313e3c 100644
--- a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
+++ b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch
@@ -22,10 +22,10 @@ index a5d57cc862036012d83b090bb1b3ccf4115a88b3..21068f766b75c414d5818073b7dca083
static final ServerboundInteractPacket.Action ATTACK_ACTION = new ServerboundInteractPacket.Action() {
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a91cc53f9d601bbc51988b2b7855c6ebcc68d780..2b1311185bb08592038e256d860a722fbd4d9ffc 100644
+index e60d8689e7bec90cb4b8787ff252eb7da39d6a8f..f275e00149f3d727b15627cf9acfd19eb5b0e21a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2541,8 +2541,37 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2544,8 +2544,37 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
});
}
}
diff --git a/patches/server/0088-Configurable-Player-Collision.patch b/patches/server/0088-Configurable-Player-Collision.patch
index 0b119834f9..39f2157ed5 100644
--- a/patches/server/0088-Configurable-Player-Collision.patch
+++ b/patches/server/0088-Configurable-Player-Collision.patch
@@ -18,10 +18,10 @@ index 1294b38262505b0d54089e428df9b363219de1f0..ee37ec0de1ca969144824427ae42b0c8
buf.writeComponent(this.playerPrefix);
buf.writeComponent(this.playerSuffix);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 81abb732e2bb3bca683028d505e7485052c0ec8d..d2b07b5f0ff7466f22f2c25c7e0cb9a00b25f4f0 100644
+index 1af6a1ed4111e5e1feaede68be2783070ed90c76..010d0192da65e4dfe5516126b522d30b776394c0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -589,6 +589,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -587,6 +587,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldLoadEvent(worldserver.getWorld()));
}
@@ -43,7 +43,7 @@ index 81abb732e2bb3bca683028d505e7485052c0ec8d..d2b07b5f0ff7466f22f2c25c7e0cb9a0
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
this.connection.acceptConnections();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index d9c45fb7a97797de2af2811f816110cc6c3681f6..66b1a4593f9c96dbf7e098411f89dbacd6baf4ba 100644
+index 9e835d63e1592fc064b73c51eecd8b84cbedfa33..7901a8e3659be05d901fd5140e025392ffa0c27c 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -99,6 +99,7 @@ import net.minecraft.world.level.storage.PlayerDataStorage;
diff --git a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch b/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch
index c937ced457..6bb6d8878f 100644
--- a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch
+++ b/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton
to stop IDE complaining about potential NPE
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index d2b07b5f0ff7466f22f2c25c7e0cb9a00b25f4f0..8e3ff6870daff6dee7e38f72d1e37e9aa58dab35 100644
+index 010d0192da65e4dfe5516126b522d30b776394c0..c09ac4ef459c8df6c8623de7fbb63f8c2558bd2d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -193,6 +193,7 @@ import co.aikar.timings.MinecraftTimings; // Paper
@@ -17,7 +17,7 @@ index d2b07b5f0ff7466f22f2c25c7e0cb9a00b25f4f0..8e3ff6870daff6dee7e38f72d1e37e9a
public static final Logger LOGGER = LogUtils.getLogger();
public static final net.kyori.adventure.text.logger.slf4j.ComponentLogger COMPONENT_LOGGER = net.kyori.adventure.text.logger.slf4j.ComponentLogger.logger(LOGGER.getName()); // Paper
public static final String VANILLA_BRAND = "vanilla";
-@@ -322,6 +323,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -320,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public MinecraftServer(OptionSet options, WorldLoader.DataLoadContext worldLoader, Thread thread, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PackRepository resourcepackrepository, WorldStem worldstem, Proxy proxy, DataFixer datafixer, Services services, ChunkProgressListenerFactory worldloadlistenerfactory) {
super("Server");
@@ -25,7 +25,7 @@ index d2b07b5f0ff7466f22f2c25c7e0cb9a00b25f4f0..8e3ff6870daff6dee7e38f72d1e37e9a
this.metricsRecorder = InactiveMetricsRecorder.INSTANCE;
this.profiler = this.metricsRecorder.getProfiler();
this.onMetricsRecordingStopped = (methodprofilerresults) -> {
-@@ -2326,9 +2328,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2324,9 +2326,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return false;
}
diff --git a/patches/server/0098-Async-GameProfileCache-saving.patch b/patches/server/0098-Async-GameProfileCache-saving.patch
index d0b94a9698..f199705495 100644
--- a/patches/server/0098-Async-GameProfileCache-saving.patch
+++ b/patches/server/0098-Async-GameProfileCache-saving.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Async GameProfileCache saving
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 8e3ff6870daff6dee7e38f72d1e37e9aa58dab35..14edacfd5cc77cc85dc84e3fdad94be8c8932dc6 100644
+index c09ac4ef459c8df6c8623de7fbb63f8c2558bd2d..006289473c03c8484b26264c61eaf6a5e73658c0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -935,7 +935,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -933,7 +933,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} catch (java.lang.InterruptedException ignored) {} // Paper
if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) {
MinecraftServer.LOGGER.info("Saving usercache.json");
diff --git a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch
index fa985e276c..4a8d18d1b8 100644
--- a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch
+++ b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch
@@ -43,10 +43,10 @@ index da98f074ccd5a40c635824112c97fd174c393cb1..6599f874d9f97e9ef4862039ecad7277
} else {
String[] astring1 = astring;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dbad9e72121562d22f8476bade4032661e280066..d83942d7f7260073e1c60e125eed6312ff89e434 100644
+index 83119de3ae3e38ba4bb77abf005043cfa82c4670..a392be8dee7eccc5f6a55edf02ec207bcb65b0a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1735,7 +1735,7 @@ public final class CraftServer implements Server {
+@@ -1740,7 +1740,7 @@ public final class CraftServer implements Server {
// Spigot Start
GameProfile profile = null;
// Only fetch an online UUID in online mode
diff --git a/patches/server/0107-Configurable-packet-in-spam-threshold.patch b/patches/server/0107-Configurable-packet-in-spam-threshold.patch
index fd7d119231..6d93602984 100644
--- a/patches/server/0107-Configurable-packet-in-spam-threshold.patch
+++ b/patches/server/0107-Configurable-packet-in-spam-threshold.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable packet in spam threshold
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 2b1311185bb08592038e256d860a722fbd4d9ffc..3ac549815895e6cbb43cbfc04377337f8b7ebd43 100644
+index f275e00149f3d727b15627cf9acfd19eb5b0e21a..7c48f10be178186886a2f497c162c87c35369053 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1595,13 +1595,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1598,13 +1598,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Spigot start - limit place/interactions
private int limitedPackets;
private long lastLimitedPacket = -1;
diff --git a/patches/server/0109-Add-EntityZapEvent.patch b/patches/server/0109-Add-EntityZapEvent.patch
index 2f10f3924c..83e60f2e1a 100644
--- a/patches/server/0109-Add-EntityZapEvent.patch
+++ b/patches/server/0109-Add-EntityZapEvent.patch
@@ -28,10 +28,10 @@ index f9704b20e71564ac721a24655b2792c689edf6ba..e04f3f1159c5d5fa2e3956a36e95f8af
entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) null);
entitywitch.setNoAi(this.isNoAi());
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 1b9a08098199f305606289724ee047e8075ffcea..8d9b25f3c8c840baf9c203f80d46201434920aa5 100644
+index e0bb58d92e47516138261a673b56c5f8ce68a59c..d3584001c92593d4471eeb473b345d30d4dc960e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1189,6 +1189,14 @@ public class CraftEventFactory {
+@@ -1193,6 +1193,14 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
index 137f32a6a8..79b175b053 100644
--- a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d83942d7f7260073e1c60e125eed6312ff89e434..1889db501bb91671eac8b8672531427d7325f35e 100644
+index a392be8dee7eccc5f6a55edf02ec207bcb65b0a5..9b45eed05bebc3957f54291fe59c87994bfdf00d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2629,5 +2629,24 @@ public final class CraftServer implements Server {
+@@ -2650,5 +2650,24 @@ public final class CraftServer implements Server {
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
}
diff --git a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch
index b85cdb8ac7..7b01ee8998 100644
--- a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch
+++ b/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch
@@ -18,10 +18,10 @@ index 93c83cfedc7d3a169ad0504aa6e63f600873501b..9dffdfe5bbd0517e9a2c6a6770eea07b
--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 8d9b25f3c8c840baf9c203f80d46201434920aa5..09d11ea7905a5760ab5ee63e5976d67fb6392bed 100644
+index d3584001c92593d4471eeb473b345d30d4dc960e..192d48ed576b2918d7cce9a4969bcf2db17da9d7 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1148,6 +1148,17 @@ public class CraftEventFactory {
+@@ -1152,6 +1152,17 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0114-Add-ProjectileCollideEvent.patch b/patches/server/0114-Add-ProjectileCollideEvent.patch
index 5de3c13ece..c2c4d8c42a 100644
--- a/patches/server/0114-Add-ProjectileCollideEvent.patch
+++ b/patches/server/0114-Add-ProjectileCollideEvent.patch
@@ -6,10 +6,10 @@ 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 09d11ea7905a5760ab5ee63e5976d67fb6392bed..beacc9af36eface8cf855ee15fb7bcf7e08f9439 100644
+index 192d48ed576b2918d7cce9a4969bcf2db17da9d7..f882b007756edc2f25e913393b7e8b400ccbe50e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1292,6 +1292,17 @@ public class CraftEventFactory {
+@@ -1296,6 +1296,17 @@ public class CraftEventFactory {
return CraftItemStack.asNMSCopy(bitem);
}
@@ -27,7 +27,7 @@ index 09d11ea7905a5760ab5ee63e5976d67fb6392bed..beacc9af36eface8cf855ee15fb7bcf7
public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) {
Projectile bukkitEntity = (Projectile) entity.getBukkitEntity();
ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity);
-@@ -1316,8 +1327,15 @@ public class CraftEventFactory {
+@@ -1320,8 +1331,15 @@ public class CraftEventFactory {
if (position.getType() == HitResult.Type.ENTITY) {
hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity();
}
diff --git a/patches/server/0120-String-based-Action-Bar-API.patch b/patches/server/0120-String-based-Action-Bar-API.patch
index 1f3b7876cf..ff29503919 100644
--- a/patches/server/0120-String-based-Action-Bar-API.patch
+++ b/patches/server/0120-String-based-Action-Bar-API.patch
@@ -26,10 +26,10 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad
// Paper end
buf.writeComponent(this.text);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a47334fbef1056f644b588453666039f4daa3e33..6de07ae1c6d2130eb7feef6f169a288d0fdfd77b 100644
+index 10a42c5c69ea99bc90d08b51bc9f342504d1da7d..79d061d07569207fde3bb4b959589ba3f0cba981 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -331,6 +331,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -328,6 +328,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper start
diff --git a/patches/server/0121-Properly-fix-item-duplication-bug.patch b/patches/server/0121-Properly-fix-item-duplication-bug.patch
index e842326b2d..bd3a28efb3 100644
--- a/patches/server/0121-Properly-fix-item-duplication-bug.patch
+++ b/patches/server/0121-Properly-fix-item-duplication-bug.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Properly fix item duplication bug
Credit to prplz for figuring out the real issue
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 321d14f241df1246061ba73b2488f5ab5326a734..0cb86afa3732eaf04dd6369d7499bd628df7e12f 100644
+index b4ea4c63a6cd767684d6c3c68a192a90c82d2e91..6051ad00973c80ad3478e2ff9063c268489f358b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2392,7 +2392,7 @@ public class ServerPlayer extends Player {
@@ -19,10 +19,10 @@ index 321d14f241df1246061ba73b2488f5ab5326a734..0cb86afa3732eaf04dd6369d7499bd62
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c33b94701a8c4f3198671405d32467d9645bf87f..188c1506fe219e778da273478b0c581f48ca9ef2 100644
+index 949b192a2b25920fcc6fc8192685f2c6bca64fda..67a9203df4fa9fc7f497eb7f4afce67fc5a6c320 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3149,7 +3149,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3152,7 +3152,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
public final boolean isDisconnected() {
diff --git a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch
index 169a5c7b52..b44c7c10aa 100644
--- a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -20,10 +20,10 @@ index 0a419c98db5f6bb6935e88b640f74c6ec0c5503c..92aa1428e723b377c12bfd20cd1e6b42
private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList();
private boolean tickingBlockEntities;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7b6673c18d77dc03038924008775f73bf8261658..f7938024605e61cdeee5668190abbf336611f425 100644
+index 4a3593f24fc844a6a8b1b6c28ad2dc9c609c29ad..04a12be27ea3f7b8c0dd2bb2c8f4f0a4b90de1b2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -155,6 +155,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -154,6 +154,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY);
private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
diff --git a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index c1fa57b321..ce55e169ff 100644
--- a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -324,10 +324,10 @@ index 9113fd7070596ecf504837f335022d5eb4ef9a77..d56a64b058d8848e405e33d9884a61ea
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index e6eb4a903a43572cfda72db52a1d9c6a6fd46dee..101dac0fcabc5fd696f58ec52ad1fc93a2d0afeb 100644
+index 6a4e30365f015b6aaf7ca18d7b31ff1523ebdf0c..002875dc5ee549c5d192d90c6e4daf59c1f7c0ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -946,7 +946,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -942,7 +942,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
} else if (TNTPrimed.class.isAssignableFrom(clazz)) {
entity = new PrimedTnt(world, x, y, z, null);
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
diff --git a/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
index eacad1fb97..bec7645bbb 100644
--- a/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
+++ b/patches/server/0129-Remove-CraftScheduler-Async-Task-Debugger.patch
@@ -9,19 +9,19 @@ One report of a suspected memory leak with the system.
This adds additional overhead to asynchronous task dispatching
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index dfc2789009fcaa08baa8054bdac915590b8701d6..d96292052633941102c052894bef747817b2998f 100644
+index 833240d2a4936343710a60876a66d01112e15a2c..ef4fdfa3fbe8216a0a020949347bc992cd5c0c60 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -445,7 +445,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -442,7 +442,7 @@ public class CraftScheduler implements BukkitScheduler {
}
this.parsePending();
} else {
- this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass()));
-+ //this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
- this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
++ // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
+ this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
-@@ -462,7 +462,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -459,7 +459,7 @@ public class CraftScheduler implements BukkitScheduler {
this.pending.addAll(temp);
temp.clear();
MinecraftTimings.bukkitSchedulerFinishTimer.stopTiming(); // Paper
@@ -30,7 +30,7 @@ index dfc2789009fcaa08baa8054bdac915590b8701d6..d96292052633941102c052894bef7478
}
private void addTask(final CraftTask task) {
-@@ -527,10 +527,15 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -523,10 +523,15 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public String toString() {
diff --git a/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
index 4d422108dd..737dc557e9 100644
--- a/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
+++ b/patches/server/0131-Properly-handle-async-calls-to-restart-the-server.patch
@@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result
in corruption/dataloss.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 14edacfd5cc77cc85dc84e3fdad94be8c8932dc6..79b4139b653a09142e1b624849ad7c529c35450d 100644
+index 006289473c03c8484b26264c61eaf6a5e73658c0..72161fef4ff8a469e028d136f71dda86e6220d0a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -237,6 +237,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -41,7 +41,7 @@ index 14edacfd5cc77cc85dc84e3fdad94be8c8932dc6..79b4139b653a09142e1b624849ad7c52
private boolean stopped;
private int tickCount;
protected final Proxy proxy;
-@@ -903,7 +904,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -901,7 +902,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (this.playerList != null) {
MinecraftServer.LOGGER.info("Saving players");
this.playerList.saveAll();
@@ -50,7 +50,7 @@ index 14edacfd5cc77cc85dc84e3fdad94be8c8932dc6..79b4139b653a09142e1b624849ad7c52
try { Thread.sleep(100); } catch (InterruptedException ex) {} // CraftBukkit - SPIGOT-625 - give server at least a chance to send packets
}
-@@ -954,6 +955,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -952,6 +953,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void halt(boolean waitForShutdown) {
@@ -64,7 +64,7 @@ index 14edacfd5cc77cc85dc84e3fdad94be8c8932dc6..79b4139b653a09142e1b624849ad7c52
if (waitForShutdown) {
try {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 0eceacb8b58339820a515c59d978239bc5be0731..a9cab02b97f85fec31ad636f7a340066d409be36 100644
+index cf110171ba47051eab94c0195eb155b685a25dca..bc96f426d488d2a206b763dccdc4034fe24f269d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1181,8 +1181,15 @@ public abstract class PlayerList {
diff --git a/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index 750df1a66f..4224f0cc06 100644
--- a/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -14,10 +14,10 @@ To be converted into a Paper-API event at some point in the future?
public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 188c1506fe219e778da273478b0c581f48ca9ef2..054776624f6df25b69d1e3c480e8b7effbb592a7 100644
+index 67a9203df4fa9fc7f497eb7f4afce67fc5a6c320..316607ca41ee4973c8dbc1ea806b18dff483bbff 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2329,6 +2329,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2332,6 +2332,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
switch (packet.getAction()) {
case PRESS_SHIFT_KEY:
this.player.setShiftKeyDown(true);
diff --git a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
index 7742df8698..fe41683266 100644
--- a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1889db501bb91671eac8b8672531427d7325f35e..a147ca79e6c4a5c8d4aeb6a76c82eaae3491f51d 100644
+index 9b45eed05bebc3957f54291fe59c87994bfdf00d..85b8ae9b40d0f631c91e00a59ce6347fd915bcb5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2648,5 +2648,10 @@ public final class CraftServer implements Server {
+@@ -2669,5 +2669,10 @@ public final class CraftServer implements Server {
commandMap.registerServerAliases();
return true;
}
diff --git a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
index 7813163961..87d2eb89d0 100644
--- a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -232,7 +232,7 @@ index 0000000000000000000000000000000000000000..91547f6e6fe90006713beb2818da6343
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3ebf009fcb 100644
+index 72161fef4ff8a469e028d136f71dda86e6220d0a..a6d6652fab0dcb490b4229cbf6a7a63112cbfa26 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -165,7 +165,7 @@ import com.mojang.datafixers.util.Pair;
@@ -244,7 +244,7 @@ index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3e
import joptsimple.OptionSet;
import net.minecraft.core.HolderLookup;
import net.minecraft.resources.RegistryOps;
-@@ -286,7 +286,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -284,7 +284,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public OptionSet options;
public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
@@ -253,7 +253,7 @@ index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3e
public static int currentTick = 0; // Paper - Further improve tick loop
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
public int autosavePeriod;
-@@ -370,7 +370,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -368,7 +368,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.options = options;
this.worldLoader = worldLoader;
this.vanillaCommandDispatcher = worldstem.dataPackResources().commands; // CraftBukkit
@@ -263,7 +263,7 @@ index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3e
if (System.console() == null && System.getProperty("jline.terminal") == null) {
System.setProperty("jline.terminal", "jline.UnsupportedTerminal");
Main.useJline = false;
-@@ -391,6 +393,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -389,6 +391,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.warn((String) null, ex);
}
}
@@ -272,7 +272,7 @@ index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3e
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
this.paperConfigurations = services.paperConfigurations(); // Paper
}
-@@ -1135,7 +1139,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1133,7 +1137,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
org.spigotmc.WatchdogThread.doStop(); // Spigot
// CraftBukkit start - Restore terminal to original settings
try {
@@ -281,7 +281,7 @@ index 79b4139b653a09142e1b624849ad7c529c35450d..54108afdf1f88f8d9056b744ee9b0d3e
} catch (Exception ignored) {
}
// CraftBukkit end
-@@ -1589,7 +1593,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1587,7 +1591,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@Override
public void sendSystemMessage(Component message) {
@@ -355,7 +355,7 @@ index 75083eeb9b413e6dd5375007360dce6857a08fff..d292fdb165436f0b9b46b32110f5e09a
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(() -> {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a9cab02b97f85fec31ad636f7a340066d409be36..03ea44619bc3445956f3e4539fc0e2923a29a92d 100644
+index bc96f426d488d2a206b763dccdc4034fe24f269d..82db70c548336ada2af556251b8ae8d189417024 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -169,8 +169,7 @@ public abstract class PlayerList {
@@ -369,7 +369,7 @@ index a9cab02b97f85fec31ad636f7a340066d409be36..03ea44619bc3445956f3e4539fc0e292
this.bans = new UserBanList(PlayerList.USERBANLIST_FILE);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a147ca79e6c4a5c8d4aeb6a76c82eaae3491f51d..50ed2032d2cb285f24e93d246f6c42207e1213ad 100644
+index 85b8ae9b40d0f631c91e00a59ce6347fd915bcb5..b91a06359b163b49c506d64b3da2e616e3d9fa40 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -42,7 +42,6 @@ import java.util.logging.Level;
@@ -380,7 +380,7 @@ index a147ca79e6c4a5c8d4aeb6a76c82eaae3491f51d..50ed2032d2cb285f24e93d246f6c4220
import net.minecraft.advancements.Advancement;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
-@@ -1303,9 +1302,13 @@ public final class CraftServer implements Server {
+@@ -1308,9 +1307,13 @@ public final class CraftServer implements Server {
return this.logger;
}
diff --git a/patches/server/0140-Add-UnknownCommandEvent.patch b/patches/server/0140-Add-UnknownCommandEvent.patch
index 4d4669d657..489953e61a 100644
--- a/patches/server/0140-Add-UnknownCommandEvent.patch
+++ b/patches/server/0140-Add-UnknownCommandEvent.patch
@@ -83,10 +83,10 @@ index 2fdfc17ef3daf9fb5cc32c807292c71e256d5356..e3394864e29357fec036f9e616472aea
b1 = 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 50ed2032d2cb285f24e93d246f6c42207e1213ad..c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd 100644
+index b91a06359b163b49c506d64b3da2e616e3d9fa40..2e076affd9ee7e407e86586536d02cb8f6f20805 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -523,6 +523,7 @@ public final class CraftServer implements Server {
+@@ -522,6 +522,7 @@ public final class CraftServer implements Server {
}
node = clone;
}
@@ -94,7 +94,7 @@ index 50ed2032d2cb285f24e93d246f6c42207e1213ad..c3e273b7d2f7d0c059f8efbf95e4234c
dispatcher.getDispatcher().getRoot().addChild(node);
} else {
-@@ -904,7 +905,13 @@ public final class CraftServer implements Server {
+@@ -911,7 +912,13 @@ public final class CraftServer implements Server {
// Spigot start
if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) {
diff --git a/patches/server/0141-Basic-PlayerProfile-API.patch b/patches/server/0141-Basic-PlayerProfile-API.patch
index bffd309f82..79e093ddea 100644
--- a/patches/server/0141-Basic-PlayerProfile-API.patch
+++ b/patches/server/0141-Basic-PlayerProfile-API.patch
@@ -631,10 +631,10 @@ index 4038bb76339d43f18770624bd7fecc79b8d7f2a9..2456edc11b29a92b1648937cd3dd6a9a
String s1 = name.toLowerCase(Locale.ROOT);
GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0ad8b5ec64 100644
+index 2e076affd9ee7e407e86586536d02cb8f6f20805..bdee52f1bd2bb34fd0292d35b8b1e7194d7df716 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -258,6 +258,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -257,6 +257,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
@@ -644,7 +644,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
public final class CraftServer implements Server {
private final String serverName = "Paper"; // Paper
private final String serverVersion;
-@@ -300,6 +303,7 @@ public final class CraftServer implements Server {
+@@ -299,6 +302,7 @@ public final class CraftServer implements Server {
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
@@ -652,7 +652,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
CraftItemFactory.instance();
}
-@@ -2663,5 +2667,37 @@ public final class CraftServer implements Server {
+@@ -2684,5 +2688,37 @@ public final class CraftServer implements Server {
public boolean suggestPlayerNamesWhenNullTabCompletions() {
return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
}
@@ -691,7 +691,7 @@ index c3e273b7d2f7d0c059f8efbf95e4234c684d0ccd..c29973de83e827a2f372590a43948b0a
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index 3e40d47f504248cd7caeef6b841a8aa6f1976170..6ca6467a47c6658d3a2e2029821aa727599a6f74 100644
+index 2375b0bac17dd73d6ee12a94b9e4a4143a2e1c65..d1aab4742b605e8807b0e4ca148abe0ed95039f4 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
@@ -27,7 +27,7 @@ import org.bukkit.profile.PlayerProfile;
@@ -737,7 +737,7 @@ index 3e40d47f504248cd7caeef6b841a8aa6f1976170..6ca6467a47c6658d3a2e2029821aa727
UUID uniqueId = ConfigSerializationUtil.getUuid(map, "uniqueId", true);
String name = ConfigSerializationUtil.getString(map, "name", true);
-@@ -270,7 +275,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
+@@ -268,7 +273,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
profile.properties.put(property.getName(), property);
}
}
diff --git a/patches/server/0142-Shoulder-Entities-Release-API.patch b/patches/server/0142-Shoulder-Entities-Release-API.patch
index b3bbf8aa8a..6795e8e96d 100644
--- a/patches/server/0142-Shoulder-Entities-Release-API.patch
+++ b/patches/server/0142-Shoulder-Entities-Release-API.patch
@@ -59,10 +59,10 @@ index 8ef1798fe9dc42d9f09449ecc7578f4bddff1ed8..85488adc9c822c89ab5778bc1d48c58e
@Override
public abstract boolean isSpectator();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index d39869056d0ac57279e0e9e479ace4a7d402a941..c6b2f1b90735ec75492daf64031d9d33226cdac6 100644
+index abe978078270a45f7e77eb2b8a99309f12ca51ee..2f5704b19148f390402c0823030806ba96860286 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -518,6 +518,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -516,6 +516,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
this.getHandle().getCooldowns().addCooldown(CraftMagicNumbers.getItem(material), ticks);
}
diff --git a/patches/server/0145-Entity-fromMobSpawner.patch b/patches/server/0145-Entity-fromMobSpawner.patch
index b377025343..ca0e39dd5e 100644
--- a/patches/server/0145-Entity-fromMobSpawner.patch
+++ b/patches/server/0145-Entity-fromMobSpawner.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner()
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5c616afddc9a0403787fd2ea2467220d81253541..7232c22ca7f0ed995934db3937861e562525e906 100644
+index 875516b17452968e53efda9d777676ec4bee0f79..16658764ddced4c8e5af6b9f86ad6e99a2b1adee 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -388,6 +388,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -37,22 +37,22 @@ index 5c616afddc9a0403787fd2ea2467220d81253541..7232c22ca7f0ed995934db3937861e56
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 64bd7d265a45575ce46c1a792f90cadc76763871..0f5a5168d168b39f0da3ed12389b11b586d168e6 100644
+index 7ae0465091db8e8061737bf93884afa3db49feeb..5d6403fa27521860a69a707dc4358b013adfafd7 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -164,6 +164,7 @@ public abstract class BaseSpawner {
- }
+@@ -165,6 +165,7 @@ public abstract class BaseSpawner {
// Spigot End
}
+
+ entity.spawnedViaMobSpawner = true; // Paper
- // Spigot Start
+ // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
- Entity vehicle = entity.getVehicle();
+ continue;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index c9275f73be7332f79312037954f9685f6c1f800f..f1a382d26f6a64b1c3f81fd2f2d5a35c51a63fdb 100644
+index fa2a6f44a1c25fb6c9a19e83e7eddb2c8d28a320..83bde3f87e0861fdfd01f843ccae285b1748619a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1297,5 +1297,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1290,5 +1290,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
//noinspection ConstantConditions
return originVector.toLocation(world);
}
diff --git a/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch b/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
index ccd3b7baf4..dc38a3b16d 100644
--- a/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
+++ b/patches/server/0146-Improve-the-Saddle-API-for-Horses.patch
@@ -7,18 +7,18 @@ Not all horses with Saddles have armor. This lets us break up the horses with sa
and access their saddle state separately from an interface shared with Armor.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index d74c9eeb7f622f0a7265fec51d851ffd3de1c69b..a5202ee012034678efbbd5ca1eccf2fd72a315bd 100644
+index 349bc3becee3f878fe8f6bc589cc9fbecf7dd17a..4bb5e953ec0ad6a2e068cb26237bc59e68c13699 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -5,6 +5,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
- import org.apache.commons.lang.Validate;
+@@ -5,6 +5,7 @@ import java.util.UUID;
+ import net.minecraft.world.entity.ai.attributes.Attributes;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.inventory.CraftInventoryAbstractHorse;
+import org.bukkit.craftbukkit.inventory.CraftSaddledInventory;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Horse;
-@@ -108,6 +109,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -107,6 +108,6 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
@Override
public AbstractHorseInventory getInventory() {
diff --git a/patches/server/0147-Implement-ensureServerConversions-API.patch b/patches/server/0147-Implement-ensureServerConversions-API.patch
index f34ea3e72b..439122668f 100644
--- a/patches/server/0147-Implement-ensureServerConversions-API.patch
+++ b/patches/server/0147-Implement-ensureServerConversions-API.patch
@@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr
to ensure it meets latest minecraft expectations.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 6e050a5cbb877c85595fc97a569c2aafb272ad41..ed9a956b0d88ddcf6c453757bf72287616b81fe2 100644
+index b187c4f436ac44a529675869dbf5bfddc4fac86f..878f69460aed825d5d3204030af2aaa731a99875 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -454,5 +454,11 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -449,5 +449,11 @@ public final class CraftItemFactory implements ItemFactory {
public [email protected] Component displayName(@org.jetbrains.annotations.NotNull ItemStack itemStack) {
return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName());
}
diff --git a/patches/server/0148-Implement-getI18NDisplayName.patch b/patches/server/0148-Implement-getI18NDisplayName.patch
index ddbf2ab85c..4f1cfccf20 100644
--- a/patches/server/0148-Implement-getI18NDisplayName.patch
+++ b/patches/server/0148-Implement-getI18NDisplayName.patch
@@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index ed9a956b0d88ddcf6c453757bf72287616b81fe2..f81ed24f624ff6f99ccad8361209cc409c6b9187 100644
+index 878f69460aed825d5d3204030af2aaa731a99875..f8475390d69bef6f3eca5a57d5f44021fabf4942 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -460,5 +460,18 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -455,5 +455,18 @@ public final class CraftItemFactory implements ItemFactory {
public ItemStack ensureServerConversions(ItemStack item) {
return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item));
}
diff --git a/patches/server/0151-LivingEntity-setKiller.patch b/patches/server/0151-LivingEntity-setKiller.patch
index 0612bec621..e6e7fff121 100644
--- a/patches/server/0151-LivingEntity-setKiller.patch
+++ b/patches/server/0151-LivingEntity-setKiller.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] LivingEntity#setKiller
public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 3084fa8000b36f06e8d432bff124a5af4ea675ea..31f31f0a3dcd5764fffb710111b47359f793b9a2 100644
+index fcb07a5f8cac994b731e3345ba9e971faa482fa1..0fb61f37da9ef3e33803b41bd72e0bda5425eceb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -353,6 +353,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -352,6 +352,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().lastHurtByPlayer == null ? null : (Player) this.getHandle().lastHurtByPlayer.getBukkitEntity();
}
diff --git a/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
index 65092a2a40..71cdedc8fa 100644
--- a/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
+++ b/patches/server/0153-Reset-spawner-timer-when-spawner-event-is-cancelled.patch
@@ -5,18 +5,18 @@ Subject: [PATCH] Reset spawner timer when spawner event is cancelled
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 0f5a5168d168b39f0da3ed12389b11b586d168e6..8540905242fc84ab8a26cf0a8e875ef252bc3d5d 100644
+index 5d6403fa27521860a69a707dc4358b013adfafd7..20c39481bcf05e0d43c97b7e841ec9f5f6a0d45d 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -165,6 +165,7 @@ public abstract class BaseSpawner {
- // Spigot End
+@@ -166,6 +166,7 @@ public abstract class BaseSpawner {
}
+
entity.spawnedViaMobSpawner = true; // Paper
+ flag = true; // Paper
- // Spigot Start
+ // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
- Entity vehicle = entity.getVehicle();
-@@ -189,7 +190,7 @@ public abstract class BaseSpawner {
+ continue;
+@@ -182,7 +183,7 @@ public abstract class BaseSpawner {
((Mob) entity).spawnAnim();
}
diff --git a/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch
index df49cf655e..55f6c51623 100644
--- a/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch
+++ b/patches/server/0158-handle-ServerboundKeepAlivePacket-async.patch
@@ -15,10 +15,10 @@ also adding some additional logging in order to help work out what is causing
random disconnections for clients.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6928d2fb7493206ab84bedc39434285f45d9dc38..95256c095626f429315b80df86876b18112989bc 100644
+index 38227e58773a4e47b2bd71daec7ce479892a19f3..cb8b31c34fe4d3ee6f383ff9d32cf13552879332 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3108,14 +3108,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3111,14 +3111,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
diff --git a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
index c50124bbc4..1e8e7329f9 100644
--- a/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/server/0159-Expose-client-protocol-version-and-virtual-host.patch
@@ -90,10 +90,10 @@ index 77d7f070cce1a47e41b5d4f5a1cc8c778352a126..a3b610cb1ed97a635677bc46ccdf0463
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6de07ae1c6d2130eb7feef6f169a288d0fdfd77b..bc920ff2bfcdb7ecad3b57ebca6d3ed94771a55a 100644
+index 79d061d07569207fde3bb4b959589ba3f0cba981..55a934e2fc4facd47eede4c95fe76a61105e7582 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -275,6 +275,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -274,6 +274,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
index 9257eaaacf..aeae614ac2 100644
--- a/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/patches/server/0166-API-to-get-a-BlockState-without-a-snapshot.patch
@@ -51,10 +51,10 @@ index 63acd109a79ed752a05df3d4f1b99309297c2055..d156f7cc71050f13b2feca00c52ca6b6
return null;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 0c2a2b69eed7022f6636ced634a1d31d1fa99ad7..d6b44134781007d29f4042d5ab707188c965331b 100644
+index e5750b2459e5a7513b34d644f672f3e06181172d..3205d86a63f8fcf3ccd13c6be0e0eefc27beb62a 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -333,6 +333,13 @@ public class CraftBlock implements Block {
+@@ -332,6 +332,13 @@ public class CraftBlock implements Block {
return CraftBlockStates.getBlockState(this);
}
@@ -149,7 +149,7 @@ index a69a03a7954b03a0aeca7a74d89756dd38ca6faf..17e1131c79ad140c0803a914621ce792
public static BlockState getBlockState(Material material, @Nullable CompoundTag blockEntityTag) {
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
-index 3fc3907172f12ee24ea70bd6a1ffbbc6084ed971..2c59f09a9261a1690951161fd856a5848d9885b7 100644
+index 6c559b0d7b3d8b95276d16a6af4975fd44de3334..a94389eebe51bb368f759b3f99f0b9ed08ae2bdd 100644
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
@@ -156,4 +156,10 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
diff --git a/patches/server/0167-AsyncTabCompleteEvent.patch b/patches/server/0167-AsyncTabCompleteEvent.patch
index a8c75391d6..5986f9ed82 100644
--- a/patches/server/0167-AsyncTabCompleteEvent.patch
+++ b/patches/server/0167-AsyncTabCompleteEvent.patch
@@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent
Co-authored-by: Aikar <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 575ecae47633e7a30c8bca57d686dcfc0b31a0df..5d1875b11d4768afc184416e38a0bd3e3334a9ce 100644
+index b4c0e41b1d6e6c9411e1bbf6af07533b8dbb68f7..c66209a33d6bdfda559e16cbc59c66e7a9f4c4de 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -788,12 +788,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -91,10 +91,10 @@ index 575ecae47633e7a30c8bca57d686dcfc0b31a0df..5d1875b11d4768afc184416e38a0bd3e
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c29973de83e827a2f372590a43948b0ad8b5ec64..141bba5e92044437b199b5aa701ded049737c509 100644
+index bdee52f1bd2bb34fd0292d35b8b1e7194d7df716..40090372a983b7064530e982a8ee1a9bc4913dfd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2116,7 +2116,7 @@ public final class CraftServer implements Server {
+@@ -2134,7 +2134,7 @@ public final class CraftServer implements Server {
offers = this.tabCompleteChat(player, message);
}
diff --git a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
index 8adaef1d34..99231f6ac8 100644
--- a/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0169-Ability-to-apply-mending-to-XP-API.patch
@@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bc920ff2bfcdb7ecad3b57ebca6d3ed94771a55a..fd7e9909875961a1a7288f235ef73de518467f25 100644
+index 55a934e2fc4facd47eede4c95fe76a61105e7582..77e5c017cef9809bf60c5aa77b245d76a1982a9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1509,7 +1509,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1460,7 +1460,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
@Override
diff --git a/patches/server/0175-Add-ArmorStand-Item-Meta.patch b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
index 3745b7372a..382ebbe746 100644
--- a/patches/server/0175-Add-ArmorStand-Item-Meta.patch
+++ b/patches/server/0175-Add-ArmorStand-Item-Meta.patch
@@ -255,10 +255,10 @@ index 4017933f2244fca32cf9d39444f3a4f550e8af01..e721517ce7b52a1aa10d039aa9f309eb
+ // 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 5d892f76f42486ce1890fe0507b19b2f02693fee..134c91f69f5b532ed67428c097d93b38a83df01a 100644
+index bfd5661d55a6ed767cb3bed2d9bb24535c1f7335..01e09dfc00b2ae9ecd39bea37f229ad826de121c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -1460,6 +1460,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1457,6 +1457,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaCrossbow.CHARGED.NBT,
CraftMetaCrossbow.CHARGED_PROJECTILES.NBT,
CraftMetaSuspiciousStew.EFFECTS.NBT,
diff --git a/patches/server/0177-Tameable-getOwnerUniqueId-API.patch b/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
index 7fca628e8a..3cdc82d136 100644
--- a/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
+++ b/patches/server/0177-Tameable-getOwnerUniqueId-API.patch
@@ -7,10 +7,10 @@ This is faster if all you need is the UUID, as .getOwner() will cause
an OfflinePlayer to be loaded from disk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index a5202ee012034678efbbd5ca1eccf2fd72a315bd..254d4f2e45d7c8f572a4368eccd84560d4d0d836 100644
+index 4bb5e953ec0ad6a2e068cb26237bc59e68c13699..3f1f4d65525562b3117fdc21c8a7f535b12c3c46 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -89,6 +89,10 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -88,6 +88,10 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
}
}
diff --git a/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
index 335ada6c02..da614a11a7 100644
--- a/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
+++ b/patches/server/0180-Implement-extended-PaperServerListPingEvent.patch
@@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603
+
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index bc96a5c546c01b092f513f202e833b7b5f320e72..a003144fb74c9e7314b24216bc0e506e3d2bde0f 100644
+index a6d6652fab0dcb490b4229cbf6a7a63112cbfa26..010318abbb6fadbadade8926793786eced6775d3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3,6 +3,9 @@ package net.minecraft.server;
@@ -194,7 +194,7 @@ index bc96a5c546c01b092f513f202e833b7b5f320e72..a003144fb74c9e7314b24216bc0e506e
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-@@ -1347,7 +1350,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1345,7 +1348,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (this.hidesOnlinePlayers()) {
return new ServerStatus.Players(i, list.size(), List.of());
} else {
diff --git a/patches/server/0182-Player.setPlayerProfile-API.patch b/patches/server/0182-Player.setPlayerProfile-API.patch
index 14a0d76079..5263e85403 100644
--- a/patches/server/0182-Player.setPlayerProfile-API.patch
+++ b/patches/server/0182-Player.setPlayerProfile-API.patch
@@ -9,10 +9,10 @@ This can be useful for changing name or skins after a player has logged in.
public-f net.minecraft.world.entity.player.Player gameProfile
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5d1875b11d4768afc184416e38a0bd3e3334a9ce..e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2 100644
+index c66209a33d6bdfda559e16cbc59c66e7a9f4c4de..391295bf6898320421272ad5dfb14e4c5e2d2be0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1535,7 +1535,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1538,7 +1538,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.internalTeleport(dest.getX(), dest.getY(), dest.getZ(), dest.getYaw(), dest.getPitch(), Collections.emptySet());
}
@@ -55,7 +55,7 @@ index e7442952ef1f03969949014492a7ddc6d0796ba5..69a1852905dd4724c30ac8ab88c14251
public Server getServer() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da8503122f100a9f 100644
+index 77e5c017cef9809bf60c5aa77b245d76a1982a9f..a8930679d566fcbd0557b3023248ded393754c8d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -82,6 +82,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
@@ -66,7 +66,7 @@ index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da850312
import net.minecraft.world.level.block.entity.SignBlockEntity;
import net.minecraft.world.level.block.entity.SignText;
import net.minecraft.world.level.border.BorderChangeListener;
-@@ -258,11 +259,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -257,11 +258,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return server.getPlayer(getUniqueId()) != null;
}
@@ -78,7 +78,7 @@ index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da850312
@Override
public InetSocketAddress getAddress() {
if (this.getHandle().connection == null) return null;
-@@ -1659,8 +1655,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1610,8 +1606,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void untrackAndHideEntity(org.bukkit.entity.Entity entity) {
// Remove this entity from the hidden player's EntityTrackerEntry
@@ -95,7 +95,7 @@ index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da850312
ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
if (entry != null) {
entry.removePlayer(this.getHandle());
-@@ -1673,8 +1676,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1624,8 +1627,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(new ClientboundPlayerInfoRemovePacket(List.of(otherPlayer.getUUID())));
}
}
@@ -104,7 +104,7 @@ index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da850312
}
void resetAndHideEntity(org.bukkit.entity.Entity entity) {
-@@ -1751,8 +1752,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1702,8 +1703,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) {
entry.updatePlayer(this.getHandle());
}
@@ -144,7 +144,7 @@ index fd7e9909875961a1a7288f235ef73de518467f25..26e89e7c9d648b9b1ce33714da850312
}
void resetAndShowEntity(org.bukkit.entity.Entity entity) {
-@@ -1765,6 +1796,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1716,6 +1747,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.trackAndShowEntity(entity);
}
}
diff --git a/patches/server/0183-getPlayerUniqueId-API.patch b/patches/server/0183-getPlayerUniqueId-API.patch
index 030e5fdb41..fd7b2501e2 100644
--- a/patches/server/0183-getPlayerUniqueId-API.patch
+++ b/patches/server/0183-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 141bba5e92044437b199b5aa701ded049737c509..85711eb6660db5961bb2362b8bc3e8aeeccb9dd1 100644
+index 40090372a983b7064530e982a8ee1a9bc4913dfd..23407ccc0482f67db46947cbcc56c5488c42cf93 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1738,6 +1738,25 @@ public final class CraftServer implements Server {
+@@ -1743,6 +1743,25 @@ public final class CraftServer implements Server {
return recipients.size();
}
diff --git a/patches/server/0184-Improved-Async-Task-Scheduler.patch b/patches/server/0184-Improved-Async-Task-Scheduler.patch
index b62fddc7b9..adf1ccd429 100644
--- a/patches/server/0184-Improved-Async-Task-Scheduler.patch
+++ b/patches/server/0184-Improved-Async-Task-Scheduler.patch
@@ -159,10 +159,10 @@ index 0000000000000000000000000000000000000000..3c1992e212a6d6f1db4d5b807b38d719
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee083b8800 100644
+index ef4fdfa3fbe8216a0a020949347bc992cd5c0c60..918e11422854d7301c84b466533770c2a429a682 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -78,7 +78,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -75,7 +75,7 @@ public class CraftScheduler implements BukkitScheduler {
/**
* Main thread logic only
*/
@@ -171,7 +171,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
new Comparator<CraftTask>() {
@Override
public int compare(final CraftTask o1, final CraftTask o2) {
-@@ -95,12 +95,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -92,12 +92,13 @@ public class CraftScheduler implements BukkitScheduler {
/**
* These are tasks that are currently active. It's provided for 'viewing' the current state.
*/
@@ -187,7 +187,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
private final Executor executor = Executors.newCachedThreadPool(new ThreadFactoryBuilder().setNameFormat("Craft Scheduler Thread - %d").build());
private CraftAsyncDebugger debugHead = new CraftAsyncDebugger(-1, null, null) {
@Override
-@@ -109,12 +110,31 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -106,12 +107,31 @@ public class CraftScheduler implements BukkitScheduler {
}
};
private CraftAsyncDebugger debugTail = this.debugHead;
@@ -219,7 +219,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
@Override
public int scheduleSyncDelayedTask(final Plugin plugin, final Runnable task) {
return this.scheduleSyncDelayedTask(plugin, task, 0L);
-@@ -237,7 +257,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -234,7 +254,7 @@ public class CraftScheduler implements BukkitScheduler {
} else if (period < CraftTask.NO_REPEATING) {
period = CraftTask.NO_REPEATING;
}
@@ -228,7 +228,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
}
@Override
-@@ -253,6 +273,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -250,6 +270,11 @@ public class CraftScheduler implements BukkitScheduler {
if (taskId <= 0) {
return;
}
@@ -240,10 +240,10 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
CraftTask task = this.runners.get(taskId);
if (task != null) {
task.cancel0();
-@@ -295,6 +320,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -292,6 +317,11 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public void cancelTasks(final Plugin plugin) {
- Validate.notNull(plugin, "Cannot cancel tasks of null plugin");
+ Preconditions.checkArgument(plugin != null, "Cannot cancel tasks of null plugin");
+ // Paper start
+ if (!this.isAsyncScheduler) {
+ this.asyncScheduler.cancelTasks(plugin);
@@ -252,7 +252,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final CraftTask task = new CraftTask(
new Runnable() {
@Override
-@@ -334,6 +364,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -331,6 +361,13 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public boolean isCurrentlyRunning(final int taskId) {
@@ -266,7 +266,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final CraftTask task = this.runners.get(taskId);
if (task == null) {
return false;
-@@ -352,6 +389,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -349,6 +386,11 @@ public class CraftScheduler implements BukkitScheduler {
if (taskId <= 0) {
return false;
}
@@ -278,7 +278,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
for (CraftTask task = this.head.getNext(); task != null; task = task.getNext()) {
if (task.getTaskId() == taskId) {
return task.getPeriod() >= CraftTask.NO_REPEATING; // The task will run
-@@ -363,6 +405,12 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -360,6 +402,12 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public List<BukkitWorker> getActiveWorkers() {
@@ -291,7 +291,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final ArrayList<BukkitWorker> workers = new ArrayList<BukkitWorker>();
for (final CraftTask taskObj : this.runners.values()) {
// Iterator will be a best-effort (may fail to grab very new values) if called from an async thread
-@@ -400,6 +448,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -397,6 +445,11 @@ public class CraftScheduler implements BukkitScheduler {
pending.add(task);
}
}
@@ -303,7 +303,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
return pending;
}
-@@ -407,6 +460,11 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -404,6 +457,11 @@ public class CraftScheduler implements BukkitScheduler {
* This method is designed to never block or wait for locks; an immediate execution of all current tasks.
*/
public void mainThreadHeartbeat(final int currentTick) {
@@ -315,16 +315,16 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
this.currentTick = currentTick;
final List<CraftTask> temp = this.temp;
this.parsePending();
-@@ -446,7 +504,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -443,7 +501,7 @@ public class CraftScheduler implements BukkitScheduler {
this.parsePending();
} else {
- //this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
-- this.executor.execute(new ServerSchedulerReportingWrapper(task)); // Paper
+ // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper
+- this.executor.execute(new com.destroystokyo.paper.ServerSchedulerReportingWrapper(task)); // Paper
+ task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Paper"); // Paper
// We don't need to parse pending
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
-@@ -465,7 +523,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -462,7 +520,7 @@ public class CraftScheduler implements BukkitScheduler {
//this.debugHead = this.debugHead.getNextHead(currentTick); // Paper
}
@@ -333,7 +333,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
final AtomicReference<CraftTask> tail = this.tail;
CraftTask tailTask = tail.get();
while (!tail.compareAndSet(tailTask, task)) {
-@@ -474,7 +532,13 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -471,7 +529,13 @@ public class CraftScheduler implements BukkitScheduler {
tailTask.setNext(task);
}
@@ -348,7 +348,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
task.setNextRun(this.currentTick + delay);
this.addTask(task);
return task;
-@@ -498,8 +562,8 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -494,8 +558,8 @@ public class CraftScheduler implements BukkitScheduler {
return id;
}
@@ -359,7 +359,7 @@ index d96292052633941102c052894bef747817b2998f..ea7ebbc2674df727cf44856f172731ee
CraftTask head = this.head;
CraftTask task = head.getNext();
CraftTask lastTask = head;
-@@ -518,7 +582,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -514,7 +578,7 @@ public class CraftScheduler implements BukkitScheduler {
task.setNext(null);
}
this.head = lastTask;
diff --git a/patches/server/0187-Flag-to-disable-the-channel-limit.patch b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
index a46d383e60..890c01d404 100644
--- a/patches/server/0187-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0187-Flag-to-disable-the-channel-limit.patch
@@ -9,10 +9,10 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 26e89e7c9d648b9b1ce33714da8503122f100a9f..529812295ee99b4425ef95d0c5a972ba27c6f2b1 100644
+index a8930679d566fcbd0557b3023248ded393754c8d..62d04140dec79c108e38754e69b60ecaf36dc3c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -181,6 +181,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start
private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
private String resourcePackHash;
@@ -20,7 +20,7 @@ index 26e89e7c9d648b9b1ce33714da8503122f100a9f..529812295ee99b4425ef95d0c5a972ba
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -2034,7 +2035,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1985,7 +1986,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
public void addChannel(String channel) {
diff --git a/patches/server/0188-Add-openSign-method-to-HumanEntity.patch b/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
index b91d3c8b72..45ac3fe3c6 100644
--- a/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
+++ b/patches/server/0188-Add-openSign-method-to-HumanEntity.patch
@@ -28,10 +28,10 @@ index cc6aab5341365f9b4ec3cb23e2a4f5006aa75cd7..78b57aa3120f8526b4bff2ca90d77358
// Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index c6b2f1b90735ec75492daf64031d9d33226cdac6..4f2a15ff2d4381765c608260c54494f6a11a66cf 100644
+index 2f5704b19148f390402c0823030806ba96860286..f59733b6918dcbbb2190f76d8b8841a2d8818cdf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -628,6 +628,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -626,6 +626,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
}
}
diff --git a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
index 39416db812..cd8a1df970 100644
--- a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -34,20 +34,21 @@ index f2eefdeab44ad4f7c0abd0e55e688e74a83abfff..68257f257dd3b167e237482c8d149590
if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f7938024605e61cdeee5668190abbf336611f425..fbbabae86ebca984c975b64a78a05354697b658f 100644
+index 04a12be27ea3f7b8c0dd2bb2c8f4f0a4b90de1b2..5f8ce418d0a906f576622c3387d15c3969812611 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1856,11 +1856,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1863,11 +1863,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
+- if (data != null) {
+ // Paper start - Particle API Expansion
+ spawnParticle(particle, null, null, x, y, z, count, offsetX, offsetY, offsetZ, extra, data, force);
+ }
+ public <T> void spawnParticle(Particle particle, List<Player> receivers, Player sender, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
+ // Paper end
- if (data != null && !particle.getDataType().isInstance(data)) {
- throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
++ if (data != null && !particle.getDataType().isInstance(data)) {
+ Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
}
this.getHandle().sendParticles(
- null, // Sender
diff --git a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
index 154d72d6fe..5d2bb7facd 100644
--- a/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
+++ b/patches/server/0199-Allow-spawning-Item-entities-with-World.spawnEntity.patch
@@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function
Item can be set inside of the Consumer pre spawn function.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 101dac0fcabc5fd696f58ec52ad1fc93a2d0afeb..cb6f5fc352aff449173825d4e7fad9fccb9df915 100644
+index 002875dc5ee549c5d192d90c6e4daf59c1f7c0ff..bdc752631136a4abe903e7a8f182e9eda480fcb6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -593,6 +593,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -592,6 +592,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
entity = net.minecraft.world.entity.EntityType.BOAT.create(world);
}
entity.moveTo(x, y, z, yaw, pitch);
diff --git a/patches/server/0201-ItemStack-getMaxItemUseDuration.patch b/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
index 7248ef4436..3dc9b55c1f 100644
--- a/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
+++ b/patches/server/0201-ItemStack-getMaxItemUseDuration.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
Allows you to determine how long it takes to use a usable/consumable item
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index bdfce4a49cc6fed46de5864d1c443038f44027fb..e9ea9c85544a895dcf4220d907744996e6e077d4 100644
+index 7fd9a3a7f4cb98d89b7c4cbfda756d581963e5bf..0ac686e880f0f87ab3f6dbed77e553d7568b3305 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -173,6 +173,13 @@ public final class CraftItemStack extends ItemStack {
+@@ -174,6 +174,13 @@ public final class CraftItemStack extends ItemStack {
return (this.handle == null) ? Material.AIR.getMaxStackSize() : this.handle.getItem().getMaxStackSize();
}
@@ -22,4 +22,4 @@ index bdfce4a49cc6fed46de5864d1c443038f44027fb..e9ea9c85544a895dcf4220d907744996
+
@Override
public void addUnsafeEnchantment(Enchantment ench, int level) {
- Validate.notNull(ench, "Cannot add null enchantment");
+ Preconditions.checkArgument(ench != null, "Enchantment cannot be null");
diff --git a/patches/server/0204-Fix-CraftEntity-hashCode.patch b/patches/server/0204-Fix-CraftEntity-hashCode.patch
index 71ae889ef4..a1ed33d54c 100644
--- a/patches/server/0204-Fix-CraftEntity-hashCode.patch
+++ b/patches/server/0204-Fix-CraftEntity-hashCode.patch
@@ -21,10 +21,10 @@ check is essentially the same as this.getHandle() == other.getHandle()
However, replaced it too to make it clearer of intent.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index f1a382d26f6a64b1c3f81fd2f2d5a35c51a63fdb..18967257c5c217868a5356369e3e3b200044aa39 100644
+index 83bde3f87e0861fdfd01f843ccae285b1748619a..9614a0bd83139e8d62f60fe04f017e0cb0f828c9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -837,14 +837,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -830,14 +830,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return false;
}
final CraftEntity other = (CraftEntity) obj;
diff --git a/patches/server/0207-Make-shield-blocking-delay-configurable.patch b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
index 690f9ca964..5d4a6a2ef0 100644
--- a/patches/server/0207-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0207-Make-shield-blocking-delay-configurable.patch
@@ -35,10 +35,10 @@ index c3ad63e1882d53f4207f4f08b55088d175360e8d..f894ffb7c9575d7337353ab8aaaf0b96
return this.isShiftKeyDown();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 31f31f0a3dcd5764fffb710111b47359f793b9a2..104be41126252f9cdde3b961f2593b1348a38799 100644
+index 0fb61f37da9ef3e33803b41bd72e0bda5425eceb..b02d668243478c2cdc3d0212cec6f2e12a80414f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -791,5 +791,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -788,5 +788,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setArrowsStuck(final int arrows) {
this.getHandle().setArrowCount(arrows);
}
diff --git a/patches/server/0211-Expand-Explosions-API.patch b/patches/server/0211-Expand-Explosions-API.patch
index 77911f2f86..98ca885cf2 100644
--- a/patches/server/0211-Expand-Explosions-API.patch
+++ b/patches/server/0211-Expand-Explosions-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index fbbabae86ebca984c975b64a78a05354697b658f..1e4c89c1e0a01650711986310314ef342a2afbb4 100644
+index 5f8ce418d0a906f576622c3387d15c3969812611..4a64fda12ef5e5d07fe0b28c755a5b9fd96358e6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -711,6 +711,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -716,6 +716,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !this.world.explode(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? net.minecraft.world.level.Level.ExplosionInteraction.MOB : net.minecraft.world.level.Level.ExplosionInteraction.NONE).wasCanceled;
}
diff --git a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
index aaaa299a9a..4d12e9763e 100644
--- a/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
+++ b/patches/server/0212-LivingEntity-Hand-Raised-Item-Use-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API
How long an entity has raised hands to charge an attack or use an item
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 104be41126252f9cdde3b961f2593b1348a38799..a9642e95cde4dc1c3cb9da50c921171c47665536 100644
+index b02d668243478c2cdc3d0212cec6f2e12a80414f..6c4ff1acbf09987f8d6a4b4b2c62fce264430706 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -801,5 +801,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -798,5 +798,30 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setShieldBlockingDelay(int delay) {
getHandle().setShieldBlockingDelay(delay);
}
diff --git a/patches/server/0215-Implement-World.getEntity-UUID-API.patch b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
index f13d5bbabe..91b154cf4e 100644
--- a/patches/server/0215-Implement-World.getEntity-UUID-API.patch
+++ b/patches/server/0215-Implement-World.getEntity-UUID-API.patch
@@ -5,17 +5,17 @@ Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 1e4c89c1e0a01650711986310314ef342a2afbb4..3e14eb63d57d8a9801185549deeafc6c5e09b50c 100644
+index 4a64fda12ef5e5d07fe0b28c755a5b9fd96358e6..b003de51df51bbe31c76289dcdf1f52051b20d35 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1035,6 +1035,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1040,6 +1040,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return list;
}
+ // Paper start - getEntity by UUID API
+ @Override
+ public Entity getEntity(UUID uuid) {
-+ Validate.notNull(uuid, "UUID cannot be null");
++ Preconditions.checkArgument(uuid != null, "UUID cannot be null");
+ net.minecraft.world.entity.Entity entity = world.getEntity(uuid);
+ return entity == null ? null : entity.getBukkitEntity();
+ }
diff --git a/patches/server/0216-InventoryCloseEvent-Reason-API.patch b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
index 82678d216b..3d1f8d1b17 100644
--- a/patches/server/0216-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
@@ -29,7 +29,7 @@ index 68257f257dd3b167e237482c8d149590103896b2..33ce550ea68d4862e0966ed827200cf4
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 8b5b66c8f55660085ff3af824b8bf0c455be79bc..0578d72681a0d45b6c8d1d6d04208eb14fb60083 100644
+index dda3b911fcaa294ec7b8e9d696880fcb8325f69c..8e2340ca473c8cacfe9d888091834986bad101ce 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -682,7 +682,7 @@ public class ServerPlayer extends Player {
@@ -75,7 +75,7 @@ index 8b5b66c8f55660085ff3af824b8bf0c455be79bc..0578d72681a0d45b6c8d1d6d04208eb1
this.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53e2e90453 100644
+index 391295bf6898320421272ad5dfb14e4c5e2d2be0..92d359cfbe6fc5ae6be4931754cdf48ccd92ba13 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -220,6 +220,7 @@ import org.bukkit.event.inventory.ClickType;
@@ -86,7 +86,7 @@ index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.inventory.SmithItemEvent;
-@@ -2679,10 +2680,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2682,10 +2683,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleContainerClose(ServerboundContainerClosePacket packet) {
@@ -104,7 +104,7 @@ index e7d2bd1b2ee80c5cc68048f2d90dcf21e50f04d2..3a3c21132b2a843de642490c7a256e53
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 493099d1a1df085ec909ed6cd65a250c24f28bd1..233e79c71e2c46f4220dd7423ac421be9742f53e 100644
+index 875b08503fbbac256fad1b3f3d9c742bf1cdced2..e00c1916202a4e0550cc19c9cb279448a9fcdd1e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -533,7 +533,7 @@ public abstract class PlayerList {
@@ -144,10 +144,10 @@ index 734d00e84ec0bcef91a12546873de64e33e14d0c..c7bcbc3f0542a74c30e29bded3bfc0e9
this.containerMenu = this.inventoryMenu;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb078a489e 100644
+index f59733b6918dcbbb2190f76d8b8841a2d8818cdf..ba6105a970381d642cd7955754cc47135207027a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -378,7 +378,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -376,7 +376,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (((ServerPlayer) this.getHandle()).connection == null) return;
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
// fire INVENTORY_CLOSE if one already open
@@ -156,7 +156,7 @@ index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb
}
ServerPlayer player = (ServerPlayer) this.getHandle();
AbstractContainerMenu container;
-@@ -448,8 +448,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -446,8 +446,14 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@Override
public void closeInventory() {
@@ -173,10 +173,10 @@ index 4f2a15ff2d4381765c608260c54494f6a11a66cf..16381beba53725651a92748f9521bdcb
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 529812295ee99b4425ef95d0c5a972ba27c6f2b1..8c31faad675edffedf8abfa0bc383ecb2fe6ddad 100644
+index 62d04140dec79c108e38754e69b60ecaf36dc3c5..42a1592e6f5a0d60718cb1f8682025bc4be48708 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1212,7 +1212,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1166,7 +1166,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Close any foreign inventory
if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) {
@@ -186,10 +186,10 @@ index 529812295ee99b4425ef95d0c5a972ba27c6f2b1..8c31faad675edffedf8abfa0bc383ecb
// 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 beacc9af36eface8cf855ee15fb7bcf7e08f9439..116d3af618351cfec7dc172ba8e5170453b7226d 100644
+index f882b007756edc2f25e913393b7e8b400ccbe50e..1a0a4f2d94b65179426d7b5715847e5ed19489b5 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1261,7 +1261,7 @@ public class CraftEventFactory {
+@@ -1265,7 +1265,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
@@ -198,7 +198,7 @@ index beacc9af36eface8cf855ee15fb7bcf7e08f9439..116d3af618351cfec7dc172ba8e51704
}
CraftServer server = player.level().getCraftServer();
-@@ -1435,8 +1435,18 @@ public class CraftEventFactory {
+@@ -1439,8 +1439,18 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index eec31863d4..4057901dbd 100644
--- a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is
cancelled to avoid this problem.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3a3c21132b2a843de642490c7a256e53e2e90453..8a2f8b48b23ddfc86746696021e62b96016afa2f 100644
+index 92d359cfbe6fc5ae6be4931754cdf48ccd92ba13..bd608e7ad27fd409442b524600c7a290320c40a7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2561,6 +2561,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2564,6 +2564,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
if (event.isCancelled()) {
diff --git a/patches/server/0226-Vanished-players-don-t-have-rights.patch b/patches/server/0226-Vanished-players-don-t-have-rights.patch
index c75ae55f78..957e9557c2 100644
--- a/patches/server/0226-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0226-Vanished-players-don-t-have-rights.patch
@@ -89,10 +89,10 @@ index 1beff41c02fb4c22b5474da7c514be2f50f16055..8a53284a5846b25864352e18a5e6b2de
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 116d3af618351cfec7dc172ba8e5170453b7226d..b77fefc9cf30fd438f557e5b56efb4c0251cb17a 100644
+index 1a0a4f2d94b65179426d7b5715847e5ed19489b5..2bb2c3ae7584d45ab9e32f1b9d0fa848e8667fc0 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1298,6 +1298,14 @@ public class CraftEventFactory {
+@@ -1302,6 +1302,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/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
index 840fa83aff..ce7d42bc7a 100644
--- a/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
+++ b/patches/server/0229-Don-t-call-getItemMeta-on-hasItemMeta.patch
@@ -11,10 +11,10 @@ Returns true if getDamage() == 0 or has damage tag or other tag is set.
Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index e9ea9c85544a895dcf4220d907744996e6e077d4..5388a07fd8b5c8a4ea604996fb41e526e0d7c16c 100644
+index 0ac686e880f0f87ab3f6dbed77e553d7568b3305..6775b432e17b09aaa21af5713fa0ffdf7fdbf8a9 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -656,7 +656,7 @@ public final class CraftItemStack extends ItemStack {
+@@ -657,7 +657,7 @@ public final class CraftItemStack extends ItemStack {
@Override
public boolean hasItemMeta() {
diff --git a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
index 4954cf36ff..dff466e366 100644
--- a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
+++ b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
@@ -9,10 +9,10 @@ thread dumps at an interval until the point of crash.
This will help diagnose what was going on in that time before the crash.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index a003144fb74c9e7314b24216bc0e506e3d2bde0f..c7f665cd6879603ee58c85f04c7ae85737e3fc35 100644
+index 010318abbb6fadbadade8926793786eced6775d3..9cd0e389deda8d0bc7a551ff9e8b6bcd51184476 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1050,6 +1050,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1048,6 +1048,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.status = this.buildServerStatus();
// Spigot start
@@ -33,10 +33,10 @@ index 24f62f9c4d288297d7a324e806745cc1449d7b4c..29eadf85e11c2261218fa406b29455da
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 85711eb6660db5961bb2362b8bc3e8aeeccb9dd1..8a6e457d20fad65023a182acd50bfb17f7f24017 100644
+index 23407ccc0482f67db46947cbcc56c5488c42cf93..537a5e19c9566dfbefa913a66183ec4ef31844c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -924,6 +924,7 @@ public final class CraftServer implements Server {
+@@ -931,6 +931,7 @@ public final class CraftServer implements Server {
@Override
public void reload() {
@@ -44,7 +44,7 @@ index 85711eb6660db5961bb2362b8bc3e8aeeccb9dd1..8a6e457d20fad65023a182acd50bfb17
this.reloadCount++;
this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
-@@ -1013,6 +1014,7 @@ public final class CraftServer implements Server {
+@@ -1020,6 +1021,7 @@ public final class CraftServer implements Server {
this.enablePlugins(PluginLoadOrder.STARTUP);
this.enablePlugins(PluginLoadOrder.POSTWORLD);
this.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD));
diff --git a/patches/server/0249-Inventory-removeItemAnySlot.patch b/patches/server/0249-Inventory-removeItemAnySlot.patch
index a8ba3ecb62..f8c275581d 100644
--- a/patches/server/0249-Inventory-removeItemAnySlot.patch
+++ b/patches/server/0249-Inventory-removeItemAnySlot.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Inventory#removeItemAnySlot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 82bc5e0c8d31e07bd48a729ca937367876be0a37..41c6bb644749b350c2e3552bbd0913b10fcb0abd 100644
+index 41a15ecba33c40c01f0ffdcfae687b96c03731da..287b17ba34f1261a708b9fbf41f6422d92d9c37b 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-@@ -225,10 +225,16 @@ public class CraftInventory implements Inventory {
+@@ -223,10 +223,16 @@ public class CraftInventory implements Inventory {
}
private int first(ItemStack item, boolean withAmount) {
@@ -26,7 +26,7 @@ index 82bc5e0c8d31e07bd48a729ca937367876be0a37..41c6bb644749b350c2e3552bbd0913b1
for (int i = 0; i < inventory.length; i++) {
if (inventory[i] == null) continue;
-@@ -351,6 +357,17 @@ public class CraftInventory implements Inventory {
+@@ -350,6 +356,17 @@ public class CraftInventory implements Inventory {
@Override
public HashMap<Integer, ItemStack> removeItem(ItemStack... items) {
@@ -41,7 +41,7 @@ index 82bc5e0c8d31e07bd48a729ca937367876be0a37..41c6bb644749b350c2e3552bbd0913b1
+
+ private HashMap<Integer, ItemStack> removeItem(boolean searchEntire, ItemStack... items) {
+ // Paper end
- Validate.notNull(items, "Items cannot be null");
+ Preconditions.checkArgument(items != null, "items cannot be null");
HashMap<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
@@ -361,7 +378,10 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index 3f1c15ddd6..1f243711dc 100644
--- a/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/patches/server/0250-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3e14eb63d57d8a9801185549deeafc6c5e09b50c..c5209c25602d32003b0681d55f9b2a428e1a8e2e 100644
+index b003de51df51bbe31c76289dcdf1f52051b20d35..e7aa0e6d78765836a31965ef9c518bfef17e2b03 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -401,7 +401,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -400,7 +400,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
index 9d64c920f0..dc6af195b8 100644
--- a/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0251-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -30,10 +30,10 @@ index 221fa0ca2f1c6e099da5b47ba42548262132d6de..f3af1c540b59819375f70ffbda613560
public int getShieldBlockingDelay() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index a9642e95cde4dc1c3cb9da50c921171c47665536..8601639fd5dfb7ce68d6bd7803efd10438338483 100644
+index 6c4ff1acbf09987f8d6a4b4b2c62fce264430706..bc40c64f8c9ace7dec8f966193f41c626ac14e22 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -200,6 +200,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -199,6 +199,33 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return blocks.get(0);
}
diff --git a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
index 3a3432b77e..118752835b 100644
--- a/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0252-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 755aa5e3840f2b8b513351954ae035ad56f23cbb..875ac85307b3a1515aa101892010532a2f9cf4e1 100644
+index 42a1592e6f5a0d60718cb1f8682025bc4be48708..42c0012633f25b432ba2df0db412287bd00a5f5b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2794,6 +2794,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2732,6 +2732,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.adventure$pointers;
}
diff --git a/patches/server/0253-Improve-death-events.patch b/patches/server/0253-Improve-death-events.patch
index 229f8c261b..ea8c552270 100644
--- a/patches/server/0253-Improve-death-events.patch
+++ b/patches/server/0253-Improve-death-events.patch
@@ -19,7 +19,7 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou
public net.minecraft.world.entity.LivingEntity getSoundVolume()F
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0578d72681a0d45b6c8d1d6d04208eb14fb60083..2b4c0042b1971a9d922c8d32aa74c7f2e4c43341 100644
+index 8e2340ca473c8cacfe9d888091834986bad101ce..0282a467268564c55d9d6e10b0602f952b2ca7ae 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -243,6 +243,10 @@ public class ServerPlayer extends Player {
@@ -357,10 +357,10 @@ index 719f68f96e58ddcdd3592131c691d21263c81915..4413b609f1250cf9477fcb3fecd7b67a
this.gameEvent(GameEvent.ENTITY_DIE);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a825805c4c1506628550864b8d1566727b15a10c..d5631eaed68b6745d8ee43751f6953094adc2c5e 100644
+index 42c0012633f25b432ba2df0db412287bd00a5f5b..cce52883b3ddb9bbf007ed701b291ee548225339 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2294,7 +2294,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2232,7 +2232,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendHealthUpdate() {
@@ -377,7 +377,7 @@ index a825805c4c1506628550864b8d1566727b15a10c..d5631eaed68b6745d8ee43751f695309
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 b77fefc9cf30fd438f557e5b56efb4c0251cb17a..68b1e24a497c052c8e20b946b5b5dabc59e7f539 100644
+index 2bb2c3ae7584d45ab9e32f1b9d0fa848e8667fc0..e8783b2c7083c847770e9f08e796b58e9f8ea6ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -824,9 +824,16 @@ public class CraftEventFactory {
diff --git a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
index 826206d16e..5b6a8a9f46 100644
--- a/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
+++ b/patches/server/0256-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c078852b251d3 100644
+index 01e09dfc00b2ae9ecd39bea37f229ad826de121c..7c803a928f41938c03b0239cf04e2ee765ecefb8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -84,6 +84,12 @@ import org.bukkit.persistence.PersistentDataContainer;
+@@ -83,6 +83,12 @@ import org.bukkit.persistence.PersistentDataContainer;
import static org.spigotmc.ValidateUtils.*;
// Spigot end
@@ -21,7 +21,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
/**
* Children must include the following:
*
-@@ -272,6 +278,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -271,6 +277,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Specific(Specific.To.NBT)
static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag");
static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues");
@@ -32,7 +32,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
// We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304
private String displayName;
-@@ -285,6 +295,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -284,6 +294,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
private int hideFlag;
private boolean unbreakable;
private int damage;
@@ -43,7 +43,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
private static final Set<String> HANDLED_TAGS = Sets.newHashSet();
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
-@@ -322,6 +336,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -321,6 +335,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.hideFlag = meta.hideFlag;
this.unbreakable = meta.unbreakable;
this.damage = meta.damage;
@@ -59,7 +59,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
this.unhandledTags.putAll(meta.unhandledTags);
this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw());
-@@ -385,6 +408,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -384,6 +407,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.persistentDataContainer.put(key, compound.get(key).copy());
}
}
@@ -91,7 +91,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
Set<String> keys = tag.getAllKeys();
for (String key : keys) {
-@@ -523,6 +571,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -522,6 +570,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.setDamage(damage);
}
@@ -126,7 +126,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
String internal = SerializableMeta.getString(map, "internal", true);
if (internal != null) {
ByteArrayInputStream buf = new ByteArrayInputStream(Base64.getDecoder().decode(internal));
-@@ -651,6 +727,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -650,6 +726,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (this.hasDamage()) {
itemTag.putInt(DAMAGE.NBT, damage);
}
@@ -150,7 +150,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
for (Map.Entry<String, Tag> e : this.unhandledTags.entrySet()) {
itemTag.put(e.getKey(), e.getValue());
-@@ -667,6 +760,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -666,6 +759,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -172,7 +172,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
ListTag createStringList(List<String> list) {
if (list == null) {
return null;
-@@ -750,7 +858,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -749,7 +857,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@Overridden
boolean isEmpty() {
@@ -181,7 +181,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
}
// Paper start
-@@ -1182,7 +1290,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1181,7 +1289,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hideFlag == that.hideFlag)
&& (this.isUnbreakable() == that.isUnbreakable())
&& (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage())
@@ -194,7 +194,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
}
/**
-@@ -1217,6 +1329,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1216,6 +1328,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
hash = 61 * hash + (this.hasDamage() ? this.damage : 0);
hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0);
hash = 61 * hash + this.version;
@@ -205,7 +205,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
return hash;
}
-@@ -1241,6 +1357,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1240,6 +1356,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.unbreakable = this.unbreakable;
clone.damage = this.damage;
clone.version = this.version;
@@ -220,7 +220,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
return clone;
} catch (CloneNotSupportedException e) {
throw new Error(e);
-@@ -1298,6 +1422,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1297,6 +1421,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
builder.put(DAMAGE.BUKKIT, damage);
}
@@ -244,7 +244,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
final Map<String, Tag> internalTags = new HashMap<String, Tag>(this.unhandledTags);
this.serializeInternal(internalTags);
if (!internalTags.isEmpty()) {
-@@ -1467,6 +1608,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1464,6 +1605,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaArmorStand.SHOW_ARMS.NBT,
CraftMetaArmorStand.SMALL.NBT,
CraftMetaArmorStand.MARKER.NBT,
@@ -253,7 +253,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
// Paper end
CraftMetaCompass.LODESTONE_DIMENSION.NBT,
CraftMetaCompass.LODESTONE_POS.NBT,
-@@ -1496,4 +1639,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1493,4 +1636,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
// Paper end
@@ -267,7 +267,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+ @Override
+ @SuppressWarnings("deprecation")
+ public void setCanDestroy(Set<Material> canDestroy) {
-+ Validate.notNull(canDestroy, "Cannot replace with null set!");
++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null set!");
+ legacyClearAndReplaceKeys(this.destroyableKeys, canDestroy);
+ }
+
@@ -280,7 +280,7 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+ @Override
+ @SuppressWarnings("deprecation")
+ public void setCanPlaceOn(Set<Material> canPlaceOn) {
-+ Validate.notNull(canPlaceOn, "Cannot replace with null set!");
++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null set!");
+ legacyClearAndReplaceKeys(this.placeableKeys, canPlaceOn);
+ }
+
@@ -291,8 +291,8 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+
+ @Override
+ public void setDestroyableKeys(Collection<Namespaced> canDestroy) {
-+ Validate.notNull(canDestroy, "Cannot replace with null collection!");
-+ Validate.isTrue(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!");
++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null collection!");
++ Preconditions.checkArgument(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!");
+ this.destroyableKeys.clear();
+ this.destroyableKeys.addAll(canDestroy);
+ }
@@ -304,8 +304,8 @@ index 134c91f69f5b532ed67428c097d93b38a83df01a..7dfe2e229dd8498a32a74dbfca5c0788
+
+ @Override
+ public void setPlaceableKeys(Collection<Namespaced> canPlaceOn) {
-+ Validate.notNull(canPlaceOn, "Cannot replace with null collection!");
-+ Validate.isTrue(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!");
++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null collection!");
++ Preconditions.checkArgument(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!");
+ this.placeableKeys.clear();
+ this.placeableKeys.addAll(canPlaceOn);
+ }
diff --git a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
index 8fb810f286..e82a8ec813 100644
--- a/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
+++ b/patches/server/0265-Add-LivingEntity-getTargetEntity.patch
@@ -56,7 +56,7 @@ index b712f505fd092e0366ffc74ff59345a7f8c701be..6718b4159b1c670e0a15020ee5dba675
public int getShieldBlockingDelay() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 8601639fd5dfb7ce68d6bd7803efd10438338483..b19185c16f8fecbefef697017e8dcfd249306fe3 100644
+index bc40c64f8c9ace7dec8f966193f41c626ac14e22..0c3ac380b9092ff961bce761ddfc835f4bd66544 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1,5 +1,6 @@
@@ -66,7 +66,7 @@ index 8601639fd5dfb7ce68d6bd7803efd10438338483..b19185c16f8fecbefef697017e8dcfd2
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
import java.util.ArrayList;
-@@ -225,6 +226,39 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -224,6 +225,39 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
return null;
}
diff --git a/patches/server/0266-Add-sun-related-API.patch b/patches/server/0266-Add-sun-related-API.patch
index da9ff3dfbd..c1cdee93e6 100644
--- a/patches/server/0266-Add-sun-related-API.patch
+++ b/patches/server/0266-Add-sun-related-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add sun related API
public net.minecraft.world.entity.Mob isSunBurnTick()Z
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c5209c25602d32003b0681d55f9b2a428e1a8e2e..81a2f407673eba0943bd7c514561d452197ec85f 100644
+index e7aa0e6d78765836a31965ef9c518bfef17e2b03..b005c956311612bc16b57e0ec9a4f832d9243dce 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -687,6 +687,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -692,6 +692,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
}
diff --git a/patches/server/0274-Reset-players-airTicks-on-respawn.patch b/patches/server/0274-Reset-players-airTicks-on-respawn.patch
index 398dc5e797..7c1b5965f6 100644
--- a/patches/server/0274-Reset-players-airTicks-on-respawn.patch
+++ b/patches/server/0274-Reset-players-airTicks-on-respawn.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 323ed570882a3cd9b7e8bfdc1390f02e155c2448..698c28b425b82ec024cbdf9e00b15b02b3cab860 100644
+index c151777af839ef237c004a1dd1cd0e849e402f5b..56a9cfdb9dc24bd5bda2818b9f59d1a31dfe9265 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2454,6 +2454,7 @@ public class ServerPlayer extends Player {
@@ -13,6 +13,6 @@ index 323ed570882a3cd9b7e8bfdc1390f02e155c2448..698c28b425b82ec024cbdf9e00b15b02
this.setHealth(this.getMaxHealth());
this.stopUsingItem(); // CraftBukkit - SPIGOT-6682: Clear active item on reset
+ this.setAirSupply(this.getMaxAirSupply()); // Paper
- this.remainingFireTicks = 0;
+ this.setRemainingFireTicks(0);
this.fallDistance = 0;
this.foodData = new FoodData(this);
diff --git a/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
index d3cd6525a9..9afa6988bd 100644
--- a/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
+++ b/patches/server/0276-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
@@ -79,10 +79,10 @@ index 0f05d26248d8c999048a88796df227a6a1e3755f..7354711e194ab58b11b68f447c1fc795
return executorService;
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index c7f665cd6879603ee58c85f04c7ae85737e3fc35..fb9bc736bddcc992677b8dff5295a4df843f50c4 100644
+index 9cd0e389deda8d0bc7a551ff9e8b6bcd51184476..ed66f20b38fb6cea0dab020d8ffdde894da86113 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -319,6 +319,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
S s0 = serverFactory.apply(thread); // CraftBukkit - decompile error
atomicreference.set(s0);
diff --git a/patches/server/0277-Optimize-World-Time-Updates.patch b/patches/server/0277-Optimize-World-Time-Updates.patch
index bce0edaa34..66909f687a 100644
--- a/patches/server/0277-Optimize-World-Time-Updates.patch
+++ b/patches/server/0277-Optimize-World-Time-Updates.patch
@@ -8,10 +8,10 @@ the updates per world, so that we can re-use the same packet
object for every player unless they have per-player time enabled.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index fb9bc736bddcc992677b8dff5295a4df843f50c4..b6535f3a4d1e7c3d009d14b151fc06c8811678bd 100644
+index ed66f20b38fb6cea0dab020d8ffdde894da86113..41181620a9fb8f9e5a8d5211d88fcb0c3063f42c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1389,12 +1389,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1387,12 +1387,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper
// Send time updates to everyone, it will get the right time from the world the player is in.
diff --git a/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
index 91e8ebc05b..b9c715a0a6 100644
--- a/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
+++ b/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
@@ -59,10 +59,10 @@ index 0d72be376615f84934b031243ef283b6efc0bd13..562534d15f6f70ff286be90fb512b807
this.level.destroyBlockProgress(this.player.getId(), pos, -1);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d05d088a5294f092f921961ec38053c8ccd6b6bd..024b5fe3eb90c447522141454d3f733e5381bb24 100644
+index 6da3c9d0947c022e5565302221db0d3d71f8ddcd..e6e34e5464c77dc9d349865690fa15bab0252aef 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1659,6 +1659,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1662,6 +1662,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
case START_DESTROY_BLOCK:
case ABORT_DESTROY_BLOCK:
case STOP_DESTROY_BLOCK:
diff --git a/patches/server/0282-Make-the-default-permission-message-configurable.patch b/patches/server/0282-Make-the-default-permission-message-configurable.patch
index 03086fc4ba..6dbccd2fed 100644
--- a/patches/server/0282-Make-the-default-permission-message-configurable.patch
+++ b/patches/server/0282-Make-the-default-permission-message-configurable.patch
@@ -18,10 +18,10 @@ index e3467aaf6d0c8d486b84362e3c20b3fe631b50ff..8f16640fc2f1233c10392d7e32a54d78
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8a6e457d20fad65023a182acd50bfb17f7f24017..17d731fe40506c6a5768e0b49a9f9bafc98e4a82 100644
+index 537a5e19c9566dfbefa913a66183ec4ef31844c1..bf5e68463882f59d16550313b698156404ae90c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2689,6 +2689,16 @@ public final class CraftServer implements Server {
+@@ -2710,6 +2710,16 @@ public final class CraftServer implements Server {
return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
}
diff --git a/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
index 4b23514320..f0b85247fd 100644
--- a/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0290-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
@@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and
documented as to their purpose.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 698c28b425b82ec024cbdf9e00b15b02b3cab860..47b3a068e1e8759648b24b362a34a0454f21c42d 100644
+index 56a9cfdb9dc24bd5bda2818b9f59d1a31dfe9265..7cb4f05a8d23a60a89dd4934ccb99bb89bb44141 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -243,6 +243,7 @@ public class ServerPlayer extends Player {
@@ -28,7 +28,7 @@ index 698c28b425b82ec024cbdf9e00b15b02b3cab860..47b3a068e1e8759648b24b362a34a045
public boolean queueHealthUpdatePacket = false;
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a9930382c39e20f30a3d613eb3c27144637c033b..d3a4de9d140440eb9dda9138bd73e8bd481d0139 100644
+index 2bccba03bb12cf17a82c1e54c2bb10535b7c8964..5657493e215a17f3132f9d411424875160fda6d9 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -189,6 +189,7 @@ public abstract class PlayerList {
@@ -106,10 +106,10 @@ index 69a1852905dd4724c30ac8ab88c14251eee2c371..17b3d5de58a9ef3acc67624c46cd6bbd
public Location getLastDeathLocation() {
if (this.getData().contains("LastDeathLocation", 10)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d5631eaed68b6745d8ee43751f6953094adc2c5e..30047bdd26f642279f7d438d1e5f4758726b785c 100644
+index cce52883b3ddb9bbf007ed701b291ee548225339..dc71264669366dd4e08792f827287467dfcb63f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -183,6 +183,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
private String resourcePackHash;
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
@@ -117,7 +117,7 @@ index d5631eaed68b6745d8ee43751f6953094adc2c5e..30047bdd26f642279f7d438d1e5f4758
// Paper end
public CraftPlayer(CraftServer server, ServerPlayer entity) {
-@@ -1906,6 +1907,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1857,6 +1858,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = firstPlayed;
}
@@ -136,7 +136,7 @@ index d5631eaed68b6745d8ee43751f6953094adc2c5e..30047bdd26f642279f7d438d1e5f4758
public void readExtraData(CompoundTag nbttagcompound) {
this.hasPlayedBefore = true;
if (nbttagcompound.contains("bukkit")) {
-@@ -1928,6 +1941,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1879,6 +1892,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setExtraData(CompoundTag nbttagcompound) {
@@ -145,7 +145,7 @@ index d5631eaed68b6745d8ee43751f6953094adc2c5e..30047bdd26f642279f7d438d1e5f4758
if (!nbttagcompound.contains("bukkit")) {
nbttagcompound.put("bukkit", new CompoundTag());
}
-@@ -1942,6 +1957,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1893,6 +1908,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
data.putLong("firstPlayed", this.getFirstPlayed());
data.putLong("lastPlayed", System.currentTimeMillis());
data.putString("lastKnownName", handle.getScoreboardName());
diff --git a/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
index 385efabde8..00fa6fcd5e 100644
--- a/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
+++ b/patches/server/0292-Block-Entity-remove-from-being-called-on-Players.patch
@@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to
be unintentional in the few cases we've seen so far.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2de1d3a69176ee5ce9792ccbdaa9900b8acbdd3b..4c7fa43293840781ee59ec0a387cf960e23dba51 100644
+index dc71264669366dd4e08792f827287467dfcb63f6..dd99a5ad2212fb228e766a0e0a90a68a3f4b515e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2841,6 +2841,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2779,6 +2779,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetCooldown() {
getHandle().resetAttackStrengthTicker();
}
diff --git a/patches/server/0294-Async-command-map-building.patch b/patches/server/0294-Async-command-map-building.patch
index 8dd362548a..326a92278b 100644
--- a/patches/server/0294-Async-command-map-building.patch
+++ b/patches/server/0294-Async-command-map-building.patch
@@ -53,10 +53,10 @@ index e3394864e29357fec036f9e616472aeab95d035e..b7f1569c662df13f278fc704cabec040
event.getPlayer().getServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b6535f3a4d1e7c3d009d14b151fc06c8811678bd..b29d5da64bfb05455abb4b012d17e4113b5b6f12 100644
+index 41181620a9fb8f9e5a8d5211d88fcb0c3063f42c..ef74bacd74cfef198c404293f9a13073fe3d5c66 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -898,6 +898,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -896,6 +896,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
MinecraftServer.LOGGER.info("Stopping server");
diff --git a/patches/server/0297-Limit-Client-Sign-length-more.patch b/patches/server/0297-Limit-Client-Sign-length-more.patch
index c982114af7..7c04a4b68a 100644
--- a/patches/server/0297-Limit-Client-Sign-length-more.patch
+++ b/patches/server/0297-Limit-Client-Sign-length-more.patch
@@ -22,7 +22,7 @@ it only impacts data sent from the client.
Set -DPaper.maxSignLength=XX to change limit or -1 to disable
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0222181b0dddffc3b0e91dc53b5424317bb191c7..ebd48880cd7256c8f26b9a2565a756efd0188746 100644
+index ce163795ff4385800800e2850bcfe44e2a97c141..c227373a0fcd6c365b766973fa1ce3d8bf16ee42 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -300,6 +300,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -33,7 +33,7 @@ index 0222181b0dddffc3b0e91dc53b5424317bb191c7..ebd48880cd7256c8f26b9a2565a756ef
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) {
this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH);
-@@ -3198,7 +3199,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3201,7 +3202,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleSignUpdate(ServerboundSignUpdatePacket packet) {
diff --git a/patches/server/0301-Entity-getEntitySpawnReason.patch b/patches/server/0301-Entity-getEntitySpawnReason.patch
index e8c0df46a5..f6ea5a4b86 100644
--- a/patches/server/0301-Entity-getEntitySpawnReason.patch
+++ b/patches/server/0301-Entity-getEntitySpawnReason.patch
@@ -22,7 +22,7 @@ index 6b157b362cffedae26133fc0f0af1094655ee11f..986a509998d217228eb1dc2b58157875
// Paper start
if (DEBUG_ENTITIES) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 888547c662b99193af8f803817bc830ab3cc9378..6151563936d5863bd44487da6fc6c0341e25df14 100644
+index e038240042366e1c491c04016982c91c91ee86cd..cccaf594392a0283f00986f182cc89d56181bc40 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -233,6 +233,11 @@ public abstract class PlayerList {
@@ -47,7 +47,7 @@ index 888547c662b99193af8f803817bc830ab3cc9378..6151563936d5863bd44487da6fc6c034
});
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 9db5795009389c3ca9ba70486dcd7225c3a83296..7f9c701e46088abd244cbe3a72042b9d580361ca 100644
+index 9780ebabd27def10b09deebc5be2043d063de9f3..7be82f903e5f65d00b68dc7ee7c1cb4b2be1dc8d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -234,6 +234,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -96,22 +96,22 @@ index 9db5795009389c3ca9ba70486dcd7225c3a83296..7f9c701e46088abd244cbe3a72042b9d
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index b5d605feff68181269f23d95d60a3ed555133d85..44b5b5cadad39cb20a44d7b1b73764568ac72f98 100644
+index a9be524edb03c51300bc45d424fcf87c7491a8c0..a08c2dee792da1a54005f0a65a9eefabc7bc7c60 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -186,6 +186,7 @@ public abstract class BaseSpawner {
- // Spigot End
+@@ -187,6 +187,7 @@ public abstract class BaseSpawner {
}
+
entity.spawnedViaMobSpawner = true; // Paper
+ entity.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER; // Paper
flag = true; // Paper
- // Spigot Start
+ // CraftBukkit start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 18967257c5c217868a5356369e3e3b200044aa39..5d8532bc2c4253aa3941ff8c4d48cc8c3860b3b0 100644
+index 9614a0bd83139e8d62f60fe04f017e0cb0f828c9..e237320b2703a1281fab47f24516e8b7d83677be 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1303,5 +1303,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1296,5 +1296,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean fromMobSpawner() {
return getHandle().spawnedViaMobSpawner;
}
diff --git a/patches/server/0305-Server-Tick-Events.patch b/patches/server/0305-Server-Tick-Events.patch
index 7ff482263a..b98bced041 100644
--- a/patches/server/0305-Server-Tick-Events.patch
+++ b/patches/server/0305-Server-Tick-Events.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Server Tick Events
Fires event at start and end of a server tick
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b29d5da64bfb05455abb4b012d17e4113b5b6f12..ac0c25ec9a06163f0f7290f9813fd5177b7ff87d 100644
+index ef74bacd74cfef198c404293f9a13073fe3d5c66..95c2be1ee4bca53c9ea78e3a32aaf3a6395381a7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1307,6 +1307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1305,6 +1305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
});
isOversleep = false;MinecraftTimings.serverOversleep.stopTiming();
// Paper end
@@ -17,7 +17,7 @@ index b29d5da64bfb05455abb4b012d17e4113b5b6f12..ac0c25ec9a06163f0f7290f9813fd517
++this.tickCount;
this.tickChildren(shouldKeepTicking);
-@@ -1328,6 +1329,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1326,6 +1327,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.runAllTasks();
}
// Paper end
diff --git a/patches/server/0308-Add-Heightmap-API.patch b/patches/server/0308-Add-Heightmap-API.patch
index 278d8bae25..3e482f7785 100644
--- a/patches/server/0308-Add-Heightmap-API.patch
+++ b/patches/server/0308-Add-Heightmap-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Heightmap API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 81a2f407673eba0943bd7c514561d452197ec85f..b4875061e0165957a7d436550f9a74df6a08c9f8 100644
+index b005c956311612bc16b57e0ec9a4f832d9243dce..944f673c4537a44afbdf43e7540835a25b4dece7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -220,6 +220,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -219,6 +219,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return CraftBlock.at(world, new BlockPos(x, y, z));
}
diff --git a/patches/server/0309-Mob-Spawner-API-Enhancements.patch b/patches/server/0309-Mob-Spawner-API-Enhancements.patch
index 1e57ceec67..3ad0d3508d 100644
--- a/patches/server/0309-Mob-Spawner-API-Enhancements.patch
+++ b/patches/server/0309-Mob-Spawner-API-Enhancements.patch
@@ -9,10 +9,10 @@ public net.minecraft.world.level.BaseSpawner delay(Lnet/minecraft/world/level/Le
public net.minecraft.world.level.BaseSpawner setNextSpawnData(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/SpawnData;)V
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 44b5b5cadad39cb20a44d7b1b73764568ac72f98..65d78f1c93c98695e9a4369693f54751d3a69b25 100644
+index a08c2dee792da1a54005f0a65a9eefabc7bc7c60..369298dfd437c1c83801f3d4ba63484ee1b969fe 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-@@ -240,7 +240,13 @@ public abstract class BaseSpawner {
+@@ -233,7 +233,13 @@ public abstract class BaseSpawner {
}
public void load(@Nullable Level world, BlockPos pos, CompoundTag nbt) {
@@ -26,7 +26,7 @@ index 44b5b5cadad39cb20a44d7b1b73764568ac72f98..65d78f1c93c98695e9a4369693f54751
boolean flag = nbt.contains("SpawnData", 10);
if (flag) {
-@@ -263,9 +269,15 @@ public abstract class BaseSpawner {
+@@ -256,9 +262,15 @@ public abstract class BaseSpawner {
this.spawnPotentials = SimpleWeightedRandomList.single(this.nextSpawnData != null ? this.nextSpawnData : new SpawnData());
}
@@ -44,7 +44,7 @@ index 44b5b5cadad39cb20a44d7b1b73764568ac72f98..65d78f1c93c98695e9a4369693f54751
this.spawnCount = nbt.getShort("SpawnCount");
}
-@@ -282,9 +294,20 @@ public abstract class BaseSpawner {
+@@ -275,9 +287,20 @@ public abstract class BaseSpawner {
}
public CompoundTag save(CompoundTag nbt) {
@@ -69,10 +69,10 @@ index 44b5b5cadad39cb20a44d7b1b73764568ac72f98..65d78f1c93c98695e9a4369693f54751
nbt.putShort("MaxNearbyEntities", (short) this.maxNearbyEntities);
nbt.putShort("RequiredPlayerRange", (short) this.requiredPlayerRange);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
-index e8f888b9e37454d9863fbaf0f0c3dc982d582f1e..95b01ddddb1ba90da495927099147e775fb4f7aa 100644
+index ecafc548c96f01763f4f189c11de04636fb3968e..cc4c9c2db57d0727a898a90951d6d7e39fc5b190 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java
-@@ -129,4 +129,28 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<SpawnerBlockEnti
+@@ -134,4 +134,28 @@ public class CraftCreatureSpawner extends CraftBlockEntityState<SpawnerBlockEnti
public void setSpawnRange(int spawnRange) {
this.getSnapshot().getSpawner().spawnRange = spawnRange;
}
diff --git a/patches/server/0312-Implement-CraftBlockSoundGroup.patch b/patches/server/0312-Implement-CraftBlockSoundGroup.patch
index 4a9ca1fe64..aa1e2c4994 100644
--- a/patches/server/0312-Implement-CraftBlockSoundGroup.patch
+++ b/patches/server/0312-Implement-CraftBlockSoundGroup.patch
@@ -50,10 +50,10 @@ index 0000000000000000000000000000000000000000..c5b07ec346105d1b95c1c938ffca12a2
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index d6b44134781007d29f4042d5ab707188c965331b..90ec90acd6cfe0dcc677c7f26493fc8184cacca8 100644
+index 3205d86a63f8fcf3ccd13c6be0e0eefc27beb62a..93bf6b8e30e5e28fa9261b8b927081d85547e400 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -649,4 +649,16 @@ public class CraftBlock implements Block {
+@@ -647,4 +647,16 @@ public class CraftBlock implements Block {
public String getTranslationKey() {
return this.getNMS().getBlock().getDescriptionId();
}
diff --git a/patches/server/0313-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0313-Configurable-Keep-Spawn-Loaded-range-per-world.patch
index 12b4b9b421..45e2ade11a 100644
--- a/patches/server/0313-Configurable-Keep-Spawn-Loaded-range-per-world.patch
+++ b/patches/server/0313-Configurable-Keep-Spawn-Loaded-range-per-world.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world
This lets you disable it for some worlds and lower it for others.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index ac0c25ec9a06163f0f7290f9813fd5177b7ff87d..798a9083d78d49bc7c9e1d3dfb70c30e63e79a48 100644
+index 95c2be1ee4bca53c9ea78e3a32aaf3a6395381a7..cd57953e31c1f0f51553be113d84760f24b061b0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -740,30 +740,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -738,30 +738,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit start
public void prepareLevels(ChunkProgressListener worldloadlistener, ServerLevel worldserver) {
@@ -53,7 +53,7 @@ index ac0c25ec9a06163f0f7290f9813fd5177b7ff87d..798a9083d78d49bc7c9e1d3dfb70c30e
if (true) {
ServerLevel worldserver1 = worldserver;
-@@ -786,7 +789,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -784,7 +787,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// this.nextTickTime = SystemUtils.getMillis() + 10L;
this.executeModerately();
// CraftBukkit end
@@ -191,10 +191,10 @@ index 4d2348df25410a0b5364eec066880326d6667dad..286aad3205ef8a9e21a47ef07893844f
this.maxCount = i * i;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index b4875061e0165957a7d436550f9a74df6a08c9f8..a248b738de3936d73b80600687a9b88b425a494c 100644
+index 944f673c4537a44afbdf43e7540835a25b4dece7..66eabbe916994e96f67e2039e6b291447753900f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1344,15 +1344,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1350,15 +1350,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setKeepSpawnInMemory(boolean keepLoaded) {
diff --git a/patches/server/0315-Expose-the-internal-current-tick.patch b/patches/server/0315-Expose-the-internal-current-tick.patch
index 996eb252de..55a6b69199 100644
--- a/patches/server/0315-Expose-the-internal-current-tick.patch
+++ b/patches/server/0315-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 17d731fe40506c6a5768e0b49a9f9bafc98e4a82..a0976fd1b142ac7f26da71720ce40b303e1daabe 100644
+index bf5e68463882f59d16550313b698156404ae90c1..9d477eaa1015b6337a644f1baafd7cba67bb0e4a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2730,5 +2730,10 @@ public final class CraftServer implements Server {
+@@ -2751,5 +2751,10 @@ public final class CraftServer implements Server {
profile.getProperties().putAll(((CraftPlayer)player).getHandle().getGameProfile().getProperties());
return new com.destroystokyo.paper.profile.CraftPlayerProfile(profile);
}
diff --git a/patches/server/0316-Fix-World-isChunkGenerated-calls.patch b/patches/server/0316-Fix-World-isChunkGenerated-calls.patch
index bae56ed1ed..ceb1869c90 100644
--- a/patches/server/0316-Fix-World-isChunkGenerated-calls.patch
+++ b/patches/server/0316-Fix-World-isChunkGenerated-calls.patch
@@ -156,10 +156,10 @@ index 96f129cb13642dc9667464b58c025fa0ed700cfd..29da08c58200c24fd03003937d30eb41
} catch (Throwable throwable) {
if (dataoutputstream != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a248b738de3936d73b80600687a9b88b425a494c..f16ab24c0ff5b51432a8cbf9b5e7274c6b99ede6 100644
+index 66eabbe916994e96f67e2039e6b291447753900f..ad272693251141f60ef68c50cf27f3f005b0acbd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -308,9 +308,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -307,9 +307,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean isChunkGenerated(int x, int z) {
@@ -185,7 +185,7 @@ index a248b738de3936d73b80600687a9b88b425a494c..f16ab24c0ff5b51432a8cbf9b5e7274c
throw new RuntimeException(ex);
}
}
-@@ -424,20 +438,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -423,20 +437,48 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/patches/server/0337-Entity-Activation-Range-2.0.patch b/patches/server/0337-Entity-Activation-Range-2.0.patch
index 03914ad08e..6c4d053816 100644
--- a/patches/server/0337-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0337-Entity-Activation-Range-2.0.patch
@@ -112,7 +112,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78
} else {
passenger.stopRiding();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 7f9c701e46088abd244cbe3a72042b9d580361ca..948ea6e93170902a771950a56f0ce1a41e2bffd7 100644
+index 7be82f903e5f65d00b68dc7ee7c1cb4b2be1dc8d..e35a8e118db04143b29b4c8e56b6fae277e18ca3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -390,6 +390,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -380,7 +380,7 @@ index 45f55c79a9d105f732054d61c4cf83eb5db49762..17a6327ab7b26dfab38881bbc0689b0b
}
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index 0bdd57e214a8652c2ce7c923c28fc17e52624fb5..d0092fa0595bcf3876dec4ef58516089ac99bb26 100644
+index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8ef078932 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -1,39 +1,52 @@
@@ -579,7 +579,7 @@ index 0bdd57e214a8652c2ce7c923c28fc17e52624fb5..d0092fa0595bcf3876dec4ef58516089
+ if (inactiveWakeUpImmunity > -1) {
+ return inactiveWakeUpImmunity;
+ }
-+ if (entity.remainingFireTicks > 0) {
++ if (entity.getRemainingFireTicks() > 0) {
+ return 2;
+ }
+ if (entity.activatedImmunityTick >= MinecraftServer.currentTick) {
@@ -588,7 +588,7 @@ index 0bdd57e214a8652c2ce7c923c28fc17e52624fb5..d0092fa0595bcf3876dec4ef58516089
+ long inactiveFor = MinecraftServer.currentTick - entity.activatedTick;
+ // Paper end
// quick checks.
-- if ( entity.wasTouchingWater || entity.remainingFireTicks > 0 )
+- if ( entity.wasTouchingWater || entity.getRemainingFireTicks() > 0 )
+ if ( (entity.activationType != ActivationType.WATER && entity.wasTouchingWater && entity.isPushedByFluid()) ) // Paper
{
- return true;
diff --git a/patches/server/0343-Anti-Xray.patch b/patches/server/0343-Anti-Xray.patch
index 0b0c374f76..266d228c20 100644
--- a/patches/server/0343-Anti-Xray.patch
+++ b/patches/server/0343-Anti-Xray.patch
@@ -1573,12 +1573,12 @@ index b738e1f7debac7d70910d5ac908ca9d4f60640d5..269ebe8e8826a0c89e471cb59b503900
public CraftChunk(net.minecraft.world.level.chunk.LevelChunk chunk) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a0976fd1b142ac7f26da71720ce40b303e1daabe..d7fe84932e25a76105aa7637247fd4d034985efe 100644
+index 9d477eaa1015b6337a644f1baafd7cba67bb0e4a..f7d2193f7e182e64cd51d3f909e4f0505a388f48 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2264,7 +2264,7 @@ public final class CraftServer implements Server {
+@@ -2280,7 +2280,7 @@ public final class CraftServer implements Server {
public ChunkGenerator.ChunkData createChunkData(World world) {
- Validate.notNull(world, "World cannot be null");
+ Preconditions.checkArgument(world != null, "World cannot be null");
ServerLevel handle = ((CraftWorld) world).getHandle();
- return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME));
+ return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters
@@ -1586,10 +1586,10 @@ index a0976fd1b142ac7f26da71720ce40b303e1daabe..d7fe84932e25a76105aa7637247fd4d0
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f16ab24c0ff5b51432a8cbf9b5e7274c6b99ede6..62a3e2819510a056707dadf79a8e4fc5a9772fd9 100644
+index ad272693251141f60ef68c50cf27f3f005b0acbd..e3308c3e93abf80022a16166c3cc522da8221f34 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -419,11 +419,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -418,11 +418,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
List<ServerPlayer> playersInRange = playerChunk.playerProvider.getPlayers(playerChunk.getPos(), false);
if (playersInRange.isEmpty()) return true; // Paper - rewrite player chunk loader
diff --git a/patches/server/0345-Improve-Block-breakNaturally-API.patch b/patches/server/0345-Improve-Block-breakNaturally-API.patch
index 6750acb88f..4de6b7c5eb 100644
--- a/patches/server/0345-Improve-Block-breakNaturally-API.patch
+++ b/patches/server/0345-Improve-Block-breakNaturally-API.patch
@@ -34,10 +34,10 @@ index 6f9cb55491da718cd6564425748ab3852fda9b68..5fbdc96f29e29dfc092b9e84a988032d
if (world.dimensionType().ultraWarm()) {
world.removeBlock(pos, false);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 90ec90acd6cfe0dcc677c7f26493fc8184cacca8..c67de2f3bb8b048b8432add4adcb9e6042fb65ad 100644
+index 93bf6b8e30e5e28fa9261b8b927081d85547e400..5534348ddb3ac42b6b8a687816c2c8c1858e3b3e 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -479,6 +479,18 @@ public class CraftBlock implements Block {
+@@ -477,6 +477,18 @@ public class CraftBlock implements Block {
@Override
public boolean breakNaturally(ItemStack item) {
@@ -56,7 +56,7 @@ index 90ec90acd6cfe0dcc677c7f26493fc8184cacca8..c67de2f3bb8b048b8432add4adcb9e60
// Order matters here, need to drop before setting to air so skulls can get their data
net.minecraft.world.level.block.state.BlockState iblockdata = this.getNMS();
net.minecraft.world.level.block.Block block = iblockdata.getBlock();
-@@ -488,11 +500,35 @@ public class CraftBlock implements Block {
+@@ -486,11 +498,35 @@ public class CraftBlock implements Block {
// Modelled off EntityHuman#hasBlock
if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) {
net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), position, this.world.getBlockEntity(position), null, nmsItem);
diff --git a/patches/server/0350-Entity-Jump-API.patch b/patches/server/0350-Entity-Jump-API.patch
index 29fd5fcc9a..4c1f5f0426 100644
--- a/patches/server/0350-Entity-Jump-API.patch
+++ b/patches/server/0350-Entity-Jump-API.patch
@@ -48,10 +48,10 @@ index 243397de3b0a843ec95c6b721d7fc654bfc78448..aad1fb5cf231b400dc8c192871aa4429
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index b19185c16f8fecbefef697017e8dcfd249306fe3..c5784574f584a5588020b16776f01faf6902cbe8 100644
+index 0c3ac380b9092ff961bce761ddfc835f4bd66544..6bf1b3a9ee029feafa054f40291078c79f28c5f4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -887,5 +887,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -884,5 +884,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public org.bukkit.inventory.EquipmentSlot getHandRaised() {
return getHandle().getUsedItemHand() == net.minecraft.world.InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND;
}
diff --git a/patches/server/0359-Add-tick-times-API-and-mspt-command.patch b/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
index ee4a71dad9..80ac508d51 100644
--- a/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
+++ b/patches/server/0359-Add-tick-times-API-and-mspt-command.patch
@@ -125,11 +125,11 @@ index d44d0074446c1c54e87dc8078dff7fef1d92f343..bbb8b1933ef33a3b91f69545f69dd3cf
public static void registerCommands(final MinecraftServer server) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 798a9083d78d49bc7c9e1d3dfb70c30e63e79a48..b2b7f5f30b3967a9f8a32e27557639da7d408152 100644
+index cd57953e31c1f0f51553be113d84760f24b061b0..36112a1ab7306deb3cc38b103f22f7c1b8f89206 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -253,6 +253,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
- @Nullable private net.kyori.adventure.text.Component cachedMotd; // Paper
+@@ -251,6 +251,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ private net.kyori.adventure.text.Component motd; // Paper - Adventure
private int playerIdleTimeout;
public final long[] tickTimes;
+ // Paper start
@@ -140,7 +140,7 @@ index 798a9083d78d49bc7c9e1d3dfb70c30e63e79a48..b2b7f5f30b3967a9f8a32e27557639da
@Nullable
private KeyPair keyPair;
@Nullable
-@@ -1343,6 +1348,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1341,6 +1346,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.averageTickTime = this.averageTickTime * 0.8F + (float) j / 1000000.0F * 0.19999999F;
long k = Util.getNanos();
@@ -152,7 +152,7 @@ index 798a9083d78d49bc7c9e1d3dfb70c30e63e79a48..b2b7f5f30b3967a9f8a32e27557639da
this.frameTimer.logFrameDuration(k - i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot
-@@ -2573,4 +2583,30 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2571,4 +2581,30 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static record ServerResourcePackInfo(String url, String hash, boolean isRequired, @Nullable Component prompt) {
}
@@ -184,10 +184,10 @@ index 798a9083d78d49bc7c9e1d3dfb70c30e63e79a48..b2b7f5f30b3967a9f8a32e27557639da
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d7fe84932e25a76105aa7637247fd4d034985efe..fb422d7f6639aa66cc6bd2d458eb3797d3dba702 100644
+index f7d2193f7e182e64cd51d3f909e4f0505a388f48..6e1618f32f1b5a896fa647d857eed4356115dcdd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2514,6 +2514,16 @@ public final class CraftServer implements Server {
+@@ -2535,6 +2535,16 @@ public final class CraftServer implements Server {
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
};
}
diff --git a/patches/server/0360-Expose-MinecraftServer-isRunning.patch b/patches/server/0360-Expose-MinecraftServer-isRunning.patch
index 920fa2794b..5dec3ef5cf 100644
--- a/patches/server/0360-Expose-MinecraftServer-isRunning.patch
+++ b/patches/server/0360-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fb422d7f6639aa66cc6bd2d458eb3797d3dba702..db67c80e5e42a71aee4a53ba7486031a7b1e6498 100644
+index 6e1618f32f1b5a896fa647d857eed4356115dcdd..f87a6248a9e920d0e64d7971b0f056d06bc222e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2745,5 +2745,10 @@ public final class CraftServer implements Server {
+@@ -2766,5 +2766,10 @@ public final class CraftServer implements Server {
public int getCurrentTick() {
return net.minecraft.server.MinecraftServer.currentTick;
}
diff --git a/patches/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch
index 019631e54b..6fece81d45 100644
--- a/patches/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization
Serializes using NBT which is safer for server data migrations than bukkits format.
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index f5f528e4520c5e52e1e9dae5228525f29e4eee92..447df549a0d371389b086327b06b74aa1d6647cd 100644
+index e608b7542f6de7b3f2d7af25bb28f2705f6a9688..00dc3da665c295133931b80f92c19333d18b5f9a 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -468,6 +468,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -466,6 +466,52 @@ public final class CraftMagicNumbers implements UnsafeValues {
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
return new com.destroystokyo.paper.PaperVersionFetcher();
}
diff --git a/patches/server/0371-Improved-Watchdog-Support.patch b/patches/server/0371-Improved-Watchdog-Support.patch
index b1c421f1e8..680307abd1 100644
--- a/patches/server/0371-Improved-Watchdog-Support.patch
+++ b/patches/server/0371-Improved-Watchdog-Support.patch
@@ -71,10 +71,10 @@ index 336795dff742b7c6957fbd3476aff31d25a5e659..30a58229aa6dac5039511d0c0df5f291
cause = cause.getCause();
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2a2c11678 100644
+index 36112a1ab7306deb3cc38b103f22f7c1b8f89206..e658f17f04f0e4e541353bf59411788f9da9a780 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -299,7 +299,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
public int autosavePeriod;
public Commands vanillaCommandDispatcher;
@@ -83,7 +83,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
// CraftBukkit end
// Spigot start
public static final int TPS = 20;
-@@ -310,6 +310,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -308,6 +308,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public static long currentTickLong = 0L; // Paper
@@ -93,7 +93,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
-@@ -886,6 +889,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -884,6 +887,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit start
private boolean hasStopped = false;
@@ -101,7 +101,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
private final Object stopLock = new Object();
public final boolean hasStopped() {
synchronized (this.stopLock) {
-@@ -900,6 +904,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -898,6 +902,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (this.hasStopped) return;
this.hasStopped = true;
}
@@ -121,7 +121,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
// CraftBukkit end
if (this.metricsRecorder.isRecording()) {
this.cancelRecordingMetrics();
-@@ -956,7 +973,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -954,7 +971,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getProfileCache().save(false); // Paper
}
// Spigot end
@@ -141,7 +141,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
}
public String getLocalIp() {
-@@ -1051,6 +1080,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1049,6 +1078,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
protected void runServer() {
try {
@@ -149,7 +149,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
if (!this.initServer()) {
throw new IllegalStateException("Failed to initialize server");
}
-@@ -1060,6 +1090,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1058,6 +1088,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.status = this.buildServerStatus();
// Spigot start
@@ -168,7 +168,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
Arrays.fill( recentTps, 20 );
long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop
-@@ -1120,6 +1162,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1118,6 +1160,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
JvmProfiler.INSTANCE.onServerTick(this.averageTickTime);
}
} catch (Throwable throwable) {
@@ -181,7 +181,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
MinecraftServer.LOGGER.error("Encountered an unexpected exception", throwable);
// Spigot Start
if ( throwable.getCause() != null )
-@@ -1150,14 +1198,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1148,14 +1196,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.services.profileCache().clearExecutor();
}
@@ -199,7 +199,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
}
}
-@@ -1226,6 +1274,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1224,6 +1272,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@Override
public TickTask wrapRunnable(Runnable runnable) {
@@ -212,7 +212,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
return new TickTask(this.tickCount, runnable);
}
-@@ -1461,6 +1515,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1459,6 +1513,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
try {
crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
} catch (Throwable t) {
@@ -220,7 +220,7 @@ index b2b7f5f30b3967a9f8a32e27557639da7d408152..8fc669ec3b6afa4ed9447878604ba2b2
throw new RuntimeException("Error generating crash report", t);
}
// Spigot End
-@@ -1961,7 +2016,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1959,7 +2014,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.worldData.setDataConfiguration(worlddataconfiguration);
this.resources.managers.updateRegistryTags(this.registryAccess());
@@ -270,7 +270,7 @@ index aa1622fb3ea1f349b539e09c811de0f297a86076..aaad6b0de19872c6e54591adf90c30d2
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 5b3e8adde28d11aec4ea526ebba61d561ec06cb6..95356cfb36f2103889a21d6c360d29a318c871dd 100644
+index 5b8b345ade30012371bdda744ba82c585f74db07..0d100788312a234616c1401656f09835458e79f6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -547,7 +547,7 @@ public abstract class PlayerList {
@@ -537,7 +537,7 @@ index b47d043144c499b1499f6b4be5a16a3f75c9fcb8..383c52c62f49b17db2fbf58009d6ea13
break;
} // Paper end
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
-index 3dc317e466e1b93dff030794dd7f29ca1b266778..d285dbec16272db6b8a71865e05924ad66087407 100644
+index ea4e2161c0bd43884055cc6b8d70b2139f70e720..266b4e6fb3988b5848021c83fdc68e342c70b188 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,5 +1,5 @@
diff --git a/patches/server/0375-Prevent-opening-inventories-when-frozen.patch b/patches/server/0375-Prevent-opening-inventories-when-frozen.patch
index 972c09486b..93a9721f23 100644
--- a/patches/server/0375-Prevent-opening-inventories-when-frozen.patch
+++ b/patches/server/0375-Prevent-opening-inventories-when-frozen.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e8a1aff3ddd94925e1c0f554cc8e7ff9e9864242..0a9e30d64a9e8007b12da6611fde017d5c53fa05 100644
+index 6ad3b7e7c7808cb40697e2eb6185f431fc431a20..65d17836785774d0f196321ba741ffd05a9db36e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -693,7 +693,7 @@ public class ServerPlayer extends Player {
@@ -27,10 +27,10 @@ index e8a1aff3ddd94925e1c0f554cc8e7ff9e9864242..0a9e30d64a9e8007b12da6611fde017d
this.initMenu(container);
return OptionalInt.of(this.containerCounter);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 16381beba53725651a92748f9521bdcb078a489e..c31c9ccbefb1f6ed1e3f56c7ca445813ec635a12 100644
+index ba6105a970381d642cd7955754cc47135207027a..82314358220b064a0f8a29cc1d663cc266c13916 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -327,7 +327,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -325,7 +325,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(container.getBukkitView().getTitle()); // Paper
//player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment
@@ -39,7 +39,7 @@ index 16381beba53725651a92748f9521bdcb078a489e..c31c9ccbefb1f6ed1e3f56c7ca445813
player.containerMenu = container;
player.initMenu(container);
}
-@@ -401,7 +401,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -399,7 +399,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
net.kyori.adventure.text.Component adventure$title = inventory.title(); // Paper
if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper
//player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment
diff --git a/patches/server/0377-Implement-Player-Client-Options-API.patch b/patches/server/0377-Implement-Player-Client-Options-API.patch
index a3cf730863..a6433deeff 100644
--- a/patches/server/0377-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0377-Implement-Player-Client-Options-API.patch
@@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0a9e30d64a9e8007b12da6611fde017d5c53fa05..cc3ebc15e25e132870bbc336e68216459a4545da 100644
+index 65d17836785774d0f196321ba741ffd05a9db36e..fd34a2ace2efc819b06674ceab44ff78ec11f805 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1949,9 +1949,24 @@ public class ServerPlayer extends Player {
@@ -116,10 +116,10 @@ index 0a9e30d64a9e8007b12da6611fde017d5c53fa05..cc3ebc15e25e132870bbc336e6821645
if (getMainArm() != packet.mainHand()) {
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 062d2c8e7c28e221fd6cccdef49d8bdce10c3c59..7bed46c9bc305cbb67e145c9ea62de06708a1f00 100644
+index dd99a5ad2212fb228e766a0e0a90a68a3f4b515e..ef2476afc452c83be28c97d9860e27368ded5254 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -594,6 +594,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -591,6 +591,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message);
}
}
diff --git a/patches/server/0385-Villager-Restocks-API.patch b/patches/server/0385-Villager-Restocks-API.patch
index 2629910b56..c424a6d1fe 100644
--- a/patches/server/0385-Villager-Restocks-API.patch
+++ b/patches/server/0385-Villager-Restocks-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Villager Restocks API
public net.minecraft.world.entity.npc.Villager numberOfRestocksToday
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index 87d9cd989be932cf3eb9e777cbc2d2246ccf9d9a..350cfc1526894f4dac56832a6d1dfbbc9b25123c 100644
+index de8eec8d0294f2eb5ae73e060df9805758b9881d..0c92bbe9900a9d598ad90f2ba12808c776ba8f04 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -92,6 +92,18 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -91,6 +91,18 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
this.getHandle().setVillagerXp(experience);
}
diff --git a/patches/server/0387-Expose-game-version.patch b/patches/server/0387-Expose-game-version.patch
index 5c1a5c2389..5fd69af924 100644
--- a/patches/server/0387-Expose-game-version.patch
+++ b/patches/server/0387-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index db67c80e5e42a71aee4a53ba7486031a7b1e6498..387dd679057b4968a3b6288e52d812ba9eefd1eb 100644
+index f87a6248a9e920d0e64d7971b0f056d06bc222e8..af3c77a26a054c65f2f17037879fc54ada478848 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -577,6 +577,13 @@ public final class CraftServer implements Server {
+@@ -576,6 +576,13 @@ public final class CraftServer implements Server {
return this.bukkitVersion;
}
diff --git a/patches/server/0390-misc-debugging-dumps.patch b/patches/server/0390-misc-debugging-dumps.patch
index 1a8bb916a1..8a66975bcd 100644
--- a/patches/server/0390-misc-debugging-dumps.patch
+++ b/patches/server/0390-misc-debugging-dumps.patch
@@ -29,10 +29,10 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 8fc669ec3b6afa4ed9447878604ba2b2a2c11678..56574a625fb4378997bcc79915dbb083e2c59f70 100644
+index e658f17f04f0e4e541353bf59411788f9da9a780..f4ad35b55cacd5c1c3e4d81d4a9cf9675349ce79 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -890,6 +890,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -888,6 +888,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit start
private boolean hasStopped = false;
public volatile boolean hasFullyShutdown = false; // Paper
@@ -40,7 +40,7 @@ index 8fc669ec3b6afa4ed9447878604ba2b2a2c11678..56574a625fb4378997bcc79915dbb083
private final Object stopLock = new Object();
public final boolean hasStopped() {
synchronized (this.stopLock) {
-@@ -904,6 +905,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -902,6 +903,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (this.hasStopped) return;
this.hasStopped = true;
}
@@ -48,7 +48,7 @@ index 8fc669ec3b6afa4ed9447878604ba2b2a2c11678..56574a625fb4378997bcc79915dbb083
// Paper start - kill main thread, and kill it hard
shutdownThread = Thread.currentThread();
org.spigotmc.WatchdogThread.doStop(); // Paper
-@@ -1006,6 +1008,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1004,6 +1006,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
this.isRestarting = isRestarting;
@@ -74,10 +74,10 @@ index 0c7f280bae81bbb492d5780a43e5ffda0f58756a..238a7bc87ab49da1f0fa3c733dd512fd
this.connection.send(new ClientboundDisconnectPacket(ichatmutablecomponent));
this.connection.disconnect(ichatmutablecomponent);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 387dd679057b4968a3b6288e52d812ba9eefd1eb..ec0d03aedac540f67552a5a8371518d673519d87 100644
+index af3c77a26a054c65f2f17037879fc54ada478848..1b5197752992ed7c7a8ea6d01e5efa90347e8ddd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1015,6 +1015,7 @@ public final class CraftServer implements Server {
+@@ -1022,6 +1022,7 @@ public final class CraftServer implements Server {
plugin.getDescription().getFullName(),
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
diff --git a/patches/server/0391-Prevent-teleporting-dead-entities.patch b/patches/server/0391-Prevent-teleporting-dead-entities.patch
index 6e59e14462..fc07c39e1c 100644
--- a/patches/server/0391-Prevent-teleporting-dead-entities.patch
+++ b/patches/server/0391-Prevent-teleporting-dead-entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent teleporting dead entities
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1bf4ed4878f900730f66e2245106e66bd1927a5f..817db930347b0a83f3cea8cbcbd823622c1be7c0 100644
+index ee7c9f1efcc0de58bb2bf7126a589e5ca8f3c409..9788b50ca86be8cf8412b5c53ad75bda5d8615e3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1612,6 +1612,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1615,6 +1615,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
diff --git a/patches/server/0393-Implement-Mob-Goal-API.patch b/patches/server/0393-Implement-Mob-Goal-API.patch
index 5781049a4c..591df060da 100644
--- a/patches/server/0393-Implement-Mob-Goal-API.patch
+++ b/patches/server/0393-Implement-Mob-Goal-API.patch
@@ -792,10 +792,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31
LOOK,
JUMP,
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ec0d03aedac540f67552a5a8371518d673519d87..095ee082f73c24a8b1d311e15eed49048c6646d9 100644
+index 1b5197752992ed7c7a8ea6d01e5efa90347e8ddd..057a7df7daba35debe470116c28a5984e4e8132f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2758,5 +2758,11 @@ public final class CraftServer implements Server {
+@@ -2779,5 +2779,11 @@ public final class CraftServer implements Server {
public boolean isStopping() {
return net.minecraft.server.MinecraftServer.getServer().hasStopped();
}
diff --git a/patches/server/0394-Add-villager-reputation-API.patch b/patches/server/0394-Add-villager-reputation-API.patch
index a84e9e01ee..0b402ed019 100644
--- a/patches/server/0394-Add-villager-reputation-API.patch
+++ b/patches/server/0394-Add-villager-reputation-API.patch
@@ -57,10 +57,10 @@ index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..76dffb2705e5207db96895f82f1c7c56
static record GossipEntry(UUID target, GossipType type, int value) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index 350cfc1526894f4dac56832a6d1dfbbc9b25123c..e6fcdbabde66f4707627fc8c3012aa20de8e34e3 100644
+index 0c92bbe9900a9d598ad90f2ba12808c776ba8f04..6f7977b492ce01e7cda7872c42bd7f2386d3e745 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -18,6 +18,13 @@ import org.bukkit.entity.Villager;
+@@ -17,6 +17,13 @@ import org.bukkit.entity.Villager;
import org.bukkit.entity.ZombieVillager;
import org.bukkit.event.entity.CreatureSpawnEvent;
@@ -74,7 +74,7 @@ index 350cfc1526894f4dac56832a6d1dfbbc9b25123c..e6fcdbabde66f4707627fc8c3012aa20
public class CraftVillager extends CraftAbstractVillager implements Villager {
public CraftVillager(CraftServer server, net.minecraft.world.entity.npc.Villager entity) {
-@@ -147,4 +154,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -146,4 +153,45 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
public static VillagerProfession bukkitToNmsProfession(Profession bukkit) {
return BuiltInRegistries.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(bukkit.getKey()));
}
diff --git a/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
index cd3de7681e..296215abfc 100644
--- a/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
+++ b/patches/server/0397-Fix-PotionEffect-ignores-icon-flag.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix PotionEffect ignores icon flag
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index c5784574f584a5588020b16776f01faf6902cbe8..658d4dbb45d17e7064f69b10af8fbfa473a8dffe 100644
+index 6bf1b3a9ee029feafa054f40291078c79f28c5f4..2f6ba5525a014dfb3ce2efae765e501e8cd1c1c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -431,7 +431,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -430,7 +430,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
diff --git a/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
index 59a602c961..fe1354b419 100644
--- a/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/patches/server/0400-Wait-for-Async-Tasks-during-shutdown.patch
@@ -10,10 +10,10 @@ Adds a 5 second grace period for any async tasks to finish and warns
if any are still running after that delay just as reload does.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 56574a625fb4378997bcc79915dbb083e2c59f70..f6b8426ddc50363991c78ae731898d1a323ef5a1 100644
+index f4ad35b55cacd5c1c3e4d81d4a9cf9675349ce79..53876c0d957e2d151e93744eff60606096f02e66 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -930,6 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -928,6 +928,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
@@ -22,10 +22,10 @@ index 56574a625fb4378997bcc79915dbb083e2c59f70..f6b8426ddc50363991c78ae731898d1a
// CraftBukkit end
if (this.getConnection() != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 095ee082f73c24a8b1d311e15eed49048c6646d9..4971e0d7254807a27123721dad24a7985b32cf87 100644
+index 057a7df7daba35debe470116c28a5984e4e8132f..3062d9bc3582d7468000ec3b51bf47acfc628e71 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1025,6 +1025,31 @@ public final class CraftServer implements Server {
+@@ -1032,6 +1032,31 @@ public final class CraftServer implements Server {
org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload
}
diff --git a/patches/server/0409-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/patches/server/0409-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
index 1cafad18f3..b8e4ac5d6c 100644
--- a/patches/server/0409-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
+++ b/patches/server/0409-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix CraftScheduler#runTaskTimerAsynchronously(Plugin,
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index ea7ebbc2674df727cf44856f172731ee083b8800..a423970cf7c927ea8a1bf842aaa236d3cf2d54c2 100644
+index 918e11422854d7301c84b466533770c2a429a682..addf3c442a085281a7ac06245ccd741f08ed7ccb 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -199,7 +199,7 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -196,7 +196,7 @@ public class CraftScheduler implements BukkitScheduler {
@Override
public void runTaskTimerAsynchronously(Plugin plugin, Consumer<BukkitTask> task, long delay, long period) throws IllegalArgumentException {
diff --git a/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
index 3e77f8a1c6..a15244c105 100644
--- a/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
+++ b/patches/server/0415-Inventory-getHolder-method-without-block-snapshot.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Inventory getHolder method without block snapshot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 8018ad8e5952c714f1bd445c91b4d5c846b9ba7a..015fc140db9162865f33cd6577cf758091a663c7 100644
+index 7bdb2e52d36feb9e0ce517ae95f5edb28ddc67d6..01b38b5a515c7dd0f0c79141c270d618bf3c56eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -540,6 +540,13 @@ public class CraftInventory implements Inventory {
@@ -23,10 +23,10 @@ index 8018ad8e5952c714f1bd445c91b4d5c846b9ba7a..015fc140db9162865f33cd6577cf7580
public int getMaxStackSize() {
return this.inventory.getMaxStackSize();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
-index 01d425d359f2d6d87b6c01b435a9cfcfe11caa20..4707a651dc80086efa852bcfba38a534e7f1f3d0 100644
+index d5defc82aec2279463e14029e213cfb8c3a40ce1..83712cc8da9751b6d4cc1f34a1cc0798bf848ae1 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryDoubleChest.java
-@@ -64,6 +64,13 @@ public class CraftInventoryDoubleChest extends CraftInventory implements DoubleC
+@@ -63,6 +63,13 @@ public class CraftInventoryDoubleChest extends CraftInventory implements DoubleC
return new DoubleChest(this);
}
diff --git a/patches/server/0416-Improve-Arrow-API.patch b/patches/server/0416-Improve-Arrow-API.patch
index 47bb897a5a..b2c31e3793 100644
--- a/patches/server/0416-Improve-Arrow-API.patch
+++ b/patches/server/0416-Improve-Arrow-API.patch
@@ -9,10 +9,10 @@ to set the arrow's "noclip" status
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-index 376885c8148da619a3b203145d315ebaf44994fb..15abd085eeb0a31a925c1a8d6de903c9d4625a29 100644
+index ce6291f2ccfb1ea3c069dd9f053446413894d743..d443b171191d150eed62d000a1079ede6bcf9052 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-@@ -102,6 +102,23 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -100,6 +100,23 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
this.getHandle().pickup = net.minecraft.world.entity.projectile.AbstractArrow.Pickup.byOrdinal(status.ordinal());
}
diff --git a/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch
index e5980d0369..0891d484ac 100644
--- a/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch
+++ b/patches/server/0417-Add-and-implement-PlayerRecipeBookClickEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 23d576cebf10bc0f35b9fb99df7b323a744dd111..4f43f6ff06ab3b68631b8e9c8dd1e9d4a5e76880 100644
+index bc05121fcda77b1672901fa9bf05ba68af51c77c..4181eaef05589eb1f54c6a3cf76ca98a71bcfed3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3114,9 +3114,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3117,9 +3117,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (!this.player.containerMenu.stillValid(this.player)) {
ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu);
} else {
diff --git a/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 0b50c2a29f..1ac808bf27 100644
--- a/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0421-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -8,10 +8,10 @@ makes it so that the server keeps the last difficulty used instead
of restoring the server.properties every single load.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index f6b8426ddc50363991c78ae731898d1a323ef5a1..2a55f9e0ab6fa07ba913203bb62acd54add450a0 100644
+index 53876c0d957e2d151e93744eff60606096f02e66..53c0246acda9fe1242710260e250429ae51eceb8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -800,7 +800,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -798,7 +798,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (worldserver.getWorld().getKeepSpawnInMemory()) worldloadlistener.stop(); // Paper
// CraftBukkit start
// this.updateMobSpawningFlags();
@@ -20,7 +20,7 @@ index f6b8426ddc50363991c78ae731898d1a323ef5a1..2a55f9e0ab6fa07ba913203bb62acd54
this.forceTicks = false;
// CraftBukkit end
-@@ -1728,11 +1728,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1726,11 +1726,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
@@ -40,7 +40,7 @@ index f6b8426ddc50363991c78ae731898d1a323ef5a1..2a55f9e0ab6fa07ba913203bb62acd54
}
}
-@@ -1746,7 +1749,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1744,7 +1747,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
@@ -63,7 +63,7 @@ index 89be3991ef4fb2deb7276c5409cb571a7fb1f821..9c272f7cf8cbd2bbe147e57f7fabe135
return Component.translatable("commands.difficulty.success", difficulty.getDisplayName());
}, true);
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
-index 072888f891c8e25a2b4daaf561e124930df2be1e..6c1db5d6bf11184205073a4ce755e7f4e987643a 100644
+index 6a4c7783146ff6b6703e9ae814134a8d1086cf7f..1ffd3854239862414e6ceecf2764ba3d6bd7942a 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -326,7 +326,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -76,7 +76,7 @@ index 072888f891c8e25a2b4daaf561e124930df2be1e..6c1db5d6bf11184205073a4ce755e7f4
@Override
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index af6b92056d924f7cb9a7a583fd089025c95f88ad..6fe74d96659029efb6fe798fb3b3b02b619cb1f1 100644
+index 6dcac005b57234983d0ed05fe825a16c98eb4557..2040b2defecb484ee7b46a885e924483387ee8fe 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1203,7 +1203,7 @@ public class ServerPlayer extends Player {
@@ -89,10 +89,10 @@ index af6b92056d924f7cb9a7a583fd089025c95f88ad..6fe74d96659029efb6fe798fb3b3b02b
playerlist.sendPlayerPermissionLevel(this);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 04a9cef0a80aaa401ce0ed560a16f3ada6e6a953..391eed0b5631732d799c858d35f0c31b88f05123 100644
+index e6b53060aaf7c2b7ed8b24240be2bbe7cc962f67..a7429a2efb6100033552d5bf2d7731d1d5c6c7df 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3352,7 +3352,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3355,7 +3355,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
public void handleChangeDifficulty(ServerboundChangeDifficultyPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (this.player.hasPermissions(2) || this.isSingleplayerOwner()) {
@@ -102,10 +102,10 @@ index 04a9cef0a80aaa401ce0ed560a16f3ada6e6a953..391eed0b5631732d799c858d35f0c31b
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4971e0d7254807a27123721dad24a7985b32cf87..07368f2156c46654b72205cea27c20fd5e0a105b 100644
+index 3062d9bc3582d7468000ec3b51bf47acfc628e71..7d6e44ca0a373ad1ee46bc1fc3162585cfa0d747 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -964,8 +964,8 @@ public final class CraftServer implements Server {
+@@ -971,8 +971,8 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
for (ServerLevel world : this.console.getAllLevels()) {
@@ -117,10 +117,10 @@ index 4971e0d7254807a27123721dad24a7985b32cf87..07368f2156c46654b72205cea27c20fd
for (SpawnCategory spawnCategory : SpawnCategory.values()) {
if (CraftSpawnCategory.isValidForLimits(spawnCategory)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 62a3e2819510a056707dadf79a8e4fc5a9772fd9..6fc18bdcaa181b72f4b73041a4eb71757413a204 100644
+index e3308c3e93abf80022a16166c3cc522da8221f34..f186be0b65808247077f075c2a2d3af6daa40711 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1145,7 +1145,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1150,7 +1150,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setDifficulty(Difficulty difficulty) {
diff --git a/patches/server/0425-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0425-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index 6b1cf57dd0..e01eace066 100644
--- a/patches/server/0425-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/patches/server/0425-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -22,10 +22,10 @@ wants it to collect even faster, they can restore that setting back to 1 instead
Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 07368f2156c46654b72205cea27c20fd5e0a105b..5cb5b71894597eb59201cfd1d5489d516cb7dbd0 100644
+index 7d6e44ca0a373ad1ee46bc1fc3162585cfa0d747..925079abb26fc658770c97961fb247e12b3bb216 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -377,7 +377,7 @@ public final class CraftServer implements Server {
+@@ -376,7 +376,7 @@ public final class CraftServer implements Server {
this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -34,7 +34,7 @@ index 07368f2156c46654b72205cea27c20fd5e0a105b..5cb5b71894597eb59201cfd1d5489d51
this.minimumAPI = this.configuration.getString("settings.minimum-api");
this.loadIcon();
-@@ -944,7 +944,7 @@ public final class CraftServer implements Server {
+@@ -951,7 +951,7 @@ public final class CraftServer implements Server {
this.console.setMotd(config.motd);
this.overrideSpawnLimits();
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -44,10 +44,10 @@ index 07368f2156c46654b72205cea27c20fd5e0a105b..5cb5b71894597eb59201cfd1d5489d51
this.printSaveWarning = false;
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca13193acee 100644
+index f186be0b65808247077f075c2a2d3af6daa40711..c00a76408b6c800bf81b2de9565c95111940c365 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -280,7 +280,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -279,7 +279,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk getChunkAt(int x, int z) {
@@ -62,7 +62,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
return new CraftChunk(chunk);
}
-@@ -294,6 +300,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -293,6 +299,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return new CraftChunk(this.getHandle(), x, z);
}
@@ -75,7 +75,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
@Override
public Chunk getChunkAt(Block block) {
Preconditions.checkArgument(block != null, "null block");
-@@ -359,7 +371,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -358,7 +370,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean unloadChunkRequest(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
if (this.isChunkLoaded(x, z)) {
@@ -84,7 +84,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
}
return true;
-@@ -445,9 +457,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -444,9 +456,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
// Paper start - Optimize this method
ChunkPos chunkPos = new ChunkPos(x, z);
@@ -98,7 +98,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
if (immediate == null) {
immediate = world.getChunkSource().chunkMap.getUnloadingChunk(x, z);
}
-@@ -455,7 +470,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -454,7 +469,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!(immediate instanceof ImposterProtoChunk) && !(immediate instanceof net.minecraft.world.level.chunk.LevelChunk)) {
return false; // not full status
}
@@ -107,7 +107,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
world.getChunk(x, z); // make sure we're at ticket level 32 or lower
return true;
}
-@@ -481,7 +496,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -480,7 +495,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// we do this so we do not re-read the chunk data on disk
}
@@ -116,7 +116,7 @@ index 6fc18bdcaa181b72f4b73041a4eb71757413a204..a70ba15318f70798e5c3d1c458d52ca1
world.getChunkSource().getChunk(x, z, ChunkStatus.FULL, true);
return true;
// Paper end
-@@ -2201,6 +2216,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2208,6 +2223,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
io.papermc.paper.chunk.system.ChunkSystem.scheduleChunkLoad(this.getHandle(), x, z, gen, ChunkStatus.FULL, true, priority, (c) -> {
net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk)c;
diff --git a/patches/server/0426-incremental-chunk-and-player-saving.patch b/patches/server/0426-incremental-chunk-and-player-saving.patch
index e6627af798..391666870e 100644
--- a/patches/server/0426-incremental-chunk-and-player-saving.patch
+++ b/patches/server/0426-incremental-chunk-and-player-saving.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] incremental chunk and player saving
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2a55f9e0ab6fa07ba913203bb62acd54add450a0..7bd02abf039f7e047b6b6b1de0bc478884f5afa4 100644
+index 53c0246acda9fe1242710260e250429ae51eceb8..56e98ea2964c2779537ac607b7c4677bc695d92a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -873,7 +873,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -871,7 +871,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
try {
this.isSaving = true;
@@ -17,7 +17,7 @@ index 2a55f9e0ab6fa07ba913203bb62acd54add450a0..7bd02abf039f7e047b6b6b1de0bc4788
flag3 = this.saveAllChunks(suppressLogs, flush, force);
} finally {
this.isSaving = false;
-@@ -1383,13 +1383,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1381,13 +1381,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.status = this.buildServerStatus();
}
@@ -115,7 +115,7 @@ index e96890be7f03b7cc846fe850d4169e09b5d40eab..02ba7e25c649832aba2e742cb76be9d2
// Paper start - rewrite chunk system - add close param
this.save(progressListener, flush, savingDisabled, false);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 6fe74d96659029efb6fe798fb3b3b02b619cb1f1..bdc7b67b4302a217071c2087732bbd789309fea3 100644
+index 2040b2defecb484ee7b46a885e924483387ee8fe..c22acc5e6333f8cc9b734bff48bb9ff7a00bfd4d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -189,6 +189,7 @@ import org.bukkit.inventory.MainHand;
@@ -127,7 +127,7 @@ index 6fe74d96659029efb6fe798fb3b3b02b619cb1f1..bdc7b67b4302a217071c2087732bbd78
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
public ServerGamePacketListenerImpl connection;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8a67971d67230b30b769eea5745919946d868bd8..3c98a55a1b9eee854d8c48af449b876d3a46501f 100644
+index 97199ae30edfaaacb9ea9d29846ee131395815e6..a8dcd1a07b835f665c74a8a531fef84435716b13 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -535,6 +535,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0429-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0429-Convert-legacy-attributes-in-Item-Meta.patch
index 88a4ffd540..c8376d2ce9 100644
--- a/patches/server/0429-Convert-legacy-attributes-in-Item-Meta.patch
+++ b/patches/server/0429-Convert-legacy-attributes-in-Item-Meta.patch
@@ -30,10 +30,10 @@ index fac4097be2ee3d0bffbc92fb217f98831e78d6b3..233e372ba5d785352c9ac12dac37395b
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 7dfe2e229dd8498a32a74dbfca5c078852b251d3..bad63f59d9082ef9e50f0b43a4cce9bba19018f2 100644
+index 7c803a928f41938c03b0239cf04e2ee765ecefb8..3d500e8be2478840669b236421c6908f8d288014 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -484,7 +484,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -483,7 +483,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
diff --git a/patches/server/0432-Support-components-in-ItemMeta.patch b/patches/server/0432-Support-components-in-ItemMeta.patch
index 17d8cae3d6..45ae7502c3 100644
--- a/patches/server/0432-Support-components-in-ItemMeta.patch
+++ b/patches/server/0432-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 bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98ca6168cb3 100644
+index 3d500e8be2478840669b236421c6908f8d288014..fa94030ac80c8c68ee429e6b7350395208e4348f 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -878,11 +878,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -877,11 +877,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return CraftChatMessage.fromJSONComponent(displayName);
}
@@ -32,7 +32,7 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
@Override
public boolean hasDisplayName() {
return this.displayName != null;
-@@ -1025,6 +1037,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1024,6 +1036,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return this.lore == null ? null : new ArrayList<String>(Lists.transform(this.lore, CraftChatMessage::fromJSONComponent));
}
@@ -47,7 +47,7 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
@Override
public void setLore(List<String> lore) {
if (lore == null || lore.isEmpty()) {
-@@ -1039,6 +1059,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1038,6 +1058,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -69,7 +69,7 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
@Override
public boolean hasCustomModelData() {
return this.customModelData != null;
-@@ -1507,6 +1542,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1506,6 +1541,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
for (Object object : addFrom) {
@@ -79,5 +79,5 @@ index bad63f59d9082ef9e50f0b43a4cce9bba19018f2..93d40df438a0d95b32def9a6c206b98c
+ } else
+ // Paper end
if (!(object instanceof String)) {
- if (object != null) {
- throw new IllegalArgumentException(addFrom + " cannot contain non-string " + object.getClass().getName());
+ Preconditions.checkArgument(object == null, "%s cannot contain non-string %s", addFrom, object.getClass().getName());
+
diff --git a/patches/server/0434-Add-entity-liquid-API.patch b/patches/server/0434-Add-entity-liquid-API.patch
index 471592096c..b9499300da 100644
--- a/patches/server/0434-Add-entity-liquid-API.patch
+++ b/patches/server/0434-Add-entity-liquid-API.patch
@@ -8,10 +8,10 @@ public net.minecraft.world.entity.Entity isInRain()Z
public net.minecraft.world.entity.Entity isInBubbleColumn()Z
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 5d8532bc2c4253aa3941ff8c4d48cc8c3860b3b0..5d01b33df41ecc51e2c2b44bad34a65e823d69ce 100644
+index e237320b2703a1281fab47f24516e8b7d83677be..c480cddf693ec9f42b0e8a8aec3cc7828e337312 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1308,5 +1308,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1301,5 +1301,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() {
return getHandle().spawnReason;
}
diff --git a/patches/server/0437-Add-PrepareResultEvent.patch b/patches/server/0437-Add-PrepareResultEvent.patch
index 2d660c5c5e..b01a35ac4d 100644
--- a/patches/server/0437-Add-PrepareResultEvent.patch
+++ b/patches/server/0437-Add-PrepareResultEvent.patch
@@ -94,10 +94,10 @@ index 8734a129244271b370f965fcbf488a14ce04684a..00f01ab2eff69c18b50ec07b7623af66
private void setupRecipeList(Container input, ItemStack stack) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 7af0710c40c1453bd0bd8ecb4ea7606bbe76c20f..2502da6e68f97a7c37f1756d6845e531da1663c3 100644
+index f35cba8f45f96cd9504ccce73fea592532c36702..019a486f40256771341358509a5abe0b1284d248 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1624,26 +1624,53 @@ public class CraftEventFactory {
+@@ -1628,26 +1628,53 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0449-Brand-support.patch b/patches/server/0449-Brand-support.patch
index b8829974eb..f67a62f7fe 100644
--- a/patches/server/0449-Brand-support.patch
+++ b/patches/server/0449-Brand-support.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00647dfc66 100644
+index a7429a2efb6100033552d5bf2d7731d1d5c6c7df..5fb375ac652029441147ffefd3305683288ee058 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -302,6 +302,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -17,7 +17,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) {
this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH);
this.lastSeenMessages = new LastSeenMessagesValidator(20);
-@@ -3307,6 +3309,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3310,6 +3312,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private static final ResourceLocation CUSTOM_REGISTER = new ResourceLocation("register");
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
@@ -26,7 +26,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
-@@ -3334,6 +3338,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3337,6 +3341,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
try {
byte[] data = new byte[packet.data.readableBytes()];
packet.data.readBytes(data);
@@ -42,7 +42,7 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data);
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
-@@ -3343,6 +3356,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3346,6 +3359,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
@@ -56,10 +56,10 @@ index 391eed0b5631732d799c858d35f0c31b88f05123..3376cf61fdb06292ed02735990f84b00
return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 60ae0913501dd9c2d28685c7b50709a5e572dfec..fec01a106a6210db04600c29737294370baa04d1 100644
+index ef2476afc452c83be28c97d9860e27368ded5254..9cfd26baef0fa878e8e0420750cd512bdff12ac5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2958,6 +2958,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2896,6 +2896,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};
diff --git a/patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch
index 7b471758ee..c2a653b423 100644
--- a/patches/server/0451-Add-playPickupItemAnimation-to-LivingEntity.patch
+++ b/patches/server/0450-Add-playPickupItemAnimation-to-LivingEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add playPickupItemAnimation to LivingEntity
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 658d4dbb45d17e7064f69b10af8fbfa473a8dffe..fb783efc63e8c782e34380ff98d92b644ea2665c 100644
+index 2f6ba5525a014dfb3ce2efae765e501e8cd1c1c1..97286605e33436f3e4a7b7ad319d2b2870d7029a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -901,5 +901,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -898,5 +898,10 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
((Mob) getHandle()).getJumpControl().jump();
}
}
diff --git a/patches/server/0450-Add-setMaxPlayers-API.patch b/patches/server/0450-Add-setMaxPlayers-API.patch
deleted file mode 100644
index d9d32089c2..0000000000
--- a/patches/server/0450-Add-setMaxPlayers-API.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mariell Hoversholm <[email protected]>
-Date: Sat, 22 Aug 2020 23:59:30 +0200
-Subject: [PATCH] Add #setMaxPlayers API
-
-
-diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 36715e8bc9047962a2ced70d6838672159665771..b810ae5536cc1a64d44266f2158db0f6930429ff 100644
---- a/src/main/java/net/minecraft/server/players/PlayerList.java
-+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -155,7 +155,7 @@ public abstract class PlayerList {
- private boolean doWhiteList;
- private final LayeredRegistryAccess<RegistryLayer> registries;
- private final RegistryAccess.Frozen synchronizedRegistries;
-- protected final int maxPlayers;
-+ protected int maxPlayers; public final void setMaxPlayers(int maxPlayers) { this.maxPlayers = maxPlayers; } // Paper - remove final and add setter
- private int viewDistance;
- private int simulationDistance;
- private boolean allowCheatsForAllPlayers;
-diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5cb5b71894597eb59201cfd1d5489d516cb7dbd0..371b3af8cb76b9fffecf0a38dbf3687ac1bdf826 100644
---- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -672,6 +672,13 @@ public final class CraftServer implements Server {
- return this.playerList.getMaxPlayers();
- }
-
-+ // Paper start
-+ @Override
-+ public void setMaxPlayers(int maxPlayers) {
-+ this.playerList.setMaxPlayers(maxPlayers);
-+ }
-+ // Paper end
-+
- // NOTE: These are dependent on the corresponding call in MinecraftServer
- // so if that changes this will need to as well
- @Override
diff --git a/patches/server/0452-Don-t-require-FACING-data.patch b/patches/server/0451-Don-t-require-FACING-data.patch
index fd2ab14906..fd2ab14906 100644
--- a/patches/server/0452-Don-t-require-FACING-data.patch
+++ b/patches/server/0451-Don-t-require-FACING-data.patch
diff --git a/patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
index 92c638424c..f2e60fe1de 100644
--- a/patches/server/0453-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
+++ b/patches/server/0452-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
@@ -21,10 +21,10 @@ index 02ba7e25c649832aba2e742cb76be9d2b6b6f954..babc90ed1a85756545ac2b7631853d09
// if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add
this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a70ba15318f70798e5c3d1c458d52ca13193acee..7fc85b00fa2c9caa832247e2e95de231e8377ec2 100644
+index c00a76408b6c800bf81b2de9565c95111940c365..133a5b30b4cdca091f7eae9fccc5bb7d03ace432 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -260,12 +260,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -259,12 +259,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean setSpawnLocation(int x, int y, int z, float angle) {
try {
diff --git a/patches/server/0454-Add-moon-phase-API.patch b/patches/server/0453-Add-moon-phase-API.patch
index 0ed4a4e540..4fb9522173 100644
--- a/patches/server/0454-Add-moon-phase-API.patch
+++ b/patches/server/0453-Add-moon-phase-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add moon phase API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index cb6f5fc352aff449173825d4e7fad9fccb9df915..5f9c3c237b65986f8c425bbc691ac301f8fdebbc 100644
+index bdc752631136a4abe903e7a8f182e9eda480fcb6..a9cad569f9c71f9818d1b831983f71aae367d98e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -984,4 +984,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -980,4 +980,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
}
diff --git a/patches/server/0455-Prevent-headless-pistons-from-being-created.patch b/patches/server/0454-Prevent-headless-pistons-from-being-created.patch
index a995521d2b..a995521d2b 100644
--- a/patches/server/0455-Prevent-headless-pistons-from-being-created.patch
+++ b/patches/server/0454-Prevent-headless-pistons-from-being-created.patch
diff --git a/patches/server/0456-Add-BellRingEvent.patch b/patches/server/0455-Add-BellRingEvent.patch
index ca9b774a3d..f9865e6e0b 100644
--- a/patches/server/0456-Add-BellRingEvent.patch
+++ b/patches/server/0455-Add-BellRingEvent.patch
@@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a
village bell. Passes along the bell block and the player who rang it.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 2502da6e68f97a7c37f1756d6845e531da1663c3..6528757c99c55c1d9926da89efed468def758af3 100644
+index 019a486f40256771341358509a5abe0b1284d248..9761302bb1ca66242ae46d26001837dd881cb9fa 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -332,10 +332,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0457-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0456-Add-zombie-targets-turtle-egg-config.patch
index e07acc412d..e07acc412d 100644
--- a/patches/server/0457-Add-zombie-targets-turtle-egg-config.patch
+++ b/patches/server/0456-Add-zombie-targets-turtle-egg-config.patch
diff --git a/patches/server/0458-Buffer-joins-to-world.patch b/patches/server/0457-Buffer-joins-to-world.patch
index 8c45d682cf..8c45d682cf 100644
--- a/patches/server/0458-Buffer-joins-to-world.patch
+++ b/patches/server/0457-Buffer-joins-to-world.patch
diff --git a/patches/server/0459-Eigencraft-redstone-implementation.patch b/patches/server/0458-Eigencraft-redstone-implementation.patch
index 983cc81cfe..983cc81cfe 100644
--- a/patches/server/0459-Eigencraft-redstone-implementation.patch
+++ b/patches/server/0458-Eigencraft-redstone-implementation.patch
diff --git a/patches/server/0460-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0459-Fix-hex-colors-not-working-in-some-kick-messages.patch
index d0a1da33db..d0a1da33db 100644
--- a/patches/server/0460-Fix-hex-colors-not-working-in-some-kick-messages.patch
+++ b/patches/server/0459-Fix-hex-colors-not-working-in-some-kick-messages.patch
diff --git a/patches/server/0461-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0460-PortalCreateEvent-needs-to-know-its-entity.patch
index 0a2a329a6d..0a2a329a6d 100644
--- a/patches/server/0461-PortalCreateEvent-needs-to-know-its-entity.patch
+++ b/patches/server/0460-PortalCreateEvent-needs-to-know-its-entity.patch
diff --git a/patches/server/0463-Add-more-Evoker-API.patch b/patches/server/0461-Add-more-Evoker-API.patch
index 0fce1f166a..0fce1f166a 100644
--- a/patches/server/0463-Add-more-Evoker-API.patch
+++ b/patches/server/0461-Add-more-Evoker-API.patch
diff --git a/patches/server/0464-Add-methods-to-get-translation-keys.patch b/patches/server/0462-Add-methods-to-get-translation-keys.patch
index b75c005413..f0730a4081 100644
--- a/patches/server/0464-Add-methods-to-get-translation-keys.patch
+++ b/patches/server/0462-Add-methods-to-get-translation-keys.patch
@@ -10,10 +10,10 @@ public org.bukkit.craftbukkit.inventory.CraftMetaFirework getNBT(Lorg/bukkit/Fir
Co-authored-by: MeFisto94 <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index c67de2f3bb8b048b8432add4adcb9e6042fb65ad..f92b0151d9e2655191a3a7a009c5da66022dddc1 100644
+index 5534348ddb3ac42b6b8a687816c2c8c1858e3b3e..d2d5a43cfdf294ccc9353258250f5a990e205b88 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -696,5 +696,10 @@ public class CraftBlock implements Block {
+@@ -694,5 +694,10 @@ public class CraftBlock implements Block {
public org.bukkit.SoundGroup getBlockSoundGroup() {
return org.bukkit.craftbukkit.CraftSoundGroup.getSoundGroup(this.getNMS().getSoundType());
}
diff --git a/patches/server/0462-Fix-CraftTeam-null-check.patch b/patches/server/0462-Fix-CraftTeam-null-check.patch
deleted file mode 100644
index fc8ca37076..0000000000
--- a/patches/server/0462-Fix-CraftTeam-null-check.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: foss-mc <[email protected]>
-Date: Sun, 30 Aug 2020 15:30:29 +0800
-Subject: [PATCH] Fix CraftTeam null check
-
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 18d5a26c34c848241c306241b3ad9825b5a0b9a9..60b1cffdccde4715832546d6edbf206fbab4e82f 100644
---- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -261,7 +261,7 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
-
- @Override
- public boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException {
-- Validate.notNull("Entry cannot be null");
-+ Validate.notNull(entry, "Entry cannot be null"); // Paper
-
- CraftScoreboard scoreboard = this.checkState();
-
diff --git a/patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch
index bfa68eb6cf..042efb92e7 100644
--- a/patches/server/0465-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/server/0463-Create-HoverEvent-from-ItemStack-Entity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index f81ed24f624ff6f99ccad8361209cc409c6b9187..f5610d0746b67dfe69dc79d71c4d082c083f2ee4 100644
+index f8475390d69bef6f3eca5a57d5f44021fabf4942..21f5c0f2fc10b5f5752e214a08e858227bdcf2ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -473,5 +473,40 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -468,5 +468,40 @@ public final class CraftItemFactory implements ItemFactory {
return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null;
}
diff --git a/patches/server/0466-Cache-block-data-strings.patch b/patches/server/0464-Cache-block-data-strings.patch
index bc9070803a..061e7147d7 100644
--- a/patches/server/0466-Cache-block-data-strings.patch
+++ b/patches/server/0464-Cache-block-data-strings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Cache block data strings
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 7bd02abf039f7e047b6b6b1de0bc478884f5afa4..5ae2fbc6db0bcffe46669f1d73f8b4347165bd0a 100644
+index 56e98ea2964c2779537ac607b7c4677bc695d92a..0ed8add0a2acec7d109f9687b7d77967a7ccdf3e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2051,6 +2051,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2049,6 +2049,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getPlayerList().reloadResources();
this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary());
this.structureTemplateManager.onResourceManagerReload(this.resources.resourceManager);
diff --git a/patches/server/0467-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0465-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index f3c527b5a3..63f17d8950 100644
--- a/patches/server/0467-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0465-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -9,7 +9,7 @@ as this is how Vanilla teleports entities.
Cancel any pending motion when teleported.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3376cf61fdb06292ed02735990f84b00647dfc66..b0d43cda858373d1e15f795d0b216cbdc7936db1 100644
+index 5fb375ac652029441147ffefd3305683288ee058..7248010828b361425a83da7671deac27b4504ccd 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -760,7 +760,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -21,7 +21,7 @@ index 3376cf61fdb06292ed02735990f84b00647dfc66..b0d43cda858373d1e15f795d0b216cbd
this.lastGoodX = this.awaitingPositionFromClient.x;
this.lastGoodY = this.awaitingPositionFromClient.y;
this.lastGoodZ = this.awaitingPositionFromClient.z;
-@@ -1656,7 +1656,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1659,7 +1659,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// CraftBukkit end
this.awaitingTeleportTime = this.tickCount;
@@ -31,7 +31,7 @@ index 3376cf61fdb06292ed02735990f84b00647dfc66..b0d43cda858373d1e15f795d0b216cbd
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 886db1055c69f2b0ce7a5bf61e53d3b1119d2c19..d3088ffcf5f92ff5c49fe8b25292ef176ac6c3f3 100644
+index 5a1959a16070a49e935bfd7a43fbf3fabdd2b1e6..11675a7611a42277ed0625509aa98a2f69611698 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -159,6 +159,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -57,7 +57,7 @@ index 886db1055c69f2b0ce7a5bf61e53d3b1119d2c19..d3088ffcf5f92ff5c49fe8b25292ef17
this.setYRot(yaw);
this.setXRot(pitch);
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index 65d78f1c93c98695e9a4369693f54751d3a69b25..c63d5df91726839471c1eaaf7fafab3fa1be153b 100644
+index 369298dfd437c1c83801f3d4ba63484ee1b969fe..ae2b95f53e875716489821dc9b0a3a35039bfcc9 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -167,6 +167,7 @@ public abstract class BaseSpawner {
@@ -69,7 +69,7 @@ index 65d78f1c93c98695e9a4369693f54751d3a69b25..c63d5df91726839471c1eaaf7fafab3f
if (entity instanceof Mob) {
Mob entityinsentient = (Mob) entity;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 5d01b33df41ecc51e2c2b44bad34a65e823d69ce..7fb674cea2953b10c26f1a2c3b3369ab7767324b 100644
+index c480cddf693ec9f42b0e8a8aec3cc7828e337312..4002311a4f8a0b137f743a0a1ded52587719765b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -574,7 +574,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0468-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0466-Add-additional-open-container-api-to-HumanEntity.patch
index 5437a813cb..18fdf7d704 100644
--- a/patches/server/0468-Add-additional-open-container-api-to-HumanEntity.patch
+++ b/patches/server/0466-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/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 35ef23db3e135c8057ea00ef0930628bced54779..c9ddfde5f9774f96731e86fa57ee002e8db62c0f 100644
+index 55a3035516552f4d429ae5f36bacb1b4c4d5666c..b0d2038cf2622c8ee7f810026ed735ff954d7ad0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -463,6 +463,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -461,6 +461,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return this.getHandle().containerMenu.getBukkitView();
}
diff --git a/patches/server/0469-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0467-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
index b5d192ac20..b5d192ac20 100644
--- a/patches/server/0469-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
+++ b/patches/server/0467-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch
diff --git a/patches/server/0470-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0468-Extend-block-drop-capture-to-capture-all-items-added.patch
index 5ae40c5c45..5ae40c5c45 100644
--- a/patches/server/0470-Extend-block-drop-capture-to-capture-all-items-added.patch
+++ b/patches/server/0468-Extend-block-drop-capture-to-capture-all-items-added.patch
diff --git a/patches/server/0471-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0469-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
index 361f28f1ff..0ce23cbd0f 100644
--- a/patches/server/0471-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
+++ b/patches/server/0469-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index d3088ffcf5f92ff5c49fe8b25292ef176ac6c3f3..93a8ff684cf88ee7693ed308020d02cb18ded06f 100644
+index 11675a7611a42277ed0625509aa98a2f69611698..bda94c9c34c7f1f6b56103de5be253c619b576b2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4444,4 +4444,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -21,10 +21,10 @@ index d3088ffcf5f92ff5c49fe8b25292ef176ac6c3f3..93a8ff684cf88ee7693ed308020d02cb
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 447df549a0d371389b086327b06b74aa1d6647cd..cddf16549f45bbb9a598d5677fbc2195200ba876 100644
+index 00dc3da665c295133931b80f92c19333d18b5f9a..8f8d69adb8e0a02f9540bc2feb1ccf9e6f635aab 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -514,6 +514,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -512,6 +512,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
Preconditions.checkArgument(dataVersion <= getDataVersion(), "Newer version! Server downgrades are not supported!");
return compound;
}
diff --git a/patches/server/0472-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0470-Lazily-track-plugin-scoreboards-by-default.patch
index bb0fe1c990..37ef8c7f81 100644
--- a/patches/server/0472-Lazily-track-plugin-scoreboards-by-default.patch
+++ b/patches/server/0470-Lazily-track-plugin-scoreboards-by-default.patch
@@ -14,10 +14,10 @@ this breaks your workflow you can always force all scoreboards to be tracked wit
settings.track-plugin-scoreboards in paper.yml.
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-index f367261b119ab48c1d17b2b6552cce481c6effbb..a038ede38ebb507d6a0182a4a34f2b0722ef024e 100644
+index 2471a6d0b7a8086cf4c0a41b10c05ed50d790d11..e233eef291f64622947b0b6c4559639e510c087f 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-@@ -19,6 +19,7 @@ import org.bukkit.scoreboard.Team;
+@@ -18,6 +18,7 @@ import org.bukkit.scoreboard.Team;
public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
final Scoreboard board;
@@ -25,21 +25,21 @@ index f367261b119ab48c1d17b2b6552cce481c6effbb..a038ede38ebb507d6a0182a4a34f2b07
CraftScoreboard(Scoreboard board) {
this.board = board;
-@@ -52,6 +53,12 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
- Validate.notNull(renderType, "RenderType cannot be null");
- Validate.isTrue(name.length() <= Short.MAX_VALUE, "The name '" + name + "' is longer than the limit of 32767 characters");
- Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
+@@ -50,6 +51,12 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+ Preconditions.checkArgument(renderType != null, "RenderType cannot be null");
+ Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length());
+ Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name);
+ // Paper start - the block comment from the old registerNewObjective didnt cause a conflict when rebasing, so this block wasn't added to the adventure registerNewObjective
-+ if (((CraftCriteria) criteria).criteria != net.minecraft.world.scores.criteria.ObjectiveCriteria.DUMMY && !registeredGlobally) {
++ if (((CraftCriteria) criteria).criteria != net.minecraft.world.scores.criteria.ObjectiveCriteria.DUMMY && !this.registeredGlobally) {
+ net.minecraft.server.MinecraftServer.getServer().server.getScoreboardManager().registerScoreboardForVanilla(this);
-+ registeredGlobally = true;
++ this.registeredGlobally = true;
+ }
+ // Paper end
net.minecraft.world.scores.Objective objective = board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType));
return new CraftObjective(this, objective);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
-index 71f73db28ca124a49434e9da9eb39d182b7421e2..39e19bea16419b9cbe53016084b8bbf014dcb056 100644
+index d3855731f9b63357ebe4f8f4d5941b5353dff935..6fcb2356b471c5a61faa0813a891c3898683d01f 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
@@ -30,6 +30,7 @@ public final class CraftScoreboardManager implements ScoreboardManager {
diff --git a/patches/server/0473-Entity-isTicking.patch b/patches/server/0471-Entity-isTicking.patch
index 4ff9de14be..b0c393fba7 100644
--- a/patches/server/0473-Entity-isTicking.patch
+++ b/patches/server/0471-Entity-isTicking.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 93a8ff684cf88ee7693ed308020d02cb18ded06f..13459fec2555049dccc9b0437d42fd28f823dc46 100644
+index bda94c9c34c7f1f6b56103de5be253c619b576b2..30c955cb8b1cb767e62964fea897870a88b4f310 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4449,5 +4449,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -19,10 +19,10 @@ index 93a8ff684cf88ee7693ed308020d02cb18ded06f..13459fec2555049dccc9b0437d42fd28
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 7fb674cea2953b10c26f1a2c3b3369ab7767324b..2b936e32a67c108df9a7f6b335357a25bad6d291 100644
+index 4002311a4f8a0b137f743a0a1ded52587719765b..702987ef563db2e0819771e8c3be822e4644ee3f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1343,5 +1343,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1336,5 +1336,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isInLava() {
return getHandle().isInLava();
}
diff --git a/patches/server/0474-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0472-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
index a5d2ee5df9..b72f225a38 100644
--- a/patches/server/0474-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
+++ b/patches/server/0472-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 5ae2fbc6db0bcffe46669f1d73f8b4347165bd0a..b3ef498ceacfc8eca0557c3d37f99a14fd6058d0 100644
+index 0ed8add0a2acec7d109f9687b7d77967a7ccdf3e..412e5db21a83e9ca6ba5aa0d457507ce51176ebc 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2134,13 +2134,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2132,13 +2132,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (this.isEnforceWhitelist()) {
PlayerList playerlist = source.getServer().getPlayerList();
UserWhiteList whitelist = playerlist.getWhiteList();
diff --git a/patches/server/0475-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0473-Fix-Concurrency-issue-in-ShufflingList.patch
index 07c57efa62..07c57efa62 100644
--- a/patches/server/0475-Fix-Concurrency-issue-in-ShufflingList.patch
+++ b/patches/server/0473-Fix-Concurrency-issue-in-ShufflingList.patch
diff --git a/patches/server/0476-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0474-Reset-Ender-Crystals-on-Dragon-Spawn.patch
index b1477cf8eb..b1477cf8eb 100644
--- a/patches/server/0476-Reset-Ender-Crystals-on-Dragon-Spawn.patch
+++ b/patches/server/0474-Reset-Ender-Crystals-on-Dragon-Spawn.patch
diff --git a/patches/server/0477-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0475-Fix-for-large-move-vectors-crashing-server.patch
index 8c3fcee885..a4a872884b 100644
--- a/patches/server/0477-Fix-for-large-move-vectors-crashing-server.patch
+++ b/patches/server/0475-Fix-for-large-move-vectors-crashing-server.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server
Check movement distance also based on current position.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b0d43cda858373d1e15f795d0b216cbdc7936db1..c274a52cd4311350bfc2ccbac81b2c798e1c038a 100644
+index 7248010828b361425a83da7671deac27b4504ccd..8ea12aee6283ef8771009056135f878c01bd3a29 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -567,9 +567,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0478-Optimise-getType-calls.patch b/patches/server/0476-Optimise-getType-calls.patch
index 3a0de029fd..b778f30e62 100644
--- a/patches/server/0478-Optimise-getType-calls.patch
+++ b/patches/server/0476-Optimise-getType-calls.patch
@@ -41,10 +41,10 @@ index eebac2ea211f58c385b2ceb36ab911ac5e115296..d1aaca5de055fd5e3bf2c6d39ef397bb
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index f92b0151d9e2655191a3a7a009c5da66022dddc1..cd39ec0e87974be616f10321d953fd2f3af194f7 100644
+index d2d5a43cfdf294ccc9353258250f5a990e205b88..2749f81fd74e466fa6b7c1c5f08d8defc5203b3e 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -225,7 +225,7 @@ public class CraftBlock implements Block {
+@@ -224,7 +224,7 @@ public class CraftBlock implements Block {
@Override
public Material getType() {
@@ -54,10 +54,10 @@ index f92b0151d9e2655191a3a7a009c5da66022dddc1..cd39ec0e87974be616f10321d953fd2f
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-index 843a166e43f05fe987e62329593b23656c6a2abb..9068557ac50cfb26e7e3ec4ac64bac583baa582e 100644
+index 2773f47d4e7a9432ab1ccebfcdc22317ef762099..b722a207c0e745bb172d93b90e1241d7bfa173ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-@@ -167,7 +167,7 @@ public class CraftBlockState implements BlockState {
+@@ -161,7 +161,7 @@ public class CraftBlockState implements BlockState {
@Override
public Material getType() {
@@ -80,10 +80,10 @@ index cd40c4c86b1f5de37fea9c0cd71b2e7b30b9136f..58d10e8909fea652810e30bbd4b24aaa
public BlockState getState() {
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
-index ee88ff2ee86bbd3ccf3e4a0b2310f020f137ef4f..5e15feb408b8a05ec5ee393a604c8d39a91ff106 100644
+index 79b6f88a32ea5eaf77757b8cc3824b6dac1558a7..7bfb9bc9689c5d9899b572862f3fbe53812f36b1 100644
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java
-@@ -96,7 +96,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData {
+@@ -95,7 +95,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData {
@Override
public Material getType(int x, int y, int z) {
diff --git a/patches/server/0479-Villager-resetOffers.patch b/patches/server/0477-Villager-resetOffers.patch
index b964f1ff26..b964f1ff26 100644
--- a/patches/server/0479-Villager-resetOffers.patch
+++ b/patches/server/0477-Villager-resetOffers.patch
diff --git a/patches/server/0480-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0478-Retain-block-place-order-when-capturing-blockstates.patch
index 006d8e60ad..006d8e60ad 100644
--- a/patches/server/0480-Retain-block-place-order-when-capturing-blockstates.patch
+++ b/patches/server/0478-Retain-block-place-order-when-capturing-blockstates.patch
diff --git a/patches/server/0481-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0479-Reduce-blockpos-allocation-from-pathfinding.patch
index e1ea18140b..e1ea18140b 100644
--- a/patches/server/0481-Reduce-blockpos-allocation-from-pathfinding.patch
+++ b/patches/server/0479-Reduce-blockpos-allocation-from-pathfinding.patch
diff --git a/patches/server/0482-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0480-Fix-item-locations-dropped-from-campfires.patch
index b69c339697..b69c339697 100644
--- a/patches/server/0482-Fix-item-locations-dropped-from-campfires.patch
+++ b/patches/server/0480-Fix-item-locations-dropped-from-campfires.patch
diff --git a/patches/server/0483-Player-elytra-boost-API.patch b/patches/server/0481-Player-elytra-boost-API.patch
index dc24908669..6ae000f48b 100644
--- a/patches/server/0483-Player-elytra-boost-API.patch
+++ b/patches/server/0481-Player-elytra-boost-API.patch
@@ -5,19 +5,19 @@ Subject: [PATCH] Player elytra boost API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ad0b59e750f453aaf151fec8bce72b4e7f690266..7ed8b5accb01973a5e6aea20c40522da16fe6d59 100644
+index 9cfd26baef0fa878e8e0420750cd512bdff12ac5..18a2ea9b00257de057c326f6a350b9ab281ab696 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -616,6 +616,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -613,6 +613,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
throw new RuntimeException("Unknown settings type");
}
+
+ @Override
+ public org.bukkit.entity.Firework boostElytra(ItemStack firework) {
-+ Validate.isTrue(isGliding(), "Player must be gliding");
-+ Validate.isTrue(firework != null, "firework == null");
-+ Validate.isTrue(firework.getType() == Material.FIREWORK_ROCKET, "Firework must be Material.FIREWORK_ROCKET");
++ Preconditions.checkState(this.isGliding(), "Player must be gliding");
++ Preconditions.checkArgument(firework != null, "firework == null");
++ Preconditions.checkArgument(firework.getType() == Material.FIREWORK_ROCKET, "Firework must be Material.FIREWORK_ROCKET");
+
+ net.minecraft.world.item.ItemStack item = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(firework);
+ net.minecraft.world.level.Level world = ((CraftWorld) getWorld()).getHandle();
diff --git a/patches/server/0484-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0482-Fixed-TileEntityBell-memory-leak.patch
index 0cd7feb8d4..0cd7feb8d4 100644
--- a/patches/server/0484-Fixed-TileEntityBell-memory-leak.patch
+++ b/patches/server/0482-Fixed-TileEntityBell-memory-leak.patch
diff --git a/patches/server/0485-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0483-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
index 46bd818262..46bd818262 100644
--- a/patches/server/0485-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
+++ b/patches/server/0483-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch
diff --git a/patches/server/0486-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0484-Add-getOfflinePlayerIfCached-String.patch
index 178aad452d..3836224d13 100644
--- a/patches/server/0486-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/server/0484-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 371b3af8cb76b9fffecf0a38dbf3687ac1bdf826..faa073683fae16578aaa83eefc447cd2740a3491 100644
+index 925079abb26fc658770c97961fb247e12b3bb216..b6c9dd5b3fd746ef7e863c27fd581c9f23a795a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1829,6 +1829,28 @@ public final class CraftServer implements Server {
+@@ -1827,6 +1827,28 @@ public final class CraftServer implements Server {
return result;
}
@@ -16,8 +16,8 @@ index 371b3af8cb76b9fffecf0a38dbf3687ac1bdf826..faa073683fae16578aaa83eefc447cd2
+ @Override
+ @Nullable
+ public OfflinePlayer getOfflinePlayerIfCached(String name) {
-+ Validate.notNull(name, "Name cannot be null");
-+ Validate.notEmpty(name, "Name cannot be empty");
++ Preconditions.checkArgument(name != null, "Name cannot be null");
++ Preconditions.checkArgument(!name.isEmpty(), "Name cannot be empty");
+
+ OfflinePlayer result = getPlayerExact(name);
+ if (result == null) {
@@ -36,4 +36,4 @@ index 371b3af8cb76b9fffecf0a38dbf3687ac1bdf826..faa073683fae16578aaa83eefc447cd2
+
@Override
public OfflinePlayer getOfflinePlayer(UUID id) {
- Validate.notNull(id, "UUID cannot be null");
+ Preconditions.checkArgument(id != null, "UUID id cannot be null");
diff --git a/patches/server/0487-Add-ignore-discounts-API.patch b/patches/server/0485-Add-ignore-discounts-API.patch
index 74bbe0572c..74bbe0572c 100644
--- a/patches/server/0487-Add-ignore-discounts-API.patch
+++ b/patches/server/0485-Add-ignore-discounts-API.patch
diff --git a/patches/server/0488-Toggle-for-removing-existing-dragon.patch b/patches/server/0486-Toggle-for-removing-existing-dragon.patch
index 3ea483fce0..3ea483fce0 100644
--- a/patches/server/0488-Toggle-for-removing-existing-dragon.patch
+++ b/patches/server/0486-Toggle-for-removing-existing-dragon.patch
diff --git a/patches/server/0489-Fix-client-lag-on-advancement-loading.patch b/patches/server/0487-Fix-client-lag-on-advancement-loading.patch
index b71c03d78b..2f6ff73ac8 100644
--- a/patches/server/0489-Fix-client-lag-on-advancement-loading.patch
+++ b/patches/server/0487-Fix-client-lag-on-advancement-loading.patch
@@ -15,10 +15,10 @@ 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 cddf16549f45bbb9a598d5677fbc2195200ba876..fbb674d355f30f34de6bb9608e628d5c49047be6 100644
+index 8f8d69adb8e0a02f9540bc2feb1ccf9e6f635aab..355d736f2cf6580c21365be2b3a0a3cb124d6d16 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -347,7 +347,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -345,7 +345,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
Bukkit.getLogger().log(Level.SEVERE, "Error saving advancement " + key, ex);
}
diff --git a/patches/server/0490-Item-no-age-no-player-pickup.patch b/patches/server/0488-Item-no-age-no-player-pickup.patch
index 0a59edc058..0a59edc058 100644
--- a/patches/server/0490-Item-no-age-no-player-pickup.patch
+++ b/patches/server/0488-Item-no-age-no-player-pickup.patch
diff --git a/patches/server/0491-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0489-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
index 91c966567f..91c966567f 100644
--- a/patches/server/0491-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
+++ b/patches/server/0489-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
diff --git a/patches/server/0492-Beacon-API-custom-effect-ranges.patch b/patches/server/0490-Beacon-API-custom-effect-ranges.patch
index acea4bac73..acea4bac73 100644
--- a/patches/server/0492-Beacon-API-custom-effect-ranges.patch
+++ b/patches/server/0490-Beacon-API-custom-effect-ranges.patch
diff --git a/patches/server/0493-Add-API-for-quit-reason.patch b/patches/server/0491-Add-API-for-quit-reason.patch
index b42ad2079b..168509707f 100644
--- a/patches/server/0493-Add-API-for-quit-reason.patch
+++ b/patches/server/0491-Add-API-for-quit-reason.patch
@@ -25,7 +25,7 @@ index ee8d1bb909cf2a3bbe3434aa085762d952198063..f8ffc5238320d2c665d80adb1ad3786c
Connection.LOGGER.debug("Failed to sent packet", throwable);
ConnectionProtocol enumprotocol = this.getCurrentProtocol();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bdc7b67b4302a217071c2087732bbd789309fea3..a5901bedc5f74f76fa9be2668cb2b6988981fad9 100644
+index c22acc5e6333f8cc9b734bff48bb9ff7a00bfd4d..abde8074da754667d65f3894097ad2255c97f3f0 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -275,6 +275,7 @@ public class ServerPlayer extends Player {
@@ -37,7 +37,7 @@ index bdc7b67b4302a217071c2087732bbd789309fea3..a5901bedc5f74f76fa9be2668cb2b698
private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1));
public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a4233fa223bdf9b29a3d75b84ef38640331d7fb8..2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7 100644
+index 8ea12aee6283ef8771009056135f878c01bd3a29..d0d53f068f8c58f7376008e2e13942ecb3637765 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -507,6 +507,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -49,7 +49,7 @@ index a4233fa223bdf9b29a3d75b84ef38640331d7fb8..2f0cb4d692631f6485b3a70c6e15e7d9
this.connection.disconnect(ichatbasecomponent);
}));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index b810ae5536cc1a64d44266f2158db0f6930429ff..b5d39d5ec89150e71cab1efe087c5254f2b4ba97 100644
+index 31e6da864b0ddf2f65ecc43ce8ef74d6c4e9d0aa..4d04cb528044d1e09687b80f9c6c7280bd2624ae 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -573,7 +573,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0494-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0492-Add-Wandering-Trader-spawn-rate-config-options.patch
index 87891d128b..87891d128b 100644
--- a/patches/server/0494-Add-Wandering-Trader-spawn-rate-config-options.patch
+++ b/patches/server/0492-Add-Wandering-Trader-spawn-rate-config-options.patch
diff --git a/patches/server/0495-Expose-world-spawn-angle.patch b/patches/server/0493-Expose-world-spawn-angle.patch
index 708708f33c..b2ae742217 100644
--- a/patches/server/0495-Expose-world-spawn-angle.patch
+++ b/patches/server/0493-Expose-world-spawn-angle.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index b5d39d5ec89150e71cab1efe087c5254f2b4ba97..db5902a97e46213c162fc2a5a0f94d2e2d53fa5a 100644
+index 4d04cb528044d1e09687b80f9c6c7280bd2624ae..a474db28f74b698621342510d01bf38775794a8e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -837,7 +837,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0496-Add-Destroy-Speed-API.patch b/patches/server/0494-Add-Destroy-Speed-API.patch
index 76e967d4a5..067919e248 100644
--- a/patches/server/0496-Add-Destroy-Speed-API.patch
+++ b/patches/server/0494-Add-Destroy-Speed-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add Destroy Speed API
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index cd39ec0e87974be616f10321d953fd2f3af194f7..6c6867c007cec2b8364c875fbfc25c372b39351c 100644
+index 2749f81fd74e466fa6b7c1c5f08d8defc5203b3e..d035ff8390f2181fb81baec1b0287ead6da0a912 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -701,5 +701,26 @@ public class CraftBlock implements Block {
+@@ -699,5 +699,26 @@ public class CraftBlock implements Block {
public String translationKey() {
return this.getNMS().getBlock().getDescriptionId();
}
diff --git a/patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index 343d62a18d..15c419aac9 100644
--- a/patches/server/0497-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0495-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,12 +5,12 @@ 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 7ed8b5accb01973a5e6aea20c40522da16fe6d59..aa1be644a7fddee56310be9f94a25c97bfd46302 100644
+index 18a2ea9b00257de057c326f6a350b9ab281ab696..0ecd7b1bad69ab74f44effd4e4d552b3a5ba7e0a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2487,7 +2487,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- if (data != null && !particle.getDataType().isInstance(data)) {
- throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass());
+@@ -2425,7 +2425,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ if (data != null) {
+ Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
}
- ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.toNMS(particle, data), true, (float) x, (float) y, (float) z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count);
+ ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.toNMS(particle, data), true, x, y, z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count); // Paper - Fix x/y/z coordinate precision loss
diff --git a/patches/server/0498-Add-LivingEntity-clearActiveItem.patch b/patches/server/0496-Add-LivingEntity-clearActiveItem.patch
index 98b742f015..3fc9e55552 100644
--- a/patches/server/0498-Add-LivingEntity-clearActiveItem.patch
+++ b/patches/server/0496-Add-LivingEntity-clearActiveItem.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#clearActiveItem
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index fb783efc63e8c782e34380ff98d92b644ea2665c..a95825e88ba31c255292451532d18a23c8d502cb 100644
+index 97286605e33436f3e4a7b7ad319d2b2870d7029a..4bdb06c18824c99475ea7a9cc4237b0879e705a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -868,6 +868,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -865,6 +865,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return getHandle().getUseItem().asBukkitMirror();
}
diff --git a/patches/server/0499-Add-PlayerItemCooldownEvent.patch b/patches/server/0497-Add-PlayerItemCooldownEvent.patch
index 751841d117..751841d117 100644
--- a/patches/server/0499-Add-PlayerItemCooldownEvent.patch
+++ b/patches/server/0497-Add-PlayerItemCooldownEvent.patch
diff --git a/patches/server/0500-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0498-Significantly-improve-performance-of-the-end-generat.patch
index 95f0914262..95f0914262 100644
--- a/patches/server/0500-Significantly-improve-performance-of-the-end-generat.patch
+++ b/patches/server/0498-Significantly-improve-performance-of-the-end-generat.patch
diff --git a/patches/server/0501-More-lightning-API.patch b/patches/server/0499-More-lightning-API.patch
index f3cc50d6cc..f3cc50d6cc 100644
--- a/patches/server/0501-More-lightning-API.patch
+++ b/patches/server/0499-More-lightning-API.patch
diff --git a/patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch
index a71e3571a3..fadf118f7b 100644
--- a/patches/server/0502-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0500-Climbing-should-not-bypass-cramming-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 13459fec2555049dccc9b0437d42fd28f823dc46..75c54f74290d98606661b74b14757c5731cdf848 100644
+index 30c955cb8b1cb767e62964fea897870a88b4f310..2e5a20e65a7475d39c789b89955dfa06d5923b53 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2049,6 +2049,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0503-Added-missing-default-perms-for-commands.patch b/patches/server/0501-Added-missing-default-perms-for-commands.patch
index ad38e917ee..ad38e917ee 100644
--- a/patches/server/0503-Added-missing-default-perms-for-commands.patch
+++ b/patches/server/0501-Added-missing-default-perms-for-commands.patch
diff --git a/patches/server/0504-Add-PlayerShearBlockEvent.patch b/patches/server/0502-Add-PlayerShearBlockEvent.patch
index 9a31074c99..9a31074c99 100644
--- a/patches/server/0504-Add-PlayerShearBlockEvent.patch
+++ b/patches/server/0502-Add-PlayerShearBlockEvent.patch
diff --git a/patches/server/0505-Fix-curing-zombie-villager-discount-exploit.patch b/patches/server/0503-Fix-curing-zombie-villager-discount-exploit.patch
index dd95f1314d..dd95f1314d 100644
--- a/patches/server/0505-Fix-curing-zombie-villager-discount-exploit.patch
+++ b/patches/server/0503-Fix-curing-zombie-villager-discount-exploit.patch
diff --git a/patches/server/0506-Limit-recipe-packets.patch b/patches/server/0504-Limit-recipe-packets.patch
index 2db889004b..8fa525198b 100644
--- a/patches/server/0506-Limit-recipe-packets.patch
+++ b/patches/server/0504-Limit-recipe-packets.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7..904a442e28077da74d4de994d21347a50faa6ba2 100644
+index d0d53f068f8c58f7376008e2e13942ecb3637765..04bf1a4b5c36c9b4acb5ae12b67f7e28c5e73f37 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -24,7 +24,7 @@ index 2f0cb4d692631f6485b3a70c6e15e7d9ed0c3ac7..904a442e28077da74d4de994d21347a5
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -3133,6 +3135,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3136,6 +3138,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) {
diff --git a/patches/server/0507-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0505-Fix-CraftSound-backwards-compatibility.patch
index 9795fec129..9795fec129 100644
--- a/patches/server/0507-Fix-CraftSound-backwards-compatibility.patch
+++ b/patches/server/0505-Fix-CraftSound-backwards-compatibility.patch
diff --git a/patches/server/0508-Player-Chunk-Load-Unload-Events.patch b/patches/server/0506-Player-Chunk-Load-Unload-Events.patch
index 1ee144bf08..06e072f1b0 100644
--- a/patches/server/0508-Player-Chunk-Load-Unload-Events.patch
+++ b/patches/server/0506-Player-Chunk-Load-Unload-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Chunk Load/Unload Events
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index a5901bedc5f74f76fa9be2668cb2b6988981fad9..92c48e991c014f1f6bbbd1f3157ed68df6e66a76 100644
+index abde8074da754667d65f3894097ad2255c97f3f0..fa9c1f323ef372c8a8210118eae0558da58c3c4e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2232,11 +2232,21 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0509-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0507-Optimize-Dynamic-get-Missing-Keys.patch
index d664f7ff69..d664f7ff69 100644
--- a/patches/server/0509-Optimize-Dynamic-get-Missing-Keys.patch
+++ b/patches/server/0507-Optimize-Dynamic-get-Missing-Keys.patch
diff --git a/patches/server/0510-Expose-LivingEntity-hurt-direction.patch b/patches/server/0508-Expose-LivingEntity-hurt-direction.patch
index 510e241406..bb3e6f8b6b 100644
--- a/patches/server/0510-Expose-LivingEntity-hurt-direction.patch
+++ b/patches/server/0508-Expose-LivingEntity-hurt-direction.patch
@@ -18,7 +18,7 @@ index a8731cf957da9aad7ed6f5d372500bc34afd32ca..b36492efc3d6338e0099988c1ff31e72
public boolean affectsSpawning = true;
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index c9ddfde5f9774f96731e86fa57ee002e8db62c0f..8d21ca6b822dd20574d408e46ed0737642129a54 100644
+index b0d2038cf2622c8ee7f810026ed735ff954d7ad0..a8aa176b8afd45fada9529d4d0b92000299faf1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -126,6 +126,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@@ -36,10 +36,10 @@ index c9ddfde5f9774f96731e86fa57ee002e8db62c0f..8d21ca6b822dd20574d408e46ed07376
public int getSleepTicks() {
return this.getHandle().sleepCounter;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index a95825e88ba31c255292451532d18a23c8d502cb..7204d2b542d8454fe12cce1ff049363045d4f5e5 100644
+index 4bdb06c18824c99475ea7a9cc4237b0879e705a8..c74a6df6a9c3c7745daae4c0558948ea4a31d7a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -913,5 +913,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -910,5 +910,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void playPickupItemAnimation(org.bukkit.entity.Item item, int quantity) {
getHandle().take(((CraftItem) item).getHandle(), quantity);
}
diff --git a/patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index 39424b498e..92a22c8ba6 100644
--- a/patches/server/0511-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/server/0509-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6528757c99c55c1d9926da89efed468def758af3..e21d1404167ccd461359ccb0ceb90c4c809caabc 100644
+index 9761302bb1ca66242ae46d26001837dd881cb9fa..0c177a3165ea61bf31f030111084920a3a048256 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -267,6 +267,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0512-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0510-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
index 94e14e3d19..94e14e3d19 100644
--- a/patches/server/0512-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
+++ b/patches/server/0510-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch
diff --git a/patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
index d4054979d0..fae98b6a21 100644
--- a/patches/server/0513-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
+++ b/patches/server/0511-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch
@@ -219,7 +219,7 @@ index d41f44ed2e497ba3373d170c08488b49e88334c4..d3a99ba6f3085ad12b67ddc94cc4ab39
void notifyTradeUpdated(ItemStack stack);
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
-index 257776a12ca26c1e75be22a67c94b0aa012fd687..e7b8ade2c83bb72b4213d0ea93b97861ee43e599 100644
+index adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3..05af1f1cfb38e4ae4ea0ecc2d0a943cbc4063c77 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java
@@ -74,10 +74,25 @@ public class CraftMerchantCustom extends CraftMerchant {
diff --git a/patches/server/0514-Implement-TargetHitEvent.patch b/patches/server/0512-Implement-TargetHitEvent.patch
index 78722933d9..78722933d9 100644
--- a/patches/server/0514-Implement-TargetHitEvent.patch
+++ b/patches/server/0512-Implement-TargetHitEvent.patch
diff --git a/patches/server/0515-MC-4-Fix-item-position-desync.patch b/patches/server/0513-MC-4-Fix-item-position-desync.patch
index f226056cc2..08006ae1e7 100644
--- a/patches/server/0515-MC-4-Fix-item-position-desync.patch
+++ b/patches/server/0513-MC-4-Fix-item-position-desync.patch
@@ -28,7 +28,7 @@ index 5ca3ad7b3d7606accd0a58b3c708fadb349608f7..4b6e0fe2fabcc55007fd8979e81f66df
public Vec3 decode(long x, long y, long z) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 75c54f74290d98606661b74b14757c5731cdf848..76955c2bc82a9daa4bec780989bff2f1a168a85e 100644
+index 2e5a20e65a7475d39c789b89955dfa06d5923b53..e5dc024ac2dcb39ccc4f72b90e0f9b9000dd818d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4232,6 +4232,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0516-Additional-Block-Material-API-s.patch b/patches/server/0514-Additional-Block-Material-API-s.patch
index f2a9c1caf9..5704d47e95 100644
--- a/patches/server/0516-Additional-Block-Material-API-s.patch
+++ b/patches/server/0514-Additional-Block-Material-API-s.patch
@@ -9,10 +9,10 @@ process to do this in the Bukkit API
Adds API for buildable, replaceable, burnable too.
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 6c6867c007cec2b8364c875fbfc25c372b39351c..e181525525b8809c3d413047716264fd2b32cedd 100644
+index d035ff8390f2181fb81baec1b0287ead6da0a912..8958a54d1a9d6e9ad6ab09f3a587ba89ae2d817d 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -467,6 +467,25 @@ public class CraftBlock implements Block {
+@@ -465,6 +465,25 @@ public class CraftBlock implements Block {
return this.getNMS().liquid();
}
diff --git a/patches/server/0517-Fix-harming-potion-dupe.patch b/patches/server/0515-Fix-harming-potion-dupe.patch
index 7b2d745291..7b2d745291 100644
--- a/patches/server/0517-Fix-harming-potion-dupe.patch
+++ b/patches/server/0515-Fix-harming-potion-dupe.patch
diff --git a/patches/server/0518-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0516-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
index f9e803f989..f9e803f989 100644
--- a/patches/server/0518-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
+++ b/patches/server/0516-Implement-API-to-get-Material-from-Boats-and-Minecar.patch
diff --git a/patches/server/0519-Cache-burn-durations.patch b/patches/server/0517-Cache-burn-durations.patch
index 0b0a8c2b0e..0b0a8c2b0e 100644
--- a/patches/server/0519-Cache-burn-durations.patch
+++ b/patches/server/0517-Cache-burn-durations.patch
diff --git a/patches/server/0520-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0518-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
index bd783eafb5..bd783eafb5 100644
--- a/patches/server/0520-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
+++ b/patches/server/0518-Allow-disabling-mob-spawner-spawn-egg-transformation.patch
diff --git a/patches/server/0521-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0519-Fix-Not-a-string-Map-Conversion-spam.patch
index 087de88608..087de88608 100644
--- a/patches/server/0521-Fix-Not-a-string-Map-Conversion-spam.patch
+++ b/patches/server/0519-Fix-Not-a-string-Map-Conversion-spam.patch
diff --git a/patches/server/0522-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0520-Implement-PlayerFlowerPotManipulateEvent.patch
index 8f512f54d6..8f512f54d6 100644
--- a/patches/server/0522-Implement-PlayerFlowerPotManipulateEvent.patch
+++ b/patches/server/0520-Implement-PlayerFlowerPotManipulateEvent.patch
diff --git a/patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch b/patches/server/0521-Fix-interact-event-not-being-called-in-adventure.patch
index e80b09ea8c..49e76d3196 100644
--- a/patches/server/0523-Fix-interact-event-not-being-called-in-adventure.patch
+++ b/patches/server/0521-Fix-interact-event-not-being-called-in-adventure.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix interact event not being called in adventure
Call PlayerInteractEvent when left-clicking on a block in adventure mode
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 904a442e28077da74d4de994d21347a50faa6ba2..df9d65167346152d9c589e3072e3d3d6882db5c6 100644
+index 04bf1a4b5c36c9b4acb5ae12b67f7e28c5e73f37..4a20980ee00b52ee12537ad9cd9095ba3da39166 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1834,7 +1834,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1837,7 +1837,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED);
this.player.sendSystemMessage(ichatmutablecomponent, true);
@@ -18,7 +18,7 @@ index 904a442e28077da74d4de994d21347a50faa6ba2..df9d65167346152d9c589e3072e3d3d6
this.player.swing(enumhand, true);
}
}
-@@ -2470,7 +2470,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2473,7 +2473,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time
org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.1, entity -> entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity));
diff --git a/patches/server/0524-Zombie-API-breaking-doors.patch b/patches/server/0522-Zombie-API-breaking-doors.patch
index 0b6d0327e3..0b6d0327e3 100644
--- a/patches/server/0524-Zombie-API-breaking-doors.patch
+++ b/patches/server/0522-Zombie-API-breaking-doors.patch
diff --git a/patches/server/0525-Fix-nerfed-slime-when-splitting.patch b/patches/server/0523-Fix-nerfed-slime-when-splitting.patch
index ca1a39e53c..ca1a39e53c 100644
--- a/patches/server/0525-Fix-nerfed-slime-when-splitting.patch
+++ b/patches/server/0523-Fix-nerfed-slime-when-splitting.patch
diff --git a/patches/server/0526-Add-EntityLoadCrossbowEvent.patch b/patches/server/0524-Add-EntityLoadCrossbowEvent.patch
index b535c7b3fd..b535c7b3fd 100644
--- a/patches/server/0526-Add-EntityLoadCrossbowEvent.patch
+++ b/patches/server/0524-Add-EntityLoadCrossbowEvent.patch
diff --git a/patches/server/0527-Added-WorldGameRuleChangeEvent.patch b/patches/server/0525-Added-WorldGameRuleChangeEvent.patch
index 9427b774ac..ef56270b86 100644
--- a/patches/server/0527-Added-WorldGameRuleChangeEvent.patch
+++ b/patches/server/0525-Added-WorldGameRuleChangeEvent.patch
@@ -64,10 +64,10 @@ index 4a0321f56ef80aa4991e61f586ddd3f6b45e499b..de713f1ca1d61a6b1fca2b66de916255
public int get() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7fc85b00fa2c9caa832247e2e95de231e8377ec2..fea9f11cf6f665eba86d2ffde7b241910300a516 100644
+index 133a5b30b4cdca091f7eae9fccc5bb7d03ace432..9351b3b8d4d9c7069ea4ae11a49a1f7b70ffbce9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1839,8 +1839,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1845,8 +1845,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule)) return false;
@@ -82,7 +82,7 @@ index 7fc85b00fa2c9caa832247e2e95de231e8377ec2..fea9f11cf6f665eba86d2ffde7b24191
handle.onChanged(this.getHandle().getServer());
return true;
}
-@@ -1875,8 +1880,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1882,8 +1887,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!this.isGameRule(rule.getName())) return false;
diff --git a/patches/server/0528-Added-ServerResourcesReloadedEvent.patch b/patches/server/0526-Added-ServerResourcesReloadedEvent.patch
index 150d0eb7c2..4ba0ccdc24 100644
--- a/patches/server/0528-Added-ServerResourcesReloadedEvent.patch
+++ b/patches/server/0526-Added-ServerResourcesReloadedEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Added ServerResourcesReloadedEvent
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b3ef498ceacfc8eca0557c3d37f99a14fd6058d0..0ed954f83a7a045c964930247ea393cbaafcbf12 100644
+index 412e5db21a83e9ca6ba5aa0d457507ce51176ebc..d29b66d9db69309087ee2eac2561ab2fcd797eb8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2011,7 +2011,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2009,7 +2009,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return this.functionManager;
}
@@ -22,7 +22,7 @@ index b3ef498ceacfc8eca0557c3d37f99a14fd6058d0..0ed954f83a7a045c964930247ea393cb
RegistryAccess.Frozen iregistrycustom_dimension = this.registries.getAccessForLoading(RegistryLayer.RELOADABLE);
CompletableFuture<Void> completablefuture = CompletableFuture.supplyAsync(() -> {
Stream<String> stream = dataPacks.stream(); // CraftBukkit - decompile error
-@@ -2052,6 +2058,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2050,6 +2056,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary());
this.structureTemplateManager.onResourceManagerReload(this.resources.resourceManager);
org.bukkit.craftbukkit.block.data.CraftBlockData.reloadCache(); // Paper - cache block data strings, they can be defined by datapacks so refresh it here
diff --git a/patches/server/0529-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0527-Added-world-settings-for-mobs-picking-up-loot.patch
index 7228b93ce4..7228b93ce4 100644
--- a/patches/server/0529-Added-world-settings-for-mobs-picking-up-loot.patch
+++ b/patches/server/0527-Added-world-settings-for-mobs-picking-up-loot.patch
diff --git a/patches/server/0530-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0528-Implemented-BlockFailedDispenseEvent.patch
index e75b49dcf0..b1b85563fe 100644
--- a/patches/server/0530-Implemented-BlockFailedDispenseEvent.patch
+++ b/patches/server/0528-Implemented-BlockFailedDispenseEvent.patch
@@ -32,10 +32,10 @@ index 1415ad60163f6584619cc7caa61f1848d6ebaa93..801c4c120e98584bcf218a4ef9bd66d7
} 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 e21d1404167ccd461359ccb0ceb90c4c809caabc..f5d17617245c786d76277fdf7d526c0a93921053 100644
+index 0c177a3165ea61bf31f030111084920a3a048256..edd27b8e2535b520c4f6e6309269ab84799f2a3a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1918,4 +1918,12 @@ public class CraftEventFactory {
+@@ -1920,4 +1920,12 @@ public class CraftEventFactory {
return !event.isCancelled();
}
diff --git a/patches/server/0531-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0529-Added-PlayerLecternPageChangeEvent.patch
index 57485f4ee7..57485f4ee7 100644
--- a/patches/server/0531-Added-PlayerLecternPageChangeEvent.patch
+++ b/patches/server/0529-Added-PlayerLecternPageChangeEvent.patch
diff --git a/patches/server/0532-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0530-Added-PlayerLoomPatternSelectEvent.patch
index 23dca6d928..23dca6d928 100644
--- a/patches/server/0532-Added-PlayerLoomPatternSelectEvent.patch
+++ b/patches/server/0530-Added-PlayerLoomPatternSelectEvent.patch
diff --git a/patches/server/0533-Configurable-door-breaking-difficulty.patch b/patches/server/0531-Configurable-door-breaking-difficulty.patch
index 627c3d4ee2..627c3d4ee2 100644
--- a/patches/server/0533-Configurable-door-breaking-difficulty.patch
+++ b/patches/server/0531-Configurable-door-breaking-difficulty.patch
diff --git a/patches/server/0534-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0532-Empty-commands-shall-not-be-dispatched.patch
index 7f1932a7d6..7f1932a7d6 100644
--- a/patches/server/0534-Empty-commands-shall-not-be-dispatched.patch
+++ b/patches/server/0532-Empty-commands-shall-not-be-dispatched.patch
diff --git a/patches/server/0535-Implement-API-to-expose-exact-interaction-point.patch b/patches/server/0533-Implement-API-to-expose-exact-interaction-point.patch
index 74eee6a06f..b411c78421 100644
--- a/patches/server/0535-Implement-API-to-expose-exact-interaction-point.patch
+++ b/patches/server/0533-Implement-API-to-expose-exact-interaction-point.patch
@@ -18,10 +18,10 @@ index 180dc7ec0202fd6c24682631dedc066976f17fa4..43221bf57fb4eeb70823c12b48f4df0b
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 f5d17617245c786d76277fdf7d526c0a93921053..12a8e9f41dfff700a8e5b8874cf1317e6d68e43a 100644
+index edd27b8e2535b520c4f6e6309269ab84799f2a3a..3799eec69ef45c77e032faee91ce45205dcd3675 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -57,7 +57,9 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
+@@ -58,7 +58,9 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.HitResult;
diff --git a/patches/server/0536-Remove-stale-POIs.patch b/patches/server/0534-Remove-stale-POIs.patch
index 1d7cd63079..1d7cd63079 100644
--- a/patches/server/0536-Remove-stale-POIs.patch
+++ b/patches/server/0534-Remove-stale-POIs.patch
diff --git a/patches/server/0537-Fix-villager-boat-exploit.patch b/patches/server/0535-Fix-villager-boat-exploit.patch
index 9df73b39bc..b0dd823458 100644
--- a/patches/server/0537-Fix-villager-boat-exploit.patch
+++ b/patches/server/0535-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 db5902a97e46213c162fc2a5a0f94d2e2d53fa5a..9d569e4021e2727602eae65e19d77a7c0d367693 100644
+index a474db28f74b698621342510d01bf38775794a8e..13e2fb9e48ed8722b68b2ce2994d9d84bb22cee4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -598,6 +598,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0538-Add-sendOpLevel-API.patch b/patches/server/0536-Add-sendOpLevel-API.patch
index 2ce226176b..9dd111ff57 100644
--- a/patches/server/0538-Add-sendOpLevel-API.patch
+++ b/patches/server/0536-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 9d569e4021e2727602eae65e19d77a7c0d367693..adb616a519b1bba4babb92ca1042e964a2b79586 100644
+index 13e2fb9e48ed8722b68b2ce2994d9d84bb22cee4..600bb44d97b477960108ea8cd84a8e734b7e10d0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1086,6 +1086,11 @@ public abstract class PlayerList {
@@ -32,10 +32,10 @@ index 9d569e4021e2727602eae65e19d77a7c0d367693..adb616a519b1bba4babb92ca1042e964
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 aa1be644a7fddee56310be9f94a25c97bfd46302..a193b78ae1f43b1d8a48467fb082ee3bcb61831b 100644
+index 0ecd7b1bad69ab74f44effd4e4d552b3a5ba7e0a..950fa366d269bc4aca459c5f296ecf578f8ce312 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -630,6 +630,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -627,6 +627,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
? (org.bukkit.entity.Firework) entity.getBukkitEntity()
: null;
}
diff --git a/patches/server/0539-TODO-Registry-Modification-API.patch b/patches/server/0537-TODO-Registry-Modification-API.patch
index 54b86b44e7..54b86b44e7 100644
--- a/patches/server/0539-TODO-Registry-Modification-API.patch
+++ b/patches/server/0537-TODO-Registry-Modification-API.patch
diff --git a/patches/server/0540-Add-StructuresLocateEvent.patch b/patches/server/0538-Add-StructuresLocateEvent.patch
index 6486f1c83a..6486f1c83a 100644
--- a/patches/server/0540-Add-StructuresLocateEvent.patch
+++ b/patches/server/0538-Add-StructuresLocateEvent.patch
diff --git a/patches/server/0541-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0539-Collision-option-for-requiring-a-player-participant.patch
index c99dd0c6e5..90c1aec77e 100644
--- a/patches/server/0541-Collision-option-for-requiring-a-player-participant.patch
+++ b/patches/server/0539-Collision-option-for-requiring-a-player-participant.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Collision option for requiring a player participant
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 76955c2bc82a9daa4bec780989bff2f1a168a85e..a500f4becd7f97038734b460c33832388f5ca17a 100644
+index e5dc024ac2dcb39ccc4f72b90e0f9b9000dd818d..44d8e9659e111e6f9ca4e403ff4cb4e57c712ea4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1919,6 +1919,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0542-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0540-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
index 3f7c51ddfe..3f7c51ddfe 100644
--- a/patches/server/0542-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
+++ b/patches/server/0540-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch
diff --git a/patches/server/0543-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0541-Return-chat-component-with-empty-text-instead-of-thr.patch
index a508906e35..a508906e35 100644
--- a/patches/server/0543-Return-chat-component-with-empty-text-instead-of-thr.patch
+++ b/patches/server/0541-Return-chat-component-with-empty-text-instead-of-thr.patch
diff --git a/patches/server/0544-Make-schedule-command-per-world.patch b/patches/server/0542-Make-schedule-command-per-world.patch
index 8e29559590..8e29559590 100644
--- a/patches/server/0544-Make-schedule-command-per-world.patch
+++ b/patches/server/0542-Make-schedule-command-per-world.patch
diff --git a/patches/server/0545-Configurable-max-leash-distance.patch b/patches/server/0543-Configurable-max-leash-distance.patch
index 69bb7838fd..69bb7838fd 100644
--- a/patches/server/0545-Configurable-max-leash-distance.patch
+++ b/patches/server/0543-Configurable-max-leash-distance.patch
diff --git a/patches/server/0546-Implement-BlockPreDispenseEvent.patch b/patches/server/0544-Implement-BlockPreDispenseEvent.patch
index 100c2aa944..3749486d75 100644
--- a/patches/server/0546-Implement-BlockPreDispenseEvent.patch
+++ b/patches/server/0544-Implement-BlockPreDispenseEvent.patch
@@ -17,10 +17,10 @@ index 9ec043ff2cd38e589066a3eb7f42834e4e7592cf..4720b884e1e311f44a012f1219fe648a
tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 12a8e9f41dfff700a8e5b8874cf1317e6d68e43a..79451f5aec55829f41670cb4366e6971d18c6ece 100644
+index 3799eec69ef45c77e032faee91ce45205dcd3675..2567c229eb14a8bf54cd99e852a4c31fde86646d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1936,5 +1936,11 @@ public class CraftEventFactory {
+@@ -1938,5 +1938,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/0547-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0545-Added-firing-of-PlayerChangeBeaconEffectEvent.patch
index ff2199df0b..ff2199df0b 100644
--- a/patches/server/0547-Added-firing-of-PlayerChangeBeaconEffectEvent.patch
+++ b/patches/server/0545-Added-firing-of-PlayerChangeBeaconEffectEvent.patch
diff --git a/patches/server/0548-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0546-Add-toggle-for-always-placing-the-dragon-egg.patch
index 76a5cc04c4..76a5cc04c4 100644
--- a/patches/server/0548-Add-toggle-for-always-placing-the-dragon-egg.patch
+++ b/patches/server/0546-Add-toggle-for-always-placing-the-dragon-egg.patch
diff --git a/patches/server/0549-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0547-Added-PlayerStonecutterRecipeSelectEvent.patch
index 68ca096d98..68ca096d98 100644
--- a/patches/server/0549-Added-PlayerStonecutterRecipeSelectEvent.patch
+++ b/patches/server/0547-Added-PlayerStonecutterRecipeSelectEvent.patch
diff --git a/patches/server/0550-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0548-Add-dropLeash-variable-to-EntityUnleashEvent.patch
index 6ca1342382..fdcf6c0771 100644
--- a/patches/server/0550-Add-dropLeash-variable-to-EntityUnleashEvent.patch
+++ b/patches/server/0548-Add-dropLeash-variable-to-EntityUnleashEvent.patch
@@ -122,10 +122,10 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63
flag1 = true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 79451f5aec55829f41670cb4366e6971d18c6ece..484b318abe3353e551552fbebd611f9201311643 100644
+index 2567c229eb14a8bf54cd99e852a4c31fde86646d..2dc961eedf4da8175bad709fbb9f0fcce7d23330 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1558,8 +1558,10 @@ public class CraftEventFactory {
+@@ -1562,8 +1562,10 @@ public class CraftEventFactory {
return itemInHand;
}
diff --git a/patches/server/0551-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0549-Reset-shield-blocking-on-dimension-change.patch
index ba075c90aa..7e226b9e49 100644
--- a/patches/server/0551-Reset-shield-blocking-on-dimension-change.patch
+++ b/patches/server/0549-Reset-shield-blocking-on-dimension-change.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reset shield blocking on dimension change
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 92c48e991c014f1f6bbbd1f3157ed68df6e66a76..b0b1f5022455e9ab0aa8ba3ddd0d4762f1e3eb81 100644
+index fa9c1f323ef372c8a8210118eae0558da58c3c4e..fba3ac571fafd5c738d0dcfd5492112817c443e3 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1240,6 +1240,11 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0552-add-DragonEggFormEvent.patch b/patches/server/0550-add-DragonEggFormEvent.patch
index e4abf96236..e4abf96236 100644
--- a/patches/server/0552-add-DragonEggFormEvent.patch
+++ b/patches/server/0550-add-DragonEggFormEvent.patch
diff --git a/patches/server/0553-EntityMoveEvent.patch b/patches/server/0551-EntityMoveEvent.patch
index bc55cb5d10..81419d42b7 100644
--- a/patches/server/0553-EntityMoveEvent.patch
+++ b/patches/server/0551-EntityMoveEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] EntityMoveEvent
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 0ed954f83a7a045c964930247ea393cbaafcbf12..5ac5937c72286d96c394a4da90cbc4436e22ed59 100644
+index d29b66d9db69309087ee2eac2561ab2fcd797eb8..5ac0773a375d833f141f1a1754ca8a0661a0499b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1506,6 +1506,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1504,6 +1504,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
diff --git a/patches/server/0554-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0552-added-option-to-disable-pathfinding-updates-on-block.patch
index 9b9906d86e..9b9906d86e 100644
--- a/patches/server/0554-added-option-to-disable-pathfinding-updates-on-block.patch
+++ b/patches/server/0552-added-option-to-disable-pathfinding-updates-on-block.patch
diff --git a/patches/server/0555-Inline-shift-direction-fields.patch b/patches/server/0553-Inline-shift-direction-fields.patch
index f0c71d61f2..f0c71d61f2 100644
--- a/patches/server/0555-Inline-shift-direction-fields.patch
+++ b/patches/server/0553-Inline-shift-direction-fields.patch
diff --git a/patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch
index 82b65e9cec..64ee1fccfe 100644
--- a/patches/server/0556-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/server/0554-Allow-adding-items-to-BlockDropItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 484b318abe3353e551552fbebd611f9201311643..7ef3e4dd903c77fd6112e90999a474ff674a5e7f 100644
+index 2dc961eedf4da8175bad709fbb9f0fcce7d23330..64e1e46bd6c4b225fe9b86c4cf632b9bb1c4af09 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -418,13 +418,30 @@ public class CraftEventFactory {
diff --git a/patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch
index 8cfe3357dc..a387813cdf 100644
--- a/patches/server/0557-Add-getMainThreadExecutor-to-BukkitScheduler.patch
+++ b/patches/server/0555-Add-getMainThreadExecutor-to-BukkitScheduler.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getMainThreadExecutor to BukkitScheduler
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-index a423970cf7c927ea8a1bf842aaa236d3cf2d54c2..cdefb2025eedea7e204d70d568adaf1c1ec4c03c 100644
+index addf3c442a085281a7ac06245ccd741f08ed7ccb..d7ce4971d9271dbeff4adb9d852e4e7bdf60bf03 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
-@@ -655,4 +655,15 @@ public class CraftScheduler implements BukkitScheduler {
+@@ -651,4 +651,15 @@ public class CraftScheduler implements BukkitScheduler {
public BukkitTask runTaskTimerAsynchronously(Plugin plugin, BukkitRunnable task, long delay, long period) throws IllegalArgumentException {
throw new UnsupportedOperationException("Use BukkitRunnable#runTaskTimerAsynchronously(Plugin, long, long)");
}
@@ -16,9 +16,9 @@ index a423970cf7c927ea8a1bf842aaa236d3cf2d54c2..cdefb2025eedea7e204d70d568adaf1c
+ // Paper start - add getMainThreadExecutor
+ @Override
+ public Executor getMainThreadExecutor(Plugin plugin) {
-+ Validate.notNull(plugin, "Plugin cannot be null");
++ Preconditions.checkArgument(plugin != null, "Plugin cannot be null");
+ return command -> {
-+ Validate.notNull(command, "Command cannot be null");
++ Preconditions.checkArgument(command != null, "Command cannot be null");
+ this.runTask(plugin, command);
+ };
+ }
diff --git a/patches/server/0558-living-entity-allow-attribute-registration.patch b/patches/server/0556-living-entity-allow-attribute-registration.patch
index 2d3a7ab361..4c2d5f8c84 100644
--- a/patches/server/0558-living-entity-allow-attribute-registration.patch
+++ b/patches/server/0556-living-entity-allow-attribute-registration.patch
@@ -41,10 +41,10 @@ index 233e372ba5d785352c9ac12dac37395bac63315c..0e61caa5c9f21788fbeaa90ed75d23e1
return BuiltInRegistries.ATTRIBUTE.get(CraftNamespacedKey.toMinecraft(attribute.getKey()));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 7204d2b542d8454fe12cce1ff049363045d4f5e5..37148ccf704dd8e5aa7d9ab100e6df142e822255 100644
+index c74a6df6a9c3c7745daae4c0558948ea4a31d7a6..63a1522071ec6e9a550598b04c1a901ff76a5c78 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -705,6 +705,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -702,6 +702,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().craftAttributes.getAttribute(attribute);
}
diff --git a/patches/server/0559-fix-dead-slime-setSize-invincibility.patch b/patches/server/0557-fix-dead-slime-setSize-invincibility.patch
index 91a270bc9e..91a270bc9e 100644
--- a/patches/server/0559-fix-dead-slime-setSize-invincibility.patch
+++ b/patches/server/0557-fix-dead-slime-setSize-invincibility.patch
diff --git a/patches/server/0560-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0558-Merchant-getRecipes-should-return-an-immutable-list.patch
index cbb0cdc052..cbb0cdc052 100644
--- a/patches/server/0560-Merchant-getRecipes-should-return-an-immutable-list.patch
+++ b/patches/server/0558-Merchant-getRecipes-should-return-an-immutable-list.patch
diff --git a/patches/server/0561-Expose-Tracked-Players.patch b/patches/server/0559-Expose-Tracked-Players.patch
index d84718662d..35f7177f1c 100644
--- a/patches/server/0561-Expose-Tracked-Players.patch
+++ b/patches/server/0559-Expose-Tracked-Players.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 2b936e32a67c108df9a7f6b335357a25bad6d291..bed8b8d3091216856168277af7f51c54b5b1e1f1 100644
+index 702987ef563db2e0819771e8c3be822e4644ee3f..d3eaf054b1815003934e7f2d904a05a5d8abc3a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1348,5 +1348,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1341,5 +1341,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isTicking() {
return getHandle().isTicking();
}
diff --git a/patches/server/0562-Remove-streams-from-SensorNearest.patch b/patches/server/0560-Remove-streams-from-SensorNearest.patch
index a7ae5d1a98..a7ae5d1a98 100644
--- a/patches/server/0562-Remove-streams-from-SensorNearest.patch
+++ b/patches/server/0560-Remove-streams-from-SensorNearest.patch
diff --git a/patches/server/0563-Throw-proper-exception-on-empty-JsonList-file.patch b/patches/server/0561-Throw-proper-exception-on-empty-JsonList-file.patch
index e013e32526..e013e32526 100644
--- a/patches/server/0563-Throw-proper-exception-on-empty-JsonList-file.patch
+++ b/patches/server/0561-Throw-proper-exception-on-empty-JsonList-file.patch
diff --git a/patches/server/0564-Improve-ServerGUI.patch b/patches/server/0562-Improve-ServerGUI.patch
index 9606c8a72f..9606c8a72f 100644
--- a/patches/server/0564-Improve-ServerGUI.patch
+++ b/patches/server/0562-Improve-ServerGUI.patch
diff --git a/patches/server/0565-fix-converting-txt-to-json-file.patch b/patches/server/0563-fix-converting-txt-to-json-file.patch
index 5c89a8730e..a47425eac7 100644
--- a/patches/server/0565-fix-converting-txt-to-json-file.patch
+++ b/patches/server/0563-fix-converting-txt-to-json-file.patch
@@ -48,7 +48,7 @@ index 1ffd3854239862414e6ceecf2764ba3d6bd7942a..030b6e33fe80f6c50c473dbaa8f9aa9d
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 adb616a519b1bba4babb92ca1042e964a2b79586..063aed795bb668c62f69d0c93ffc6d939af681ad 100644
+index 600bb44d97b477960108ea8cd84a8e734b7e10d0..6d333b75f898fc34c7e739a1246a202329f1b9ff 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -186,6 +186,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0566-Add-worldborder-events.patch b/patches/server/0564-Add-worldborder-events.patch
index 176d1259e4..176d1259e4 100644
--- a/patches/server/0566-Add-worldborder-events.patch
+++ b/patches/server/0564-Add-worldborder-events.patch
diff --git a/patches/server/0567-added-PlayerNameEntityEvent.patch b/patches/server/0565-added-PlayerNameEntityEvent.patch
index d5a8060153..d5a8060153 100644
--- a/patches/server/0567-added-PlayerNameEntityEvent.patch
+++ b/patches/server/0565-added-PlayerNameEntityEvent.patch
diff --git a/patches/server/0568-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0566-Prevent-grindstones-from-overstacking-items.patch
index dc68619ad1..dc68619ad1 100644
--- a/patches/server/0568-Prevent-grindstones-from-overstacking-items.patch
+++ b/patches/server/0566-Prevent-grindstones-from-overstacking-items.patch
diff --git a/patches/server/0569-Add-recipe-to-cook-events.patch b/patches/server/0567-Add-recipe-to-cook-events.patch
index 6599e0cc50..6599e0cc50 100644
--- a/patches/server/0569-Add-recipe-to-cook-events.patch
+++ b/patches/server/0567-Add-recipe-to-cook-events.patch
diff --git a/patches/server/0570-Add-Block-isValidTool.patch b/patches/server/0568-Add-Block-isValidTool.patch
index d525f7d600..6130e68ff2 100644
--- a/patches/server/0570-Add-Block-isValidTool.patch
+++ b/patches/server/0568-Add-Block-isValidTool.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Block#isValidTool
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e181525525b8809c3d413047716264fd2b32cedd..30fc626f51437e254993edd9b14337fa60ba313c 100644
+index 8958a54d1a9d6e9ad6ab09f3a587ba89ae2d817d..582f1c07da8edc88dda9463992bb8503fcb9e163 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -741,5 +741,9 @@ public class CraftBlock implements Block {
+@@ -739,5 +739,9 @@ public class CraftBlock implements Block {
}
return speed;
}
diff --git a/patches/server/0571-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0569-Allow-using-signs-inside-spawn-protection.patch
index d2ff2b0366..017a3c1472 100644
--- a/patches/server/0571-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0569-Allow-using-signs-inside-spawn-protection.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow using signs inside spawn protection
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ad19b3870fcc8ebd20fe429de3123731a0c2df07..fa808d6e3288996fab06e4b577957185e0009bce 100644
+index 4a20980ee00b52ee12537ad9cd9095ba3da39166..f893d9f8dc5f087a63efa91338ad4118f9d67d47 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1826,7 +1826,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1829,7 +1829,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
int i = this.player.level().getMaxBuildHeight();
if (blockposition.getY() < i) {
diff --git a/patches/server/0572-Expand-world-key-API.patch b/patches/server/0570-Expand-world-key-API.patch
index f86cd7dd43..022aa9fbaa 100644
--- a/patches/server/0572-Expand-world-key-API.patch
+++ b/patches/server/0570-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5f9c3c237b65986f8c425bbc691ac301f8fdebbc..cb7ceaaaf4e8deec78962660298fa5316f8c5a63 100644
+index a9cad569f9c71f9818d1b831983f71aae367d98e..4e85e98d12d5ee4cabb6d449bcf3134f353932fb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -990,5 +990,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -986,5 +986,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
public io.papermc.paper.world.MoonPhase getMoonPhase() {
return io.papermc.paper.world.MoonPhase.getPhase(this.getHandle().dayTime() / 24000L);
}
@@ -20,7 +20,7 @@ index 5f9c3c237b65986f8c425bbc691ac301f8fdebbc..cb7ceaaaf4e8deec78962660298fa531
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f834625a9 100644
+index b6c9dd5b3fd746ef7e863c27fd581c9f23a795a2..ed6125d52eb0e406e44a2c3ded1ed1d1b19bf5c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1153,9 +1153,15 @@ public final class CraftServer implements Server {
@@ -39,9 +39,9 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
}
+ // Paper end
- if ((folder.exists()) && (!folder.isDirectory())) {
- throw new IllegalArgumentException("File exists with the name '" + name + "' and isn't a folder");
-@@ -1244,7 +1250,7 @@ public final class CraftServer implements Server {
+ if (folder.exists()) {
+ Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name);
+@@ -1242,7 +1248,7 @@ public final class CraftServer implements Server {
} else if (name.equals(levelName + "_the_end")) {
worldKey = net.minecraft.world.level.Level.END;
} else {
@@ -50,7 +50,7 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
}
ServerLevel internal = (ServerLevel) new ServerLevel(this.console, console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11),
-@@ -1336,6 +1342,15 @@ public final class CraftServer implements Server {
+@@ -1334,6 +1340,15 @@ public final class CraftServer implements Server {
return null;
}
@@ -67,10 +67,10 @@ index faa073683fae16578aaa83eefc447cd2740a3491..8b9b433dd1e835abc78ca074dbfe688f
// Check if a World already exists with the UID.
if (this.getWorld(world.getUID()) != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fbb674d355f30f34de6bb9608e628d5c49047be6..8e92454f435a43a78007ef607f15a94d2ac980ae 100644
+index 355d736f2cf6580c21365be2b3a0a3cb124d6d16..19c0754e87834577e166412af6936f88557c9614 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -525,6 +525,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -523,6 +523,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int nextEntityId() {
return net.minecraft.world.entity.Entity.nextEntityId();
}
diff --git a/patches/server/0573-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0571-Add-fast-alternative-constructor-for-Rotations.patch
index bbdcc665bb..bbdcc665bb 100644
--- a/patches/server/0573-Add-fast-alternative-constructor-for-Rotations.patch
+++ b/patches/server/0571-Add-fast-alternative-constructor-for-Rotations.patch
diff --git a/patches/server/0574-Item-Rarity-API.patch b/patches/server/0572-Item-Rarity-API.patch
index de26718a34..acf29f2cbe 100644
--- a/patches/server/0574-Item-Rarity-API.patch
+++ b/patches/server/0572-Item-Rarity-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Item Rarity API
public net.minecraft.world.item.Item rarity
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 8e92454f435a43a78007ef607f15a94d2ac980ae..44850ec4a8245bc534efb85008486dd6f599b2e4 100644
+index 19c0754e87834577e166412af6936f88557c9614..47e035d384c68d5584afb228b0adb6be05add239 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -530,6 +530,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -528,6 +528,20 @@ public final class CraftMagicNumbers implements UnsafeValues {
public String getMainLevelName() {
return ((net.minecraft.server.dedicated.DedicatedServer) net.minecraft.server.MinecraftServer.getServer()).getProperties().levelName;
}
diff --git a/patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0573-Drop-carried-item-when-player-has-disconnected.patch
index 5d01be88b2..4cc04af3a6 100644
--- a/patches/server/0575-Drop-carried-item-when-player-has-disconnected.patch
+++ b/patches/server/0573-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 063aed795bb668c62f69d0c93ffc6d939af681ad..7e26f87ffd8f50cf4e2cd582c9cd5d9abbf9c3f3 100644
+index 6d333b75f898fc34c7e739a1246a202329f1b9ff..f375947876c5c834bdab66a26a06b3a43c08e65d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -591,6 +591,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0576-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0574-forced-whitelist-use-configurable-kick-message.patch
index 5b96e8d5dd..8c90159103 100644
--- a/patches/server/0576-forced-whitelist-use-configurable-kick-message.patch
+++ b/patches/server/0574-forced-whitelist-use-configurable-kick-message.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] forced whitelist: use configurable kick message
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 34658ffabd88abbc84bfc19f44c9cd391f2cb1bb..b3f04bb7afee65584566591b302feb8dfa850e87 100644
+index 5ac0773a375d833f141f1a1754ca8a0661a0499b..39dd0ef9af89d4a752f101740ae58797fb2adc4d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2150,7 +2150,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2148,7 +2148,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
if (!whitelist.isWhiteListed(entityplayer.getGameProfile()) && !this.getPlayerList().isOp(entityplayer.getGameProfile())) { // Paper - Fix kicking ops when whitelist is reloaded (MC-171420)
diff --git a/patches/server/0577-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0575-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index b6708ac38a..d9ee7915ec 100644
--- a/patches/server/0577-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/patches/server/0575-Don-t-ignore-result-of-PlayerEditBookEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index fa808d6e3288996fab06e4b577957185e0009bce..4495dcbf340fb7a89060b0836a7e2b0cca4bc2b4 100644
+index f893d9f8dc5f087a63efa91338ad4118f9d67d47..f2e5bffd43e36b47af51e516409830fa5a5acbbe 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1290,7 +1290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0578-Expose-protocol-version.patch b/patches/server/0576-Expose-protocol-version.patch
index 4447e72ad3..4baad66755 100644
--- a/patches/server/0578-Expose-protocol-version.patch
+++ b/patches/server/0576-Expose-protocol-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose protocol version
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 44850ec4a8245bc534efb85008486dd6f599b2e4..fb24efa54510fc77a7d4541462242113e16d2f53 100644
+index 47e035d384c68d5584afb228b0adb6be05add239..507bffe09ffdc1ea8357f9ca2c5455d7704bfae8 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -544,6 +544,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -542,6 +542,11 @@ public final class CraftMagicNumbers implements UnsafeValues {
public io.papermc.paper.inventory.ItemRarity getItemStackRarity(org.bukkit.inventory.ItemStack itemStack) {
return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
}
diff --git a/patches/server/0579-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0577-Enhance-console-tab-completions-for-brigadier-comman.patch
index 1069662178..1069662178 100644
--- a/patches/server/0579-Enhance-console-tab-completions-for-brigadier-comman.patch
+++ b/patches/server/0577-Enhance-console-tab-completions-for-brigadier-comman.patch
diff --git a/patches/server/0580-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0578-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
index a873a9e9da..a873a9e9da 100644
--- a/patches/server/0580-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
+++ b/patches/server/0578-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
diff --git a/patches/server/0581-Add-bypass-host-check.patch b/patches/server/0579-Add-bypass-host-check.patch
index 05f0f5396e..05f0f5396e 100644
--- a/patches/server/0581-Add-bypass-host-check.patch
+++ b/patches/server/0579-Add-bypass-host-check.patch
diff --git a/patches/server/0582-Set-area-affect-cloud-rotation.patch b/patches/server/0580-Set-area-affect-cloud-rotation.patch
index 01bee08450..4441d7b847 100644
--- a/patches/server/0582-Set-area-affect-cloud-rotation.patch
+++ b/patches/server/0580-Set-area-affect-cloud-rotation.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Set area affect cloud rotation
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index cb7ceaaaf4e8deec78962660298fa5316f8c5a63..5bd5a059c5beeade313f74ba3c1fc63825bd286b 100644
+index 4e85e98d12d5ee4cabb6d449bcf3134f353932fb..9160fc90afce3c589cf6a3ddb829d56e045b20fa 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -956,6 +956,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -952,6 +952,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
entity.moveTo(location.getX(), location.getY(), location.getZ());
} else if (AreaEffectCloud.class.isAssignableFrom(clazz)) {
entity = new net.minecraft.world.entity.AreaEffectCloud(world, x, y, z);
diff --git a/patches/server/0583-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0581-add-isDeeplySleeping-to-HumanEntity.patch
index 2395939fc1..28dad086f7 100644
--- a/patches/server/0583-add-isDeeplySleeping-to-HumanEntity.patch
+++ b/patches/server/0581-add-isDeeplySleeping-to-HumanEntity.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 8d21ca6b822dd20574d408e46ed0737642129a54..589f06cc8941d5f75ffd8bbeb083b1c48f82576f 100644
+index a8aa176b8afd45fada9529d4d0b92000299faf1b..329e0586ec4ea44b6a8f4b72a69041aa7cd01ced 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -133,6 +133,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
diff --git a/patches/server/0584-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0582-add-consumeFuel-to-FurnaceBurnEvent.patch
index 8596f43f62..8596f43f62 100644
--- a/patches/server/0584-add-consumeFuel-to-FurnaceBurnEvent.patch
+++ b/patches/server/0582-add-consumeFuel-to-FurnaceBurnEvent.patch
diff --git a/patches/server/0585-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0583-add-get-set-drop-chance-to-EntityEquipment.patch
index 9720fcdaf4..8f9c69cf16 100644
--- a/patches/server/0585-add-get-set-drop-chance-to-EntityEquipment.patch
+++ b/patches/server/0583-add-get-set-drop-chance-to-EntityEquipment.patch
@@ -27,10 +27,10 @@ index cb704cef3845727c465fe3ea7210a11545da56c8..6827979a5b270ced53b46ecb9eff5487
private void setDropChance(net.minecraft.world.entity.EquipmentSlot slot, float chance) {
Preconditions.checkArgument(this.entity.getHandle() instanceof Mob, "Cannot set drop chance for non-Mob entity");
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-index 8bca88f7b7d310b29bdc851125e4cd03718a4fb9..d6a228473ca6f425757683a4b17b035a53ab117f 100644
+index 4f6271f6cafcf49a0912e2ab6c77c3c820db0e5f..f89a1b1c1902b16f6640c9a95f5b72351b60ceda 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-@@ -354,4 +354,15 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
+@@ -353,4 +353,15 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
public void setBootsDropChance(float chance) {
throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
}
diff --git a/patches/server/0586-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0584-fix-PigZombieAngerEvent-cancellation.patch
index 195a80293d..195a80293d 100644
--- a/patches/server/0586-fix-PigZombieAngerEvent-cancellation.patch
+++ b/patches/server/0584-fix-PigZombieAngerEvent-cancellation.patch
diff --git a/patches/server/0587-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0585-fix-PlayerItemHeldEvent-firing-twice.patch
index 2d0d5e0c3e..8382a6c206 100644
--- a/patches/server/0587-fix-PlayerItemHeldEvent-firing-twice.patch
+++ b/patches/server/0585-fix-PlayerItemHeldEvent-firing-twice.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4495dcbf340fb7a89060b0836a7e2b0cca4bc2b4..7451b61d28c22555619a80b741744b376d92ce58 100644
+index f2e5bffd43e36b47af51e516409830fa5a5acbbe..1067ff8cb82f44ef3f67b4db5ee7697aabae22a8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2040,6 +2040,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (this.player.isImmobile()) return; // CraftBukkit
if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) {
diff --git a/patches/server/0588-Added-PlayerDeepSleepEvent.patch b/patches/server/0586-Added-PlayerDeepSleepEvent.patch
index cbc35ad165..cbc35ad165 100644
--- a/patches/server/0588-Added-PlayerDeepSleepEvent.patch
+++ b/patches/server/0586-Added-PlayerDeepSleepEvent.patch
diff --git a/patches/server/0589-More-World-API.patch b/patches/server/0587-More-World-API.patch
index f57028fb31..dd016744ab 100644
--- a/patches/server/0589-More-World-API.patch
+++ b/patches/server/0587-More-World-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] More World API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index fea9f11cf6f665eba86d2ffde7b241910300a516..a38eac88ef3099ba92273ed3818ddf742588552c 100644
+index 9351b3b8d4d9c7069ea4ae11a49a1f7b70ffbce9..f5de2359af2a7dc3c2f9cd4daec3aeae86fae153 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2081,6 +2081,69 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2088,6 +2088,69 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return new CraftStructureSearchResult(CraftStructure.minecraftToBukkit(found.getSecond().value(), this.getHandle().registryAccess()), CraftLocation.toBukkit(found.getFirst(), this));
}
@@ -77,7 +77,7 @@ index fea9f11cf6f665eba86d2ffde7b241910300a516..a38eac88ef3099ba92273ed3818ddf74
+
@Override
public Raid locateNearestRaid(Location location, int radius) {
- Validate.notNull(location, "Location cannot be null");
+ Preconditions.checkArgument(location != null, "Location cannot be null");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java b/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
index 3071ac1ac0e733d73dade49597a39f7d156bbc04..967445b2eb158454100a27369a1f463d69f54f27 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftVector.java
diff --git a/patches/server/0590-Added-PlayerBedFailEnterEvent.patch b/patches/server/0588-Added-PlayerBedFailEnterEvent.patch
index dd4d2712ed..dd4d2712ed 100644
--- a/patches/server/0590-Added-PlayerBedFailEnterEvent.patch
+++ b/patches/server/0588-Added-PlayerBedFailEnterEvent.patch
diff --git a/patches/server/0591-Entity-load-save-limit-per-chunk.patch b/patches/server/0589-Entity-load-save-limit-per-chunk.patch
index e706c5e31f..e706c5e31f 100644
--- a/patches/server/0591-Entity-load-save-limit-per-chunk.patch
+++ b/patches/server/0589-Entity-load-save-limit-per-chunk.patch
diff --git a/patches/server/0592-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0590-Implement-methods-to-convert-between-Component-and-B.patch
index 65beeb5f10..65beeb5f10 100644
--- a/patches/server/0592-Implement-methods-to-convert-between-Component-and-B.patch
+++ b/patches/server/0590-Implement-methods-to-convert-between-Component-and-B.patch
diff --git a/patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
index 6e2fe236e6..e962799f8b 100644
--- a/patches/server/0593-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
+++ b/patches/server/0591-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 7e26f87ffd8f50cf4e2cd582c9cd5d9abbf9c3f3..10d02d71b67f4022c6d5c709793a11283694362d 100644
+index f375947876c5c834bdab66a26a06b3a43c08e65d..f55c2f6f0b18456565cac50b9def91071497dee0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -810,6 +810,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0594-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0592-Introduce-beacon-activation-deactivation-events.patch
index fc24c634c3..fc24c634c3 100644
--- a/patches/server/0594-Introduce-beacon-activation-deactivation-events.patch
+++ b/patches/server/0592-Introduce-beacon-activation-deactivation-events.patch
diff --git a/patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch
index e91901fe8e..49c9535187 100644
--- a/patches/server/0595-add-RespawnFlags-to-PlayerRespawnEvent.patch
+++ b/patches/server/0593-add-RespawnFlags-to-PlayerRespawnEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7451b61d28c22555619a80b741744b376d92ce58..b3a75c6c1639b756084fb880ec085dd3541adcb4 100644
+index 1067ff8cb82f44ef3f67b4db5ee7697aabae22a8..84c49a70c32c07580748d9a55f24902ce5be8c5b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2780,7 +2780,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2783,7 +2783,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
case PERFORM_RESPAWN:
if (this.player.wonGame) {
this.player.wonGame = false;
@@ -18,7 +18,7 @@ index 7451b61d28c22555619a80b741744b376d92ce58..b3a75c6c1639b756084fb880ec085dd3
} else {
if (this.player.getHealth() > 0.0F) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 10d02d71b67f4022c6d5c709793a11283694362d..8fb526c84850162bbce004dc4179219320634eeb 100644
+index f55c2f6f0b18456565cac50b9def91071497dee0..3dbad6f9ea70db07a9bfa199b28def6a67353d80 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -769,6 +769,12 @@ public abstract class PlayerList {
diff --git a/patches/server/0596-Add-Channel-initialization-listeners.patch b/patches/server/0594-Add-Channel-initialization-listeners.patch
index efd683b7d1..efd683b7d1 100644
--- a/patches/server/0596-Add-Channel-initialization-listeners.patch
+++ b/patches/server/0594-Add-Channel-initialization-listeners.patch
diff --git a/patches/server/0597-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0595-Send-empty-commands-if-tab-completion-is-disabled.patch
index 4d853da0a7..4d853da0a7 100644
--- a/patches/server/0597-Send-empty-commands-if-tab-completion-is-disabled.patch
+++ b/patches/server/0595-Send-empty-commands-if-tab-completion-is-disabled.patch
diff --git a/patches/server/0598-Add-more-WanderingTrader-API.patch b/patches/server/0596-Add-more-WanderingTrader-API.patch
index 9e5ed86cee..9e5ed86cee 100644
--- a/patches/server/0598-Add-more-WanderingTrader-API.patch
+++ b/patches/server/0596-Add-more-WanderingTrader-API.patch
diff --git a/patches/server/0599-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0597-Add-EntityBlockStorage-clearEntities.patch
index 5b7203c33d..5b7203c33d 100644
--- a/patches/server/0599-Add-EntityBlockStorage-clearEntities.patch
+++ b/patches/server/0597-Add-EntityBlockStorage-clearEntities.patch
diff --git a/patches/server/0600-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0598-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
index 167e55814a..167e55814a 100644
--- a/patches/server/0600-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
+++ b/patches/server/0598-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
diff --git a/patches/server/0601-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0599-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
index 32ba58aa32..32ba58aa32 100644
--- a/patches/server/0601-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
+++ b/patches/server/0599-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/server/0602-Inventory-close.patch b/patches/server/0600-Inventory-close.patch
index 69dc365057..31cb3eaa08 100644
--- a/patches/server/0602-Inventory-close.patch
+++ b/patches/server/0600-Inventory-close.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Inventory#close
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 015fc140db9162865f33cd6577cf758091a663c7..092f6843e3b43d4c615d2eee344f5966e96ae850 100644
+index 01b38b5a515c7dd0f0c79141c270d618bf3c56eb..bfac13ec6c316caa65db4a51b77f0a7045ad88ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -450,6 +450,14 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0601-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
index 45fefcead5..45fefcead5 100644
--- a/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
+++ b/patches/server/0601-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff --git a/patches/server/0604-Fix-CraftPotionBrewer-cache.patch b/patches/server/0602-Fix-CraftPotionBrewer-cache.patch
index 2d8295382f..2d8295382f 100644
--- a/patches/server/0604-Fix-CraftPotionBrewer-cache.patch
+++ b/patches/server/0602-Fix-CraftPotionBrewer-cache.patch
diff --git a/patches/server/0605-Add-basic-Datapack-API.patch b/patches/server/0603-Add-basic-Datapack-API.patch
index 28ec4ee721..c0687f2e96 100644
--- a/patches/server/0605-Add-basic-Datapack-API.patch
+++ b/patches/server/0603-Add-basic-Datapack-API.patch
@@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e049be62a 100644
+index ed6125d52eb0e406e44a2c3ded1ed1d1b19bf5c5..532c4f79e0926e029e78bc796238e54fd5f63023 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -298,6 +298,7 @@ public final class CraftServer implements Server {
+@@ -297,6 +297,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List<CraftPlayer> playerView;
public int reloadCount;
@@ -103,7 +103,7 @@ index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e
public static Exception excessiveVelEx; // Paper - Velocity warnings
static {
-@@ -385,6 +386,7 @@ public final class CraftServer implements Server {
+@@ -384,6 +385,7 @@ public final class CraftServer implements Server {
if (this.configuration.getBoolean("settings.use-map-color-cache")) {
MapPalette.setMapColorCache(new CraftMapColorCache(this.logger));
}
@@ -111,7 +111,7 @@ index 8b9b433dd1e835abc78ca074dbfe688f834625a9..912795bad8e64d98a4a13a6224ae653e
}
public boolean getCommandBlockOverride(String command) {
-@@ -2833,5 +2835,11 @@ public final class CraftServer implements Server {
+@@ -2847,5 +2849,11 @@ public final class CraftServer implements Server {
public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return mobGoals;
}
diff --git a/patches/server/0606-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0604-Add-environment-variable-to-disable-server-gui.patch
index 463d626c8f..463d626c8f 100644
--- a/patches/server/0606-Add-environment-variable-to-disable-server-gui.patch
+++ b/patches/server/0604-Add-environment-variable-to-disable-server-gui.patch
diff --git a/patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch
index 8ecfa20520..5a3cab5f99 100644
--- a/patches/server/0607-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0605-additions-to-PlayerGameModeChangeEvent.patch
@@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b0b1f5022455e9ab0aa8ba3ddd0d4762f1e3eb81..c126bdaf557ae4a95e7111e0cc8a7f97f722e86c 100644
+index fba3ac571fafd5c738d0dcfd5492112817c443e3..a340a190b223efb6fafba3c7c9e996818709d6e9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1885,8 +1885,16 @@ public class ServerPlayer extends Player {
@@ -131,10 +131,10 @@ index 43221bf57fb4eeb70823c12b48f4df0bb817eb0b..e903371b370034f6447c5f23562fe5c9
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b3a75c6c1639b756084fb880ec085dd3541adcb4..3e825ec345fd1074e3ab7ec8549bd1bc7a8f3e8e 100644
+index 84c49a70c32c07580748d9a55f24902ce5be8c5b..582697f5bb1423ee5eae91d28b19c10889bf8904 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2789,7 +2789,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2792,7 +2792,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
@@ -144,12 +144,12 @@ index b3a75c6c1639b756084fb880ec085dd3541adcb4..3e825ec345fd1074e3ab7ec8549bd1bc
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a193b78ae1f43b1d8a48467fb082ee3bcb61831b..b7cf7293c64bc9587c78a651791d07da0efe460a 100644
+index 950fa366d269bc4aca459c5f296ecf578f8ce312..949ef08cb2fbc6b237c651734821cc88e9fa1d9a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1534,7 +1534,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- throw new IllegalArgumentException("Mode cannot be null");
- }
+@@ -1485,7 +1485,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ Preconditions.checkArgument(mode != null, "GameMode cannot be null");
+ if (this.getHandle().connection == null) return;
- this.getHandle().setGameMode(GameType.byId(mode.getValue()));
+ this.getHandle().setGameMode(GameType.byId(mode.getValue()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.PLUGIN, null); // Paper
diff --git a/patches/server/0608-ItemStack-repair-check-API.patch b/patches/server/0606-ItemStack-repair-check-API.patch
index d68a2b6156..10e1c3e707 100644
--- a/patches/server/0608-ItemStack-repair-check-API.patch
+++ b/patches/server/0606-ItemStack-repair-check-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack repair check API
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fb24efa54510fc77a7d4541462242113e16d2f53..236ab23039fd78d2fae8bcfa879d51100aeec8c7 100644
+index 507bffe09ffdc1ea8357f9ca2c5455d7704bfae8..0ad72425648eb9af806211068b5c14661749e030 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -545,6 +545,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -543,6 +543,14 @@ public final class CraftMagicNumbers implements UnsafeValues {
return io.papermc.paper.inventory.ItemRarity.values()[getItem(itemStack.getType()).getRarity(CraftItemStack.asNMSCopy(itemStack)).ordinal()];
}
diff --git a/patches/server/0609-More-Enchantment-API.patch b/patches/server/0607-More-Enchantment-API.patch
index ed087b154b..afd4dec304 100644
--- a/patches/server/0609-More-Enchantment-API.patch
+++ b/patches/server/0607-More-Enchantment-API.patch
@@ -66,10 +66,10 @@ index 57decf4156f176ebcc988478c17856cbc555c5e4..3d0ce0803e1da8a2681a3cb41096ac94
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 37148ccf704dd8e5aa7d9ab100e6df142e822255..b38d72e921c4705cae72eb65113b36c87e4250fd 100644
+index 63a1522071ec6e9a550598b04c1a901ff76a5c78..d7499a2ffdc21ded42f7973e35ace340ff276f5a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -930,5 +930,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -927,5 +927,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setHurtDirection(float hurtDirection) {
throw new UnsupportedOperationException("Cannot set the hurt direction on a non player");
}
diff --git a/patches/server/0610-Move-range-check-for-block-placing-up.patch b/patches/server/0608-Move-range-check-for-block-placing-up.patch
index e91cd03b23..07cdf86b26 100644
--- a/patches/server/0610-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0608-Move-range-check-for-block-placing-up.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3e825ec345fd1074e3ab7ec8549bd1bc7a8f3e8e..aaeacc33183774aa3969aaff2e5304936f7041d4 100644
+index 582697f5bb1423ee5eae91d28b19c10889bf8904..2e2b9f69914f727488aec0c7863783c41eb8f006 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1812,6 +1812,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1815,6 +1815,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (itemstack.isItemEnabled(worldserver.enabledFeatures())) {
BlockHitResult movingobjectpositionblock = packet.getHitResult();
Vec3 vec3d = movingobjectpositionblock.getLocation();
diff --git a/patches/server/0611-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0609-Fix-and-optimise-world-force-upgrading.patch
index 9aa24f531c..dae741c23f 100644
--- a/patches/server/0611-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/0609-Fix-and-optimise-world-force-upgrading.patch
@@ -275,10 +275,10 @@ index 98385550084c9f975e494668961bac6ccb0700ab..1147044f2c4c2e9510cb6e5c38b6abe8
Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit
WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b3f04bb7afee65584566591b302feb8dfa850e87..21d893bb1867aa5cae7924734a0e843d4c35aa94 100644
+index 39dd0ef9af89d4a752f101740ae58797fb2adc4d..5fa98801e2e64d4e2d948af5f131ed32b96c0510 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -554,11 +554,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -552,11 +552,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worlddata = new PrimaryLevelData(worldsettings, worldoptions, worlddimensions_b.specialWorldProperty(), lifecycle);
}
worlddata.checkName(name); // CraftBukkit - Migration did not rewrite the level.dat; This forces 1.8 to take the last loaded world as respawn (in this case the end)
@@ -291,7 +291,7 @@ index b3f04bb7afee65584566591b302feb8dfa850e87..21d893bb1867aa5cae7924734a0e843d
PrimaryLevelData iworlddataserver = worlddata;
boolean flag = worlddata.isDebugWorld();
-@@ -573,6 +569,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -571,6 +567,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
}
@@ -362,24 +362,21 @@ index 29da08c58200c24fd03003937d30eb41234cabc9..d3d4d10a77af51cff4da201201bac325
public synchronized RegionFile getRegionFileIfLoaded(ChunkPos chunkcoordintpair) {
return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ()));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 912795bad8e64d98a4a13a6224ae653e049be62a..4e683d5d8afcdab9cfa85c657bb76a0022912d9b 100644
+index 532c4f79e0926e029e78bc796238e54fd5f63023..95f2490000e3f49644d6795a4c4c67ee0674fbf9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1229,12 +1229,7 @@ public final class CraftServer implements Server {
- worlddata.customDimensions = iregistry;
+@@ -1230,9 +1230,7 @@ public final class CraftServer implements Server {
worlddata.checkName(name);
worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified());
--
+
- if (console.options.has("forceUpgrade")) {
-- net.minecraft.server.Main.forceUpgrade(worldSession, DataFixers.getDataFixer(), console.options.has("eraseCache"), () -> {
-- return true;
-- }, iregistry);
+- net.minecraft.server.Main.forceUpgrade(worldSession, DataFixers.getDataFixer(), console.options.has("eraseCache"), () -> true, iregistry);
- }
+ // Paper - move down
long j = BiomeManager.obfuscateSeed(creator.seed());
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
-@@ -1245,6 +1240,13 @@ public final class CraftServer implements Server {
+@@ -1243,6 +1241,13 @@ public final class CraftServer implements Server {
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/patches/server/0612-Add-Mob-lookAt-API.patch b/patches/server/0610-Add-Mob-lookAt-API.patch
index 2179be5193..2179be5193 100644
--- a/patches/server/0612-Add-Mob-lookAt-API.patch
+++ b/patches/server/0610-Add-Mob-lookAt-API.patch
diff --git a/patches/server/0613-Add-Unix-domain-socket-support.patch b/patches/server/0611-Add-Unix-domain-socket-support.patch
index 74b575b599..78e4900413 100644
--- a/patches/server/0613-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0611-Add-Unix-domain-socket-support.patch
@@ -91,10 +91,10 @@ index 29a0a720f22f56ca3d844efef1ecde3980fb1c12..838244e3680ea6020701e10bafbde7f5
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index aaeacc33183774aa3969aaff2e5304936f7041d4..1349efcfb368305d5437ec464a5f32a17177f0ca 100644
+index 2e2b9f69914f727488aec0c7863783c41eb8f006..75ab3e102caead4f9bdfbf74772d998f9da9c723 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2624,6 +2624,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2627,6 +2627,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Spigot Start
public SocketAddress getRawAddress()
{
diff --git a/patches/server/0614-Add-EntityInsideBlockEvent.patch b/patches/server/0612-Add-EntityInsideBlockEvent.patch
index 96a5c26841..96a5c26841 100644
--- a/patches/server/0614-Add-EntityInsideBlockEvent.patch
+++ b/patches/server/0612-Add-EntityInsideBlockEvent.patch
diff --git a/patches/server/0615-Attributes-API-for-item-defaults.patch b/patches/server/0613-Attributes-API-for-item-defaults.patch
index 86638e1bcc..7a942f3f03 100644
--- a/patches/server/0615-Attributes-API-for-item-defaults.patch
+++ b/patches/server/0613-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 236ab23039fd78d2fae8bcfa879d51100aeec8c7..fea31b187fd5965bf479548835e5603e78f3f3f1 100644
+index 0ad72425648eb9af806211068b5c14661749e030..ef9a1d7e23be8ffe9a1669161de9310c6e566b40 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -553,6 +553,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -551,6 +551,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftMagicNumbers.getItem(itemToBeRepaired.getType()).isValidRepairItem(CraftItemStack.asNMSCopy(itemToBeRepaired), CraftItemStack.asNMSCopy(repairMaterial));
}
diff --git a/patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch
index dfe89cd593..3b0c93464b 100644
--- a/patches/server/0616-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0614-Add-cause-to-Weather-ThunderChangeEvents.patch
@@ -95,10 +95,10 @@ index 626b861ef2f323a5fc50ab5178d3e108e0f9cc25..31c31a9138cb5f6e41de01a6210f84e7
if (weather.isCancelled()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a38eac88ef3099ba92273ed3818ddf742588552c..55f631626bd35b46bd8f95b0a30de8c84d99d984 100644
+index f5de2359af2a7dc3c2f9cd4daec3aeae86fae153..139265ff015bba7517ccbbcc890610d00362142e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1181,7 +1181,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1186,7 +1186,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setStorm(boolean hasStorm) {
@@ -107,7 +107,7 @@ index a38eac88ef3099ba92273ed3818ddf742588552c..55f631626bd35b46bd8f95b0a30de8c8
this.setWeatherDuration(0); // Reset weather duration (legacy behaviour)
this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands)
}
-@@ -1203,7 +1203,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1208,7 +1208,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setThundering(boolean thundering) {
diff --git a/patches/server/0617-More-Lidded-Block-API.patch b/patches/server/0615-More-Lidded-Block-API.patch
index 135fd68698..135fd68698 100644
--- a/patches/server/0617-More-Lidded-Block-API.patch
+++ b/patches/server/0615-More-Lidded-Block-API.patch
diff --git a/patches/server/0618-Limit-item-frame-cursors-on-maps.patch b/patches/server/0616-Limit-item-frame-cursors-on-maps.patch
index 8e8559a185..8e8559a185 100644
--- a/patches/server/0618-Limit-item-frame-cursors-on-maps.patch
+++ b/patches/server/0616-Limit-item-frame-cursors-on-maps.patch
diff --git a/patches/server/0619-Add-PlayerKickEvent-causes.patch b/patches/server/0617-Add-PlayerKickEvent-causes.patch
index 1445892a9d..b77cdefa3c 100644
--- a/patches/server/0619-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0617-Add-PlayerKickEvent-causes.patch
@@ -36,10 +36,10 @@ index b5f54ee82905e3e6ab5bfde35ab625f5feeb1393..c0a80824a0307ea673805015119cc834
public boolean shouldDisconnect() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 21d893bb1867aa5cae7924734a0e843d4c35aa94..76bdca305277d8d2a659b029f035bb4da25a076e 100644
+index 5fa98801e2e64d4e2d948af5f131ed32b96c0510..09617ff2716b8e75380421e9a19c145806602151 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2153,7 +2153,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2151,7 +2151,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
if (!whitelist.isWhiteListed(entityplayer.getGameProfile()) && !this.getPlayerList().isOp(entityplayer.getGameProfile())) { // Paper - Fix kicking ops when whitelist is reloaded (MC-171420)
@@ -88,7 +88,7 @@ index c68bac4727f6b2ca95fc8c438303097af14286f2..bb629ec263959c8268de88ca807bddb6
return Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason);
}, true);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f612e0286a 100644
+index 75ab3e102caead4f9bdfbf74772d998f9da9c723..76d8c5c5029ac564d05144cef5030c6b64df9a98 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -362,7 +362,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -253,7 +253,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
ServerLevel worldserver = this.player.serverLevel();
-@@ -1734,7 +1744,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1737,7 +1747,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.dropCount++;
if (this.dropCount >= 20) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!");
@@ -262,7 +262,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
}
-@@ -1946,7 +1956,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1949,7 +1959,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
@@ -271,7 +271,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
// Paper start
PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];
-@@ -2062,7 +2072,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2065,7 +2075,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.resetLastActionTime();
} else {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -280,7 +280,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2075,7 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2078,7 +2088,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -289,7 +289,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2109,7 +2119,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2112,7 +2122,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -298,7 +298,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2164,7 +2174,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2167,7 +2177,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void handleMessageDecodeFailure(SignedMessageChain.DecodeException exception) {
if (exception.shouldDisconnect()) {
@@ -307,7 +307,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED));
}
-@@ -2195,7 +2205,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2198,7 +2208,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
@@ -316,7 +316,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return Optional.empty();
} else {
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment);
-@@ -2218,7 +2228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2221,7 +2231,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (optional.isEmpty()) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -325,7 +325,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
return optional;
-@@ -2441,7 +2451,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2444,7 +2454,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// this.chatSpamTickCount += 20;
if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
// CraftBukkit end
@@ -334,7 +334,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2453,7 +2463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2456,7 +2466,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
synchronized (this.lastSeenMessages) {
if (!this.lastSeenMessages.applyOffset(packet.offset())) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -343,7 +343,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2596,7 +2606,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2599,7 +2609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
if (i > 4096) {
@@ -352,7 +352,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -2642,7 +2652,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2645,7 +2655,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Spigot Start
if ( entity == this.player && !this.player.isSpectator() )
{
@@ -361,7 +361,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
// Spigot End
-@@ -2741,7 +2751,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2744,7 +2754,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// CraftBukkit end
}
} else {
@@ -370,7 +370,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString());
}
}
-@@ -3150,7 +3160,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3153,7 +3163,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Paper start
if (!org.bukkit.Bukkit.isPrimaryThread()) {
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
@@ -379,7 +379,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
return;
}
}
-@@ -3321,7 +3331,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3324,7 +3334,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
} else if (!this.isSingleplayerOwner()) {
// Paper start - This needs to be handled on the main thread for plugins
server.submit(() -> {
@@ -388,7 +388,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
});
// Paper end
}
-@@ -3367,7 +3377,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3370,7 +3380,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
@@ -397,7 +397,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
} else if (packet.identifier.equals(CUSTOM_UNREGISTER)) {
try {
-@@ -3377,7 +3387,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3380,7 +3390,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
@@ -406,7 +406,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
} else {
try {
-@@ -3395,7 +3405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3398,7 +3408,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data);
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
@@ -415,7 +415,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
}
-@@ -3437,7 +3447,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3440,7 +3450,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) {
if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) {
@@ -424,7 +424,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
} else {
try {
SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator();
-@@ -3450,7 +3460,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3453,7 +3463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage());
@@ -434,7 +434,7 @@ index 1349efcfb368305d5437ec464a5f32a17177f0ca..0a39701d26eb37504980c8a399c259f6
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8fb526c84850162bbce004dc4179219320634eeb..ea195117f25ea0009ff646e08aec7401d1edb6b4 100644
+index 3dbad6f9ea70db07a9bfa199b28def6a67353d80..77d80170cabc358c75d58ac7ff19054ba6b7617f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -678,7 +678,7 @@ public abstract class PlayerList {
@@ -491,10 +491,10 @@ index 984c288abf94d9fe47fada33722fea035b832f3b..addd20237b87c9a87bb09fd7addb101a
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e0b68fc98 100644
+index 949ef08cb2fbc6b237c651734821cc88e9fa1d9a..02e8f2ca5d97df0b1c845e10261a4bc70da755a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -576,7 +576,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -573,7 +573,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot
if (this.getHandle().connection == null) return;
@@ -503,7 +503,7 @@ index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e
}
// Paper start
-@@ -588,10 +588,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -585,10 +585,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void kick(final net.kyori.adventure.text.Component message) {
@@ -520,7 +520,7 @@ index b7cf7293c64bc9587c78a651791d07da0efe460a..cd640331afe72cd181dcb862f993ba3e
}
}
-@@ -658,7 +663,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -659,7 +664,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start - improve chat handling
if (ServerGamePacketListenerImpl.isChatMessageIllegal(msg)) {
diff --git a/patches/server/0620-Add-PufferFishStateChangeEvent.patch b/patches/server/0618-Add-PufferFishStateChangeEvent.patch
index 091a042a02..091a042a02 100644
--- a/patches/server/0620-Add-PufferFishStateChangeEvent.patch
+++ b/patches/server/0618-Add-PufferFishStateChangeEvent.patch
diff --git a/patches/server/0621-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0619-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
index adbc2300b0..adbc2300b0 100644
--- a/patches/server/0621-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
+++ b/patches/server/0619-Fix-PlayerBucketEmptyEvent-result-itemstack.patch
diff --git a/patches/server/0622-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0620-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
index 21b2143546..21b2143546 100644
--- a/patches/server/0622-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
+++ b/patches/server/0620-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch
diff --git a/patches/server/0623-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0621-Add-option-to-fix-items-merging-through-walls.patch
index ca8770c5bd..ca8770c5bd 100644
--- a/patches/server/0623-Add-option-to-fix-items-merging-through-walls.patch
+++ b/patches/server/0621-Add-option-to-fix-items-merging-through-walls.patch
diff --git a/patches/server/0624-Add-BellRevealRaiderEvent.patch b/patches/server/0622-Add-BellRevealRaiderEvent.patch
index ed8e81f6a2..ed8e81f6a2 100644
--- a/patches/server/0624-Add-BellRevealRaiderEvent.patch
+++ b/patches/server/0622-Add-BellRevealRaiderEvent.patch
diff --git a/patches/server/0625-Fix-invulnerable-end-crystals.patch b/patches/server/0623-Fix-invulnerable-end-crystals.patch
index b023697625..b023697625 100644
--- a/patches/server/0625-Fix-invulnerable-end-crystals.patch
+++ b/patches/server/0623-Fix-invulnerable-end-crystals.patch
diff --git a/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0624-Add-ElderGuardianAppearanceEvent.patch
index 76665d8084..76665d8084 100644
--- a/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
+++ b/patches/server/0624-Add-ElderGuardianAppearanceEvent.patch
diff --git a/patches/server/0627-Fix-dangerous-end-portal-logic.patch b/patches/server/0625-Fix-dangerous-end-portal-logic.patch
index 79d4ba5f81..a28edf1edc 100644
--- a/patches/server/0627-Fix-dangerous-end-portal-logic.patch
+++ b/patches/server/0625-Fix-dangerous-end-portal-logic.patch
@@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was
designed to happen in the first place.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a500f4becd7f97038734b460c33832388f5ca17a..5277a260f1734051033159ebe2e4af18d48b2097 100644
+index 44d8e9659e111e6f9ca4e403ff4cb4e57c712ea4..6a7b3a54a29b1632061c241b89058729c2b3e036 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -515,6 +515,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0628-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0626-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
index ef457d74af..ef457d74af 100644
--- a/patches/server/0628-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
+++ b/patches/server/0626-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch
diff --git a/patches/server/0629-Make-item-validations-configurable.patch b/patches/server/0627-Make-item-validations-configurable.patch
index c25f67167d..15390d1f92 100644
--- a/patches/server/0629-Make-item-validations-configurable.patch
+++ b/patches/server/0627-Make-item-validations-configurable.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Make item validations configurable
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
-index e8413ad360e9b6c4eef13edf9dd0095e7e64bce2..a5d7fae348b0b262a0a8a5e8e76f1bc75ca52a16 100644
+index cf928745c36af0e6fa0a95e177395c5fb1aa821a..2a08b1ac6e9aac81012997637b4cad59f0f1125a 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -88,11 +88,11 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -32,10 +32,10 @@ index e8413ad360e9b6c4eef13edf9dd0095e7e64bce2..a5d7fae348b0b262a0a8a5e8e76f1bc7
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 93d40df438a0d95b32def9a6c206b98ca6168cb3..4caf272f065a681bd7101d52fedf2642cc78d3bc 100644
+index fa94030ac80c8c68ee429e6b7350395208e4348f..ac9fb7cf96ed36162c4f6c2a834b627d0120f3cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-@@ -361,7 +361,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -360,7 +360,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CompoundTag display = tag.getCompound(DISPLAY.NBT);
if (display.contains(NAME.NBT)) {
@@ -44,7 +44,7 @@ index 93d40df438a0d95b32def9a6c206b98ca6168cb3..4caf272f065a681bd7101d52fedf2642
}
if (display.contains(LOCNAME.NBT)) {
-@@ -372,7 +372,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -371,7 +371,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
ListTag list = display.getList(LORE.NBT, CraftMagicNumbers.NBT.TAG_STRING);
this.lore = new ArrayList<String>(list.size());
for (int index = 0; index < list.size(); index++) {
diff --git a/patches/server/0630-Line-Of-Sight-Changes.patch b/patches/server/0628-Line-Of-Sight-Changes.patch
index 5f0149d296..e58b9a605f 100644
--- a/patches/server/0630-Line-Of-Sight-Changes.patch
+++ b/patches/server/0628-Line-Of-Sight-Changes.patch
@@ -19,10 +19,10 @@ index bce63453fb04db09b10550197f749c959b30a37e..62e8586d30950eed81868ccbb48212a4
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5bd5a059c5beeade313f74ba3c1fc63825bd286b..d7c9b421eb636c0642b73263f46f824b95c1614e 100644
+index 9160fc90afce3c589cf6a3ddb829d56e045b20fa..248c8abf6620ac78b8a4fd1476d7b20862c6125b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -996,5 +996,16 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -992,5 +992,16 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
public org.bukkit.NamespacedKey getKey() {
return org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.getHandle().getLevel().dimension().location());
}
@@ -40,20 +40,10 @@ index 5bd5a059c5beeade313f74ba3c1fc63825bd286b..d7c9b421eb636c0642b73263f46f824b
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index b38d72e921c4705cae72eb65113b36c87e4250fd..61292952681727bcd651064619bff1b41c560d75 100644
+index d7499a2ffdc21ded42f7973e35ace340ff276f5a..b56504c3e5c457bfe83bbc864dc217c2f0cc9d18 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -29,6 +29,9 @@ import net.minecraft.world.entity.projectile.ThrownEgg;
- import net.minecraft.world.entity.projectile.ThrownEnderpearl;
- import net.minecraft.world.entity.projectile.ThrownExperienceBottle;
- import net.minecraft.world.entity.projectile.ThrownTrident;
-+import net.minecraft.world.level.ClipContext;
-+import net.minecraft.world.phys.HitResult;
-+import net.minecraft.world.phys.Vec3;
- import org.apache.commons.lang.Validate;
- import org.bukkit.FluidCollisionMode;
- import org.bukkit.Location;
-@@ -576,6 +579,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -575,6 +575,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return this.getHandle().hasLineOfSight(((CraftEntity) other).getHandle());
}
@@ -61,11 +51,11 @@ index b38d72e921c4705cae72eb65113b36c87e4250fd..61292952681727bcd651064619bff1b4
+ @Override
+ public boolean hasLineOfSight(Location loc) {
+ if (this.getHandle().level() != ((CraftWorld) loc.getWorld()).getHandle()) return false;
-+ Vec3 vec3d = new Vec3(this.getHandle().getX(), this.getHandle().getEyeY(), this.getHandle().getZ());
-+ Vec3 vec3d1 = new Vec3(loc.getX(), loc.getY(), loc.getZ());
++ net.minecraft.world.phys.Vec3 vec3d = new net.minecraft.world.phys.Vec3(this.getHandle().getX(), this.getHandle().getEyeY(), this.getHandle().getZ());
++ net.minecraft.world.phys.Vec3 vec3d1 = new net.minecraft.world.phys.Vec3(loc.getX(), loc.getY(), loc.getZ());
+ if (vec3d1.distanceToSqr(vec3d) > 128D * 128D) return false; //Return early if the distance is greater than 128 blocks
+
-+ return this.getHandle().level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this.getHandle())).getType() == HitResult.Type.MISS;
++ return this.getHandle().level().clip(new net.minecraft.world.level.ClipContext(vec3d, vec3d1, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, this.getHandle())).getType() == net.minecraft.world.phys.HitResult.Type.MISS;
+ }
+ // Paper end
+
diff --git a/patches/server/0631-add-per-world-spawn-limits.patch b/patches/server/0629-add-per-world-spawn-limits.patch
index 6555137e8e..8b6813991f 100644
--- a/patches/server/0631-add-per-world-spawn-limits.patch
+++ b/patches/server/0629-add-per-world-spawn-limits.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] add per world spawn limits
Taken from #2982. Credit to Chasewhip8
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 55f631626bd35b46bd8f95b0a30de8c84d99d984..7e635571aea53e2ee7c39315c14347955f46dfe8 100644
+index 139265ff015bba7517ccbbcc890610d00362142e..7edcc68a24bd812f50d9ce441fab568906061da3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -213,6 +213,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -212,6 +212,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
this.biomeProvider = biomeProvider;
this.environment = env;
diff --git a/patches/server/0632-Fix-potions-splash-events.patch b/patches/server/0630-Fix-potions-splash-events.patch
index ac9546298b..ac9546298b 100644
--- a/patches/server/0632-Fix-potions-splash-events.patch
+++ b/patches/server/0630-Fix-potions-splash-events.patch
diff --git a/patches/server/0633-Add-more-LimitedRegion-API.patch b/patches/server/0631-Add-more-LimitedRegion-API.patch
index 0701fb43d1..af3f4ff82e 100644
--- a/patches/server/0633-Add-more-LimitedRegion-API.patch
+++ b/patches/server/0631-Add-more-LimitedRegion-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add more LimitedRegion API
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index 10fb28aabf8c9f764cdd614edbeec4523f8ab431..0ea1586bab74983fca19dcc5415fbc7a044fe186 100644
+index bc606693566419c143d19284b110961602c2810b..23ffe4b8a19286543e12bf7408879e6d1305a78f 100644
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-@@ -251,4 +251,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
+@@ -249,4 +249,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
public void addEntityToWorld(net.minecraft.world.entity.Entity entity, CreatureSpawnEvent.SpawnReason reason) {
this.entities.add(entity);
}
diff --git a/patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch
index 20cc2dfe64..07077c14b3 100644
--- a/patches/server/0634-Fix-PlayerDropItemEvent-using-wrong-item.patch
+++ b/patches/server/0632-Fix-PlayerDropItemEvent-using-wrong-item.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c126bdaf557ae4a95e7111e0cc8a7f97f722e86c..dc134bfac4fb2bef6d99c7c88cb680d87808a5f7 100644
+index a340a190b223efb6fafba3c7c9e996818709d6e9..7d5de33442fe4ba53c51cc7356323622c2c3022f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2294,7 +2294,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0635-Missing-Entity-Behavior-API.patch b/patches/server/0633-Missing-Entity-Behavior-API.patch
index d1cd66fa4c..2b270fa0e0 100644
--- a/patches/server/0635-Missing-Entity-Behavior-API.patch
+++ b/patches/server/0633-Missing-Entity-Behavior-API.patch
@@ -358,10 +358,10 @@ index 61d4877b4f74362e38104bfeacb7d66534ad798e..454dd67920826b8b62c2654abfd43fc0
@Override
protected EntityHitResult findHitEntity(Vec3 currentPosition, Vec3 nextPosition) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index d7c9b421eb636c0642b73263f46f824b95c1614e..c738fb984ffd120e5adccdb5828833f180e72e80 100644
+index 248c8abf6620ac78b8a4fd1476d7b20862c6125b..7318209de454b233e22c20b176cb207de7f86674 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -832,14 +832,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -828,14 +828,19 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
} else if (Phantom.class.isAssignableFrom(clazz)) {
entity = net.minecraft.world.entity.EntityType.PHANTOM.create(world);
} else if (Fish.class.isAssignableFrom(clazz)) {
@@ -388,10 +388,10 @@ index d7c9b421eb636c0642b73263f46f824b95c1614e..c738fb984ffd120e5adccdb5828833f1
entity = net.minecraft.world.entity.EntityType.TADPOLE.create(world);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-index 254d4f2e45d7c8f572a4368eccd84560d4d0d836..299ab868252c8f326e3a56e878c9ee230c9635dc 100644
+index 3f1f4d65525562b3117fdc21c8a7f535b12c3c46..90a989c7c9de6f9ba55ab640761915e98320642a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractHorse.java
-@@ -115,4 +115,36 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
+@@ -114,4 +114,36 @@ public abstract class CraftAbstractHorse extends CraftAnimals implements Abstrac
public AbstractHorseInventory getInventory() {
return new CraftSaddledInventory(getHandle().inventory);
}
@@ -632,7 +632,7 @@ index 04976616da8c85b1278dad33ff05554aa74a6b33..75c7645fb5732c43d1da15181cf5c7ee
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index bed8b8d3091216856168277af7f51c54b5b1e1f1..9155af9c7e001d4cb431e74b12c9d98227011d51 100644
+index d3eaf054b1815003934e7f2d904a05a5d8abc3a5..02dc40b6f7b82ce503c33fb4af26cbb20c9d5b7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -227,10 +227,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -656,7 +656,7 @@ index bed8b8d3091216856168277af7f51c54b5b1e1f1..9155af9c7e001d4cb431e74b12c9d982
else { return new CraftFish(server, (AbstractFish) entity); }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
-index d66c3b6da16b09a471fbbc07ee143a02468c9228..6c71be9b453fb662276869a24257969941501c0e 100644
+index 007b69c201672483103397c945634d7518f5861c..9e5c9b1c4299986b2fae7e191d7661549376a331 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java
@@ -119,4 +119,41 @@ public class CraftFox extends CraftAnimals implements Fox {
@@ -1131,10 +1131,10 @@ index 50b07045cd17a7576a436c64662ad039d4aa2132..bcfca66c7b99b9d514fe850d6cc6abd7
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-index e98242321fcaa5cbaa242cb7e77832378a8aecf6..3954fe7e5f9ce8ea9300bfb92b7e4f4b55f0e6da 100644
+index 20e11bb0ae8949988b3499ad85016379fbe83218..7d63e9b8c92da089886ce9118bea07077f0541cd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java
-@@ -72,13 +72,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
+@@ -70,13 +70,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager {
@Override
public void setConversionTime(int time) {
@@ -1151,8 +1151,8 @@ index e98242321fcaa5cbaa242cb7e77832378a8aecf6..3954fe7e5f9ce8ea9300bfb92b7e4f4b
this.getHandle().conversionStarter = null;
this.getHandle().removeEffect(MobEffects.DAMAGE_BOOST, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.CONVERSION);
} else {
-- this.getHandle().startConverting((UUID) null, time);
-+ this.getHandle().startConverting((UUID) null, time, broadcastEntityEvent); // Paper - missing entity behaviour api - converting without entity event
+- this.getHandle().startConverting(null, time);
++ this.getHandle().startConverting(null, time, broadcastEntityEvent); // Paper - missing entity behaviour api - converting without entity event
}
}
diff --git a/patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch
index e11ae310c2..c89825748e 100644
--- a/patches/server/0636-Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/0634-Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0a39701d26eb37504980c8a399c259f612e0286a..81998223bcee27a489cdcc1bf3fb7a894718c478 100644
+index 76d8c5c5029ac564d05144cef5030c6b64df9a98..b8eba8f002bffacd4c4943d2e49045ddc753db8c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1209,7 +1209,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
index e5a0109248..571b88a531 100644
--- a/patches/server/0637-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
+++ b/patches/server/0635-Fix-return-value-of-Block-applyBoneMeal-always-being.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix return value of Block#applyBoneMeal always being false
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 30fc626f51437e254993edd9b14337fa60ba313c..e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44 100644
+index 582f1c07da8edc88dda9463992bb8503fcb9e163..d37440f78a31c676fc6efe9e59253dbe8097b94e 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -585,7 +585,7 @@ public class CraftBlock implements Block {
+@@ -583,7 +583,7 @@ public class CraftBlock implements Block {
}
}
diff --git a/patches/server/0638-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0636-Use-getChunkIfLoadedImmediately-in-places.patch
index c5f7bc04c3..c5f7bc04c3 100644
--- a/patches/server/0638-Use-getChunkIfLoadedImmediately-in-places.patch
+++ b/patches/server/0636-Use-getChunkIfLoadedImmediately-in-places.patch
diff --git a/patches/server/0639-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0637-Fix-commands-from-signs-not-firing-command-events.patch
index 642ec71ff4..642ec71ff4 100644
--- a/patches/server/0639-Fix-commands-from-signs-not-firing-command-events.patch
+++ b/patches/server/0637-Fix-commands-from-signs-not-firing-command-events.patch
diff --git a/patches/server/0640-Adds-PlayerArmSwingEvent.patch b/patches/server/0638-Adds-PlayerArmSwingEvent.patch
index 2bf2ddfeb2..b3d3eef0c5 100644
--- a/patches/server/0640-Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/0638-Adds-PlayerArmSwingEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Adds PlayerArmSwingEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 81998223bcee27a489cdcc1bf3fb7a894718c478..4d2c3a03236e95283473e3290f5efe95f2a196bb 100644
+index b8eba8f002bffacd4c4943d2e49045ddc753db8c..e0937f5437451c383e9a540d98b07f23120cb8f1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2491,7 +2491,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2494,7 +2494,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Arm swing animation
diff --git a/patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch
index 28965b98d3..d2d5b852a1 100644
--- a/patches/server/0641-Fixes-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0639-Fixes-kick-event-leave-message-not-being-sent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fixes kick event leave message not being sent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index dc134bfac4fb2bef6d99c7c88cb680d87808a5f7..62906422a96995ca4eac5a4d8ad2af3093a6a047 100644
+index 7d5de33442fe4ba53c51cc7356323622c2c3022f..478dbba3519f8d2fdd4b203756403761ccad553b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -270,7 +270,6 @@ public class ServerPlayer extends Player {
@@ -17,7 +17,7 @@ index dc134bfac4fb2bef6d99c7c88cb680d87808a5f7..62906422a96995ca4eac5a4d8ad2af30
public boolean isRealPlayer; // Paper
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d743873454 100644
+index e0937f5437451c383e9a540d98b07f23120cb8f1..7b2c971dad894718825475f3af364f0c653e5beb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -514,7 +514,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -37,7 +37,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
this.connection.setReadOnly();
MinecraftServer minecraftserver = this.server;
Connection networkmanager = this.connection;
-@@ -1983,6 +1982,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1986,6 +1985,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void onDisconnect(Component reason) {
@@ -49,7 +49,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
// CraftBukkit start - Rarely it would send a disconnect line twice
if (this.processedDisconnect) {
return;
-@@ -2000,7 +2004,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2003,7 +2007,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player.disconnect();
// Paper start - Adventure
@@ -59,7 +59,7 @@ index 4d2c3a03236e95283473e3290f5efe95f2a196bb..8141d09c2b31053f0fbf3696dbc857d7
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 ea195117f25ea0009ff646e08aec7401d1edb6b4..a427354b357e13bde80e4a09e019dd777caca280 100644
+index 77d80170cabc358c75d58ac7ff19054ba6b7617f..c8e38ed5e14fb137a7d169c57bc58bdf4421e0cc 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -564,6 +564,11 @@ public abstract class PlayerList {
diff --git a/patches/server/0642-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0640-Add-config-for-mobs-immune-to-default-effects.patch
index 004b00f0db..004b00f0db 100644
--- a/patches/server/0642-Add-config-for-mobs-immune-to-default-effects.patch
+++ b/patches/server/0640-Add-config-for-mobs-immune-to-default-effects.patch
diff --git a/patches/server/0643-Fix-incorrect-message-for-outdated-client.patch b/patches/server/0641-Fix-incorrect-message-for-outdated-client.patch
index 73f722f54d..73f722f54d 100644
--- a/patches/server/0643-Fix-incorrect-message-for-outdated-client.patch
+++ b/patches/server/0641-Fix-incorrect-message-for-outdated-client.patch
diff --git a/patches/server/0644-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0642-Don-t-apply-cramming-damage-to-players.patch
index de6cc08fd7..a423c75fc2 100644
--- a/patches/server/0644-Don-t-apply-cramming-damage-to-players.patch
+++ b/patches/server/0642-Don-t-apply-cramming-damage-to-players.patch
@@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed,
For those who really want it a config option is provided.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 62906422a96995ca4eac5a4d8ad2af3093a6a047..3d9f3e49cc783ace04f5228a5ae33f35799ced4a 100644
+index 478dbba3519f8d2fdd4b203756403761ccad553b..deaf1fcb189ba1382f2b52d12afa12463874f7ec 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -100,6 +100,7 @@ import net.minecraft.util.Mth;
diff --git a/patches/server/0645-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0643-Rate-options-and-timings-for-sensors-and-behaviors.patch
index 297c6b3a06..297c6b3a06 100644
--- a/patches/server/0645-Rate-options-and-timings-for-sensors-and-behaviors.patch
+++ b/patches/server/0643-Rate-options-and-timings-for-sensors-and-behaviors.patch
diff --git a/patches/server/0646-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0644-Add-a-bunch-of-missing-forceDrop-toggles.patch
index cbd167929b..cbd167929b 100644
--- a/patches/server/0646-Add-a-bunch-of-missing-forceDrop-toggles.patch
+++ b/patches/server/0644-Add-a-bunch-of-missing-forceDrop-toggles.patch
diff --git a/patches/server/0647-Stinger-API.patch b/patches/server/0645-Stinger-API.patch
index a5a2a838f7..49ac5ef4ef 100644
--- a/patches/server/0647-Stinger-API.patch
+++ b/patches/server/0645-Stinger-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Stinger API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 61292952681727bcd651064619bff1b41c560d75..1973a8ed75f9bacebebfa74dd2d06bf7d840ea4a 100644
+index b56504c3e5c457bfe83bbc864dc217c2f0cc9d18..084bf9ab43c322f8856dc8f600a18ae166aaa5ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -340,7 +340,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -336,7 +336,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
// Paper end
}
diff --git a/patches/server/0648-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0646-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
index c9f7c064a5..c9f7c064a5 100644
--- a/patches/server/0648-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
+++ b/patches/server/0646-Fix-incosistency-issue-with-empty-map-items-in-CB.patch
diff --git a/patches/server/0649-Add-System.out-err-catcher.patch b/patches/server/0647-Add-System.out-err-catcher.patch
index f0508a65a3..0d16af6e4f 100644
--- a/patches/server/0649-Add-System.out-err-catcher.patch
+++ b/patches/server/0647-Add-System.out-err-catcher.patch
@@ -105,10 +105,10 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4e683d5d8afcdab9cfa85c657bb76a0022912d9b..6a56751dc98a8760e68a486442e30006cf4a4637 100644
+index 95f2490000e3f49644d6795a4c4c67ee0674fbf9..46a4a9e18299060fa0050e2bd0e5a01716a6bce0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -300,6 +300,7 @@ public final class CraftServer implements Server {
+@@ -299,6 +299,7 @@ public final class CraftServer implements Server {
public int reloadCount;
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
diff --git a/patches/server/0650-Fix-test-not-bootstrapping.patch b/patches/server/0648-Fix-test-not-bootstrapping.patch
index 6c582bf1e6..6c582bf1e6 100644
--- a/patches/server/0650-Fix-test-not-bootstrapping.patch
+++ b/patches/server/0648-Fix-test-not-bootstrapping.patch
diff --git a/patches/server/0651-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0649-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
index a02cafdd72..a02cafdd72 100644
--- a/patches/server/0651-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
+++ b/patches/server/0649-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
diff --git a/patches/server/0652-Improve-boat-collision-performance.patch b/patches/server/0650-Improve-boat-collision-performance.patch
index 4836f8e064..4836f8e064 100644
--- a/patches/server/0652-Improve-boat-collision-performance.patch
+++ b/patches/server/0650-Improve-boat-collision-performance.patch
diff --git a/patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0651-Prevent-AFK-kick-while-watching-end-credits.patch
index d77603e26d..8fbcf677c3 100644
--- a/patches/server/0653-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0651-Prevent-AFK-kick-while-watching-end-credits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8141d09c2b31053f0fbf3696dbc857d743873454..ce1a8355e155faaec9d8eebf89a41b7929dcbd12 100644
+index 7b2c971dad894718825475f3af364f0c653e5beb..5c98df63c36a01a70569894534f6059218ba83d2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -431,7 +431,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0654-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0652-Allow-skipping-writing-of-comments-to-server.propert.patch
index c456bcd235..c456bcd235 100644
--- a/patches/server/0654-Allow-skipping-writing-of-comments-to-server.propert.patch
+++ b/patches/server/0652-Allow-skipping-writing-of-comments-to-server.propert.patch
diff --git a/patches/server/0655-Add-PlayerSetSpawnEvent.patch b/patches/server/0653-Add-PlayerSetSpawnEvent.patch
index e2b6777b92..169d1575be 100644
--- a/patches/server/0655-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0653-Add-PlayerSetSpawnEvent.patch
@@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..d797637f61bdf8a424f56fbb48e28b7c
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 3d9f3e49cc783ace04f5228a5ae33f35799ced4a..fc0ef295241036230e2a0a12775445983df4a861 100644
+index deaf1fcb189ba1382f2b52d12afa12463874f7ec..c06e81d5448364154d9fb4fb68c1867d04daeb97 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1349,7 +1349,7 @@ public class ServerPlayer extends Player {
@@ -154,7 +154,7 @@ index 3d9f3e49cc783ace04f5228a5ae33f35799ced4a..fc0ef295241036230e2a0a1277544598
public void trackChunk(ChunkPos chunkPos, Packet<?> chunkDataPacket) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a427354b357e13bde80e4a09e019dd777caca280..2896123ce0384ee1b5039f5263aa902532bce67d 100644
+index c8e38ed5e14fb137a7d169c57bc58bdf4421e0cc..c3fb1bbc0e2a44160e86b5bb4ab88f78991fa9e6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -860,7 +860,7 @@ public abstract class PlayerList {
@@ -187,10 +187,10 @@ index 1a27b7faa22e6b3dc5fce329ed06425de56c4315..b9903c29bdea8d1e3b6fce0e97be6bd9
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cd640331afe72cd181dcb862f993ba3e0b68fc98..416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494 100644
+index 02e8f2ca5d97df0b1c845e10261a4bc70da755a4..8ecfb50b3c999078d7276fbee34fadd3af60fe45 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1344,9 +1344,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1298,9 +1298,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setBedSpawnLocation(Location location, boolean override) {
if (location == null) {
diff --git a/patches/server/0656-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0654-Make-hoppers-respect-inventory-max-stack-size.patch
index 929c4e2715..929c4e2715 100644
--- a/patches/server/0656-Make-hoppers-respect-inventory-max-stack-size.patch
+++ b/patches/server/0654-Make-hoppers-respect-inventory-max-stack-size.patch
diff --git a/patches/server/0657-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0655-Optimize-entity-tracker-passenger-checks.patch
index b832093f21..b832093f21 100644
--- a/patches/server/0657-Optimize-entity-tracker-passenger-checks.patch
+++ b/patches/server/0655-Optimize-entity-tracker-passenger-checks.patch
diff --git a/patches/server/0658-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0656-Config-option-for-Piglins-guarding-chests.patch
index 23ef76f3e7..23ef76f3e7 100644
--- a/patches/server/0658-Config-option-for-Piglins-guarding-chests.patch
+++ b/patches/server/0656-Config-option-for-Piglins-guarding-chests.patch
diff --git a/patches/server/0659-Added-EntityDamageItemEvent.patch b/patches/server/0657-Added-EntityDamageItemEvent.patch
index 7a458b966f..7a458b966f 100644
--- a/patches/server/0659-Added-EntityDamageItemEvent.patch
+++ b/patches/server/0657-Added-EntityDamageItemEvent.patch
diff --git a/patches/server/0660-Optimize-indirect-passenger-iteration.patch b/patches/server/0658-Optimize-indirect-passenger-iteration.patch
index 8df21dc37e..67debf687d 100644
--- a/patches/server/0660-Optimize-indirect-passenger-iteration.patch
+++ b/patches/server/0658-Optimize-indirect-passenger-iteration.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5277a260f1734051033159ebe2e4af18d48b2097..2a37fe43ef749cfa7fe7afc8899b4922fff73d86 100644
+index 6a7b3a54a29b1632061c241b89058729c2b3e036..19365914976b7af0e85d9dbf1e5995f082e1a754 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3893,20 +3893,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0661-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0659-Configurable-item-frame-map-cursor-update-interval.patch
index 898bee5973..898bee5973 100644
--- a/patches/server/0661-Configurable-item-frame-map-cursor-update-interval.patch
+++ b/patches/server/0659-Configurable-item-frame-map-cursor-update-interval.patch
diff --git a/patches/server/0662-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0660-Make-EntityUnleashEvent-cancellable.patch
index 3d733321df..3d733321df 100644
--- a/patches/server/0662-Make-EntityUnleashEvent-cancellable.patch
+++ b/patches/server/0660-Make-EntityUnleashEvent-cancellable.patch
diff --git a/patches/server/0663-Clear-bucket-NBT-after-dispense.patch b/patches/server/0661-Clear-bucket-NBT-after-dispense.patch
index 9705f1b9dd..9705f1b9dd 100644
--- a/patches/server/0663-Clear-bucket-NBT-after-dispense.patch
+++ b/patches/server/0661-Clear-bucket-NBT-after-dispense.patch
diff --git a/patches/server/0664-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0662-Change-EnderEye-target-without-changing-other-things.patch
index 22293dd5c1..22293dd5c1 100644
--- a/patches/server/0664-Change-EnderEye-target-without-changing-other-things.patch
+++ b/patches/server/0662-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/server/0665-Add-BlockBreakBlockEvent.patch b/patches/server/0663-Add-BlockBreakBlockEvent.patch
index 83bda7fe59..83bda7fe59 100644
--- a/patches/server/0665-Add-BlockBreakBlockEvent.patch
+++ b/patches/server/0663-Add-BlockBreakBlockEvent.patch
diff --git a/patches/server/0666-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0664-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
index d9f83ce872..d9f83ce872 100644
--- a/patches/server/0666-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
+++ b/patches/server/0664-Option-to-prevent-NBT-copy-in-smithing-recipes.patch
diff --git a/patches/server/0667-More-CommandBlock-API.patch b/patches/server/0665-More-CommandBlock-API.patch
index 3cbd2436d3..3cbd2436d3 100644
--- a/patches/server/0667-More-CommandBlock-API.patch
+++ b/patches/server/0665-More-CommandBlock-API.patch
diff --git a/patches/server/0668-Add-missing-team-sidebar-display-slots.patch b/patches/server/0666-Add-missing-team-sidebar-display-slots.patch
index 0ffc852554..0ffc852554 100644
--- a/patches/server/0668-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0666-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/server/0669-Add-back-EntityPortalExitEvent.patch b/patches/server/0667-Add-back-EntityPortalExitEvent.patch
index f5cef8ac0f..6696b7bb2b 100644
--- a/patches/server/0669-Add-back-EntityPortalExitEvent.patch
+++ b/patches/server/0667-Add-back-EntityPortalExitEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2a37fe43ef749cfa7fe7afc8899b4922fff73d86..79909f65fbfeb156d3669d31571466a6aa7ce65e 100644
+index 19365914976b7af0e85d9dbf1e5995f082e1a754..719f97ff0c6a6b2480c249a3517bc27757d1c01b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3340,6 +3340,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch
index 64c6192aa1..ea10046bcc 100644
--- a/patches/server/0670-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0668-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -31,10 +31,10 @@ index bc7daf89e30152a3bcb215e91b30c9680be5c343..e809a959d69197ecdec768a2d4f348c7
blockposition1 = blockposition1.above(2);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7e635571aea53e2ee7c39315c14347955f46dfe8..a37fd8fcc1924f99f1d4a97b36a04946d06f9347 100644
+index 7edcc68a24bd812f50d9ce441fab568906061da3..8bdcf37f7e0adbf6be73a44bdbda8e69e105c2e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -693,6 +693,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -698,6 +698,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (LightningStrike) lightning.getBukkitEntity();
}
diff --git a/patches/server/0671-Get-entity-default-attributes.patch b/patches/server/0669-Get-entity-default-attributes.patch
index c80a55e699..15b48bb9b1 100644
--- a/patches/server/0671-Get-entity-default-attributes.patch
+++ b/patches/server/0669-Get-entity-default-attributes.patch
@@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..cf9d28ea97d93cec05c9fb768d59e283
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index fea31b187fd5965bf479548835e5603e78f3f3f1..a618c80fb5a184c2a06ccb7ac3cf55d9151a9fe1 100644
+index ef9a1d7e23be8ffe9a1669161de9310c6e566b40..78e1932852e002fc4d928ff9869678e308f9b7a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -570,6 +570,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -568,6 +568,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
public int getProtocolVersion() {
return net.minecraft.SharedConstants.getCurrentVersion().getProtocolVersion();
}
diff --git a/patches/server/0672-Left-handed-API.patch b/patches/server/0670-Left-handed-API.patch
index 3b4077b54a..3b4077b54a 100644
--- a/patches/server/0672-Left-handed-API.patch
+++ b/patches/server/0670-Left-handed-API.patch
diff --git a/patches/server/0673-Add-more-advancement-API.patch b/patches/server/0671-Add-more-advancement-API.patch
index 451dbda15c..451dbda15c 100644
--- a/patches/server/0673-Add-more-advancement-API.patch
+++ b/patches/server/0671-Add-more-advancement-API.patch
diff --git a/patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch
index 76f8c54c26..b9440112fb 100644
--- a/patches/server/0674-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0672-Add-ItemFactory-getSpawnEgg-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index f5610d0746b67dfe69dc79d71c4d082c083f2ee4..b32c06b1f03751c164da7049976c473dff20e4ef 100644
+index 21f5c0f2fc10b5f5752e214a08e858227bdcf2ce..583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -508,5 +508,17 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -503,5 +503,17 @@ public final class CraftItemFactory implements ItemFactory {
entity.getUniqueId().toString(),
new net.md_5.bungee.api.chat.TextComponent(customName));
}
diff --git a/patches/server/0675-Add-critical-damage-API.patch b/patches/server/0673-Add-critical-damage-API.patch
index 83a6931d96..8280cf1022 100644
--- a/patches/server/0675-Add-critical-damage-API.patch
+++ b/patches/server/0673-Add-critical-damage-API.patch
@@ -71,7 +71,7 @@ index a0d688128a1268fa1acf7c339cde15df5dce1c82..372b9ec0c8eddf4a01b4b8203a88401d
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 7ef3e4dd903c77fd6112e90999a474ff674a5e7f..20e1efcadd4a11bab8a0db48410229e4a4d5ce57 100644
+index 64e1e46bd6c4b225fe9b86c4cf632b9bb1c4af09..94796cbe43546748b28aa921d22cb4b68ef23fa6 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -988,7 +988,7 @@ public class CraftEventFactory {
@@ -101,7 +101,7 @@ index 7ef3e4dd903c77fd6112e90999a474ff674a5e7f..20e1efcadd4a11bab8a0db48410229e4
event.setCancelled(cancelled);
CraftEventFactory.callEvent(event);
if (!event.isCancelled()) {
-@@ -1135,20 +1135,28 @@ public class CraftEventFactory {
+@@ -1139,20 +1139,28 @@ public class CraftEventFactory {
}
if (cause != null) {
diff --git a/patches/server/0676-Fix-issues-with-mob-conversion.patch b/patches/server/0674-Fix-issues-with-mob-conversion.patch
index c5a854da3b..c5a854da3b 100644
--- a/patches/server/0676-Fix-issues-with-mob-conversion.patch
+++ b/patches/server/0674-Fix-issues-with-mob-conversion.patch
diff --git a/patches/server/0677-Add-isCollidable-methods-to-various-places.patch b/patches/server/0675-Add-isCollidable-methods-to-various-places.patch
index 9e718ffd89..2cead6b67f 100644
--- a/patches/server/0677-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/server/0675-Add-isCollidable-methods-to-various-places.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add isCollidable methods to various places
public net.minecraft.world.level.block.state.BlockBehaviour hasCollision
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44..8131c1db3d7963121a24348575ea8a98a80a974c 100644
+index d37440f78a31c676fc6efe9e59253dbe8097b94e..8d2da07f0793367a51026b50adc8b3dc71073013 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -484,6 +484,11 @@ public class CraftBlock implements Block {
+@@ -482,6 +482,11 @@ public class CraftBlock implements Block {
public boolean isSolid() {
return this.getNMS().blocksMotion();
}
@@ -23,12 +23,12 @@ index e7e5c9fa734072e9ae15eb5f6d75c7740ba3ba44..8131c1db3d7963121a24348575ea8a98
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-index 9068557ac50cfb26e7e3ec4ac64bac583baa582e..3e1d36a8c65e6567ac3b78903a25d5828ab74ea5 100644
+index b722a207c0e745bb172d93b90e1241d7bfa173ce..792bfc7eab33b26462e76a1912bd712e8af70073 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-@@ -325,4 +325,11 @@ public class CraftBlockState implements BlockState {
- throw new IllegalStateException("The blockState must be placed to call this method");
- }
+@@ -317,4 +317,11 @@ public class CraftBlockState implements BlockState {
+ protected void requirePlaced() {
+ Preconditions.checkState(this.isPlaced(), "The blockState must be placed to call this method");
}
+
+ // Paper start
@@ -39,10 +39,10 @@ index 9068557ac50cfb26e7e3ec4ac64bac583baa582e..3e1d36a8c65e6567ac3b78903a25d582
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index a618c80fb5a184c2a06ccb7ac3cf55d9151a9fe1..6a048eaf63dec0d061265e639088055c60fbd834 100644
+index 78e1932852e002fc4d928ff9869678e308f9b7a4..ec3cb84a4ac59a27e194e66686273496276b80c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -582,6 +582,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -580,6 +580,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
var supplier = net.minecraft.world.entity.ai.attributes.DefaultAttributes.getSupplier((net.minecraft.world.entity.EntityType<? extends net.minecraft.world.entity.LivingEntity>) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier);
}
diff --git a/patches/server/0678-Goat-ram-API.patch b/patches/server/0676-Goat-ram-API.patch
index 2d8433a918..2d8433a918 100644
--- a/patches/server/0678-Goat-ram-API.patch
+++ b/patches/server/0676-Goat-ram-API.patch
diff --git a/patches/server/0679-Add-API-for-resetting-a-single-score.patch b/patches/server/0677-Add-API-for-resetting-a-single-score.patch
index c2e1fd93b9..c2e1fd93b9 100644
--- a/patches/server/0679-Add-API-for-resetting-a-single-score.patch
+++ b/patches/server/0677-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch
index f5b6d863d8..3ea2d20740 100644
--- a/patches/server/0680-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0678-Add-Raw-Byte-Entity-Serialization.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 79909f65fbfeb156d3669d31571466a6aa7ce65e..89dd6c49d661d156a0443db4853ccf04dd5cdc14 100644
+index 719f97ff0c6a6b2480c249a3517bc27757d1c01b..266cdbadbf40959ef2214d30ddba945802b9d6ef 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2138,6 +2138,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -27,10 +27,10 @@ index 79909f65fbfeb156d3669d31571466a6aa7ce65e..89dd6c49d661d156a0443db4853ccf04
return this.isPassenger() ? false : this.saveAsPassenger(nbt);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 9155af9c7e001d4cb431e74b12c9d98227011d51..18d7d1ca3f0f6517e781ad6977800b12ca1891ec 100644
+index 02dc40b6f7b82ce503c33fb4af26cbb20c9d5b7a..5fad5dbc0815ec3ee86a3fb34fe0c68bb4c33bcc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1367,5 +1367,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1360,5 +1360,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
return set;
}
@@ -47,10 +47,10 @@ index 9155af9c7e001d4cb431e74b12c9d98227011d51..18d7d1ca3f0f6517e781ad6977800b12
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 6a048eaf63dec0d061265e639088055c60fbd834..a6564c7d69999c55abc4292cab9182390a52e749 100644
+index ec3cb84a4ac59a27e194e66686273496276b80c4..8f185a0b1a9037c1458b3ce41347e2c733e4d4de 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -493,6 +493,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -491,6 +491,29 @@ public final class CraftMagicNumbers implements UnsafeValues {
return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.of(ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.ITEM_STACK, compound, dataVersion, getDataVersion())));
}
diff --git a/patches/server/0681-Vanilla-command-permission-fixes.patch b/patches/server/0679-Vanilla-command-permission-fixes.patch
index 53008d51e9..4f690751a2 100644
--- a/patches/server/0681-Vanilla-command-permission-fixes.patch
+++ b/patches/server/0679-Vanilla-command-permission-fixes.patch
@@ -51,7 +51,7 @@ index 14c78028ff51fff6f24174ae16b7c42d34d6041a..7592b592a541912f729d6b99f455cd87
}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
-index 5ed34b60a32a2aac214de84c44689fd5a0b00a10..8dca2ad7d25f740941187698d77819af8ebc2805 100644
+index 8b93fe406ea94919b4129566764f7efe43b3330d..b26ac7192e532be94a57a70e12270272034fd5ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -87,7 +87,23 @@ public final class VanillaCommandWrapper extends BukkitCommand {
diff --git a/patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index 0323f3318d..51a8fd4611 100644
--- a/patches/server/0682-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0680-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -28,7 +28,7 @@ index e809a959d69197ecdec768a2d4f348c73c0d5b9a..0f6d4f80677c54a94a1bbfb861a3bcce
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index fc0ef295241036230e2a0a12775445983df4a861..9c7bb62646fff8ba0ab9e666dcf706ef5c5dc041 100644
+index c06e81d5448364154d9fb4fb68c1867d04daeb97..1511d45eb61e72e73bc17cfe03fbb6c22f9dd128 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1615,6 +1615,18 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0683-Fix-GameProfileCache-concurrency.patch b/patches/server/0681-Fix-GameProfileCache-concurrency.patch
index 8c22da1dde..8c22da1dde 100644
--- a/patches/server/0683-Fix-GameProfileCache-concurrency.patch
+++ b/patches/server/0681-Fix-GameProfileCache-concurrency.patch
diff --git a/patches/server/0684-Improve-and-expand-AsyncCatcher.patch b/patches/server/0682-Improve-and-expand-AsyncCatcher.patch
index 822bef6e4f..b2edc90b2d 100644
--- a/patches/server/0684-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0682-Improve-and-expand-AsyncCatcher.patch
@@ -17,10 +17,10 @@ Async catch modifications to critical entity state
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ce1a8355e155faaec9d8eebf89a41b7929dcbd12..8b85b4ea7411e9b523647e39c366bf63e27d0d2b 100644
+index 5c98df63c36a01a70569894534f6059218ba83d2..c76fa82020feba290787efb7eb6bb000ef98db8b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1653,6 +1653,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1656,6 +1656,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
@@ -166,10 +166,10 @@ index 47bab513feec217d875192afef61f3af95b93d24..d3fb277878adb26c7d80cf21f2707038
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 1973a8ed75f9bacebebfa74dd2d06bf7d840ea4a..8b6cae9a005a6db608be85805382704ff5dc6669 100644
+index 084bf9ab43c322f8856dc8f600a18ae166aaa5ef..4590764ec62938e2b601f9f8339d5c4ea183e5e2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -455,6 +455,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -451,6 +451,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
diff --git a/patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 814d6c5557..4ff6d7fef3 100644
--- a/patches/server/0685-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0683-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -278,10 +278,10 @@ index a3461824fd2162d509facf6f64c5008e3f0fd42b..d4f99f4592a86e2d8344bc2c44711fef
// Paper start - add parameters and int ret type
spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6a56751dc98a8760e68a486442e30006cf4a4637..395ca8b6ad62fc3c4c4bed0715bb8570683d755a 100644
+index 46a4a9e18299060fa0050e2bd0e5a01716a6bce0..dfb3aef5fdc4fea0975c7f27ceaf895f1094f8a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2182,6 +2182,11 @@ public final class CraftServer implements Server {
+@@ -2186,6 +2186,11 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
@@ -294,12 +294,12 @@ index 6a56751dc98a8760e68a486442e30006cf4a4637..395ca8b6ad62fc3c4c4bed0715bb8570
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a37fd8fcc1924f99f1d4a97b36a04946d06f9347..84f55724f38cd7bbe1971e9fbd7bfbfe86cd4c00 100644
+index 8bdcf37f7e0adbf6be73a44bdbda8e69e105c2e3..dbdae5af24f762c7c2678754eb688c0de9ca5215 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1698,9 +1698,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(spawnCategory, "SpawnCategory cannot be null");
- Validate.isTrue(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " are not supported.");
+@@ -1704,9 +1704,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null");
+ Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory.%s are not supported", spawnCategory);
+ // Paper start
+ return this.getSpawnLimitUnsafe(spawnCategory);
diff --git a/patches/server/0686-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0684-Sanitize-ResourceLocation-error-logging.patch
index d8427b5ba0..d8427b5ba0 100644
--- a/patches/server/0686-Sanitize-ResourceLocation-error-logging.patch
+++ b/patches/server/0684-Sanitize-ResourceLocation-error-logging.patch
diff --git a/patches/server/0687-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0685-Allow-controlled-flushing-for-network-manager.patch
index 0cecd8e3e4..0cecd8e3e4 100644
--- a/patches/server/0687-Allow-controlled-flushing-for-network-manager.patch
+++ b/patches/server/0685-Allow-controlled-flushing-for-network-manager.patch
diff --git a/patches/server/0688-Optimise-general-POI-access.patch b/patches/server/0686-Optimise-general-POI-access.patch
index 02fe35aa9d..02fe35aa9d 100644
--- a/patches/server/0688-Optimise-general-POI-access.patch
+++ b/patches/server/0686-Optimise-general-POI-access.patch
diff --git a/patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch b/patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
index fe1cc645eb..9039a81a52 100644
--- a/patches/server/0689-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
+++ b/patches/server/0687-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch
@@ -333,7 +333,7 @@ index 3f5d572994bc8b3f1e106105dc0bb202ad005b8c..5c5fe2087a7617324ab8e18389e3ffa9
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9c7bb62646fff8ba0ab9e666dcf706ef5c5dc041..63765c837d1becaba6a8d9c71929f47486683530 100644
+index 1511d45eb61e72e73bc17cfe03fbb6c22f9dd128..7b8e06fc7e2d422ba0e996d6de3f769e995cc6e5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -273,6 +273,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0690-Optimise-chunk-tick-iteration.patch b/patches/server/0688-Optimise-chunk-tick-iteration.patch
index 701231d24f..701231d24f 100644
--- a/patches/server/0690-Optimise-chunk-tick-iteration.patch
+++ b/patches/server/0688-Optimise-chunk-tick-iteration.patch
diff --git a/patches/server/0691-Execute-chunk-tasks-mid-tick.patch b/patches/server/0689-Execute-chunk-tasks-mid-tick.patch
index 2172f471d7..e58dbbe393 100644
--- a/patches/server/0691-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/0689-Execute-chunk-tasks-mid-tick.patch
@@ -19,10 +19,10 @@ index 4d861f9a58f8ea238471af22f387854d855b1801..efbf77024d235d8af9f7efc938c17afd
private MinecraftTimings() {}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 76bdca305277d8d2a659b029f035bb4da25a076e..e5612808261f5e94ed02afa2bd070db56496fa79 100644
+index 09617ff2716b8e75380421e9a19c145806602151..ebd092a3f3c745b3a2f69fd72c04be7a2ab214a2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1305,6 +1305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1303,6 +1303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private boolean pollTaskInternal() {
if (super.pollTask()) {
@@ -30,7 +30,7 @@ index 76bdca305277d8d2a659b029f035bb4da25a076e..e5612808261f5e94ed02afa2bd070db5
return true;
} else {
if (this.haveTime()) {
-@@ -2708,4 +2709,74 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2706,4 +2707,74 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
// Paper end
diff --git a/patches/server/0692-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0690-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
index 293669046c..293669046c 100644
--- a/patches/server/0692-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
+++ b/patches/server/0690-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
diff --git a/patches/server/0693-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0691-Custom-table-implementation-for-blockstate-state-loo.patch
index 0318d05517..0318d05517 100644
--- a/patches/server/0693-Custom-table-implementation-for-blockstate-state-loo.patch
+++ b/patches/server/0691-Custom-table-implementation-for-blockstate-state-loo.patch
diff --git a/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0692-Detail-more-information-in-watchdog-dumps.patch
index d4e6413e24..48ecc20997 100644
--- a/patches/server/0694-Detail-more-information-in-watchdog-dumps.patch
+++ b/patches/server/0692-Detail-more-information-in-watchdog-dumps.patch
@@ -122,7 +122,7 @@ index 1d0f87185a8a74394bc2da29828407fd4210754c..d6429d721116aac2a4df8d0b217e9efc
private void tickPassenger(Entity vehicle, Entity passenger) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 89dd6c49d661d156a0443db4853ccf04dd5cdc14..c907d7fc0af72ac8b4e36a2a9496dee29cac787b 100644
+index 266cdbadbf40959ef2214d30ddba945802b9d6ef..f1101d91b3c0e2ce05e69591a7740aa914ff5331 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1024,7 +1024,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0695-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0693-Manually-inline-methods-in-BlockPosition.patch
index c8b8adfce9..c8b8adfce9 100644
--- a/patches/server/0695-Manually-inline-methods-in-BlockPosition.patch
+++ b/patches/server/0693-Manually-inline-methods-in-BlockPosition.patch
diff --git a/patches/server/0696-Distance-manager-tick-timings.patch b/patches/server/0694-Distance-manager-tick-timings.patch
index 1ea0186cb3..1ea0186cb3 100644
--- a/patches/server/0696-Distance-manager-tick-timings.patch
+++ b/patches/server/0694-Distance-manager-tick-timings.patch
diff --git a/patches/server/0697-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0695-Name-craft-scheduler-threads-according-to-the-plugin.patch
index e2e0d713f0..e2e0d713f0 100644
--- a/patches/server/0697-Name-craft-scheduler-threads-according-to-the-plugin.patch
+++ b/patches/server/0695-Name-craft-scheduler-threads-according-to-the-plugin.patch
diff --git a/patches/server/0698-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0696-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index 336cbb88f7..336cbb88f7 100644
--- a/patches/server/0698-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0696-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
diff --git a/patches/server/0699-Add-packet-limiter-config.patch b/patches/server/0697-Add-packet-limiter-config.patch
index 52e12fb5a0..52e12fb5a0 100644
--- a/patches/server/0699-Add-packet-limiter-config.patch
+++ b/patches/server/0697-Add-packet-limiter-config.patch
diff --git a/patches/server/0700-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0698-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
index 30ce1f4f3d..30ce1f4f3d 100644
--- a/patches/server/0700-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
+++ b/patches/server/0698-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
diff --git a/patches/server/0701-Consolidate-flush-calls-for-entity-tracker-packets.patch b/patches/server/0699-Consolidate-flush-calls-for-entity-tracker-packets.patch
index 6846952891..6846952891 100644
--- a/patches/server/0701-Consolidate-flush-calls-for-entity-tracker-packets.patch
+++ b/patches/server/0699-Consolidate-flush-calls-for-entity-tracker-packets.patch
diff --git a/patches/server/0702-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0700-Don-t-lookup-fluid-state-when-raytracing.patch
index 3497fb942c..3497fb942c 100644
--- a/patches/server/0702-Don-t-lookup-fluid-state-when-raytracing.patch
+++ b/patches/server/0700-Don-t-lookup-fluid-state-when-raytracing.patch
diff --git a/patches/server/0703-Time-scoreboard-search.patch b/patches/server/0701-Time-scoreboard-search.patch
index 2f812b0753..5c5417edeb 100644
--- a/patches/server/0703-Time-scoreboard-search.patch
+++ b/patches/server/0701-Time-scoreboard-search.patch
@@ -19,7 +19,7 @@ index 670dcfa32d003870091b75937f1603a5ac9fa7d1..112029cb275d45dced60807820f1bfe9
public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
-index 39e19bea16419b9cbe53016084b8bbf014dcb056..138407c2d4b0bc55ddb9aac5d2aa3edadda090fb 100644
+index 6fcb2356b471c5a61faa0813a891c3898683d01f..7674939964894a56ce495e47d400cbf12cd0475b 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java
@@ -113,9 +113,18 @@ public final class CraftScoreboardManager implements ScoreboardManager {
diff --git a/patches/server/0704-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0702-Send-full-pos-packets-for-hard-colliding-entities.patch
index dba17c9f63..dba17c9f63 100644
--- a/patches/server/0704-Send-full-pos-packets-for-hard-colliding-entities.patch
+++ b/patches/server/0702-Send-full-pos-packets-for-hard-colliding-entities.patch
diff --git a/patches/server/0705-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0703-Do-not-run-raytrace-logic-for-AIR.patch
index 61d1c10cc0..61d1c10cc0 100644
--- a/patches/server/0705-Do-not-run-raytrace-logic-for-AIR.patch
+++ b/patches/server/0703-Do-not-run-raytrace-logic-for-AIR.patch
diff --git a/patches/server/0706-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0704-Oprimise-map-impl-for-tracked-players.patch
index 6d88849131..6d88849131 100644
--- a/patches/server/0706-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0704-Oprimise-map-impl-for-tracked-players.patch
diff --git a/patches/server/0707-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0705-Optimise-BlockSoil-nearby-water-lookup.patch
index ed636e2ee2..ed636e2ee2 100644
--- a/patches/server/0707-Optimise-BlockSoil-nearby-water-lookup.patch
+++ b/patches/server/0705-Optimise-BlockSoil-nearby-water-lookup.patch
diff --git a/patches/server/0708-Optimise-random-block-ticking.patch b/patches/server/0706-Optimise-random-block-ticking.patch
index 4157e93a2c..4157e93a2c 100644
--- a/patches/server/0708-Optimise-random-block-ticking.patch
+++ b/patches/server/0706-Optimise-random-block-ticking.patch
diff --git a/patches/server/0709-Optimise-non-flush-packet-sending.patch b/patches/server/0707-Optimise-non-flush-packet-sending.patch
index fdc4b312bf..fdc4b312bf 100644
--- a/patches/server/0709-Optimise-non-flush-packet-sending.patch
+++ b/patches/server/0707-Optimise-non-flush-packet-sending.patch
diff --git a/patches/server/0710-Optimise-nearby-player-lookups.patch b/patches/server/0708-Optimise-nearby-player-lookups.patch
index 43c9989b3d..43c9989b3d 100644
--- a/patches/server/0710-Optimise-nearby-player-lookups.patch
+++ b/patches/server/0708-Optimise-nearby-player-lookups.patch
diff --git a/patches/server/0711-Remove-streams-for-villager-AI.patch b/patches/server/0709-Remove-streams-for-villager-AI.patch
index b4ef086afb..b4ef086afb 100644
--- a/patches/server/0711-Remove-streams-for-villager-AI.patch
+++ b/patches/server/0709-Remove-streams-for-villager-AI.patch
diff --git a/patches/server/0712-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0710-Use-Velocity-compression-and-cipher-natives.patch
index 49eaa6b1a0..49eaa6b1a0 100644
--- a/patches/server/0712-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/0710-Use-Velocity-compression-and-cipher-natives.patch
diff --git a/patches/server/0713-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0711-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
index 125dc57c81..125dc57c81 100644
--- a/patches/server/0713-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
+++ b/patches/server/0711-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch
diff --git a/patches/server/0714-Fix-Bukkit-NamespacedKey-shenanigans.patch b/patches/server/0712-Fix-Bukkit-NamespacedKey-shenanigans.patch
index c77b9ae0d6..c77b9ae0d6 100644
--- a/patches/server/0714-Fix-Bukkit-NamespacedKey-shenanigans.patch
+++ b/patches/server/0712-Fix-Bukkit-NamespacedKey-shenanigans.patch
diff --git a/patches/server/0715-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0713-Fix-merchant-inventory-not-closing-on-entity-removal.patch
index 175e6eef47..175e6eef47 100644
--- a/patches/server/0715-Fix-merchant-inventory-not-closing-on-entity-removal.patch
+++ b/patches/server/0713-Fix-merchant-inventory-not-closing-on-entity-removal.patch
diff --git a/patches/server/0716-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0714-Check-requirement-before-suggesting-root-nodes.patch
index 4f135f41df..4f135f41df 100644
--- a/patches/server/0716-Check-requirement-before-suggesting-root-nodes.patch
+++ b/patches/server/0714-Check-requirement-before-suggesting-root-nodes.patch
diff --git a/patches/server/0717-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0715-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index fec922ac5a..07963d7944 100644
--- a/patches/server/0717-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0715-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8b85b4ea7411e9b523647e39c366bf63e27d0d2b..8c0cbe36eeb60b355413a19b5f8e66b996a833d7 100644
+index c76fa82020feba290787efb7eb6bb000ef98db8b..9ae8bdc5d17f585257f61f3692117e82e718b6f4 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -847,6 +847,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0718-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0716-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
index 8bc6527cd8..8bc6527cd8 100644
--- a/patches/server/0718-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
+++ b/patches/server/0716-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
diff --git a/patches/server/0719-Ensure-valid-vehicle-status.patch b/patches/server/0717-Ensure-valid-vehicle-status.patch
index 9189776594..f96c46691e 100644
--- a/patches/server/0719-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0717-Ensure-valid-vehicle-status.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 63765c837d1becaba6a8d9c71929f47486683530..c6ff2f5d1a13b4357229244cbd375461b51d1779 100644
+index 7b8e06fc7e2d422ba0e996d6de3f769e995cc6e5..5aa34babd53900fb5f7cf973628751ecec64172d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -568,7 +568,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0720-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0718-Prevent-softlocked-end-exit-portal-generation.patch
index 4b7141d625..4b7141d625 100644
--- a/patches/server/0720-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0718-Prevent-softlocked-end-exit-portal-generation.patch
diff --git a/patches/server/0721-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0719-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
index b415f668ab..b415f668ab 100644
--- a/patches/server/0721-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
+++ b/patches/server/0719-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
diff --git a/patches/server/0722-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0720-Don-t-log-debug-logging-being-disabled.patch
index 82e266f96e..82e266f96e 100644
--- a/patches/server/0722-Don-t-log-debug-logging-being-disabled.patch
+++ b/patches/server/0720-Don-t-log-debug-logging-being-disabled.patch
diff --git a/patches/server/0723-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0721-fix-various-menus-with-empty-level-accesses.patch
index 3bda24b9c6..3bda24b9c6 100644
--- a/patches/server/0723-fix-various-menus-with-empty-level-accesses.patch
+++ b/patches/server/0721-fix-various-menus-with-empty-level-accesses.patch
diff --git a/patches/server/0724-Preserve-overstacked-loot.patch b/patches/server/0722-Preserve-overstacked-loot.patch
index 940c8f47ca..940c8f47ca 100644
--- a/patches/server/0724-Preserve-overstacked-loot.patch
+++ b/patches/server/0722-Preserve-overstacked-loot.patch
diff --git a/patches/server/0725-Update-head-rotation-in-missing-places.patch b/patches/server/0723-Update-head-rotation-in-missing-places.patch
index 682fe4b2b1..d08c4d10e5 100644
--- a/patches/server/0725-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0723-Update-head-rotation-in-missing-places.patch
@@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw.
This issue only applies to players.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index c907d7fc0af72ac8b4e36a2a9496dee29cac787b..87d5b7a3d9cb406c37982419be4d112051946deb 100644
+index f1101d91b3c0e2ce05e69591a7740aa914ff5331..fb56e011de267a0f57c8b3b604409d35dd640856 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1903,6 +1903,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0726-prevent-unintended-light-block-manipulation.patch b/patches/server/0724-prevent-unintended-light-block-manipulation.patch
index 745b4cd9b5..745b4cd9b5 100644
--- a/patches/server/0726-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0724-prevent-unintended-light-block-manipulation.patch
diff --git a/patches/server/0727-Fix-CraftCriteria-defaults-map.patch b/patches/server/0725-Fix-CraftCriteria-defaults-map.patch
index 65eeffccea..65eeffccea 100644
--- a/patches/server/0727-Fix-CraftCriteria-defaults-map.patch
+++ b/patches/server/0725-Fix-CraftCriteria-defaults-map.patch
diff --git a/patches/server/0728-Fix-upstreams-block-state-factories.patch b/patches/server/0726-Fix-upstreams-block-state-factories.patch
index 42689cf062..42689cf062 100644
--- a/patches/server/0728-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0726-Fix-upstreams-block-state-factories.patch
diff --git a/patches/server/0729-Add-config-option-for-logging-player-ip-addresses.patch b/patches/server/0727-Add-config-option-for-logging-player-ip-addresses.patch
index aac66e43f6..a96c1d39be 100644
--- a/patches/server/0729-Add-config-option-for-logging-player-ip-addresses.patch
+++ b/patches/server/0727-Add-config-option-for-logging-player-ip-addresses.patch
@@ -47,7 +47,7 @@ index 595779cfd0ee1c405d7936f00a7cae1706125e7f..ed3af916dfa875dd0a5f1e730d20d11e
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 2896123ce0384ee1b5039f5263aa902532bce67d..c94172f2d2435ff4256fe21533cea2719b4cffe0 100644
+index c3fb1bbc0e2a44160e86b5bb4ab88f78991fa9e6..ffa831673805201932c36b814f4439f3bb5c4c04 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -255,7 +255,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0730-Configurable-feature-seeds.patch b/patches/server/0728-Configurable-feature-seeds.patch
index 2e7ba7f297..2e7ba7f297 100644
--- a/patches/server/0730-Configurable-feature-seeds.patch
+++ b/patches/server/0728-Configurable-feature-seeds.patch
diff --git a/patches/server/0731-VanillaCommandWrapper-didnt-account-for-entity-sende.patch b/patches/server/0729-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
index 54bf3f7028..f082107a26 100644
--- a/patches/server/0731-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
+++ b/patches/server/0729-VanillaCommandWrapper-didnt-account-for-entity-sende.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] VanillaCommandWrapper didnt account for entity senders
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
-index 8dca2ad7d25f740941187698d77819af8ebc2805..6df44aa60d2b41b95fe79ed4cf92a6d3369400ea 100644
+index b26ac7192e532be94a57a70e12270272034fd5ef..bd45d59cbfe877717b90221fbb8d03d266958984 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -64,8 +64,10 @@ public final class VanillaCommandWrapper extends BukkitCommand {
diff --git a/patches/server/0732-Add-root-admin-user-detection.patch b/patches/server/0730-Add-root-admin-user-detection.patch
index bc171867c0..bc171867c0 100644
--- a/patches/server/0732-Add-root-admin-user-detection.patch
+++ b/patches/server/0730-Add-root-admin-user-detection.patch
diff --git a/patches/server/0733-Always-allow-item-changing-in-Fireball.patch b/patches/server/0731-Always-allow-item-changing-in-Fireball.patch
index f8453901a9..f8453901a9 100644
--- a/patches/server/0733-Always-allow-item-changing-in-Fireball.patch
+++ b/patches/server/0731-Always-allow-item-changing-in-Fireball.patch
diff --git a/patches/server/0734-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0732-don-t-attempt-to-teleport-dead-entities.patch
index 910c13ba80..35e1ddc351 100644
--- a/patches/server/0734-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0732-don-t-attempt-to-teleport-dead-entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 87d5b7a3d9cb406c37982419be4d112051946deb..a648b174ba00ba2e23cbbbd34fd397f295a06390 100644
+index fb56e011de267a0f57c8b3b604409d35dd640856..b857e1846b6e215ab71cf31c31ce8c96266a4145 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -787,7 +787,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0735-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0733-Prevent-excessive-velocity-through-repeated-crits.patch
index 5cdbdc4130..5cdbdc4130 100644
--- a/patches/server/0735-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0733-Prevent-excessive-velocity-through-repeated-crits.patch
diff --git a/patches/server/0736-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0734-Remove-client-side-code-using-deprecated-for-removal.patch
index 573119e335..573119e335 100644
--- a/patches/server/0736-Remove-client-side-code-using-deprecated-for-removal.patch
+++ b/patches/server/0734-Remove-client-side-code-using-deprecated-for-removal.patch
diff --git a/patches/server/0737-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0735-Fix-removing-recipes-from-RecipeIterator.patch
index 6b05db044c..50c8cae9c0 100644
--- a/patches/server/0737-Fix-removing-recipes-from-RecipeIterator.patch
+++ b/patches/server/0735-Fix-removing-recipes-from-RecipeIterator.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix removing recipes from RecipeIterator
public net.minecraft.world.item.crafting.RecipeManager byName
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java
-index 24f336c89b548c5ba2a95372db0d7c83b5c4ec47..91895c639c33a1cafd2a35bab7b5fd83e558468d 100644
+index f12a93544313065fc9dc2a87063688aef79d3d96..548c3b288f2b3b711e1a75f1fc0d1e9713f47bcf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java
-@@ -11,6 +11,7 @@ import org.bukkit.inventory.Recipe;
+@@ -12,6 +12,7 @@ import org.bukkit.inventory.Recipe;
public class RecipeIterator implements Iterator<Recipe> {
private final Iterator<Map.Entry<RecipeType<?>, Object2ObjectLinkedOpenHashMap<ResourceLocation, net.minecraft.world.item.crafting.Recipe<?>>>> recipes;
private Iterator<net.minecraft.world.item.crafting.Recipe<?>> current;
@@ -18,7 +18,7 @@ index 24f336c89b548c5ba2a95372db0d7c83b5c4ec47..91895c639c33a1cafd2a35bab7b5fd83
public RecipeIterator() {
this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.entrySet().iterator();
-@@ -34,10 +35,16 @@ public class RecipeIterator implements Iterator<Recipe> {
+@@ -35,15 +36,27 @@ public class RecipeIterator implements Iterator<Recipe> {
public Recipe next() {
if (this.current == null || !this.current.hasNext()) {
this.current = this.recipes.next().getValue().values().iterator();
@@ -37,10 +37,9 @@ index 24f336c89b548c5ba2a95372db0d7c83b5c4ec47..91895c639c33a1cafd2a35bab7b5fd83
}
@Override
-@@ -46,6 +53,11 @@ public class RecipeIterator implements Iterator<Recipe> {
- throw new IllegalStateException("next() not yet called");
- }
-
+ public void remove() {
+ Preconditions.checkState(this.current != null, "next() not yet called");
++
+ // Paper start - fix removing recipes
+ if (this.currentRecipe instanceof org.bukkit.Keyed keyed) {
+ MinecraftServer.getServer().getRecipeManager().byName.remove(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(keyed.getKey()));
diff --git a/patches/server/0738-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0736-Prevent-sending-oversized-item-data-in-equipment-and.patch
index 92abda7e55..92abda7e55 100644
--- a/patches/server/0738-Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/0736-Prevent-sending-oversized-item-data-in-equipment-and.patch
diff --git a/patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch
index 96891e42dd..0822fcc400 100644
--- a/patches/server/0739-Hide-unnecessary-itemmeta-from-clients.patch
+++ b/patches/server/0737-Hide-unnecessary-itemmeta-from-clients.patch
@@ -18,10 +18,10 @@ index 71a8812365503d840f6702a21d504a37d67c7194..63561c0044375465fa0023b2b563a651
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8c0cbe36eeb60b355413a19b5f8e66b996a833d7..8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b 100644
+index 9ae8bdc5d17f585257f61f3692117e82e718b6f4..a47e05e1955b7c0b11fa0c36b5a97d27be0f7e1d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2705,8 +2705,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2708,8 +2708,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Refresh the current entity metadata
entity.getEntityData().refresh(player);
// SPIGOT-7136 - Allays
diff --git a/patches/server/0740-Fix-Spigot-growth-modifiers.patch b/patches/server/0738-Fix-Spigot-growth-modifiers.patch
index 7530d5438f..7530d5438f 100644
--- a/patches/server/0740-Fix-Spigot-growth-modifiers.patch
+++ b/patches/server/0738-Fix-Spigot-growth-modifiers.patch
diff --git a/patches/server/0741-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0739-Prevent-ContainerOpenersCounter-openCount-from-going.patch
index 62a65ff130..62a65ff130 100644
--- a/patches/server/0741-Prevent-ContainerOpenersCounter-openCount-from-going.patch
+++ b/patches/server/0739-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/server/0742-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0740-Add-PlayerItemFrameChangeEvent.patch
index 6214bdbdef..6214bdbdef 100644
--- a/patches/server/0742-Add-PlayerItemFrameChangeEvent.patch
+++ b/patches/server/0740-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/server/0743-Add-player-health-update-API.patch b/patches/server/0741-Add-player-health-update-API.patch
index dc4c1becce..cd2c85ccd4 100644
--- a/patches/server/0743-Add-player-health-update-API.patch
+++ b/patches/server/0741-Add-player-health-update-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494..59683479af9fa4058cab286caed2fa990c4bd293 100644
+index 8ecfb50b3c999078d7276fbee34fadd3af60fe45..df99f0c91cc3bc79ca7e5db27c2e4d215da30a55 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2366,9 +2366,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2304,9 +2304,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().maxHealthCache = getMaxHealth();
}
@@ -22,7 +22,7 @@ index 416c8e01d5cf8cb9725f882cc6dc30dfc0ca5494..59683479af9fa4058cab286caed2fa99
if (this.getHandle().queueHealthUpdatePacket) {
this.getHandle().queuedHealthUpdatePacket = packet;
} else {
-@@ -2377,6 +2379,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2315,6 +2317,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
}
diff --git a/patches/server/0744-Optimize-HashMapPalette.patch b/patches/server/0742-Optimize-HashMapPalette.patch
index 52a28a4fd3..52a28a4fd3 100644
--- a/patches/server/0744-Optimize-HashMapPalette.patch
+++ b/patches/server/0742-Optimize-HashMapPalette.patch
diff --git a/patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch
index a872c107fd..67bf1a50b0 100644
--- a/patches/server/0745-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0743-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 395ca8b6ad62fc3c4c4bed0715bb8570683d755a..3f5a8f259f8afb42760602c8bac18e92b8299092 100644
+index dfb3aef5fdc4fea0975c7f27ceaf895f1094f8a5..f23c83b281e8fa7310bd8d10f6972f68743e2ab4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2354,6 +2354,88 @@ public final class CraftServer implements Server {
+@@ -2366,6 +2366,88 @@ public final class CraftServer implements Server {
return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters
}
diff --git a/patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
index b26948317b..71830dfd1c 100644
--- a/patches/server/0746-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
+++ b/patches/server/0744-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
@@ -1180,7 +1180,7 @@ index 0000000000000000000000000000000000000000..3d2fa2466fe40e0b9d7749498684587a
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c6ff2f5d1a13b4357229244cbd375461b51d1779..68e7342a72509fb41734ee23638ffb562007ae90 100644
+index 5aa34babd53900fb5f7cf973628751ecec64172d..ea3dfa9cd06e4a44ee819ed4a203779e4c10bbd9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -461,7 +461,7 @@ public class ServerPlayer extends Player {
@@ -1202,7 +1202,7 @@ index c6ff2f5d1a13b4357229244cbd375461b51d1779..68e7342a72509fb41734ee23638ffb56
}
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index c94172f2d2435ff4256fe21533cea2719b4cffe0..432c9e4e2b16b18f795e854f4cbe30b7e14a8947 100644
+index ffa831673805201932c36b814f4439f3bb5c4c04..64e40e3caa85bff9382a483237301a8f231d1991 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -895,7 +895,7 @@ public abstract class PlayerList {
@@ -1215,7 +1215,7 @@ index c94172f2d2435ff4256fe21533cea2719b4cffe0..432c9e4e2b16b18f795e854f4cbe30b7
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a648b174ba00ba2e23cbbbd34fd397f295a06390..53e1e4ffa51b5858417862e190f0bebd1e5d340c 100644
+index b857e1846b6e215ab71cf31c31ce8c96266a4145..5296675dc1c197b67371e86da1c39dcc2e1d69e6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1210,9 +1210,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch
index e0811f8050..89716c784a 100644
--- a/patches/server/0747-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/0745-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
CHECK ME
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b..74b0d2ddcea648d017e4acbe20536352102bad95 100644
+index a47e05e1955b7c0b11fa0c36b5a97d27be0f7e1d..0203c778e2cfd421d4e9516a00535a5f20e61679 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -647,7 +647,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -142,7 +142,7 @@ index 8d4421e24feca1c8d1a05890c9e9fbb8fea92a8b..74b0d2ddcea648d017e4acbe20536352
this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround());
} else {
-@@ -1587,6 +1634,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1590,6 +1637,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
diff --git a/patches/server/0748-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0746-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
index 78d359b1d9..78d359b1d9 100644
--- a/patches/server/0748-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
+++ b/patches/server/0746-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
diff --git a/patches/server/0749-Add-more-Campfire-API.patch b/patches/server/0747-Add-more-Campfire-API.patch
index da279b0a50..da279b0a50 100644
--- a/patches/server/0749-Add-more-Campfire-API.patch
+++ b/patches/server/0747-Add-more-Campfire-API.patch
diff --git a/patches/server/0750-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0748-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
index 0246c3f0d5..0246c3f0d5 100644
--- a/patches/server/0750-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
+++ b/patches/server/0748-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
diff --git a/patches/server/0751-Fix-tripwire-state-inconsistency.patch b/patches/server/0749-Fix-tripwire-state-inconsistency.patch
index eba71d4136..eba71d4136 100644
--- a/patches/server/0751-Fix-tripwire-state-inconsistency.patch
+++ b/patches/server/0749-Fix-tripwire-state-inconsistency.patch
diff --git a/patches/server/0752-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0750-Forward-CraftEntity-in-teleport-command.patch
index 2cbd423590..5ae23d9d77 100644
--- a/patches/server/0752-Forward-CraftEntity-in-teleport-command.patch
+++ b/patches/server/0750-Forward-CraftEntity-in-teleport-command.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 53e1e4ffa51b5858417862e190f0bebd1e5d340c..ef5e979d09df13660ac7893be1209c2c2b8a136c 100644
+index 5296675dc1c197b67371e86da1c39dcc2e1d69e6..769b5e4af8d23c768ade210cb72f8857473a696c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3455,6 +3455,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0753-Improve-scoreboard-entries.patch b/patches/server/0751-Improve-scoreboard-entries.patch
index 2a65cbf36c..561724f7cd 100644
--- a/patches/server/0753-Improve-scoreboard-entries.patch
+++ b/patches/server/0751-Improve-scoreboard-entries.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Improve scoreboard entries
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
-index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb7728d8a8 100644
+index de5f382656f9fd08f6ae1795c69743c604d62d5c..97cb29beea1d133f683d7cff7a26805b09f63096 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java
@@ -146,6 +146,14 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
@@ -15,7 +15,7 @@ index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb
+ // Paper start
+ @Override
+ public Score getScoreFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException, IllegalStateException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return getScore(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
@@ -24,57 +24,57 @@ index b7f0277b50a0f45c32b818bf9fe1218874aa8533..20b29f78fe56909e02061021b82a84cb
public void unregister() throws IllegalStateException {
CraftScoreboard scoreboard = this.checkState();
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-index a038ede38ebb507d6a0182a4a34f2b0722ef024e..fe57437155ff9471738d3b85e787350601b79584 100644
+index e233eef291f64622947b0b6c4559639e510c087f..13190c4265bb83e682dede7e982ebcd19d80e334 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java
-@@ -247,4 +247,23 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
+@@ -233,4 +233,23 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
public Scoreboard getHandle() {
return this.board;
}
+ // Paper start
+ @Override
+ public ImmutableSet<Score> getScoresFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.getScores(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public void resetScoresFor(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ this.resetScores(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public Team getEntityTeam(org.bukkit.entity.Entity entity) throws IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.getEntryTeam(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 60b1cffdccde4715832546d6edbf206fbab4e82f..4b64d6c5c987e127d1ed5edad0a78f7172370b9f 100644
+index 772206a43950db2726bd79911438e2aec2d7189c..47031a6f1b7e261bb034968f83c0c496b89d1361 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-@@ -310,6 +310,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
+@@ -309,6 +309,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
}
}
+ // Paper start
+ @Override
+ public void addEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ this.addEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public boolean removeEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.removeEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+
+ @Override
+ public boolean hasEntity(org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entity, "Entity cannot be null");
++ Preconditions.checkArgument(entity != null, "Entity cannot be null");
+ return this.hasEntry(((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName());
+ }
+ // Paper end
diff --git a/patches/server/0754-Entity-powdered-snow-API.patch b/patches/server/0752-Entity-powdered-snow-API.patch
index a53af1711e..0df0028dcc 100644
--- a/patches/server/0754-Entity-powdered-snow-API.patch
+++ b/patches/server/0752-Entity-powdered-snow-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Entity powdered snow API
public net.minecraft.world.entity.monster.Skeleton inPowderSnowTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 18d7d1ca3f0f6517e781ad6977800b12ca1891ec..428795adbd9e08353196ab78730e6dc6984011e7 100644
+index 5fad5dbc0815ec3ee86a3fb34fe0c68bb4c33bcc..fbc18be64e71be2215059c34afd8129138dc4dff 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1377,5 +1377,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1370,5 +1370,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity.setRot(location.getYaw(), location.getPitch());
return !this.entity.valid && this.entity.level().addFreshEntity(this.entity, reason);
}
diff --git a/patches/server/0755-Add-API-for-item-entity-health.patch b/patches/server/0753-Add-API-for-item-entity-health.patch
index 66df625d46..66df625d46 100644
--- a/patches/server/0755-Add-API-for-item-entity-health.patch
+++ b/patches/server/0753-Add-API-for-item-entity-health.patch
diff --git a/patches/server/0756-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0754-Fix-entity-type-tags-suggestions-in-selectors.patch
index 913bb30928..913bb30928 100644
--- a/patches/server/0756-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/0754-Fix-entity-type-tags-suggestions-in-selectors.patch
diff --git a/patches/server/0757-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0755-Configurable-max-block-light-for-monster-spawning.patch
index baf913d352..baf913d352 100644
--- a/patches/server/0757-Configurable-max-block-light-for-monster-spawning.patch
+++ b/patches/server/0755-Configurable-max-block-light-for-monster-spawning.patch
diff --git a/patches/server/0758-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0756-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
index d4f3ab6d9f..d4f3ab6d9f 100644
--- a/patches/server/0758-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
+++ b/patches/server/0756-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
diff --git a/patches/server/0759-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0757-Load-effect-amplifiers-greater-than-127-correctly.patch
index 2b10cf2e71..2b10cf2e71 100644
--- a/patches/server/0759-Load-effect-amplifiers-greater-than-127-correctly.patch
+++ b/patches/server/0757-Load-effect-amplifiers-greater-than-127-correctly.patch
diff --git a/patches/server/0760-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0758-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
index 9f3ee548ee..9f3ee548ee 100644
--- a/patches/server/0760-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
+++ b/patches/server/0758-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/server/0761-Fix-bees-aging-inside-hives.patch b/patches/server/0759-Fix-bees-aging-inside-hives.patch
index 2be01a557c..2be01a557c 100644
--- a/patches/server/0761-Fix-bees-aging-inside-hives.patch
+++ b/patches/server/0759-Fix-bees-aging-inside-hives.patch
diff --git a/patches/server/0762-Bucketable-API.patch b/patches/server/0760-Bucketable-API.patch
index 3dd4d8263f..3dd4d8263f 100644
--- a/patches/server/0762-Bucketable-API.patch
+++ b/patches/server/0760-Bucketable-API.patch
diff --git a/patches/server/0763-Validate-usernames.patch b/patches/server/0761-Validate-usernames.patch
index d088b7ad1b..762960d87e 100644
--- a/patches/server/0763-Validate-usernames.patch
+++ b/patches/server/0761-Validate-usernames.patch
@@ -56,7 +56,7 @@ index ed3af916dfa875dd0a5f1e730d20d11efd6419c6..cd4e76fe5b79c7d9e615b4886a568c74
if (gameprofile != null && packet.name().equalsIgnoreCase(gameprofile.getName())) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 432c9e4e2b16b18f795e854f4cbe30b7e14a8947..42e7b41526f7cf31f33a58f18e851cd435472921 100644
+index 64e40e3caa85bff9382a483237301a8f231d1991..d25aa54689360e89b18535da54ce2c90ab21f819 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -673,7 +673,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0764-Make-water-animal-spawn-height-configurable.patch b/patches/server/0762-Make-water-animal-spawn-height-configurable.patch
index 9e90672eb5..9e90672eb5 100644
--- a/patches/server/0764-Make-water-animal-spawn-height-configurable.patch
+++ b/patches/server/0762-Make-water-animal-spawn-height-configurable.patch
diff --git a/patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 2177d3dd25..e35c0bb71b 100644
--- a/patches/server/0765-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0763-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index e5612808261f5e94ed02afa2bd070db56496fa79..edb90f6630bc19c66579890f59cc1f296fd82a75 100644
+index ebd092a3f3c745b3a2f69fd72c04be7a2ab214a2..91a66fb66e9df5d5878315afa9d357a388e6e837 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -564,7 +564,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -562,7 +562,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver));
LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey);
@@ -18,10 +18,10 @@ index e5612808261f5e94ed02afa2bd070db56496fa79..edb90f6630bc19c66579890f59cc1f29
biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3f5a8f259f8afb42760602c8bac18e92b8299092..357990dc0259f03a9deb8c8df613ab8949a239b9 100644
+index f23c83b281e8fa7310bd8d10f6972f68743e2ab4..012d9b8d053dea682cf1d857b5ce5d3585f331e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1236,7 +1236,7 @@ public final class CraftServer implements Server {
+@@ -1237,7 +1237,7 @@ public final class CraftServer implements Server {
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
LevelStem worlddimension = iregistry.get(actualDimension);
@@ -31,10 +31,10 @@ index 3f5a8f259f8afb42760602c8bac18e92b8299092..357990dc0259f03a9deb8c8df613ab89
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 84f55724f38cd7bbe1971e9fbd7bfbfe86cd4c00..70e149700237fb960741a1a32e72a8007909544d 100644
+index dbdae5af24f762c7c2678754eb688c0de9ca5215..05c085f6c2c304879f6c5a823755bfe6aee1a9b9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -203,6 +203,30 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -202,6 +202,30 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getPlayerCount() {
return world.players().size();
}
diff --git a/patches/server/0766-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0764-Add-config-option-for-worlds-affected-by-time-cmd.patch
index 156eacada9..156eacada9 100644
--- a/patches/server/0766-Add-config-option-for-worlds-affected-by-time-cmd.patch
+++ b/patches/server/0764-Add-config-option-for-worlds-affected-by-time-cmd.patch
diff --git a/patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch
index d19f7179e1..7bec9a60ef 100644
--- a/patches/server/0767-Add-new-overload-to-PersistentDataContainer-has.patch
+++ b/patches/server/0765-Add-new-overload-to-PersistentDataContainer-has.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add new overload to PersistentDataContainer#has
Adds the new overload: PersistentDataContainer#has(NamespacedKey key)
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
-index 2c59f09a9261a1690951161fd856a5848d9885b7..f0588bec9be09cb8273c310fb3de8bfe72dee9e5 100644
+index a94389eebe51bb368f759b3f99f0b9ed08ae2bdd..64110e74c6f6f0433219a721b490970ee33c0b00 100644
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
@@ -161,5 +161,12 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
@@ -16,7 +16,7 @@ index 2c59f09a9261a1690951161fd856a5848d9885b7..f0588bec9be09cb8273c310fb3de8bfe
+
+ @Override
+ public boolean has(NamespacedKey key) {
-+ Validate.notNull(key, "The provided key for the custom value was null");
++ Preconditions.checkArgument(key != null, "The provided key for the custom value was null");
+
+ return this.customDataTags.containsKey(key.toString());
+ }
diff --git a/patches/server/0768-Multiple-Entries-with-Scoreboards.patch b/patches/server/0766-Multiple-Entries-with-Scoreboards.patch
index b644176ac9..66769fb534 100644
--- a/patches/server/0768-Multiple-Entries-with-Scoreboards.patch
+++ b/patches/server/0766-Multiple-Entries-with-Scoreboards.patch
@@ -70,7 +70,7 @@ index 610d312b9c8f6c8d1f102e8ba2fe9fc2cc3e98c5..3a4a0727ad44322e3ba85512cd077808
public void onObjectiveAdded(Objective objective) {
super.onObjectiveAdded(objective);
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
-index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d4eee8291 100644
+index 47031a6f1b7e261bb034968f83c0c496b89d1361..7098b77fe4275e39694ed7d8fb031b9397302b9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
@@ -234,6 +234,21 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
@@ -85,7 +85,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
+ @Override
+ public void addEntries(java.util.Collection<String> entries) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entries, "Entries cannot be null");
++ Preconditions.checkArgument(entries != null, "Entries cannot be null");
+ CraftScoreboard scoreboard = this.checkState();
+
+ ((net.minecraft.server.ServerScoreboard) scoreboard.board).addPlayersToTeam(entries, this.team);
@@ -94,7 +94,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
@Override
public boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException {
- Validate.notNull(player, "OfflinePlayer cannot be null");
+ Preconditions.checkArgument(player != null, "OfflinePlayer cannot be null");
@@ -253,6 +268,28 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
return true;
}
@@ -107,7 +107,7 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
+ @Override
+ public boolean removeEntries(java.util.Collection<String> entries) throws IllegalStateException, IllegalArgumentException {
-+ Validate.notNull(entries, "Entry cannot be null");
++ Preconditions.checkArgument(entries != null, "Entry cannot be null");
+ CraftScoreboard scoreboard = this.checkState();
+
+ for (String entry : entries) {
@@ -123,4 +123,4 @@ index 4b64d6c5c987e127d1ed5edad0a78f7172370b9f..67efb0d38ae369ff5254f7b1ec85d32d
+
@Override
public boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException {
- Validate.notNull(player, "OfflinePlayer cannot be null");
+ Preconditions.checkArgument(player != null, "OfflinePlayer cannot be null");
diff --git a/patches/server/0769-Reset-placed-block-on-exception.patch b/patches/server/0767-Reset-placed-block-on-exception.patch
index 308089d693..308089d693 100644
--- a/patches/server/0769-Reset-placed-block-on-exception.patch
+++ b/patches/server/0767-Reset-placed-block-on-exception.patch
diff --git a/patches/server/0770-Add-configurable-height-for-slime-spawn.patch b/patches/server/0768-Add-configurable-height-for-slime-spawn.patch
index 65b8d6d80d..65b8d6d80d 100644
--- a/patches/server/0770-Add-configurable-height-for-slime-spawn.patch
+++ b/patches/server/0768-Add-configurable-height-for-slime-spawn.patch
diff --git a/patches/server/0771-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0769-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
index f2c95ba6c0..f2c95ba6c0 100644
--- a/patches/server/0771-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
+++ b/patches/server/0769-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch
diff --git a/patches/server/0772-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0770-Fix-xp-reward-for-baby-zombies.patch
index 399ad48f22..399ad48f22 100644
--- a/patches/server/0772-Fix-xp-reward-for-baby-zombies.patch
+++ b/patches/server/0770-Fix-xp-reward-for-baby-zombies.patch
diff --git a/patches/server/0773-Kick-on-main-for-illegal-chat.patch b/patches/server/0771-Kick-on-main-for-illegal-chat.patch
index 382ae32781..345e23b0be 100644
--- a/patches/server/0773-Kick-on-main-for-illegal-chat.patch
+++ b/patches/server/0771-Kick-on-main-for-illegal-chat.patch
@@ -7,10 +7,10 @@ Makes the PlayerKickEvent fire on the main thread for
illegal characters or chat out-of-order errors.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e1a915b0c 100644
+index 0203c778e2cfd421d4e9516a00535a5f20e61679..446ef101ca506ec9fdce6cede70a1e51d97d7dfc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2162,7 +2162,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2165,7 +2165,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -20,7 +20,7 @@ index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2196,7 +2198,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2199,7 +2201,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -30,7 +30,7 @@ index 74b0d2ddcea648d017e4acbe20536352102bad95..c47d838ad26e4a32de065d9adc2af35e
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2282,7 +2286,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2285,7 +2289,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
diff --git a/patches/server/0774-Multi-Block-Change-API-Implementation.patch b/patches/server/0772-Multi-Block-Change-API-Implementation.patch
index 528fd87162..9bdaf3072d 100644
--- a/patches/server/0774-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0772-Multi-Block-Change-API-Implementation.patch
@@ -24,10 +24,10 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a
public void write(FriendlyByteBuf buf) {
buf.writeLong(this.sectionPos.asLong());
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 59683479af9fa4058cab286caed2fa990c4bd293..6373c2df3acd6dcae321e9914bea7a6beaa51c5d 100644
+index df99f0c91cc3bc79ca7e5db27c2e4d215da30a55..c949a3581581aa34a678d942fe38e660ba389eef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -920,6 +920,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -878,6 +878,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0775-Fix-NotePlayEvent.patch b/patches/server/0773-Fix-NotePlayEvent.patch
index 5104743fbe..5104743fbe 100644
--- a/patches/server/0775-Fix-NotePlayEvent.patch
+++ b/patches/server/0773-Fix-NotePlayEvent.patch
diff --git a/patches/server/0776-Freeze-Tick-Lock-API.patch b/patches/server/0774-Freeze-Tick-Lock-API.patch
index 18ef99da47..0951dac980 100644
--- a/patches/server/0776-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0774-Freeze-Tick-Lock-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ef5e979d09df13660ac7893be1209c2c2b8a136c..dc676cdabfa306a3975e25f981078ead317196c1 100644
+index 769b5e4af8d23c768ade210cb72f8857473a696c..cad5f9feffd70ca1cdff9f36b16e73df405858bf 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -402,6 +402,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -59,7 +59,7 @@ index 5287ff8b30a6d27ca05241695a6c99e868a5aa36..351c60a6f1dfc00aa1a300ed929e81df
if (this.isInPowderSnow && this.canFreeze()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 428795adbd9e08353196ab78730e6dc6984011e7..8317d5100d16fb242e4ff9f7b965e1dbd147cede 100644
+index fbc18be64e71be2215059c34afd8129138dc4dff..cc72d960d9a5f9481ec2214b1549a344907a68da 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -663,6 +663,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0777-Dolphin-API.patch b/patches/server/0775-Dolphin-API.patch
index 9fd01d6fb1..9fd01d6fb1 100644
--- a/patches/server/0777-Dolphin-API.patch
+++ b/patches/server/0775-Dolphin-API.patch
diff --git a/patches/server/0778-More-PotionEffectType-API.patch b/patches/server/0776-More-PotionEffectType-API.patch
index 15d2f7a5ec..15d2f7a5ec 100644
--- a/patches/server/0778-More-PotionEffectType-API.patch
+++ b/patches/server/0776-More-PotionEffectType-API.patch
diff --git a/patches/server/0779-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0777-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
index 839a5f95d4..839a5f95d4 100644
--- a/patches/server/0779-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
+++ b/patches/server/0777-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
diff --git a/patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch
index c2777a1918..379e607e9d 100644
--- a/patches/server/0780-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0778-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 357990dc0259f03a9deb8c8df613ab8949a239b9..5c64c95289b466026722a318e818da23da56086a 100644
+index 012d9b8d053dea682cf1d857b5ce5d3585f331e8..74b7824d104ad568e76dd3352bc509997b5c91fd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2016,6 +2016,13 @@ public final class CraftServer implements Server {
+@@ -2017,6 +2017,13 @@ public final class CraftServer implements Server {
return console.console;
}
@@ -161,7 +161,7 @@ index eaff8df6c8c12c64e005a68a02e2e35ed88f757c..1c638a4b1f2c841928d8b2a7ae43e4eb
if (this instanceof CraftBlockCommandSender) {
if (ServerCommandSender.blockPermInst == null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
-index 6df44aa60d2b41b95fe79ed4cf92a6d3369400ea..6035af2cf08353b3d3801220d8116d8611a0cd37 100644
+index bd45d59cbfe877717b90221fbb8d03d266958984..eb20ac9d0e70c48c2c671109b7706c56ff0f10f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -84,6 +84,11 @@ public final class VanillaCommandWrapper extends BukkitCommand {
diff --git a/patches/server/0781-Add-missing-structure-set-seed-configs.patch b/patches/server/0779-Add-missing-structure-set-seed-configs.patch
index 40285a58a1..40285a58a1 100644
--- a/patches/server/0781-Add-missing-structure-set-seed-configs.patch
+++ b/patches/server/0779-Add-missing-structure-set-seed-configs.patch
diff --git a/patches/server/0782-Implement-regenerateChunk.patch b/patches/server/0780-Implement-regenerateChunk.patch
index 98e8a8ddd5..2101ebbee1 100644
--- a/patches/server/0782-Implement-regenerateChunk.patch
+++ b/patches/server/0780-Implement-regenerateChunk.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Implement regenerateChunk
Co-authored-by: Jason Penilla <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 70e149700237fb960741a1a32e72a8007909544d..2b0ed0b70b01e1efd315ec13492a53ec728a9fec 100644
+index 05c085f6c2c304879f6c5a823755bfe6aee1a9b9..e49c907f668b17cb85505b9199af3b90f2c5af74 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -142,6 +142,7 @@ import org.jetbrains.annotations.NotNull;
+@@ -141,6 +141,7 @@ import org.jetbrains.annotations.NotNull;
public class CraftWorld extends CraftRegionAccessor implements World {
public static final int CUSTOM_DIMENSION_OFFSET = 10;
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
@@ -17,7 +17,7 @@ index 70e149700237fb960741a1a32e72a8007909544d..2b0ed0b70b01e1efd315ec13492a53ec
private final ServerLevel world;
private WorldBorder worldBorder;
-@@ -427,27 +428,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -426,27 +427,61 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean regenerateChunk(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
diff --git a/patches/server/0783-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0781-Fix-cancelled-powdered-snow-bucket-placement.patch
index cd73c1c14d..cd73c1c14d 100644
--- a/patches/server/0783-Fix-cancelled-powdered-snow-bucket-placement.patch
+++ b/patches/server/0781-Fix-cancelled-powdered-snow-bucket-placement.patch
diff --git a/patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index b3024ef399..e39fc3e9bd 100644
--- a/patches/server/0784-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0782-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
@@ -6,15 +6,15 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit
Copies appropriate checks from CraftWorld#getSpawnLimit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5c64c95289b466026722a318e818da23da56086a..2ef63197ab4bbad14e90139528879f8caef45372 100644
+index 74b7824d104ad568e76dd3352bc509997b5c91fd..f2f81ee6e938ef3d148f16729c0daf2fde8e1b26 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2190,6 +2190,8 @@ public final class CraftServer implements Server {
+@@ -2194,6 +2194,8 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
// Paper start
-+ Validate.notNull(spawnCategory, "SpawnCategory cannot be null");
-+ Validate.isTrue(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " does not have a spawn limit.");
++ Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null");
++ Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " does not have a spawn limit.");
return this.getSpawnLimitUnsafe(spawnCategory);
}
public int getSpawnLimitUnsafe(final SpawnCategory spawnCategory) {
diff --git a/patches/server/0785-Add-GameEvent-tags.patch b/patches/server/0783-Add-GameEvent-tags.patch
index 091acd03cf..b33e7a1eba 100644
--- a/patches/server/0785-Add-GameEvent-tags.patch
+++ b/patches/server/0783-Add-GameEvent-tags.patch
@@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2ef63197ab4bbad14e90139528879f8caef45372..9d319df303599ba44773526902d3314430031689 100644
+index f2f81ee6e938ef3d148f16729c0daf2fde8e1b26..68a929979e61f418f5833ba7886c86d959d3a89f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2598,6 +2598,15 @@ public final class CraftServer implements Server {
+@@ -2615,6 +2615,15 @@ public final class CraftServer implements Server {
return (org.bukkit.Tag<T>) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey);
}
}
@@ -65,7 +65,7 @@ index 2ef63197ab4bbad14e90139528879f8caef45372..9d319df303599ba44773526902d33144
default -> throw new IllegalArgumentException();
}
-@@ -2630,6 +2639,13 @@ public final class CraftServer implements Server {
+@@ -2647,6 +2656,13 @@ public final class CraftServer implements Server {
net.minecraft.core.Registry<EntityType<?>> entityTags = BuiltInRegistries.ENTITY_TYPE;
return entityTags.getTags().map(pair -> (org.bukkit.Tag<T>) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList());
}
diff --git a/patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
index 9ef9dbd884..45ac694a2b 100644
--- a/patches/server/0786-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
+++ b/patches/server/0784-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
@@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether,
for example.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index edb90f6630bc19c66579890f59cc1f296fd82a75..fe363bb2aff031c0efb812fa7e12d585984e2b29 100644
+index 91a66fb66e9df5d5878315afa9d357a388e6e837..934e948bb112bcfc69e656ac4c6a97f0a72d7b74 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1308,6 +1308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1306,6 +1306,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.executeMidTickTasks(); // Paper - execute chunk tasks mid tick
return true;
} else {
@@ -20,7 +20,7 @@ index edb90f6630bc19c66579890f59cc1f296fd82a75..fe363bb2aff031c0efb812fa7e12d585
if (this.haveTime()) {
Iterator iterator = this.getAllLevels().iterator();
-@@ -1315,12 +1316,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1313,12 +1314,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
ServerLevel worldserver = (ServerLevel) iterator.next();
if (worldserver.getChunkSource().pollTask()) {
diff --git a/patches/server/0787-Furnace-RecipesUsed-API.patch b/patches/server/0785-Furnace-RecipesUsed-API.patch
index 2e6cf1c2fe..2e6cf1c2fe 100644
--- a/patches/server/0787-Furnace-RecipesUsed-API.patch
+++ b/patches/server/0785-Furnace-RecipesUsed-API.patch
diff --git a/patches/server/0788-Configurable-sculk-sensor-listener-range.patch b/patches/server/0786-Configurable-sculk-sensor-listener-range.patch
index c68e2d2cc3..c68e2d2cc3 100644
--- a/patches/server/0788-Configurable-sculk-sensor-listener-range.patch
+++ b/patches/server/0786-Configurable-sculk-sensor-listener-range.patch
diff --git a/patches/server/0789-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0787-Add-missing-block-data-mins-and-maxes.patch
index 2096473939..2096473939 100644
--- a/patches/server/0789-Add-missing-block-data-mins-and-maxes.patch
+++ b/patches/server/0787-Add-missing-block-data-mins-and-maxes.patch
diff --git a/patches/server/0790-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0788-Option-to-have-default-CustomSpawners-in-custom-worl.patch
index 8f273c8446..964a6c913e 100644
--- a/patches/server/0790-Option-to-have-default-CustomSpawners-in-custom-worl.patch
+++ b/patches/server/0788-Option-to-have-default-CustomSpawners-in-custom-worl.patch
@@ -10,10 +10,10 @@ just looking at the LevelStem key, look at the DimensionType key which
is one level below that. Defaults to off to keep vanilla behavior.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index fe363bb2aff031c0efb812fa7e12d585984e2b29..9c020fafb8a121c9307bac354500b720a3548a80 100644
+index 934e948bb112bcfc69e656ac4c6a97f0a72d7b74..a9240274b903f23a5d0b2414b3bc7a984845b6cd 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -591,7 +591,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -589,7 +589,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.commandStorage = new CommandStorage(worldpersistentdata);
} else {
ChunkProgressListener worldloadlistener = this.progressListenerFactory.create(11);
diff --git a/patches/server/0791-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0789-Put-world-into-worldlist-before-initing-the-world.patch
index 233433f1d0..5dd414a8a8 100644
--- a/patches/server/0791-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0789-Put-world-into-worldlist-before-initing-the-world.patch
@@ -7,10 +7,10 @@ Some parts of legacy conversion will need the overworld
to get the legacy structure data storage
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 9c020fafb8a121c9307bac354500b720a3548a80..a168a277cb173d6755042f7d0ab9e32961f33dfa 100644
+index a9240274b903f23a5d0b2414b3bc7a984845b6cd..9b720d3407802eac986c2044892d5b70455aedfb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -603,9 +603,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -601,9 +601,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
worlddata.setModdedInfo(this.getServerModName(), this.getModdedStatus().shouldReportAsModified());
@@ -23,10 +23,10 @@ index 9c020fafb8a121c9307bac354500b720a3548a80..a168a277cb173d6755042f7d0ab9e329
if (worlddata.getCustomBossEvents() != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9d319df303599ba44773526902d3314430031689..f105033854dede9e7fa3f3d7af5dab95295d320f 100644
+index 68a929979e61f418f5833ba7886c86d959d3a89f..bee2e61da10e97433c0a77496de421db85200055 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1265,10 +1265,11 @@ public final class CraftServer implements Server {
+@@ -1266,10 +1266,11 @@ public final class CraftServer implements Server {
return null;
}
diff --git a/patches/server/0792-Fix-Entity-Position-Desync.patch b/patches/server/0790-Fix-Entity-Position-Desync.patch
index 3ccd5470c9..3ccd5470c9 100644
--- a/patches/server/0792-Fix-Entity-Position-Desync.patch
+++ b/patches/server/0790-Fix-Entity-Position-Desync.patch
diff --git a/patches/server/0793-Custom-Potion-Mixes.patch b/patches/server/0791-Custom-Potion-Mixes.patch
index e6d0292935..be42b2c77e 100644
--- a/patches/server/0793-Custom-Potion-Mixes.patch
+++ b/patches/server/0791-Custom-Potion-Mixes.patch
@@ -24,10 +24,10 @@ index 0000000000000000000000000000000000000000..6b0bed550763f34e18c9e92f9a47ec0c
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index a168a277cb173d6755042f7d0ab9e32961f33dfa..180a476ebdf0932a84ac87f7b687b4339013e6ee 100644
+index 9b720d3407802eac986c2044892d5b70455aedfb..910523399b1fae64808b292cfb45bed56719fcb3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2060,6 +2060,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2058,6 +2058,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.worldData.setDataConfiguration(worlddataconfiguration);
this.resources.managers.updateRegistryTags(this.registryAccess());
@@ -164,10 +164,10 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f105033854dede9e7fa3f3d7af5dab95295d320f..6b39340b835156f43e5a9db32302adacb3257739 100644
+index bee2e61da10e97433c0a77496de421db85200055..7e7539b7f50007f10d7926bb13beea2538403b1f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -301,6 +301,7 @@ public final class CraftServer implements Server {
+@@ -300,6 +300,7 @@ public final class CraftServer implements Server {
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper
@@ -175,7 +175,7 @@ index f105033854dede9e7fa3f3d7af5dab95295d320f..6b39340b835156f43e5a9db32302adac
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
-@@ -328,7 +329,7 @@ public final class CraftServer implements Server {
+@@ -327,7 +328,7 @@ public final class CraftServer implements Server {
Enchantments.SHARPNESS.getClass();
org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations();
@@ -184,7 +184,7 @@ index f105033854dede9e7fa3f3d7af5dab95295d320f..6b39340b835156f43e5a9db32302adac
MobEffects.BLINDNESS.getClass();
PotionEffectType.stopAcceptingRegistrations();
// Ugly hack :(
-@@ -2957,5 +2958,10 @@ public final class CraftServer implements Server {
+@@ -2974,5 +2975,10 @@ public final class CraftServer implements Server {
return datapackManager;
}
@@ -196,10 +196,10 @@ index f105033854dede9e7fa3f3d7af5dab95295d320f..6b39340b835156f43e5a9db32302adac
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java
-index 4d17fa834c0bb602fa104e660a8e7fbe5a02f0a4..8563fcf77eef0e1e354857b9a4256d78a523a8d0 100644
+index 28fac26aa8e4da52f3e5d8e5e0d2e2731bcf74e1..13d25d118eb4d3ef35a4cdfb9bbde9ed83f6c04b 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftRecipe.java
-@@ -15,6 +15,11 @@ public interface CraftRecipe extends Recipe {
+@@ -16,6 +16,11 @@ public interface CraftRecipe extends Recipe {
void addToCraftingManager();
default Ingredient toNMS(RecipeChoice bukkit, boolean requireNotEmpty) {
diff --git a/patches/server/0794-Force-close-world-loading-screen.patch b/patches/server/0792-Force-close-world-loading-screen.patch
index 548601c851..d4a01751c2 100644
--- a/patches/server/0794-Force-close-world-loading-screen.patch
+++ b/patches/server/0792-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 42e7b41526f7cf31f33a58f18e851cd435472921..ae4fe6eba052496fb3a95f1272c26605c2b1af48 100644
+index d25aa54689360e89b18535da54ce2c90ab21f819..b56a7067faafb687ff5d529b1d4a40c1e15b2ea2 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -396,6 +396,16 @@ public abstract class PlayerList {
diff --git a/patches/server/0795-Fix-falling-block-spawn-methods.patch b/patches/server/0793-Fix-falling-block-spawn-methods.patch
index 9d47ce782e..daa0d01521 100644
--- a/patches/server/0795-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0793-Fix-falling-block-spawn-methods.patch
@@ -11,10 +11,10 @@ Restores the API behavior from previous versions of the server
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index c738fb984ffd120e5adccdb5828833f180e72e80..5c8e905bbf56dd2af5b30d34371793c3f98801ab 100644
+index 7318209de454b233e22c20b176cb207de7f86674..414b4fd46307aa9c9d0f96bc571a68642f33afdb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -599,7 +599,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -598,7 +598,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
// Paper end
} else if (FallingBlock.class.isAssignableFrom(clazz)) {
BlockPos pos = BlockPos.containing(x, y, z);
@@ -24,12 +24,12 @@ index c738fb984ffd120e5adccdb5828833f180e72e80..5c8e905bbf56dd2af5b30d34371793c3
if (Snowball.class.isAssignableFrom(clazz)) {
entity = new net.minecraft.world.entity.projectile.Snowball(world, x, y, z);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 2b0ed0b70b01e1efd315ec13492a53ec728a9fec..3ccba43d0eaa4ad867a555a92dd41f5924fc8b44 100644
+index e49c907f668b17cb85505b9199af3b90f2c5af74..1e26fea83065c7e76b196e6599892c11d4370617 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1391,7 +1391,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(material, "Material cannot be null");
- Validate.isTrue(material.isBlock(), "Material must be a block");
+@@ -1397,7 +1397,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(material != null, "Material cannot be null");
+ Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material);
- FallingBlockEntity entity = FallingBlockEntity.fall(world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), CraftMagicNumbers.getBlock(material).defaultBlockState(), SpawnReason.CUSTOM);
+ // Paper start - restore API behavior for spawning falling blocks
@@ -41,9 +41,9 @@ index 2b0ed0b70b01e1efd315ec13492a53ec728a9fec..3ccba43d0eaa4ad867a555a92dd41f59
return (FallingBlock) entity.getBukkitEntity();
}
-@@ -1400,7 +1405,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- Validate.notNull(location, "Location cannot be null");
- Validate.notNull(data, "BlockData cannot be null");
+@@ -1406,7 +1411,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+ Preconditions.checkArgument(location != null, "Location cannot be null");
+ Preconditions.checkArgument(data != null, "BlockData cannot be null");
- FallingBlockEntity entity = FallingBlockEntity.fall(world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), ((CraftBlockData) data).getState(), SpawnReason.CUSTOM);
+ // Paper start - restore API behavior for spawning falling blocks
diff --git a/patches/server/0796-Expose-furnace-minecart-push-values.patch b/patches/server/0794-Expose-furnace-minecart-push-values.patch
index 4086d94249..4086d94249 100644
--- a/patches/server/0796-Expose-furnace-minecart-push-values.patch
+++ b/patches/server/0794-Expose-furnace-minecart-push-values.patch
diff --git a/patches/server/0797-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0795-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
index 2d848b1041..2d848b1041 100644
--- a/patches/server/0797-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
+++ b/patches/server/0795-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
diff --git a/patches/server/0798-More-Projectile-API.patch b/patches/server/0796-More-Projectile-API.patch
index b6b34f5775..bc39b7ad22 100644
--- a/patches/server/0798-More-Projectile-API.patch
+++ b/patches/server/0796-More-Projectile-API.patch
@@ -116,10 +116,10 @@ index 40e5b19bc8fa3de3b3d54da0762aee5bd7bb8d7b..b3814bd6c6d6aae090fe417696535ed1
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a1619bba568 100644
+index d443b171191d150eed62d000a1079ede6bcf9052..10e2d251ec398245786a0b3bd41f3bc7155a49fe 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
-@@ -61,20 +61,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -59,20 +59,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
this.getHandle().setCritArrow(critical);
}
@@ -141,7 +141,7 @@ index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a16
@Override
public boolean isInBlock() {
-@@ -108,6 +95,27 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
+@@ -106,6 +93,27 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow {
return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(getHandle().getPickupItem());
}
@@ -170,7 +170,7 @@ index 15abd085eeb0a31a925c1a8d6de903c9d4625a29..d53e1dc949359e9157e92c75d8655a16
public void setNoPhysics(boolean noPhysics) {
this.getHandle().setNoPhysics(noPhysics);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
-index 2358e0c8a4a135d6deb47100c490a9c145f44827..2dd2149e8af5cb47027ab24159b48e1d67b45f19 100644
+index 44353e074fb4655e38ffffe83cbf52080e5cbbdb..1fdf52edc47591bf3d8bbcb9db9d41773aace42f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java
@@ -33,20 +33,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
@@ -303,10 +303,10 @@ index c242f654c88ca1773429348939d3bb2ffae3768c..d1c7ab67cba881d96b7a5e9220130d86
+ // Paper end - Expose firework item directly + manually setting flight
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-index 424e53d904e722548a9897fdc6138693679b2a5d..4d12c33b9a360129ffaefb551010b354bba0c69f 100644
+index d38fca354695ef940421fe7325f2ef3a7b57a6f4..ce934b945b85a4c3d0f575eb090bbf90c4b3ca9f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-@@ -203,4 +203,15 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
+@@ -202,4 +202,15 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
public HookState getState() {
return HookState.values()[this.getHandle().currentState.ordinal()];
}
@@ -435,15 +435,15 @@ index 20b54f8896be1f8744a29e1d0205e58d27049f1f..43f52716c82863382cb0eb08cc0e174a
public String toString() {
return "CraftShulkerBullet";
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-index 0db8aa840ea026d48215ac5dc80ffde5f12725b1..397e0df15a0e64e5bc522f62f3b327a5039ec4c8 100644
+index 02ee302f93f971fbd97f7fd88f257a1a613a81ba..2b8a4ad4bca3044f1af274cdff90e6d66b6c7da7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-@@ -39,11 +39,31 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw
- Validate.notNull(item, "ItemStack cannot be null.");
-
- // The ItemStack must be a potion.
-- Validate.isTrue(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack must be a lingering or splash potion. This item stack was " + item.getType() + ".");
-+ //Validate.isTrue(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack must be a lingering or splash potion. This item stack was " + item.getType() + "."); // Paper - Projectile API
+@@ -36,11 +36,31 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw
+ @Override
+ public void setItem(ItemStack item) {
+ Preconditions.checkArgument(item != null, "ItemStack cannot be null");
+- Preconditions.checkArgument(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack material must be Material.LINGERING_POTION or Material.SPLASH_POTION but was Material.%s", item.getType());
++ // Preconditions.checkArgument(item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION, "ItemStack material must be Material.LINGERING_POTION or Material.SPLASH_POTION but was Material.%s", item.getType()); // Paper - Projectile API
+ org.bukkit.inventory.meta.PotionMeta meta = (item.getType() == Material.LINGERING_POTION || item.getType() == Material.SPLASH_POTION) ? null : this.getPotionMeta(); // Paper - Projectile API
this.getHandle().setItem(CraftItemStack.asNMSCopy(item));
@@ -492,10 +492,10 @@ index 832981b07ef5c633ef00a382f56798ee87eec0df..faf071201b7c1414225a33fe9641eac9
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 5388a07fd8b5c8a4ea604996fb41e526e0d7c16c..8683bb08c2d9a7514ee6b16690b61240fb807d15 100644
+index 6775b432e17b09aaa21af5713fa0ffdf7fdbf8a9..d6b9897dcb4715decd4dd0b1b96995e25d789482 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -278,12 +278,20 @@ public final class CraftItemStack extends ItemStack {
+@@ -279,12 +279,20 @@ public final class CraftItemStack extends ItemStack {
public ItemMeta getItemMeta() {
return CraftItemStack.getItemMeta(this.handle);
}
diff --git a/patches/server/0799-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0797-Fix-swamp-hut-cat-generation-deadlock.patch
index 018b928494..018b928494 100644
--- a/patches/server/0799-Fix-swamp-hut-cat-generation-deadlock.patch
+++ b/patches/server/0797-Fix-swamp-hut-cat-generation-deadlock.patch
diff --git a/patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index 635ca8d74b..aa96a3253f 100644
--- a/patches/server/0800-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0798-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the
regular player move packet.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c47d838ad26e4a32de065d9adc2af35e1a915b0c..32f14d93a27f340551a157445250ccbc8a133157 100644
+index 446ef101ca506ec9fdce6cede70a1e51d97d7dfc..3b6edec55939c4fddf28b59282652493b42a2b8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -576,6 +576,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
diff --git a/patches/server/0801-Implement-getComputedBiome-API.patch b/patches/server/0799-Implement-getComputedBiome-API.patch
index 9ef37127d4..7eec45ff95 100644
--- a/patches/server/0801-Implement-getComputedBiome-API.patch
+++ b/patches/server/0799-Implement-getComputedBiome-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement getComputedBiome API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5c8e905bbf56dd2af5b30d34371793c3f98801ab..5bab5c75a2ce945b43434d2240c9d1124a20aee2 100644
+index 414b4fd46307aa9c9d0f96bc571a68642f33afdb..61bc6a68fe1b0101f70b065710d941b36f8766a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
@@ -220,6 +220,13 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
@@ -23,10 +23,10 @@ index 5c8e905bbf56dd2af5b30d34371793c3f98801ab..5bab5c75a2ce945b43434d2240c9d112
public void setBiome(Location location, Biome biome) {
this.setBiome(location.getBlockX(), location.getBlockY(), location.getBlockZ(), biome);
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 8131c1db3d7963121a24348575ea8a98a80a974c..84d1351c423965acf79c1413d00eff9eaa3927a2 100644
+index 8d2da07f0793367a51026b50adc8b3dc71073013..61c1f722b99363597613c506cb2fb437e358eb1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -345,6 +345,13 @@ public class CraftBlock implements Block {
+@@ -344,6 +344,13 @@ public class CraftBlock implements Block {
return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ());
}
@@ -41,10 +41,10 @@ index 8131c1db3d7963121a24348575ea8a98a80a974c..84d1351c423965acf79c1413d00eff9e
public void setBiome(Biome bio) {
this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-index 0ea1586bab74983fca19dcc5415fbc7a044fe186..e3d6f0847bb3b524452f4dc073c07a5d9448bb9f 100644
+index 23ffe4b8a19286543e12bf7408879e6d1305a78f..935bca901f0618d77f3bf6c057bcbc606c742fac 100644
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
-@@ -167,6 +167,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
+@@ -165,6 +165,14 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
return super.getBiome(x, y, z);
}
diff --git a/patches/server/0802-Make-some-itemstacks-nonnull.patch b/patches/server/0800-Make-some-itemstacks-nonnull.patch
index e2cba95fe4..153d145fd3 100644
--- a/patches/server/0802-Make-some-itemstacks-nonnull.patch
+++ b/patches/server/0800-Make-some-itemstacks-nonnull.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make some itemstacks nonnull
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-index d6a228473ca6f425757683a4b17b035a53ab117f..8801d3f7ff6d2ff810f3e34a821dfb659c03f844 100644
+index f89a1b1c1902b16f6640c9a95f5b72351b60ceda..0c80dea986b0b63b2182c4ca0d23d6534f753cb0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
-@@ -156,13 +156,13 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
+@@ -155,13 +155,13 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
case OFF_HAND:
return this.getItemInOffHand();
case FEET:
diff --git a/patches/server/0803-Implement-enchantWithLevels-API.patch b/patches/server/0801-Implement-enchantWithLevels-API.patch
index f4b2f43353..ffa67d357d 100644
--- a/patches/server/0803-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0801-Implement-enchantWithLevels-API.patch
@@ -5,20 +5,20 @@ Subject: [PATCH] Implement enchantWithLevels API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index b32c06b1f03751c164da7049976c473dff20e4ef..b88a29623c280fcf2e3dd6d16646c23ca809efe1 100644
+index 583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90..849e93a8a0645de4c3e6ab8047815d78a722d4f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -444,6 +444,21 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -439,6 +439,21 @@ public final class CraftItemFactory implements ItemFactory {
}
// Paper start
+ @Override
+ public ItemStack enchantWithLevels(ItemStack itemStack, int levels, boolean allowTreasure, java.util.Random random) {
-+ Validate.notNull(itemStack, "Argument 'itemStack' must not be null");
-+ Validate.isTrue(itemStack.getType() != Material.AIR, "Argument 'itemStack' must not be of type AIR");
-+ Validate.isTrue(itemStack.getAmount() > 0, "Argument 'itemStack' amount must be greater than 0");
-+ Validate.isTrue(levels > 0 && levels <= 30, "Argument 'levels' must be in range [1, 30] (attempted " + levels + ")");
-+ Validate.notNull(random, "Argument 'random' must not be null");
++ Preconditions.checkArgument(itemStack != null, "Argument 'itemStack' must not be null");
++ Preconditions.checkArgument(itemStack.getType() != Material.AIR, "Argument 'itemStack' must not be of type AIR");
++ Preconditions.checkArgument(itemStack.getAmount() > 0, "Argument 'itemStack' amount must be greater than 0");
++ Preconditions.checkArgument(levels > 0 && levels <= 30, "Argument 'levels' must be in range [1, 30] (attempted " + levels + ")");
++ Preconditions.checkArgument(random != null, "Argument 'random' must not be null");
+ final net.minecraft.world.item.ItemStack internalStack = CraftItemStack.asNMSCopy(itemStack);
+ if (internalStack.getTag() != null) {
+ internalStack.getTag().remove(net.minecraft.world.item.ItemStack.TAG_ENCH);
diff --git a/patches/server/0804-Fix-saving-in-unloadWorld.patch b/patches/server/0802-Fix-saving-in-unloadWorld.patch
index 6dc981ae74..50f6a5db96 100644
--- a/patches/server/0804-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0802-Fix-saving-in-unloadWorld.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld
Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6b39340b835156f43e5a9db32302adacb3257739..2faee338276501f22815b9961e1f9109f3adc9b8 100644
+index 7e7539b7f50007f10d7926bb13beea2538403b1f..86e11118d21849cb5613bcf0e18ec85467b6ab3a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1313,7 +1313,7 @@ public final class CraftServer implements Server {
+@@ -1314,7 +1314,7 @@ public final class CraftServer implements Server {
try {
if (save) {
diff --git a/patches/server/0805-Buffer-OOB-setBlock-calls.patch b/patches/server/0803-Buffer-OOB-setBlock-calls.patch
index 4e1905eb3b..4e1905eb3b 100644
--- a/patches/server/0805-Buffer-OOB-setBlock-calls.patch
+++ b/patches/server/0803-Buffer-OOB-setBlock-calls.patch
diff --git a/patches/server/0806-Add-TameableDeathMessageEvent.patch b/patches/server/0804-Add-TameableDeathMessageEvent.patch
index b08801fd3d..b08801fd3d 100644
--- a/patches/server/0806-Add-TameableDeathMessageEvent.patch
+++ b/patches/server/0804-Add-TameableDeathMessageEvent.patch
diff --git a/patches/server/0807-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0805-Fix-new-block-data-for-EntityChangeBlockEvent.patch
index 0ee11ae770..0ee11ae770 100644
--- a/patches/server/0807-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ b/patches/server/0805-Fix-new-block-data-for-EntityChangeBlockEvent.patch
diff --git a/patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 34a373a439..9c03da00a3 100644
--- a/patches/server/0808-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0806-fix-player-loottables-running-when-mob-loot-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 68e7342a72509fb41734ee23638ffb562007ae90..4285510cbe281044376927d94a4e20439bfcf8ec 100644
+index ea3dfa9cd06e4a44ee819ed4a203779e4c10bbd9..c0db84c559c3ab5b202b234915e070b540a828fe 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -916,12 +916,14 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch
index f27bc852e9..f3bbed2174 100644
--- a/patches/server/0809-Ensure-entity-passenger-world-matches-ridden-entity.patch
+++ b/patches/server/0807-Ensure-entity-passenger-world-matches-ridden-entity.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity
Bad plugins doing this would cause some obvious problems...
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index dc676cdabfa306a3975e25f981078ead317196c1..a016fbe3d0ca0481d07eefc8fbd155aaf303ca05 100644
+index cad5f9feffd70ca1cdff9f36b16e73df405858bf..ad5b4f317f5914fafa5d4905903c4c534ece6996 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2844,6 +2844,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0810-Guard-against-invalid-entity-positions.patch b/patches/server/0808-Guard-against-invalid-entity-positions.patch
index 4ee5d3edbb..8db61fe05f 100644
--- a/patches/server/0810-Guard-against-invalid-entity-positions.patch
+++ b/patches/server/0808-Guard-against-invalid-entity-positions.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Guard against invalid entity positions
Anything not finite should be blocked and logged
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a016fbe3d0ca0481d07eefc8fbd155aaf303ca05..bdf5418b4b500a9156fe6cf399f2e052ada409db 100644
+index ad5b4f317f5914fafa5d4905903c4c534ece6996..58a22c5ca035ba55d2c05f53839416582532b24a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4460,11 +4460,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0811-cache-resource-keys.patch b/patches/server/0809-cache-resource-keys.patch
index 18bd2f0eaf..c56e3412af 100644
--- a/patches/server/0811-cache-resource-keys.patch
+++ b/patches/server/0809-cache-resource-keys.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] cache resource keys
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 84d1351c423965acf79c1413d00eff9eaa3927a2..e0c2ad107847227987080491e94b264930fc80e2 100644
+index 61c1f722b99363597613c506cb2fb437e358eb1b..c04397cc60154ef55027c90be990b9dfb818fd2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -370,12 +370,13 @@ public class CraftBlock implements Block {
+@@ -369,12 +369,13 @@ public class CraftBlock implements Block {
return (biome == null) ? Biome.CUSTOM : biome;
}
diff --git a/patches/server/0812-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0810-Allow-to-change-the-podium-for-the-EnderDragon.patch
index 5ed62ee0e3..5ed62ee0e3 100644
--- a/patches/server/0812-Allow-to-change-the-podium-for-the-EnderDragon.patch
+++ b/patches/server/0810-Allow-to-change-the-podium-for-the-EnderDragon.patch
diff --git a/patches/server/0813-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0811-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
index 5fb11187b2..5fb11187b2 100644
--- a/patches/server/0813-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
+++ b/patches/server/0811-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
diff --git a/patches/server/0814-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0812-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
index fbb9b72b07..fbb9b72b07 100644
--- a/patches/server/0814-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
+++ b/patches/server/0812-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
diff --git a/patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch
index 61903d329d..6f5b29b2a0 100644
--- a/patches/server/0815-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0813-Prevent-tile-entity-copies-loading-chunks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 32f14d93a27f340551a157445250ccbc8a133157..7e7cf1951b3a9bb1233f7a05dff685718881c1a2 100644
+index 3b6edec55939c4fddf28b59282652493b42a2b8d..2333252a3c46affb76c09731968117fdd46a9b1b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3308,7 +3308,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3311,7 +3311,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
if (this.player.level().isLoaded(blockposition)) {
diff --git a/patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch
index e16514b7c7..0b34f9da4c 100644
--- a/patches/server/0816-Use-username-instead-of-display-name-in-PlayerList-g.patch
+++ b/patches/server/0814-Use-username-instead-of-display-name-in-PlayerList-g.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ae4fe6eba052496fb3a95f1272c26605c2b1af48..57e63c91051c5885103ba55466dacdb449cd5316 100644
+index b56a7067faafb687ff5d529b1d4a40c1e15b2ea2..815eb218b6612b13c6deff636509bad35eeace62 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1430,7 +1430,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0817-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch b/patches/server/0815-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
index e809e65ba8..e809e65ba8 100644
--- a/patches/server/0817-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
+++ b/patches/server/0815-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch
diff --git a/patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
index aca427ff3a..79635fc588 100644
--- a/patches/server/0818-Pass-ServerLevel-for-gamerule-callbacks.patch
+++ b/patches/server/0816-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -18,10 +18,10 @@ index 9a45921cbb1e7a39e6ef46cc93c14766ee8229ad..8115cf64a30b6438721769df6045e1b7
if (dedicatedserverproperties.enableQuery) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7e7cf1951b3a9bb1233f7a05dff685718881c1a2..0b0a839fafca6b1889adde84af9a66071df191ce 100644
+index 2333252a3c46affb76c09731968117fdd46a9b1b..65b94c6e2d85637342ebfb5478189536759d8338 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2898,7 +2898,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2901,7 +2901,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
@@ -158,10 +158,10 @@ index de713f1ca1d61a6b1fca2b66de9162556d102449..edd2c9d0cf5a81c779011cb4215d496a
this.onChanged(server);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3ccba43d0eaa4ad867a555a92dd41f5924fc8b44..467505468574168c63bd81024bdc60f97b660782 100644
+index 1e26fea83065c7e76b196e6599892c11d4370617..5deed29e78ba599c4732b9bac57f0661e4871882 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1944,7 +1944,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1950,7 +1950,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Paper end
GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule));
handle.deserialize(event.getValue()); // Paper
@@ -170,7 +170,7 @@ index 3ccba43d0eaa4ad867a555a92dd41f5924fc8b44..467505468574168c63bd81024bdc60f9
return true;
}
-@@ -1984,7 +1984,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1991,7 +1991,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Paper end
GameRules.Value<?> handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName()));
handle.deserialize(event.getValue()); // Paper
diff --git a/patches/server/0819-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0817-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
index 46b984988b..46b984988b 100644
--- a/patches/server/0819-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
+++ b/patches/server/0817-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
diff --git a/patches/server/0820-WorldCreator-keepSpawnLoaded.patch b/patches/server/0818-WorldCreator-keepSpawnLoaded.patch
index 4d12867285..d1c0f4c8e8 100644
--- a/patches/server/0820-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0818-WorldCreator-keepSpawnLoaded.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2faee338276501f22815b9961e1f9109f3adc9b8..22b19bd06495d3771736f9d05c949807c12f87a2 100644
+index 86e11118d21849cb5613bcf0e18ec85467b6ab3a..738ba9f21169511eeabb5204c49049f77c2bc9da 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1272,6 +1272,7 @@ public final class CraftServer implements Server {
+@@ -1273,6 +1273,7 @@ public final class CraftServer implements Server {
internal.setSpawnSettings(true, true);
// Paper - move up
diff --git a/patches/server/0821-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0819-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
index 91934e5589..91934e5589 100644
--- a/patches/server/0821-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
+++ b/patches/server/0819-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
diff --git a/patches/server/0822-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0820-Add-EntityDyeEvent-and-CollarColorable-interface.patch
index 83deaddd5f..83deaddd5f 100644
--- a/patches/server/0822-Add-EntityDyeEvent-and-CollarColorable-interface.patch
+++ b/patches/server/0820-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/server/0823-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0821-Fire-CauldronLevelChange-on-initial-fill.patch
index bcc871d7bc..bcc871d7bc 100644
--- a/patches/server/0823-Fire-CauldronLevelChange-on-initial-fill.patch
+++ b/patches/server/0821-Fire-CauldronLevelChange-on-initial-fill.patch
diff --git a/patches/server/0824-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0822-fix-powder-snow-cauldrons-not-turning-to-water.patch
index fec28b7e17..fec28b7e17 100644
--- a/patches/server/0824-fix-powder-snow-cauldrons-not-turning-to-water.patch
+++ b/patches/server/0822-fix-powder-snow-cauldrons-not-turning-to-water.patch
diff --git a/patches/server/0825-Add-PlayerStopUsingItemEvent.patch b/patches/server/0823-Add-PlayerStopUsingItemEvent.patch
index 78a9eb0f99..78a9eb0f99 100644
--- a/patches/server/0825-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0823-Add-PlayerStopUsingItemEvent.patch
diff --git a/patches/server/0826-FallingBlock-auto-expire-setting.patch b/patches/server/0824-FallingBlock-auto-expire-setting.patch
index ed07517265..ed07517265 100644
--- a/patches/server/0826-FallingBlock-auto-expire-setting.patch
+++ b/patches/server/0824-FallingBlock-auto-expire-setting.patch
diff --git a/patches/server/0827-Don-t-tick-markers.patch b/patches/server/0825-Don-t-tick-markers.patch
index 0e75fac529..9980fc455d 100644
--- a/patches/server/0827-Don-t-tick-markers.patch
+++ b/patches/server/0825-Don-t-tick-markers.patch
@@ -35,7 +35,7 @@ index b00c1df57789996fef58b2c649588c13df149abd..67e096207b08d2ba13ebc1b92ac94ed2
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
-index d0092fa0595bcf3876dec4ef58516089ac99bb26..d4da9ec6e00bb92b70598ee9a0d0ca5816562378 100644
+index 50ddcd7ee9c3ffe7549361f942df01b8ef078932..eda7f0bb42f7269676d5d2193e1155912ede9920 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -212,7 +212,8 @@ public class ActivationRange
diff --git a/patches/server/0828-Do-not-accept-invalid-client-settings.patch b/patches/server/0826-Do-not-accept-invalid-client-settings.patch
index a9c4ffb6dc..8b6617459b 100644
--- a/patches/server/0828-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0826-Do-not-accept-invalid-client-settings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0b0a839fafca6b1889adde84af9a66071df191ce..3382303303626a2a71ba7e70a1ced615a619d408 100644
+index 65b94c6e2d85637342ebfb5478189536759d8338..042dea0c808d21c97f3a26027625474c6440a372 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3450,6 +3450,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3453,6 +3453,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0829-Add-support-for-Proxy-Protocol.patch b/patches/server/0827-Add-support-for-Proxy-Protocol.patch
index c117b9d366..c117b9d366 100644
--- a/patches/server/0829-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0827-Add-support-for-Proxy-Protocol.patch
diff --git a/patches/server/0830-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0828-Fix-OfflinePlayer-getBedSpawnLocation.patch
index f74dc698da..f74dc698da 100644
--- a/patches/server/0830-Fix-OfflinePlayer-getBedSpawnLocation.patch
+++ b/patches/server/0828-Fix-OfflinePlayer-getBedSpawnLocation.patch
diff --git a/patches/server/0831-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0829-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
index 59fabed7e4..59fabed7e4 100644
--- a/patches/server/0831-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
+++ b/patches/server/0829-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
diff --git a/patches/server/0832-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0830-Sanitize-Sent-BlockEntity-NBT.patch
index 52fcd344ad..52fcd344ad 100644
--- a/patches/server/0832-Sanitize-Sent-BlockEntity-NBT.patch
+++ b/patches/server/0830-Sanitize-Sent-BlockEntity-NBT.patch
diff --git a/patches/server/0833-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0831-Disable-component-selector-resolving-in-books-by-def.patch
index 72862c20c5..72862c20c5 100644
--- a/patches/server/0833-Disable-component-selector-resolving-in-books-by-def.patch
+++ b/patches/server/0831-Disable-component-selector-resolving-in-books-by-def.patch
diff --git a/patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch
index 06d9dea85e..e2214f6079 100644
--- a/patches/server/0834-Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/0832-Prevent-entity-loading-causing-async-lookups.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index bdf5418b4b500a9156fe6cf399f2e052ada409db..b4f694174c6b1c8017122cfa6116f52f5ff924e3 100644
+index 58a22c5ca035ba55d2c05f53839416582532b24a..86677e14f218188660330601c872905545501e25 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -796,6 +796,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch
index 12272ad6f2..d292db0d7f 100644
--- a/patches/server/0835-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0833-Throw-exception-on-world-create-while-being-ticked.patch
@@ -7,10 +7,10 @@ There are no plans to support creating worlds while worlds are
being ticked themselvess.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f853b34a8 100644
+index 910523399b1fae64808b292cfb45bed56719fcb3..66bb92ca535b559d3bca89b9bc841f8f842b7e07 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
@@ -18,7 +18,7 @@ index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
-@@ -1485,7 +1486,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1483,7 +1484,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.getFunctions().tick();
MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper
this.profiler.popPush("levels");
@@ -27,7 +27,7 @@ index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f
// CraftBukkit start
// Run tasks that are waiting on processing
-@@ -1517,6 +1518,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1515,6 +1516,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end
MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper
@@ -36,7 +36,7 @@ index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
-@@ -1563,6 +1566,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1561,6 +1564,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.pop();
worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
}
@@ -45,7 +45,7 @@ index 180a476ebdf0932a84ac87f7b687b4339013e6ee..d25c532745ff543503ca681096fe764f
this.profiler.popPush("connection");
MinecraftTimings.connectionTimer.startTiming(); // Spigot
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 22b19bd06495d3771736f9d05c949807c12f87a2..a640587213b3c68b46363b1fdd06af37391efa2c 100644
+index 738ba9f21169511eeabb5204c49049f77c2bc9da..fdceec1390113fd009801f42608c1dfc747e47bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -868,6 +868,11 @@ public final class CraftServer implements Server {
@@ -65,10 +65,10 @@ index 22b19bd06495d3771736f9d05c949807c12f87a2..a640587213b3c68b46363b1fdd06af37
public World createWorld(WorldCreator creator) {
Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
+ //Preconditions.checkState(!this.console.isIteratingOverLevels, "Cannot create a world while worlds are being ticked"); // Paper - Cat - Temp disable. We'll see how this goes.
- Validate.notNull(creator, "Creator may not be null");
+ Preconditions.checkArgument(creator != null, "WorldCreator cannot be null");
String name = creator.name();
-@@ -1287,6 +1293,7 @@ public final class CraftServer implements Server {
+@@ -1288,6 +1294,7 @@ public final class CraftServer implements Server {
@Override
public boolean unloadWorld(World world, boolean save) {
diff --git a/patches/server/0836-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0834-Add-Alternate-Current-redstone-implementation.patch
index 2638138390..2638138390 100644
--- a/patches/server/0836-Add-Alternate-Current-redstone-implementation.patch
+++ b/patches/server/0834-Add-Alternate-Current-redstone-implementation.patch
diff --git a/patches/server/0837-Dont-resent-entity-on-art-update.patch b/patches/server/0835-Dont-resent-entity-on-art-update.patch
index ff4ac47ad6..ff4ac47ad6 100644
--- a/patches/server/0837-Dont-resent-entity-on-art-update.patch
+++ b/patches/server/0835-Dont-resent-entity-on-art-update.patch
diff --git a/patches/server/0838-Add-WardenAngerChangeEvent.patch b/patches/server/0836-Add-WardenAngerChangeEvent.patch
index 2e66f62a0c..2e66f62a0c 100644
--- a/patches/server/0838-Add-WardenAngerChangeEvent.patch
+++ b/patches/server/0836-Add-WardenAngerChangeEvent.patch
diff --git a/patches/server/0839-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0837-Add-option-for-strict-advancement-dimension-checks.patch
index c95ba56d09..17c86550c3 100644
--- a/patches/server/0839-Add-option-for-strict-advancement-dimension-checks.patch
+++ b/patches/server/0837-Add-option-for-strict-advancement-dimension-checks.patch
@@ -11,7 +11,7 @@ distance trigger. This adds a config option to ignore that
and use the exact dimension key of the worlds involved.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 4285510cbe281044376927d94a4e20439bfcf8ec..bde2f86029bced34358517ef65515c6cddbc02eb 100644
+index c0db84c559c3ab5b202b234915e070b540a828fe..48cd206a41fe238af4c53b7f2a664fb16da366a5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1315,6 +1315,12 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0840-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0838-Add-missing-important-BlockStateListPopulator-method.patch
index cdb1bc89a3..cdb1bc89a3 100644
--- a/patches/server/0840-Add-missing-important-BlockStateListPopulator-method.patch
+++ b/patches/server/0838-Add-missing-important-BlockStateListPopulator-method.patch
diff --git a/patches/server/0841-Nameable-Banner-API.patch b/patches/server/0839-Nameable-Banner-API.patch
index 78f176be32..78f176be32 100644
--- a/patches/server/0841-Nameable-Banner-API.patch
+++ b/patches/server/0839-Nameable-Banner-API.patch
diff --git a/patches/server/0842-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0840-Don-t-broadcast-messages-to-command-blocks.patch
index e0724ba67d..0ed5794063 100644
--- a/patches/server/0842-Don-t-broadcast-messages-to-command-blocks.patch
+++ b/patches/server/0840-Don-t-broadcast-messages-to-command-blocks.patch
@@ -20,10 +20,10 @@ index e05eb08a9c229b371887676da510df948b896a85..ceeedbd88c56c08ec8b047c9ca2f14cc
Date date = new Date();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a640587213b3c68b46363b1fdd06af37391efa2c..b6e676be787d477c2fe78a0c84a02ae0050f257f 100644
+index fdceec1390113fd009801f42608c1dfc747e47bf..70e77e0e165140e761193d9255cfe3bfcb710979 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1789,7 +1789,7 @@ public final class CraftServer implements Server {
+@@ -1790,7 +1790,7 @@ public final class CraftServer implements Server {
// Paper end
Set<CommandSender> recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
diff --git a/patches/server/0843-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0841-Prevent-empty-items-from-being-added-to-world.patch
index af7950c0cb..af7950c0cb 100644
--- a/patches/server/0843-Prevent-empty-items-from-being-added-to-world.patch
+++ b/patches/server/0841-Prevent-empty-items-from-being-added-to-world.patch
diff --git a/patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
index ad894dbcce..73b5c96f27 100644
--- a/patches/server/0844-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
+++ b/patches/server/0842-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
@@ -7,7 +7,7 @@ Remove in 1.19 along with the SplashPotion and
LingeringPotion interfaces
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
-index 397e0df15a0e64e5bc522f62f3b327a5039ec4c8..a926f4dc51821a05c28872dc90ad000fe8cb51f7 100644
+index 2b8a4ad4bca3044f1af274cdff90e6d66b6c7da7..5c3bc680c4e4e6dc4b2d9edc666d6a8d95c2e7b7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java
@@ -14,7 +14,7 @@ import org.bukkit.entity.ThrownPotion;
diff --git a/patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch b/patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch
index 1dadb31a04..14f42c194f 100644
--- a/patches/server/0845-Don-t-print-component-in-resource-pack-rejection-mes.patch
+++ b/patches/server/0843-Don-t-print-component-in-resource-pack-rejection-mes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't print component in resource pack rejection message
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3382303303626a2a71ba7e70a1ced615a619d408..615d27a99cb999c1d5f64ff9f768c406b81940b3 100644
+index 042dea0c808d21c97f3a26027625474c6440a372..9823e0b5b1129d22ad449acf77794c6c9975381e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2032,7 +2032,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2035,7 +2035,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
diff --git a/patches/server/0846-Add-Player-getFishHook.patch b/patches/server/0844-Add-Player-getFishHook.patch
index b3c5a59462..1f16e905b9 100644
--- a/patches/server/0846-Add-Player-getFishHook.patch
+++ b/patches/server/0844-Add-Player-getFishHook.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Player#getFishHook
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 589f06cc8941d5f75ffd8bbeb083b1c48f82576f..07c9a644dc24e881efcf2c6519f88db43e2d5779 100644
+index 329e0586ec4ea44b6a8f4b72a69041aa7cd01ced..35f79f34b86dbf6d592842883f53f83e07f95f93 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -161,6 +161,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
diff --git a/patches/server/0847-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0845-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
index 3956916b04..3956916b04 100644
--- a/patches/server/0847-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
+++ b/patches/server/0845-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
diff --git a/patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch
index 29d67eb1c5..d723f0211a 100644
--- a/patches/server/0848-Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/0846-Add-various-missing-EntityDropItemEvent-calls.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b4f694174c6b1c8017122cfa6116f52f5ff924e3..2d576dd1e484641115ce73c22faad27f9e7bcc54 100644
+index 86677e14f218188660330601c872905545501e25..018afaedd306df9088f1d1b9b99655cd5ad92a91 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2677,6 +2677,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch b/patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch
index 0b9dd64884..92447d0b2e 100644
--- a/patches/server/0849-Add-some-minimal-debug-information-to-chat-packet-er.patch
+++ b/patches/server/0847-Add-some-minimal-debug-information-to-chat-packet-er.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add some minimal debug information to chat packet errors
TODO: potentially add some kick leeway
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 615d27a99cb999c1d5f64ff9f768c406b81940b3..022512b42811e53a057c58bb599f4ebc1aa5fe5d 100644
+index 9823e0b5b1129d22ad449acf77794c6c9975381e..472c86d4f54d54cd5bb84d886194b3ddf7485a6e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2290,7 +2290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2293,7 +2293,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
diff --git a/patches/server/0850-Fix-Bee-flower-NPE.patch b/patches/server/0848-Fix-Bee-flower-NPE.patch
index 8e5627e598..8e5627e598 100644
--- a/patches/server/0850-Fix-Bee-flower-NPE.patch
+++ b/patches/server/0848-Fix-Bee-flower-NPE.patch
diff --git a/patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 2ecccc51ce..011e5b929f 100644
--- a/patches/server/0851-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0849-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 022512b42811e53a057c58bb599f4ebc1aa5fe5d..83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98 100644
+index 472c86d4f54d54cd5bb84d886194b3ddf7485a6e..a8465cf4b21d376b37e88a3f9fd8b6e4360ee775 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2537,7 +2537,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2540,7 +2540,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
// Spigot end
// this.chatSpamTickCount += 20;
diff --git a/patches/server/0852-More-Teleport-API.patch b/patches/server/0850-More-Teleport-API.patch
index 7a284a682c..22f17c94c0 100644
--- a/patches/server/0852-More-Teleport-API.patch
+++ b/patches/server/0850-More-Teleport-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] More Teleport API
public net.minecraft.server.network.ServerGamePacketListenerImpl internalTeleport(DDDFFLjava/util/Set;Z)V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98..5ad9ffbb8344c345dd23f8362b1c24b6e3214763 100644
+index a8465cf4b21d376b37e88a3f9fd8b6e4360ee775..94c1c276998b76744122f98c18f65a4e8cbccf4d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1708,11 +1708,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1711,11 +1711,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return false; // CraftBukkit - Return event status
}
@@ -31,7 +31,7 @@ index 83ed0a00afdf91cf2cbdb629f6c17b6ed97f2f98..5ad9ffbb8344c345dd23f8362b1c24b6
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 8317d5100d16fb242e4ff9f7b965e1dbd147cede..14b97388b89978b1c0997beeebd7c85102c84a2f 100644
+index cc72d960d9a5f9481ec2214b1549a344907a68da..94b41e9e3abe9cfbe09af67b03bc841fc009b75c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -561,15 +561,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -74,10 +74,10 @@ index 8317d5100d16fb242e4ff9f7b965e1dbd147cede..14b97388b89978b1c0997beeebd7c851
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d12a2dc82c 100644
+index c949a3581581aa34a678d942fe38e660ba389eef..607c5797ee9d4c62ff5fbf1613d2ac08ec57d067 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1233,13 +1233,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1187,13 +1187,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setRotation(float yaw, float pitch) {
@@ -180,7 +180,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
location.checkFinite();
ServerPlayer entity = this.getHandle();
-@@ -1252,7 +1340,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1206,7 +1294,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return false;
}
@@ -189,7 +189,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
return false;
}
-@@ -1270,7 +1358,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1224,7 +1312,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// If this player is riding another entity, we must dismount before teleporting.
@@ -198,7 +198,7 @@ index 6373c2df3acd6dcae321e9914bea7a6beaa51c5d..752d701d6e947e9ed446c8679ce6d8d1
// SPIGOT-5509: Wakeup, similar to riding
if (this.isSleeping()) {
-@@ -1286,13 +1374,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1240,13 +1328,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle();
// Close any foreign inventory
diff --git a/patches/server/0853-Add-EntityPortalReadyEvent.patch b/patches/server/0851-Add-EntityPortalReadyEvent.patch
index 8e0b2d6643..c775c2df51 100644
--- a/patches/server/0853-Add-EntityPortalReadyEvent.patch
+++ b/patches/server/0851-Add-EntityPortalReadyEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2d576dd1e484641115ce73c22faad27f9e7bcc54..b5751d0cfae442b1030b771e4a3afc42e566d76d 100644
+index 018afaedd306df9088f1d1b9b99655cd5ad92a91..3d95a435a9f6e28c43f275781db909bf9e71397b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3033,6 +3033,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0854-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0852-Don-t-use-level-random-in-entity-constructors.patch
index c3f35be4a5..c3f35be4a5 100644
--- a/patches/server/0854-Don-t-use-level-random-in-entity-constructors.patch
+++ b/patches/server/0852-Don-t-use-level-random-in-entity-constructors.patch
diff --git a/patches/server/0855-Send-block-entities-after-destroy-prediction.patch b/patches/server/0853-Send-block-entities-after-destroy-prediction.patch
index 20e86fee03..10bf2d17e5 100644
--- a/patches/server/0855-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0853-Send-block-entities-after-destroy-prediction.patch
@@ -57,10 +57,10 @@ index a88d9c733a647d4b3ad9e079b289f2979d092b07..257fa5207b889f882b77885d375564a8
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5ad9ffbb8344c345dd23f8362b1c24b6e3214763..528b3365ae8536d621c7f8d0c20b754b4179dee7 100644
+index 94c1c276998b76744122f98c18f65a4e8cbccf4d..35ef7487060f81fb106a6a882006edf03023fd01 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1854,8 +1854,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -1857,8 +1857,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
return;
}
// Paper end - Don't allow digging in unloaded chunks
diff --git a/patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch
index fdbf36a54d..90275821d3 100644
--- a/patches/server/0856-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0854-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -18,10 +18,10 @@ index 8107c8e4a994523c75252f7762e362ab6eb13e43..b3f4469c137d221bf5f43565800df59c
private static boolean isOutsideSpawnableHeight(int y) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fdf527f095 100644
+index 5deed29e78ba599c4732b9bac57f0661e4871882..1a481fb4f4228f0fea8a7dc6132248c98b727c90 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -311,9 +311,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -310,9 +310,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean setSpawnLocation(int x, int y, int z) {
return this.setSpawnLocation(x, y, z, 0.0F);
}
@@ -46,7 +46,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - add ticket to hold chunk for a little while longer if plugin accesses it
net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z);
if (chunk == null) {
-@@ -428,6 +443,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -427,6 +442,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean regenerateChunk(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot
@@ -54,7 +54,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - implement regenerateChunk method
final ServerLevel serverLevel = this.world;
final net.minecraft.server.level.ServerChunkCache serverChunkCache = serverLevel.getChunkSource();
-@@ -523,6 +539,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -522,6 +538,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
@@ -62,7 +62,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Paper start - Optimize this method
ChunkPos chunkPos = new ChunkPos(x, z);
ChunkAccess immediate = world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); // Paper
-@@ -586,6 +603,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -585,6 +602,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean addPluginChunkTicket(int x, int z, Plugin plugin) {
@@ -70,7 +70,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
Preconditions.checkArgument(plugin != null, "null plugin");
Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled");
-@@ -654,6 +672,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -653,6 +671,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setChunkForceLoaded(int x, int z, boolean forced) {
@@ -78,7 +78,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
this.getHandle().setChunkForced(x, z, forced);
}
-@@ -960,6 +979,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -965,6 +984,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
@@ -86,7 +86,7 @@ index 467505468574168c63bd81024bdc60f97b660782..89514af7f3771db496e7e2a40fa4e7fd
// Transient load for this tick
return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
}
-@@ -2369,6 +2389,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2376,6 +2396,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot end
// Paper start
public java.util.concurrent.CompletableFuture<Chunk> getChunkAtAsync(int x, int z, boolean gen, boolean urgent) {
diff --git a/patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch
index ce000ef24f..ec2faa8426 100644
--- a/patches/server/0857-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0855-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,10 +5,10 @@ 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 752d701d6e947e9ed446c8679ce6d8d12a2dc82c..27b8dffd5ba6bae22a8a12544d65a00f43394765 100644
+index 607c5797ee9d4c62ff5fbf1613d2ac08ec57d067..b52159c9adf1f502cb357e920da3128ab3592861 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -642,6 +642,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -639,6 +639,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false);
}
diff --git a/patches/server/0858-Add-missing-BlockFadeEvents.patch b/patches/server/0856-Add-missing-BlockFadeEvents.patch
index e939b49a21..e939b49a21 100644
--- a/patches/server/0858-Add-missing-BlockFadeEvents.patch
+++ b/patches/server/0856-Add-missing-BlockFadeEvents.patch
diff --git a/patches/server/0859-Collision-API.patch b/patches/server/0857-Collision-API.patch
index 38fea82179..19339f84ba 100644
--- a/patches/server/0859-Collision-API.patch
+++ b/patches/server/0857-Collision-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Collision API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 5bab5c75a2ce945b43434d2240c9d1124a20aee2..94f21c6acaee5a632b6adb4e77488bb2e385fbea 100644
+index 61bc6a68fe1b0101f70b065710d941b36f8766a8..086cbbfb492413bf1ae901c46f8e8ebbadd68b21 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-@@ -1019,5 +1019,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
+@@ -1015,5 +1015,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
return this.getHandle().clip(new net.minecraft.world.level.ClipContext(vec3d, vec3d1, net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, null)).getType() == net.minecraft.world.phys.HitResult.Type.MISS;
}
@@ -22,10 +22,10 @@ index 5bab5c75a2ce945b43434d2240c9d1124a20aee2..94f21c6acaee5a632b6adb4e77488bb2
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 14b97388b89978b1c0997beeebd7c85102c84a2f..e05c3c15d15c242e07caa9033cc49d515dfcdb41 100644
+index 94b41e9e3abe9cfbe09af67b03bc841fc009b75c..f7c879cf10f89eaeb41a0f40787bd2c98d8d3f31 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1415,4 +1415,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1408,4 +1408,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed.
}
// Paper end
diff --git a/patches/server/0860-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0858-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
index aa73cbbddf..aa73cbbddf 100644
--- a/patches/server/0860-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
+++ b/patches/server/0858-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
diff --git a/patches/server/0861-Remove-invalid-signature-login-stacktrace.patch b/patches/server/0859-Remove-invalid-signature-login-stacktrace.patch
index 8ef46fe393..53aeb3bcef 100644
--- a/patches/server/0861-Remove-invalid-signature-login-stacktrace.patch
+++ b/patches/server/0859-Remove-invalid-signature-login-stacktrace.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove invalid signature login stacktrace
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 528b3365ae8536d621c7f8d0c20b754b4179dee7..b46c46fcde19aff16321876bf50b6725233bb09a 100644
+index 35ef7487060f81fb106a6a882006edf03023fd01..14488a4cdc3fc8edf3abb3d57ffdcc4880f987ee 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3585,7 +3585,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3588,7 +3588,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
diff --git a/patches/server/0862-Block-Ticking-API.patch b/patches/server/0860-Block-Ticking-API.patch
index a6c8ba9019..be02ac2613 100644
--- a/patches/server/0862-Block-Ticking-API.patch
+++ b/patches/server/0860-Block-Ticking-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Block Ticking API
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index e0c2ad107847227987080491e94b264930fc80e2..01b401f7d691ef451266bbc3a94980d613b96f21 100644
+index c04397cc60154ef55027c90be990b9dfb818fd2f..5401ab9f8f6ce12e1c5368dbc3acc78a250b3822 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-@@ -758,5 +758,21 @@ public class CraftBlock implements Block {
+@@ -756,5 +756,21 @@ public class CraftBlock implements Block {
public boolean isValidTool(ItemStack itemStack) {
return getDrops(itemStack).size() != 0;
}
diff --git a/patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch
index c1abeeeac8..091bb3c90f 100644
--- a/patches/server/0863-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0861-Add-Velocity-IP-Forwarding-Support.patch
@@ -213,7 +213,7 @@ index 3fcd7bfdb8945b276c94a263e9da6b85ce470366..3431b1132e55c53cda7cf47f021f2306
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b6e676be787d477c2fe78a0c84a02ae0050f257f..ffa27c9c02dc4d12411fc089de3af8e8e12ba06e 100644
+index 70e77e0e165140e761193d9255cfe3bfcb710979..9f8c5ceb8485b14a84f2a7b2ffc8192be5c6bdfd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -797,7 +797,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0864-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch b/patches/server/0862-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
index 2e38ad24c3..2e38ad24c3 100644
--- a/patches/server/0864-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
+++ b/patches/server/0862-Use-thread-safe-random-in-ServerLoginPacketListenerI.patch
diff --git a/patches/server/0865-Add-NamespacedKey-biome-methods.patch b/patches/server/0863-Add-NamespacedKey-biome-methods.patch
index 4f53bd9282..c342bdded1 100644
--- a/patches/server/0865-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0863-Add-NamespacedKey-biome-methods.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add NamespacedKey biome methods
Co-authored-by: Thonk <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index a6564c7d69999c55abc4292cab9182390a52e749..b059bb46b649cbf82debdb8d58fe4ba77d040276 100644
+index 8f185a0b1a9037c1458b3ce41347e2c733e4d4de..8092db9de43ca4824374e1a76c85f71929521f6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -611,6 +611,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
+@@ -609,6 +609,19 @@ public final class CraftMagicNumbers implements UnsafeValues {
Preconditions.checkArgument(material.isBlock(), material + " is not a block");
return getBlock(material).hasCollision;
}
diff --git a/patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch
index 2e7f0573af..af3d178c6b 100644
--- a/patches/server/0866-Fix-plugin-loggers-on-server-shutdown.patch
+++ b/patches/server/0864-Fix-plugin-loggers-on-server-shutdown.patch
@@ -37,10 +37,10 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index d25c532745ff543503ca681096fe764f853b34a8..aa0dcb02aaec2caa016397e7f5cc859a22ca4b6d 100644
+index 66bb92ca535b559d3bca89b9bc841f8f842b7e07..c5f3dc74888919e82e2ffbb8d648b7640aa6b690 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1000,6 +1000,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -998,6 +998,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender
} catch (Exception e) {
}
diff --git a/patches/server/0867-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0865-Stop-large-look-changes-from-crashing-the-server.patch
index 1a4fc80ccb..1a4fc80ccb 100644
--- a/patches/server/0867-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0865-Stop-large-look-changes-from-crashing-the-server.patch
diff --git a/patches/server/0868-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0866-Fire-EntityChangeBlockEvent-in-more-places.patch
index c7fbbaaa64..c7fbbaaa64 100644
--- a/patches/server/0868-Fire-EntityChangeBlockEvent-in-more-places.patch
+++ b/patches/server/0866-Fire-EntityChangeBlockEvent-in-more-places.patch
diff --git a/patches/server/0869-Missing-eating-regain-reason.patch b/patches/server/0867-Missing-eating-regain-reason.patch
index b5a99bc0ef..b5a99bc0ef 100644
--- a/patches/server/0869-Missing-eating-regain-reason.patch
+++ b/patches/server/0867-Missing-eating-regain-reason.patch
diff --git a/patches/server/0870-Missing-effect-cause.patch b/patches/server/0868-Missing-effect-cause.patch
index 2b4bcfc188..2b4bcfc188 100644
--- a/patches/server/0870-Missing-effect-cause.patch
+++ b/patches/server/0868-Missing-effect-cause.patch
diff --git a/patches/server/0871-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0869-Added-byte-array-serialization-deserialization-for-P.patch
index 3553cbd00c..28ffa3283e 100644
--- a/patches/server/0871-Added-byte-array-serialization-deserialization-for-P.patch
+++ b/patches/server/0869-Added-byte-array-serialization-deserialization-for-P.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Added byte array serialization/deserialization for
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
-index f0588bec9be09cb8273c310fb3de8bfe72dee9e5..20c7144307ecf1eb5c600f3b84df7bc15fa941d6 100644
+index 64110e74c6f6f0433219a721b490970ee33c0b00..65013fd2ca24c4bf1cfd67e314927e72542d3e68 100644
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
@@ -168,5 +168,26 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
diff --git a/patches/server/0872-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0870-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
index 4a40322b2d..4aa37793dd 100644
--- a/patches/server/0872-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
+++ b/patches/server/0870-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 8b6cae9a005a6db608be85805382704ff5dc6669..d15a252285e10ce062319b0f1051f59ba46701a0 100644
+index 4590764ec62938e2b601f9f8339d5c4ea183e5e2..4cf07ff38df050defceb69335e402ca52972a05f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -500,8 +500,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -496,8 +496,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
@Override
@@ -25,7 +25,7 @@ index 8b6cae9a005a6db608be85805382704ff5dc6669..d15a252285e10ce062319b0f1051f59b
Preconditions.checkState(!this.getHandle().generation, "Cannot launch projectile during world generation");
net.minecraft.world.level.Level world = ((CraftWorld) getWorld()).getHandle();
-@@ -584,6 +591,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -580,6 +587,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
if (velocity != null) {
((T) launch.getBukkitEntity()).setVelocity(velocity);
}
@@ -38,7 +38,7 @@ index 8b6cae9a005a6db608be85805382704ff5dc6669..d15a252285e10ce062319b0f1051f59b
world.addFreshEntity(launch);
return (T) launch.getBukkitEntity();
diff --git a/src/main/java/org/bukkit/craftbukkit/projectiles/CraftBlockProjectileSource.java b/src/main/java/org/bukkit/craftbukkit/projectiles/CraftBlockProjectileSource.java
-index 388647c2ef814270942f4e6c6eb57a3abaf84212..2afb7af0a90959edd3b0ead2fe4d9018b5560aa4 100644
+index 18d6846d04268f0099a84b01a3a2790d7742d85e..40a1f138b610e336eb11f2ace4a0da5703295c6b 100644
--- a/src/main/java/org/bukkit/craftbukkit/projectiles/CraftBlockProjectileSource.java
+++ b/src/main/java/org/bukkit/craftbukkit/projectiles/CraftBlockProjectileSource.java
@@ -57,6 +57,13 @@ public class CraftBlockProjectileSource implements BlockProjectileSource {
@@ -52,7 +52,7 @@ index 388647c2ef814270942f4e6c6eb57a3abaf84212..2afb7af0a90959edd3b0ead2fe4d9018
+ @Override
+ public <T extends Projectile> T launchProjectile(Class<? extends T> projectile, Vector velocity, org.bukkit.util.Consumer<T> function) {
+ // Paper end - launchProjectile consumer
- Validate.isTrue(this.getBlock().getType() == Material.DISPENSER, "Block is no longer dispenser");
+ Preconditions.checkArgument(this.getBlock().getType() == Material.DISPENSER, "Block is no longer dispenser");
// Copied from BlockDispenser.dispense()
BlockSourceImpl isourceblock = new BlockSourceImpl((ServerLevel) this.dispenserBlock.getLevel(), this.dispenserBlock.getBlockPos());
@@ -147,6 +154,11 @@ public class CraftBlockProjectileSource implements BlockProjectileSource {
diff --git a/patches/server/0873-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0871-Call-BlockPhysicsEvent-more-often.patch
index 83450685d0..83450685d0 100644
--- a/patches/server/0873-Call-BlockPhysicsEvent-more-often.patch
+++ b/patches/server/0871-Call-BlockPhysicsEvent-more-often.patch
diff --git a/patches/server/0874-Configurable-chat-thread-limit.patch b/patches/server/0872-Configurable-chat-thread-limit.patch
index d6404f007b..d6404f007b 100644
--- a/patches/server/0874-Configurable-chat-thread-limit.patch
+++ b/patches/server/0872-Configurable-chat-thread-limit.patch
diff --git a/patches/server/0875-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0873-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
index 793883a2f4..793883a2f4 100644
--- a/patches/server/0875-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
+++ b/patches/server/0873-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
diff --git a/patches/server/0876-fix-Jigsaw-block-kicking-user.patch b/patches/server/0874-fix-Jigsaw-block-kicking-user.patch
index 6206d8d028..6206d8d028 100644
--- a/patches/server/0876-fix-Jigsaw-block-kicking-user.patch
+++ b/patches/server/0874-fix-Jigsaw-block-kicking-user.patch
diff --git a/patches/server/0877-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0875-use-BlockFormEvent-for-mud-converting-into-clay.patch
index 7cd7034099..7cd7034099 100644
--- a/patches/server/0877-use-BlockFormEvent-for-mud-converting-into-clay.patch
+++ b/patches/server/0875-use-BlockFormEvent-for-mud-converting-into-clay.patch
diff --git a/patches/server/0878-Add-getDrops-to-BlockState.patch b/patches/server/0876-Add-getDrops-to-BlockState.patch
index 2984a969f8..7f9d14aad9 100644
--- a/patches/server/0878-Add-getDrops-to-BlockState.patch
+++ b/patches/server/0876-Add-getDrops-to-BlockState.patch
@@ -7,10 +7,10 @@ Originally added isPreferredTool to BlockData but
upstream added that.
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-index 3e1d36a8c65e6567ac3b78903a25d5828ab74ea5..577a352dab0f8a71558cb6dedce788e78053ef52 100644
+index 792bfc7eab33b26462e76a1912bd712e8af70073..b1abb332eca597b23888bca42d21d5b587f61b13 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
-@@ -331,5 +331,33 @@ public class CraftBlockState implements BlockState {
+@@ -323,5 +323,33 @@ public class CraftBlockState implements BlockState {
public boolean isCollidable() {
return this.data.getBlock().hasCollision;
}
diff --git a/patches/server/0879-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0877-Fix-a-bunch-of-vanilla-bugs.patch
index 193fb96886..193fb96886 100644
--- a/patches/server/0879-Fix-a-bunch-of-vanilla-bugs.patch
+++ b/patches/server/0877-Fix-a-bunch-of-vanilla-bugs.patch
diff --git a/patches/server/0880-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0878-Remove-unnecessary-onTrackingStart-during-navigation.patch
index 758839864f..758839864f 100644
--- a/patches/server/0880-Remove-unnecessary-onTrackingStart-during-navigation.patch
+++ b/patches/server/0878-Remove-unnecessary-onTrackingStart-during-navigation.patch
diff --git a/patches/server/0881-Fix-custom-piglin-loved-items.patch b/patches/server/0879-Fix-custom-piglin-loved-items.patch
index e768ba98b8..e768ba98b8 100644
--- a/patches/server/0881-Fix-custom-piglin-loved-items.patch
+++ b/patches/server/0879-Fix-custom-piglin-loved-items.patch
diff --git a/patches/server/0882-EntityPickupItemEvent-fixes.patch b/patches/server/0880-EntityPickupItemEvent-fixes.patch
index 8c7fe9dd48..8c7fe9dd48 100644
--- a/patches/server/0882-EntityPickupItemEvent-fixes.patch
+++ b/patches/server/0880-EntityPickupItemEvent-fixes.patch
diff --git a/patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch
index cf990e4602..9243e65aeb 100644
--- a/patches/server/0883-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0881-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -30,7 +30,7 @@ index 92340937194a985999a85c5d387f4d73e8354d24..1635fee928d64f4d2c336dca6675ed46
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 20e1efcadd4a11bab8a0db48410229e4a4d5ce57..86b0fe7b6feeef0e085e577954f869e020cc0f04 100644
+index 94796cbe43546748b28aa921d22cb4b68ef23fa6..22ebf307641f9aa7231df8607bb859785be60f7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -517,6 +517,12 @@ public class CraftEventFactory {
diff --git a/patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch
index 2ae4584d34..70dd42cf1b 100644
--- a/patches/server/0884-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0882-Add-PlayerInventorySlotChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bde2f86029bced34358517ef65515c6cddbc02eb..53d4b897e5b1616133d35fd0df2e4624b76990ad 100644
+index 48cd206a41fe238af4c53b7f2a664fb16da366a5..88726c9bfd6dee2110910f43a042a9b29717dc82 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -371,6 +371,25 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0885-Elder-Guardian-appearance-API.patch b/patches/server/0883-Elder-Guardian-appearance-API.patch
index a39f8d2f49..01ee803298 100644
--- a/patches/server/0885-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0883-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ 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 a718f3c53fe1ee0550512e86ee5fab7c9594f416..ec6b296989e9436c13cf43d9a341dc89c3320389 100644
+index b52159c9adf1f502cb357e920da3128ab3592861..16f7ec3dc9ce1ba14205d3ddd2062aaeea7b67e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3129,6 +3129,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3067,6 +3067,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0886-Allow-changing-bed-s-occupied-property.patch b/patches/server/0884-Allow-changing-bed-s-occupied-property.patch
index 4d0128b6d3..4d0128b6d3 100644
--- a/patches/server/0886-Allow-changing-bed-s-occupied-property.patch
+++ b/patches/server/0884-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/server/0887-Add-entity-knockback-API.patch b/patches/server/0885-Add-entity-knockback-API.patch
index 8fb1163c50..3c5152fdf6 100644
--- a/patches/server/0887-Add-entity-knockback-API.patch
+++ b/patches/server/0885-Add-entity-knockback-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add entity knockback API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index d15a252285e10ce062319b0f1051f59ba46701a0..351869735644c984090e1ac571b5ff118ecae9bc 100644
+index 4cf07ff38df050defceb69335e402ca52972a05f..a4d2f2a296e93dd786abf81439eb759c49029850 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -995,5 +995,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -989,5 +989,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category");
}
diff --git a/patches/server/0888-Detect-headless-JREs.patch b/patches/server/0886-Detect-headless-JREs.patch
index 9d49be7a76..9d49be7a76 100644
--- a/patches/server/0888-Detect-headless-JREs.patch
+++ b/patches/server/0886-Detect-headless-JREs.patch
diff --git a/patches/server/0889-fixed-entity-vehicle-collision-event-not-called.patch b/patches/server/0887-fixed-entity-vehicle-collision-event-not-called.patch
index 19c5cdfd72..19c5cdfd72 100644
--- a/patches/server/0889-fixed-entity-vehicle-collision-event-not-called.patch
+++ b/patches/server/0887-fixed-entity-vehicle-collision-event-not-called.patch
diff --git a/patches/server/0890-optimized-dirt-and-snow-spreading.patch b/patches/server/0888-optimized-dirt-and-snow-spreading.patch
index 08a3761309..08a3761309 100644
--- a/patches/server/0890-optimized-dirt-and-snow-spreading.patch
+++ b/patches/server/0888-optimized-dirt-and-snow-spreading.patch
diff --git a/patches/server/0891-Added-EntityToggleSitEvent.patch b/patches/server/0889-Added-EntityToggleSitEvent.patch
index 3545a2f37d..3545a2f37d 100644
--- a/patches/server/0891-Added-EntityToggleSitEvent.patch
+++ b/patches/server/0889-Added-EntityToggleSitEvent.patch
diff --git a/patches/server/0892-Add-fire-tick-delay-option.patch b/patches/server/0890-Add-fire-tick-delay-option.patch
index e9a876ed2b..e9a876ed2b 100644
--- a/patches/server/0892-Add-fire-tick-delay-option.patch
+++ b/patches/server/0890-Add-fire-tick-delay-option.patch
diff --git a/patches/server/0893-Add-Moving-Piston-API.patch b/patches/server/0891-Add-Moving-Piston-API.patch
index 53df041ba1..53df041ba1 100644
--- a/patches/server/0893-Add-Moving-Piston-API.patch
+++ b/patches/server/0891-Add-Moving-Piston-API.patch
diff --git a/patches/server/0894-Ignore-impossible-spawn-tick.patch b/patches/server/0892-Ignore-impossible-spawn-tick.patch
index a5ecb9692b..46cd469266 100644
--- a/patches/server/0894-Ignore-impossible-spawn-tick.patch
+++ b/patches/server/0892-Ignore-impossible-spawn-tick.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ignore impossible spawn tick
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index c63d5df91726839471c1eaaf7fafab3fa1be153b..8fdbc603486ff8a902b6327bc2acfb86a806626e 100644
+index ae2b95f53e875716489821dc9b0a3a35039bfcc9..633500aefd515df5dadda3802b94079f75a03fa0 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -80,6 +80,7 @@ public abstract class BaseSpawner {
diff --git a/patches/server/0895-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0893-Track-projectile-source-for-fireworks-from-dispenser.patch
index 389dfc4431..389dfc4431 100644
--- a/patches/server/0895-Track-projectile-source-for-fireworks-from-dispenser.patch
+++ b/patches/server/0893-Track-projectile-source-for-fireworks-from-dispenser.patch
diff --git a/patches/server/0896-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0894-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
index a840f9a576..a840f9a576 100644
--- a/patches/server/0896-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
+++ b/patches/server/0894-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
diff --git a/patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
index 2aed8d8bb3..ba347aa9a8 100644
--- a/patches/server/0897-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
+++ b/patches/server/0895-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b5751d0cfae442b1030b771e4a3afc42e566d76d..b0744d9b0fce0b4d01c728034e275d430d7933de 100644
+index 3d95a435a9f6e28c43f275781db909bf9e71397b..e967413613bc247176c5af380162ba25fa821377 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3308,6 +3308,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0898-Prevent-compass-from-loading-chunks.patch b/patches/server/0896-Prevent-compass-from-loading-chunks.patch
index fd21636990..fd21636990 100644
--- a/patches/server/0898-Prevent-compass-from-loading-chunks.patch
+++ b/patches/server/0896-Prevent-compass-from-loading-chunks.patch
diff --git a/patches/server/0899-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0897-Add-PrePlayerAttackEntityEvent.patch
index 01fbd77bb2..01fbd77bb2 100644
--- a/patches/server/0899-Add-PrePlayerAttackEntityEvent.patch
+++ b/patches/server/0897-Add-PrePlayerAttackEntityEvent.patch
diff --git a/patches/server/0900-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0898-ensure-reset-EnderDragon-boss-event-name.patch
index 0f1fd322ef..0f1fd322ef 100644
--- a/patches/server/0900-ensure-reset-EnderDragon-boss-event-name.patch
+++ b/patches/server/0898-ensure-reset-EnderDragon-boss-event-name.patch
diff --git a/patches/server/0901-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0899-fix-MC-252817-green-map-markers-do-not-disappear.patch
index e5593afbc6..e5593afbc6 100644
--- a/patches/server/0901-fix-MC-252817-green-map-markers-do-not-disappear.patch
+++ b/patches/server/0899-fix-MC-252817-green-map-markers-do-not-disappear.patch
diff --git a/patches/server/0902-Add-Player-Warden-Warning-API.patch b/patches/server/0900-Add-Player-Warden-Warning-API.patch
index c034e86f87..1919053665 100644
--- a/patches/server/0902-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0900-Add-Player-Warden-Warning-API.patch
@@ -10,10 +10,10 @@ 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 ec6b296989e9436c13cf43d9a341dc89c3320389..bab8770ae6b62b334055e03007883d64a3831891 100644
+index 16f7ec3dc9ce1ba14205d3ddd2062aaeea7b67e9..cb1811f7283f5d41dda771998f029058c9417729 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3134,6 +3134,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3072,6 +3072,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
diff --git a/patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch
index 54dfe176f7..18bc407bfb 100644
--- a/patches/server/0903-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/server/0901-More-vanilla-friendly-methods-to-update-trades.patch
@@ -35,10 +35,10 @@ index 4bef7abbed6b64c2f126c81af5484eff200e620f..e30d5ae3e2900f43d7cafde71b8196f2
public void gossip(ServerLevel world, Villager villager, long time) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-index e6fcdbabde66f4707627fc8c3012aa20de8e34e3..e986767316a717bdbdff7a9ccaaeba068ab2a6d8 100644
+index 6f7977b492ce01e7cda7872c42bd7f2386d3e745..f21c715ea109164efa755cddb35ef656a9859759 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
-@@ -100,6 +100,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
+@@ -99,6 +99,34 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {
}
// Paper start
diff --git a/patches/server/0904-Add-paper-dumplisteners-command.patch b/patches/server/0902-Add-paper-dumplisteners-command.patch
index cbf1598dd5..cbf1598dd5 100644
--- a/patches/server/0904-Add-paper-dumplisteners-command.patch
+++ b/patches/server/0902-Add-paper-dumplisteners-command.patch
diff --git a/patches/server/0905-check-global-player-list-where-appropriate.patch b/patches/server/0903-check-global-player-list-where-appropriate.patch
index be6c2d1321..be6c2d1321 100644
--- a/patches/server/0905-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0903-check-global-player-list-where-appropriate.patch
diff --git a/patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch
index fab31f58d5..fdb8bd16d3 100644
--- a/patches/server/0906-Fix-async-entity-add-due-to-fungus-trees.patch
+++ b/patches/server/0904-Fix-async-entity-add-due-to-fungus-trees.patch
@@ -17,7 +17,7 @@ index 52fd12c474c01f3b53d0f6596b7a6fafee52bd0d..877498729c66de9aa6a27c9148f7494d
BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
-index 94f21c6acaee5a632b6adb4e77488bb2e385fbea..cf6e22889437aa18fed66dc6a1b8394e6f21dcbc 100644
+index 086cbbfb492413bf1ae901c46f8e8ebbadd68b21..23d77e6cc55c06d9c2cfb21421cd19c487dbe765 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java
@@ -401,10 +401,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor {
diff --git a/patches/server/0907-ItemStack-damage-API.patch b/patches/server/0905-ItemStack-damage-API.patch
index 3d5c08cf7b..9c9e244de1 100644
--- a/patches/server/0907-ItemStack-damage-API.patch
+++ b/patches/server/0905-ItemStack-damage-API.patch
@@ -11,10 +11,10 @@ the logic associated with damaging them
public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 351869735644c984090e1ac571b5ff118ecae9bc..56b55e9217c514fbdf44a7e2f44769ff4e8ccee1 100644
+index a4d2f2a296e93dd786abf81439eb759c49029850..7db6e0f8260f748669b1d98160bc47b979ade0f7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -996,6 +996,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -990,6 +990,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
throw new IllegalArgumentException(entityCategory + " is an unrecognized entity category");
}
diff --git a/patches/server/0908-Friction-API.patch b/patches/server/0906-Friction-API.patch
index c9cd1ef7ef..b137b79138 100644
--- a/patches/server/0908-Friction-API.patch
+++ b/patches/server/0906-Friction-API.patch
@@ -132,10 +132,10 @@ index e9946edf568db010e4ccb9fe7755709ed7b8310f..a925b5c490e7129b27370aa57b5fad1c
public int getHealth() {
return item.health;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 56b55e9217c514fbdf44a7e2f44769ff4e8ccee1..2d5f407b6979f39e5b611f37578d681a49eaea03 100644
+index 7db6e0f8260f748669b1d98160bc47b979ade0f7..40c80ba7fa6e0505c23e643acbc87fd03b69e208 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -1043,6 +1043,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -1037,6 +1037,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
});
}
diff --git a/patches/server/0909-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0907-Ability-to-control-player-s-insomnia-and-phantoms.patch
index 458d74cc9c..458d74cc9c 100644
--- a/patches/server/0909-Ability-to-control-player-s-insomnia-and-phantoms.patch
+++ b/patches/server/0907-Ability-to-control-player-s-insomnia-and-phantoms.patch
diff --git a/patches/server/0910-Fix-player-kick-on-shutdown.patch b/patches/server/0908-Fix-player-kick-on-shutdown.patch
index b954657690..b954657690 100644
--- a/patches/server/0910-Fix-player-kick-on-shutdown.patch
+++ b/patches/server/0908-Fix-player-kick-on-shutdown.patch
diff --git a/patches/server/0911-Sync-offhand-slot-in-menus.patch b/patches/server/0909-Sync-offhand-slot-in-menus.patch
index d58c97aaa6..66e1fc2fc7 100644
--- a/patches/server/0911-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0909-Sync-offhand-slot-in-menus.patch
@@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th
by pressing the offhand swap item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 53d4b897e5b1616133d35fd0df2e4624b76990ad..5fad40fa88f697108e42461c41012d5964ed7d75 100644
+index 88726c9bfd6dee2110910f43a042a9b29717dc82..9d46536f80b5b3e6641fd377c02166a431edfd77 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -340,6 +340,13 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0912-Player-Entity-Tracking-Events.patch b/patches/server/0910-Player-Entity-Tracking-Events.patch
index 15dee0455c..0fdc102ca9 100644
--- a/patches/server/0912-Player-Entity-Tracking-Events.patch
+++ b/patches/server/0910-Player-Entity-Tracking-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b0744d9b0fce0b4d01c728034e275d430d7933de..a36c5ce78efc98e5bd53db4b5509c58a06aa3de1 100644
+index e967413613bc247176c5af380162ba25fa821377..44495b2bbbc9cb8c5086475f403ef20e88101536 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4030,9 +4030,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0913-Limit-pet-look-distance.patch b/patches/server/0911-Limit-pet-look-distance.patch
index 724bcbffa1..724bcbffa1 100644
--- a/patches/server/0913-Limit-pet-look-distance.patch
+++ b/patches/server/0911-Limit-pet-look-distance.patch
diff --git a/patches/server/0914-Properly-resend-entities.patch b/patches/server/0912-Properly-resend-entities.patch
index 0baf83a9a0..c5f9768645 100644
--- a/patches/server/0914-Properly-resend-entities.patch
+++ b/patches/server/0912-Properly-resend-entities.patch
@@ -66,10 +66,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..bf6a70a69bb695ec1a202cd1e863c468
public static class DataItem<T> {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b46c46fcde19aff16321876bf50b6725233bb09a..5654777aa3ed772cd5e37c1c630c68a83194f6bb 100644
+index 14488a4cdc3fc8edf3abb3d57ffdcc4880f987ee..0d998395b65be269c2b5b58acd1b2b46408f8f8e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2796,7 +2796,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2799,7 +2799,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
@@ -79,7 +79,7 @@ index b46c46fcde19aff16321876bf50b6725233bb09a..5654777aa3ed772cd5e37c1c630c68a8
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 57e63c91051c5885103ba55466dacdb449cd5316..a977d729c487c6efb4863ea00adbc4d947f7c5ea 100644
+index 815eb218b6612b13c6deff636509bad35eeace62..490f2d6f7a43d0a5915a80960c1c7c48b3eea19f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -371,7 +371,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0915-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0913-Fixes-and-additions-to-the-SpawnReason-API.patch
index f7f6ee5b61..f7f6ee5b61 100644
--- a/patches/server/0915-Fixes-and-additions-to-the-SpawnReason-API.patch
+++ b/patches/server/0913-Fixes-and-additions-to-the-SpawnReason-API.patch
diff --git a/patches/server/0914-fix-Instruments.patch b/patches/server/0914-fix-Instruments.patch
new file mode 100644
index 0000000000..3bf10bb4b8
--- /dev/null
+++ b/patches/server/0914-fix-Instruments.patch
@@ -0,0 +1,53 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Fri, 9 Dec 2022 01:47:23 -0800
+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 cb1811f7283f5d41dda771998f029058c9417729..5d93b34e49891a3f93c0d83307ba14f196e72cc6 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -713,29 +713,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+
+ if (this.getHandle().connection == null) return;
+
+- String instrumentName = switch (instrument.ordinal()) {
+- case 0 -> "harp";
+- case 1 -> "basedrum";
+- case 2 -> "snare";
+- case 3 -> "hat";
+- case 4 -> "bass";
+- case 5 -> "flute";
+- case 6 -> "bell";
+- case 7 -> "guitar";
+- case 8 -> "chime";
+- case 9 -> "xylophone";
+- case 10 -> "iron_xylophone";
+- case 11 -> "cow_bell";
+- case 12 -> "didgeridoo";
+- case 13 -> "bit";
+- case 14 -> "banjo";
+- case 15 -> "pling";
+- case 16 -> "xylophone";
+- default -> null;
+- };
+-
+- float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
+- this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
++ // Paper start - fix all this (modeled off of NoteBlock)
++ net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
++ float f;
++ if (nms.isTunable()) {
++ f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
++ } else {
++ f = 1.0f;
++ }
++ if (!nms.hasCustomSound()) {
++ this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
++ }
++ // Paper end
+ }
+
+ @Override
diff --git a/patches/server/0917-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0915-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
index f4f36a8f11..f4f36a8f11 100644
--- a/patches/server/0917-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
+++ b/patches/server/0915-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
diff --git a/patches/server/0918-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0916-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
index 923b2ffa50..923b2ffa50 100644
--- a/patches/server/0918-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
+++ b/patches/server/0916-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
diff --git a/patches/server/0916-fix-Instruments.patch b/patches/server/0916-fix-Instruments.patch
deleted file mode 100644
index 3495ef15b0..0000000000
--- a/patches/server/0916-fix-Instruments.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Fri, 9 Dec 2022 01:47:23 -0800
-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 151788d379000ee4d3f5d1d51c014da8e8cd21a5..3fa3e0bd52bf2f3135f189629a4bd43ad6248fe2 100644
---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -744,62 +744,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- public void playNote(Location loc, Instrument instrument, Note note) {
- if (this.getHandle().connection == null) return;
-
-- String instrumentName = null;
-- switch (instrument.ordinal()) {
-- case 0:
-- instrumentName = "harp";
-- break;
-- case 1:
-- instrumentName = "basedrum";
-- break;
-- case 2:
-- instrumentName = "snare";
-- break;
-- case 3:
-- instrumentName = "hat";
-- break;
-- case 4:
-- instrumentName = "bass";
-- break;
-- case 5:
-- instrumentName = "flute";
-- break;
-- case 6:
-- instrumentName = "bell";
-- break;
-- case 7:
-- instrumentName = "guitar";
-- break;
-- case 8:
-- instrumentName = "chime";
-- break;
-- case 9:
-- instrumentName = "xylophone";
-- break;
-- case 10:
-- instrumentName = "iron_xylophone";
-- break;
-- case 11:
-- instrumentName = "cow_bell";
-- break;
-- case 12:
-- instrumentName = "didgeridoo";
-- break;
-- case 13:
-- instrumentName = "bit";
-- break;
-- case 14:
-- instrumentName = "banjo";
-- break;
-- case 15:
-- instrumentName = "pling";
-- break;
-- case 16:
-- instrumentName = "xylophone";
-- break;
-+ // Paper start - fix all this (modeled off of NoteBlock)
-+ net.minecraft.world.level.block.state.properties.NoteBlockInstrument nms = CraftBlockData.toNMS(instrument, net.minecraft.world.level.block.state.properties.NoteBlockInstrument.class);
-+ float f;
-+ if (nms.isTunable()) {
-+ f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
-+ } else {
-+ f = 1.0f;
- }
-- float f = (float) Math.pow(2.0D, (note.getId() - 12.0D) / 12.0D);
-- this.getHandle().connection.send(new ClientboundSoundPacket(BuiltInRegistries.SOUND_EVENT.wrapAsHolder(CraftSound.getSoundEffect("block.note_block." + instrumentName)), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
-+ if (!nms.hasCustomSound()) {
-+ this.getHandle().connection.send(new ClientboundSoundPacket(nms.getSoundEvent(), net.minecraft.sounds.SoundSource.RECORDS, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), 3.0f, f, this.getHandle().getRandom().nextLong()));
-+ }
-+ // Paper end
- }
-
- @Override
diff --git a/patches/server/0919-Improve-logging-and-errors.patch b/patches/server/0917-Improve-logging-and-errors.patch
index 5f9461d68e..192162ab13 100644
--- a/patches/server/0919-Improve-logging-and-errors.patch
+++ b/patches/server/0917-Improve-logging-and-errors.patch
@@ -22,7 +22,7 @@ index 0232c29d96e1021a9f5a9678996993dc55fe7254..8ad8ad1189d7cdb58caaa39c482d3268
set.add(string);
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
-index 6a083e269b828ef53f943cae56b029f2e0021ef1..110503062b3043cffa082a1cda6b8d57152869aa 100644
+index 080cca90f15d90249b7a38f33286ae2f735ba7d9..2677e21d8239bf0361a3bc5c9a50c328e54d70f6 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
@@ -44,6 +44,7 @@ import org.bukkit.material.MaterialData;
diff --git a/patches/server/0920-Add-BlockLockCheckEvent.patch b/patches/server/0918-Add-BlockLockCheckEvent.patch
index 29e8b68880..29e8b68880 100644
--- a/patches/server/0920-Add-BlockLockCheckEvent.patch
+++ b/patches/server/0918-Add-BlockLockCheckEvent.patch
diff --git a/patches/server/0921-Add-Sneaking-API-for-Entities.patch b/patches/server/0919-Add-Sneaking-API-for-Entities.patch
index 264874161f..c7ba3ecf8f 100644
--- a/patches/server/0921-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0919-Add-Sneaking-API-for-Entities.patch
@@ -5,10 +5,10 @@ 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 e05c3c15d15c242e07caa9033cc49d515dfcdb41..ea056babe2f8123f20dc608d8a636da1de634b8c 100644
+index f7c879cf10f89eaeb41a0f40787bd2c98d8d3f31..733158b6f2c2bd03fbe798562ff7bc33280548dc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1198,6 +1198,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1191,6 +1191,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return Pose.values()[this.getHandle().getPose().ordinal()];
}
diff --git a/patches/server/0922-Improve-PortalEvents.patch b/patches/server/0920-Improve-PortalEvents.patch
index 1f628c43d5..aa5fbc2763 100644
--- a/patches/server/0922-Improve-PortalEvents.patch
+++ b/patches/server/0920-Improve-PortalEvents.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index a36c5ce78efc98e5bd53db4b5509c58a06aa3de1..4358420693efccfc1203037cdcbf91f78331409a 100644
+index 44495b2bbbc9cb8c5086475f403ef20e88101536..a1fd4745063a3e4fbd98600b5725df41817f650f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3686,7 +3686,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch
index 9a76df29f8..38b52c6506 100644
--- a/patches/server/0923-Add-config-option-for-spider-worldborder-climbing.patch
+++ b/patches/server/0921-Add-config-option-for-spider-worldborder-climbing.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add config option for spider worldborder climbing
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4358420693efccfc1203037cdcbf91f78331409a..b1075e6ca16de57cb7a7b7caa1a4c0551767ec95 100644
+index a1fd4745063a3e4fbd98600b5725df41817f650f..fbbbb1a02a522f97928ac4b52b625f5bf2bc7537 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -403,6 +403,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch
index 3c61f54554..8ecc1a22e8 100644
--- a/patches/server/0924-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0922-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5654777aa3ed772cd5e37c1c630c68a83194f6bb..1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4 100644
+index 0d998395b65be269c2b5b58acd1b2b46408f8f8e..2232139c2dc183fe9827ed6c276a4ed0f6ef3fd9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2254,7 +2254,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2257,7 +2257,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start
String command = "/" + packet.command();
diff --git a/patches/server/0925-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0923-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
index 04dbb4d045..04dbb4d045 100644
--- a/patches/server/0925-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
+++ b/patches/server/0923-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
diff --git a/patches/server/0926-Flying-Fall-Damage.patch b/patches/server/0924-Flying-Fall-Damage.patch
index 416df8c728..8ee04f3411 100644
--- a/patches/server/0926-Flying-Fall-Damage.patch
+++ b/patches/server/0924-Flying-Fall-Damage.patch
@@ -26,10 +26,10 @@ index 53487f0a4fe672298c3b83d24a2a603641afcde8..58152160d609d0e9d105153aeb166a56
} 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 3fa3e0bd52bf2f3135f189629a4bd43ad6248fe2..75f4531222016a8639920ab25f0378c11a62a1f6 100644
+index 5d93b34e49891a3f93c0d83307ba14f196e72cc6..fd0cd21ce5bd2c8f255fa53e1788548b41d168cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2304,6 +2304,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2288,6 +2288,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().onUpdateAbilities();
}
diff --git a/patches/server/0927-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/server/0925-Add-exploded-block-state-to-BlockExplodeEvent.patch
index a968490b2b..a968490b2b 100644
--- a/patches/server/0927-Add-exploded-block-state-to-BlockExplodeEvent.patch
+++ b/patches/server/0925-Add-exploded-block-state-to-BlockExplodeEvent.patch
diff --git a/patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index d170d979cb..5f8840b205 100644
--- a/patches/server/0928-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/server/0926-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b1075e6ca16de57cb7a7b7caa1a4c0551767ec95..21210830233e409b8757a78af4d3e128e51ebbde 100644
+index fbbbb1a02a522f97928ac4b52b625f5bf2bc7537..64068958a29f5e867932d6c23ab504a2fafdd3f1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1156,7 +1156,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0929-config-for-disabling-entity-tag-tags.patch b/patches/server/0927-config-for-disabling-entity-tag-tags.patch
index e7680c986a..e7680c986a 100644
--- a/patches/server/0929-config-for-disabling-entity-tag-tags.patch
+++ b/patches/server/0927-config-for-disabling-entity-tag-tags.patch
diff --git a/patches/server/0930-Use-single-player-info-update-packet-on-join.patch b/patches/server/0928-Use-single-player-info-update-packet-on-join.patch
index 63ae383420..222434b107 100644
--- a/patches/server/0930-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0928-Use-single-player-info-update-packet-on-join.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4..01ed2f2bc2b888f0c8e3c47f51114fac82f7a368 100644
+index 2232139c2dc183fe9827ed6c276a4ed0f6ef3fd9..ad7b15eb0a4907d3ef02e4bd57ff4d482a278099 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3600,7 +3600,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3603,7 +3603,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID());
this.chatMessageChain.append((executor) -> {
this.player.setChatSession(session);
@@ -18,7 +18,7 @@ index 1572c2b682c44d1445e97c3ebdc7df3f9c3bb7c4..01ed2f2bc2b888f0c8e3c47f51114fac
});
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a977d729c487c6efb4863ea00adbc4d947f7c5ea..683b5d78f9e3dc34e40c54683f64be32317797ac 100644
+index 490f2d6f7a43d0a5915a80960c1c7c48b3eea19f..8547e7ff2f1f5b7701fb0f3c3010c14601a5f83e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -353,6 +353,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0931-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0929-Correctly-shrink-items-during-EntityResurrectEvent.patch
index 48e1f8b1ec..48e1f8b1ec 100644
--- a/patches/server/0931-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0929-Correctly-shrink-items-during-EntityResurrectEvent.patch
diff --git a/patches/server/0932-Win-Screen-API.patch b/patches/server/0930-Win-Screen-API.patch
index 426b72554d..0a6db73503 100644
--- a/patches/server/0932-Win-Screen-API.patch
+++ b/patches/server/0930-Win-Screen-API.patch
@@ -7,10 +7,10 @@ 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 75f4531222016a8639920ab25f0378c11a62a1f6..991f3f947810ebd7e4f2c51a4012115fee8a34ec 100644
+index fd0cd21ce5bd2c8f255fa53e1788548b41d168cc..fd72e7ccc7efe86e3c75252b50032751c4cb3f2c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1203,6 +1203,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1190,6 +1190,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch
index 6e71a44d88..f6cf642638 100644
--- a/patches/server/0933-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0931-Remove-CraftItemStack-setAmount-null-assignment.patch
@@ -16,10 +16,10 @@ with less than zero amounts, so this code doesn't create
a problem with operations on the vanilla ItemStack.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 8683bb08c2d9a7514ee6b16690b61240fb807d15..24fac69bc63f949001252811f792b21955a13e9d 100644
+index d6b9897dcb4715decd4dd0b1b96995e25d789482..8657736cdfe2d5d2a1c0851ca54dd26ce17e0a83 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-@@ -146,7 +146,7 @@ public final class CraftItemStack extends ItemStack {
+@@ -147,7 +147,7 @@ public final class CraftItemStack extends ItemStack {
}
this.handle.setCount(amount);
diff --git a/patches/server/0934-Fix-force-opening-enchantment-tables.patch b/patches/server/0932-Fix-force-opening-enchantment-tables.patch
index c655e789f0..97bfc2c883 100644
--- a/patches/server/0934-Fix-force-opening-enchantment-tables.patch
+++ b/patches/server/0932-Fix-force-opening-enchantment-tables.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix force-opening enchantment tables
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 07c9a644dc24e881efcf2c6519f88db43e2d5779..0a35f3510e71bb8c7812eed61bbab3872ea78437 100644
+index 35f79f34b86dbf6d592842883f53f83e07f95f93..bca41901e2a44458dd9f53c2ab7181d86de54e9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -404,7 +404,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -402,7 +402,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// If there isn't an enchant table we can force create one, won't be very useful though.
BlockPos pos = CraftLocation.toBlockPosition(location);
diff --git a/patches/server/0935-Add-Entity-Body-Yaw-API.patch b/patches/server/0933-Add-Entity-Body-Yaw-API.patch
index 1d612ad759..6381bc95be 100644
--- a/patches/server/0935-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0933-Add-Entity-Body-Yaw-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index 2d5f407b6979f39e5b611f37578d681a49eaea03..42a4a45ece562d543cc4fab9d9e7c70573705f10 100644
+index 40c80ba7fa6e0505c23e643acbc87fd03b69e208..7880631fe8a4b06f29ef69ab850129737a99521b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -1035,6 +1035,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -1029,6 +1029,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
this.damageItemStack0(this.getHandle().getItemBySlot(nmsSlot), amount, nmsSlot);
}
diff --git a/patches/server/0936-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0934-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
index efaf1a6e90..efaf1a6e90 100644
--- a/patches/server/0936-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
+++ b/patches/server/0934-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
diff --git a/patches/server/0937-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0935-Update-the-flag-when-a-captured-block-state-is-outda.patch
index 097c2e3932..097c2e3932 100644
--- a/patches/server/0937-Update-the-flag-when-a-captured-block-state-is-outda.patch
+++ b/patches/server/0935-Update-the-flag-when-a-captured-block-state-is-outda.patch
diff --git a/patches/server/0938-Add-EntityFertilizeEggEvent.patch b/patches/server/0936-Add-EntityFertilizeEggEvent.patch
index 7b65a3ef54..1d6a8aeb2c 100644
--- a/patches/server/0938-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0936-Add-EntityFertilizeEggEvent.patch
@@ -69,10 +69,10 @@ index c0f19138c6a00ce6ae837c972ae4af522ddd2895..a6d98f64910c816a5c11867d12698f5c
world.addFreshEntity(entityitem);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 86b0fe7b6feeef0e085e577954f869e020cc0f04..576e982ac53fe6cdc6ca921ad46c36e895509f84 100644
+index 22ebf307641f9aa7231df8607bb859785be60f7a..5cc8d5403058638ddecbed08059ecd96257f9dcb 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1981,4 +1981,29 @@ public class CraftEventFactory {
+@@ -1983,4 +1983,29 @@ public class CraftEventFactory {
return event.callEvent();
}
// Paper end
diff --git a/patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
index c1393c0c4f..2e74734a41 100644
--- a/patches/server/0939-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
+++ b/patches/server/0937-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv
public net.minecraft.server.level.ServerPlayer containerSynchronizer
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-index 0a35f3510e71bb8c7812eed61bbab3872ea78437..cba6ead3f937f2b3d59c15a864e07e5cb2f2330c 100644
+index bca41901e2a44458dd9f53c2ab7181d86de54e9e..0f3e696582cd288357598490e8af0131ab30bdfc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
-@@ -757,8 +757,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
+@@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
// Paper end
@Override
public boolean dropItem(boolean dropAll) {
diff --git a/patches/server/0940-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0938-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index c09b36b849..c09b36b849 100644
--- a/patches/server/0940-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/server/0938-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0941-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0939-Correctly-handle-ArmorStand-invisibility.patch
index 103ddcbb11..103ddcbb11 100644
--- a/patches/server/0941-Correctly-handle-ArmorStand-invisibility.patch
+++ b/patches/server/0939-Correctly-handle-ArmorStand-invisibility.patch
diff --git a/patches/server/0942-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0940-Fix-advancement-triggers-for-entity-damage.patch
index 549fd4f631..549fd4f631 100644
--- a/patches/server/0942-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0940-Fix-advancement-triggers-for-entity-damage.patch
diff --git a/patches/server/0943-Fix-text-display-error-on-spawn.patch b/patches/server/0941-Fix-text-display-error-on-spawn.patch
index cb6ccd7e5e..cb6ccd7e5e 100644
--- a/patches/server/0943-Fix-text-display-error-on-spawn.patch
+++ b/patches/server/0941-Fix-text-display-error-on-spawn.patch
diff --git a/patches/server/0944-Fix-certain-inventories-returning-null-Locations.patch b/patches/server/0942-Fix-certain-inventories-returning-null-Locations.patch
index e69fe4eb74..e69fe4eb74 100644
--- a/patches/server/0944-Fix-certain-inventories-returning-null-Locations.patch
+++ b/patches/server/0942-Fix-certain-inventories-returning-null-Locations.patch
diff --git a/patches/server/0945-Add-Shearable-API.patch b/patches/server/0943-Add-Shearable-API.patch
index 950ecc2beb..950ecc2beb 100644
--- a/patches/server/0945-Add-Shearable-API.patch
+++ b/patches/server/0943-Add-Shearable-API.patch
diff --git a/patches/server/0946-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0944-Fix-SpawnEggMeta-get-setSpawnedType.patch
index 4c90082c28..4c90082c28 100644
--- a/patches/server/0946-Fix-SpawnEggMeta-get-setSpawnedType.patch
+++ b/patches/server/0944-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch b/patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
index 75e0c90780..8c7b5d3b37 100644
--- a/patches/server/0947-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
+++ b/patches/server/0945-Fix-chiseled-bookshelf-and-jukebox-setItem-with-air.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix chiseled bookshelf and jukebox setItem with air
diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
-index 1b4a6e68fc81072591278de1e2ec3f921823811b..429381c4efbfdf48b489cc25936466c193c2f452 100644
+index 1714102815e6c32bc161e88b1634f7a80908850a..47e194ef4e75f95573b40ff9f1a11810381cfce8 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java
@@ -146,7 +146,7 @@ public class ChiseledBookShelfBlockEntity extends BlockEntity implements Contain
@@ -15,7 +15,7 @@ index 1b4a6e68fc81072591278de1e2ec3f921823811b..429381c4efbfdf48b489cc25936466c1
- if (stack.is(ItemTags.BOOKSHELF_BOOKS)) {
+ if (stack.isEmpty() || stack.is(ItemTags.BOOKSHELF_BOOKS)) { // Paper
this.items.set(slot, stack);
- this.updateState(slot);
+ if (level != null) this.updateState(slot); // CraftBukkit - SPIGOT-7381: check for null world
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JukeboxBlockEntity.java
index 77ece220a2e204c3e66e660c639abda957bf21b9..62acd6686626c84c9fc3964af62097101e8e582f 100644
diff --git a/patches/server/0948-Optimize-Hoppers.patch b/patches/server/0946-Optimize-Hoppers.patch
index 8eb02d2e2e..3470e69a7a 100644
--- a/patches/server/0948-Optimize-Hoppers.patch
+++ b/patches/server/0946-Optimize-Hoppers.patch
@@ -13,10 +13,10 @@ Subject: [PATCH] Optimize Hoppers
* Remove Streams from Item Suck In and restore restore 1.12 AABB checks which is simpler and no voxel allocations (was doing TWO Item Suck ins)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index aa0dcb02aaec2caa016397e7f5cc859a22ca4b6d..763df0f016e2970fd12603d0c7d6c4e4871345f9 100644
+index c5f3dc74888919e82e2ffbb8d648b7640aa6b690..80cf4852e4010eeeadaf920ab927a40df0179b40 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1524,6 +1524,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1522,6 +1522,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
diff --git a/patches/server/0949-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0947-Fix-beehives-generating-from-using-bonemeal.patch
index 48fda8c1b9..48fda8c1b9 100644
--- a/patches/server/0949-Fix-beehives-generating-from-using-bonemeal.patch
+++ b/patches/server/0947-Fix-beehives-generating-from-using-bonemeal.patch
diff --git a/patches/server/0950-Fix-api-checking-banned-ips.patch b/patches/server/0948-Fix-api-checking-banned-ips.patch
index a69b2e70fd..08f63f3c08 100644
--- a/patches/server/0950-Fix-api-checking-banned-ips.patch
+++ b/patches/server/0948-Fix-api-checking-banned-ips.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Fix api checking banned ips
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java b/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
-index 61cb647b2aa590303402e6652bd37b5bca0e0b1d..30f2ddff4108e92eaac50317bdd9ef4eb25ec085 100644
+index 0787159a6fde31260f87ee974381f21ce97620a6..5a7d884bcad7b30109567c1eff816a31c1701b06 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftIpBanList.java
@@ -64,7 +64,7 @@ public class CraftIpBanList implements org.bukkit.BanList {
public boolean isBanned(String target) {
- Validate.notNull(target, "Target cannot be null");
+ Preconditions.checkArgument(target != null, "Target cannot be null");
- return this.list.isBanned(InetSocketAddress.createUnresolved(target, 0));
+ return this.list.isBanned(target); // Paper - fix checking banned ips
diff --git a/patches/server/0951-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0949-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
index f4282269d8..f4282269d8 100644
--- a/patches/server/0951-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
+++ b/patches/server/0949-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
diff --git a/patches/server/0952-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0950-Treat-sequence-violations-like-they-should-be.patch
index 3da8a71205..06d229aac7 100644
--- a/patches/server/0952-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0950-Treat-sequence-violations-like-they-should-be.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 01ed2f2bc2b888f0c8e3c47f51114fac82f7a368..ed19c6c2eb72800af7b978df677ff317f05795ba 100644
+index ad7b15eb0a4907d3ef02e4bd57ff4d482a278099..d00d003b29d357fbd80304acc50ca13c9f5393f5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2124,6 +2124,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -2127,6 +2127,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
public void ackBlockChangesUpTo(int sequence) {
if (sequence < 0) {
diff --git a/patches/server/0953-remove-duplicate-animate-packet-for-records.patch b/patches/server/0951-remove-duplicate-animate-packet-for-records.patch
index 0958982027..0958982027 100644
--- a/patches/server/0953-remove-duplicate-animate-packet-for-records.patch
+++ b/patches/server/0951-remove-duplicate-animate-packet-for-records.patch
diff --git a/patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch
index bb76297470..85153d77d0 100644
--- a/patches/server/0954-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0952-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -24,7 +24,7 @@ index 23e0e6937e28f09271a4ec7c35e0076a576cf3d3..4aa8b483841028fbcc43f9ed47730881
UPDATE_GAME_MODE((serialized, buf) -> {
serialized.gameMode = GameType.byId(buf.readVarInt());
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ed19c6c2eb72800af7b978df677ff317f05795ba..4dd04aa5f4affd42afbce718ec3dfaf7f1fafe2f 100644
+index d00d003b29d357fbd80304acc50ca13c9f5393f5..d9c2d06ae24dcf80a497e75f4c7f63d401b77f9b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -296,6 +296,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -49,7 +49,7 @@ index ed19c6c2eb72800af7b978df677ff317f05795ba..4dd04aa5f4affd42afbce718ec3dfaf7
}
public void resetPosition() {
-@@ -3598,6 +3606,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+@@ -3601,6 +3609,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private void resetPlayerChatState(RemoteChatSession session) {
this.chatSession = session;
diff --git a/patches/server/0955-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0953-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
index 6671aa6357..6671aa6357 100644
--- a/patches/server/0955-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
+++ b/patches/server/0953-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
diff --git a/patches/server/0956-Use-array-for-gamerule-storage.patch b/patches/server/0954-Use-array-for-gamerule-storage.patch
index 52052561af..52052561af 100644
--- a/patches/server/0956-Use-array-for-gamerule-storage.patch
+++ b/patches/server/0954-Use-array-for-gamerule-storage.patch
diff --git a/patches/server/0957-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0955-Fix-a-couple-of-upstream-bed-issues.patch
index f4a4393fa2..f4a4393fa2 100644
--- a/patches/server/0957-Fix-a-couple-of-upstream-bed-issues.patch
+++ b/patches/server/0955-Fix-a-couple-of-upstream-bed-issues.patch
diff --git a/patches/server/0958-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0956-Fix-demo-flag-not-enabling-demo-mode.patch
index 195413f40e..195413f40e 100644
--- a/patches/server/0958-Fix-demo-flag-not-enabling-demo-mode.patch
+++ b/patches/server/0956-Fix-demo-flag-not-enabling-demo-mode.patch
diff --git a/patches/server/0959-Add-Mob-Experience-reward-API.patch b/patches/server/0957-Add-Mob-Experience-reward-API.patch
index 3c07d5e971..3c07d5e971 100644
--- a/patches/server/0959-Add-Mob-Experience-reward-API.patch
+++ b/patches/server/0957-Add-Mob-Experience-reward-API.patch
diff --git a/patches/server/0960-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0958-Break-redstone-on-top-of-trap-doors-early.patch
index 461e4c40ca..461e4c40ca 100644
--- a/patches/server/0960-Break-redstone-on-top-of-trap-doors-early.patch
+++ b/patches/server/0958-Break-redstone-on-top-of-trap-doors-early.patch
diff --git a/patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch
index 3197bd1c72..962ecdd8fa 100644
--- a/patches/server/0961-Fix-DamageCause-for-Falling-Blocks.patch
+++ b/patches/server/0959-Fix-DamageCause-for-Falling-Blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 576e982ac53fe6cdc6ca921ad46c36e895509f84..0ed5035044a3fc3ad725ce702720a0742a19ed44 100644
+index 5cc8d5403058638ddecbed08059ecd96257f9dcb..0b84496161964bf84bfc08d687592b20ed06a25f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1030,6 +1030,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0962-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0960-Avoid-Lazy-Initialization-for-Enum-Fields.patch
index 809f5d1710..809f5d1710 100644
--- a/patches/server/0962-Avoid-Lazy-Initialization-for-Enum-Fields.patch
+++ b/patches/server/0960-Avoid-Lazy-Initialization-for-Enum-Fields.patch
diff --git a/patches/server/0963-More-accurate-isInOpenWater-impl.patch b/patches/server/0961-More-accurate-isInOpenWater-impl.patch
index 39f99272f6..5d9d32149a 100644
--- a/patches/server/0963-More-accurate-isInOpenWater-impl.patch
+++ b/patches/server/0961-More-accurate-isInOpenWater-impl.patch
@@ -13,10 +13,10 @@ public net.minecraft.world.entity.projectile.FishingHook calculateOpenWater(Lnet
public net.minecraft.world.entity.projectile.FishingHook outOfWaterTime
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-index 4d12c33b9a360129ffaefb551010b354bba0c69f..bac5c30d3aae1b3a7dbfb78f6fd37c11038fc735 100644
+index ce934b945b85a4c3d0f575eb090bbf90c4b3ca9f..41e8167766383a6fcb1e9fb78933d74784caddbb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java
-@@ -171,7 +171,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
+@@ -170,7 +170,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook {
@Override
public boolean isInOpenWater() {
diff --git a/patches/server/0964-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0962-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
index 2127f28b00..2127f28b00 100644
--- a/patches/server/0964-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
+++ b/patches/server/0962-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
diff --git a/patches/server/0965-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0963-Optimise-recalcBlockCounts-for-empty-sections.patch
index 2f061397e0..2f061397e0 100644
--- a/patches/server/0965-Optimise-recalcBlockCounts-for-empty-sections.patch
+++ b/patches/server/0963-Optimise-recalcBlockCounts-for-empty-sections.patch
diff --git a/patches/server/0966-Fix-destroying-beehive-without-any-players-nearby-th.patch b/patches/server/0964-Fix-destroying-beehive-without-any-players-nearby-th.patch
index b166366059..b166366059 100644
--- a/patches/server/0966-Fix-destroying-beehive-without-any-players-nearby-th.patch
+++ b/patches/server/0964-Fix-destroying-beehive-without-any-players-nearby-th.patch
diff --git a/patches/server/0967-Expand-PlayerItemMendEvent.patch b/patches/server/0965-Expand-PlayerItemMendEvent.patch
index 8dc094546e..6cff67c43b 100644
--- a/patches/server/0967-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0965-Expand-PlayerItemMendEvent.patch
@@ -33,10 +33,10 @@ index 8d8fe55a05eea237a8af99ed15ab16d6167daa77..eca634792d2a7cc649675e3394e84dba
return k > 0 ? this.repairPlayerItems(player, k) : 0;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 991f3f947810ebd7e4f2c51a4012115fee8a34ec..548eddde8b0558b780f672d321507cfcbac92558 100644
+index fd72e7ccc7efe86e3c75252b50032751c4cb3f2c..c8ceaf9ba8e167db0138bbad134100d8717a326e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1674,11 +1674,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1658,11 +1658,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
orb.setPosRaw(handle.getX(), handle.getY(), handle.getZ());
int i = Math.min(orb.xpToDurability(amount), itemstack.getDamageValue());
@@ -51,10 +51,10 @@ index 991f3f947810ebd7e4f2c51a4012115fee8a34ec..548eddde8b0558b780f672d321507cfc
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0ed5035044a3fc3ad725ce702720a0742a19ed44..a9a58f0bb19e034cffdafcc38fdc9003744a5d6c 100644
+index 0b84496161964bf84bfc08d687592b20ed06a25f..32fe1e498ee988566213bfcf56bf98c92a3c9871 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1262,10 +1262,10 @@ public class CraftEventFactory {
+@@ -1266,10 +1266,10 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch
index 04eaeb9354..e666028592 100644
--- a/patches/server/0968-Refresh-ProjectileSource-for-projectiles.patch
+++ b/patches/server/0966-Refresh-ProjectileSource-for-projectiles.patch
@@ -9,7 +9,7 @@ Previously, after the entity reloaded, Projectile#getShooter
would return null, while the entity still had an owner.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 21210830233e409b8757a78af4d3e128e51ebbde..92202262eff01ae3bbeff0e6ebdcf26ad613c169 100644
+index 64068958a29f5e867932d6c23ab504a2fafdd3f1..b38c4cbcf0405d82c7b6e018e80a3174e460c1a4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -382,6 +382,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
diff --git a/patches/server/0969-Add-transient-modifier-API.patch b/patches/server/0967-Add-transient-modifier-API.patch
index e3b704e242..e3b704e242 100644
--- a/patches/server/0969-Add-transient-modifier-API.patch
+++ b/patches/server/0967-Add-transient-modifier-API.patch
diff --git a/patches/server/0970-Fix-block-place-logic.patch b/patches/server/0968-Fix-block-place-logic.patch
index e534f4f285..e534f4f285 100644
--- a/patches/server/0970-Fix-block-place-logic.patch
+++ b/patches/server/0968-Fix-block-place-logic.patch
diff --git a/patches/server/0971-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0969-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
index 1fbc769545..1fbc769545 100644
--- a/patches/server/0971-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
+++ b/patches/server/0969-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
diff --git a/patches/server/0972-Ignore-inline-definitions-of-trim-material-pattern.patch b/patches/server/0970-Ignore-inline-definitions-of-trim-material-pattern.patch
index 9b113e0bfe..9b113e0bfe 100644
--- a/patches/server/0972-Ignore-inline-definitions-of-trim-material-pattern.patch
+++ b/patches/server/0970-Ignore-inline-definitions-of-trim-material-pattern.patch
diff --git a/patches/server/0973-Call-BlockGrowEvent-for-the-pitcher-crop.patch b/patches/server/0971-Call-BlockGrowEvent-for-the-pitcher-crop.patch
index 98e7c69d60..98e7c69d60 100644
--- a/patches/server/0973-Call-BlockGrowEvent-for-the-pitcher-crop.patch
+++ b/patches/server/0971-Call-BlockGrowEvent-for-the-pitcher-crop.patch
diff --git a/patches/server/0974-Add-API-for-waxed-signs.patch b/patches/server/0972-Add-API-for-waxed-signs.patch
index 70908f9bbb..70908f9bbb 100644
--- a/patches/server/0974-Add-API-for-waxed-signs.patch
+++ b/patches/server/0972-Add-API-for-waxed-signs.patch
diff --git a/patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch
index a1493ce3d9..73dd186dd3 100644
--- a/patches/server/0975-Properly-remove-the-experimental-smithing-inventory-.patch
+++ b/patches/server/0973-Properly-remove-the-experimental-smithing-inventory-.patch
@@ -46,7 +46,7 @@ index bdaa739aa18a95894a165e9333a3e9d596fd7dc3..3075ba5f6d66316f27e618d8b279252e
this.setupSmithing(top, bottom); // SPIGOT-6783 - manually set up slots so we can use the delegated inventory and not the automatically created one
break;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
-index 092f6843e3b43d4c615d2eee344f5966e96ae850..10844fecc01370dcd0cc36f83e166bacb48ded30 100644
+index bfac13ec6c316caa65db4a51b77f0a7045ad88ff..df254c42b73cdb56f71781473cbf9d0f28dcfb08 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -536,8 +536,7 @@ public class CraftInventory implements Inventory {
diff --git a/patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch b/patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch
index 47e2230eef..076f620e6d 100644
--- a/patches/server/0976-Fix-sendSignChange0-s-usage-of-SignText.patch
+++ b/patches/server/0974-Fix-sendSignChange0-s-usage-of-SignText.patch
@@ -13,10 +13,10 @@ constructed sign text to the instance nor does it feed back said
instance to the virtual sign block entity.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 548eddde8b0558b780f672d321507cfcbac92558..e41f5417304f5b05fa7e2f6b6e1c0095e820f1cc 100644
+index c8ceaf9ba8e167db0138bbad134100d8717a326e..03bb444705916ffe0b9eb4b7496524dc3459ebe0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -1040,11 +1040,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -1027,11 +1027,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private void sendSignChange0(Component[] components, Location loc, DyeColor dyeColor, boolean hasGlowingText) {
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
SignText text = sign.getFrontText();
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 657df461c253a66e3382d5dbe97bd31ce0ac143
+Subproject 54e8ec7b47ec9a77e05d44d8898a0f247c8db04
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject fd92f1e65447be1d336ce0c43f2e915f01f2fc1
+Subproject 6962456f98f6e5075c8bf6dff772f3c2464ae60
diff --git a/work/Spigot b/work/Spigot
-Subproject 16cfc987271eddcc0ffeb5d8cc968ea16c19e98
+Subproject 7e2af8b2d6af54e66edd030abbf12359a8574e0