aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-01-22 21:04:08 +0100
committerNassim Jahnke <[email protected]>2024-01-22 21:13:10 +0100
commit25013d997057eb89471d285db2a4b40acde6272d (patch)
tree5a63d965f7e6fae42e73593eadf312de7a354119
parent9eb0b381571a2a3c8db78ac938cb596d3890a08f (diff)
downloadPaper-25013d997057eb89471d285db2a4b40acde6272d.tar.gz
Paper-25013d997057eb89471d285db2a4b40acde6272d.zip
[ci skip] Move some disruptive patches back
-rw-r--r--patches/server/0668-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/server/0669-Oprimise-map-impl-for-tracked-players.patch)2
-rw-r--r--patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch)0
-rw-r--r--patches/server/0670-Distance-manager-tick-timings.patch (renamed from patches/server/0675-Distance-manager-tick-timings.patch)4
-rw-r--r--patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch)4
-rw-r--r--patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch)0
-rw-r--r--patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch)2
-rw-r--r--patches/server/0674-Add-packet-limiter-config.patch (renamed from patches/server/0679-Add-packet-limiter-config.patch)2
-rw-r--r--patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch)0
-rw-r--r--patches/server/0676-Ensure-valid-vehicle-status.patch (renamed from patches/server/0681-Ensure-valid-vehicle-status.patch)2
-rw-r--r--patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch)0
-rw-r--r--patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch)0
-rw-r--r--patches/server/0679-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/server/0684-Don-t-log-debug-logging-being-disabled.patch)0
-rw-r--r--patches/server/0680-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/server/0685-fix-various-menus-with-empty-level-accesses.patch)0
-rw-r--r--patches/server/0681-Preserve-overstacked-loot.patch (renamed from patches/server/0686-Preserve-overstacked-loot.patch)0
-rw-r--r--patches/server/0682-Update-head-rotation-in-missing-places.patch (renamed from patches/server/0687-Update-head-rotation-in-missing-places.patch)6
-rw-r--r--patches/server/0683-prevent-unintended-light-block-manipulation.patch (renamed from patches/server/0688-prevent-unintended-light-block-manipulation.patch)0
-rw-r--r--patches/server/0684-Fix-CraftCriteria-defaults-map.patch (renamed from patches/server/0689-Fix-CraftCriteria-defaults-map.patch)0
-rw-r--r--patches/server/0685-Fix-upstreams-block-state-factories.patch (renamed from patches/server/0690-Fix-upstreams-block-state-factories.patch)0
-rw-r--r--patches/server/0686-Configurable-feature-seeds.patch (renamed from patches/server/0691-Configurable-feature-seeds.patch)2
-rw-r--r--patches/server/0687-Add-root-admin-user-detection.patch (renamed from patches/server/0692-Add-root-admin-user-detection.patch)0
-rw-r--r--patches/server/0688-Always-allow-item-changing-in-Fireball.patch (renamed from patches/server/0693-Always-allow-item-changing-in-Fireball.patch)0
-rw-r--r--patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch)2
-rw-r--r--patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch (renamed from patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch)2
-rw-r--r--patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch (renamed from patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch)0
-rw-r--r--patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch (renamed from patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch)0
-rw-r--r--patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch (renamed from patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch)2
-rw-r--r--patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch (renamed from patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch)4
-rw-r--r--patches/server/0695-Fix-Spigot-growth-modifiers.patch (renamed from patches/server/0700-Fix-Spigot-growth-modifiers.patch)0
-rw-r--r--patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch)0
-rw-r--r--patches/server/0697-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/server/0702-Add-PlayerItemFrameChangeEvent.patch)0
-rw-r--r--patches/server/0698-Optimize-HashMapPalette.patch (renamed from patches/server/0703-Optimize-HashMapPalette.patch)0
-rw-r--r--patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch (renamed from patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch)2
-rw-r--r--patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (renamed from patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch)0
-rw-r--r--patches/server/0701-Add-more-Campfire-API.patch (renamed from patches/server/0708-Add-more-Campfire-API.patch)0
-rw-r--r--patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (renamed from patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch)14
-rw-r--r--patches/server/0703-Forward-CraftEntity-in-teleport-command.patch (renamed from patches/server/0711-Forward-CraftEntity-in-teleport-command.patch)6
-rw-r--r--patches/server/0704-Improve-scoreboard-entries.patch (renamed from patches/server/0712-Improve-scoreboard-entries.patch)0
-rw-r--r--patches/server/0705-Entity-powdered-snow-API.patch (renamed from patches/server/0713-Entity-powdered-snow-API.patch)0
-rw-r--r--patches/server/0706-Add-API-for-item-entity-health.patch (renamed from patches/server/0714-Add-API-for-item-entity-health.patch)0
-rw-r--r--patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch (renamed from patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch)0
-rw-r--r--patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (renamed from patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch)0
-rw-r--r--patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch (renamed from patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch)0
-rw-r--r--patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (renamed from patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch)0
-rw-r--r--patches/server/0711-Fix-bees-aging-inside-hives.patch (renamed from patches/server/0720-Fix-bees-aging-inside-hives.patch)0
-rw-r--r--patches/server/0712-Bucketable-API.patch (renamed from patches/server/0721-Bucketable-API.patch)0
-rw-r--r--patches/server/0713-Validate-usernames.patch (renamed from patches/server/0722-Validate-usernames.patch)6
-rw-r--r--patches/server/0714-Make-water-animal-spawn-height-configurable.patch (renamed from patches/server/0723-Make-water-animal-spawn-height-configurable.patch)0
-rw-r--r--patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (renamed from patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch)6
-rw-r--r--patches/server/0716-Add-config-option-for-worlds-affected-by-time-cmd.patch (renamed from patches/server/0725-Add-config-option-for-worlds-affected-by-time-cmd.patch)0
-rw-r--r--patches/server/0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch (renamed from patches/server/0726-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch)0
-rw-r--r--patches/server/0718-Multiple-Entries-with-Scoreboards.patch (renamed from patches/server/0727-Multiple-Entries-with-Scoreboards.patch)0
-rw-r--r--patches/server/0719-Reset-placed-block-on-exception.patch (renamed from patches/server/0728-Reset-placed-block-on-exception.patch)0
-rw-r--r--patches/server/0720-Add-configurable-height-for-slime-spawn.patch (renamed from patches/server/0729-Add-configurable-height-for-slime-spawn.patch)0
-rw-r--r--patches/server/0721-Fix-xp-reward-for-baby-zombies.patch (renamed from patches/server/0730-Fix-xp-reward-for-baby-zombies.patch)0
-rw-r--r--patches/server/0722-Multi-Block-Change-API-Implementation.patch (renamed from patches/server/0731-Multi-Block-Change-API-Implementation.patch)0
-rw-r--r--patches/server/0723-Fix-NotePlayEvent.patch (renamed from patches/server/0732-Fix-NotePlayEvent.patch)0
-rw-r--r--patches/server/0724-Freeze-Tick-Lock-API.patch (renamed from patches/server/0733-Freeze-Tick-Lock-API.patch)8
-rw-r--r--patches/server/0725-More-PotionEffectType-API.patch (renamed from patches/server/0734-More-PotionEffectType-API.patch)0
-rw-r--r--patches/server/0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (renamed from patches/server/0735-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch)0
-rw-r--r--patches/server/0727-API-for-creating-command-sender-which-forwards-feedb.patch (renamed from patches/server/0736-API-for-creating-command-sender-which-forwards-feedb.patch)2
-rw-r--r--patches/server/0728-Add-missing-structure-set-seed-configs.patch (renamed from patches/server/0737-Add-missing-structure-set-seed-configs.patch)2
-rw-r--r--patches/server/0729-Implement-regenerateChunk.patch (renamed from patches/server/0738-Implement-regenerateChunk.patch)2
-rw-r--r--patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch (renamed from patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch)0
-rw-r--r--patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (renamed from patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch)2
-rw-r--r--patches/server/0732-Add-GameEvent-tags.patch (renamed from patches/server/0741-Add-GameEvent-tags.patch)2
-rw-r--r--patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (renamed from patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch)8
-rw-r--r--patches/server/0734-Furnace-RecipesUsed-API.patch (renamed from patches/server/0743-Furnace-RecipesUsed-API.patch)0
-rw-r--r--patches/server/0735-Configurable-sculk-sensor-listener-range.patch (renamed from patches/server/0744-Configurable-sculk-sensor-listener-range.patch)0
-rw-r--r--patches/server/0736-Add-missing-block-data-mins-and-maxes.patch (renamed from patches/server/0745-Add-missing-block-data-mins-and-maxes.patch)0
-rw-r--r--patches/server/0737-Option-to-have-default-CustomSpawners-in-custom-worl.patch (renamed from patches/server/0746-Option-to-have-default-CustomSpawners-in-custom-worl.patch)2
-rw-r--r--patches/server/0738-Put-world-into-worldlist-before-initing-the-world.patch (renamed from patches/server/0747-Put-world-into-worldlist-before-initing-the-world.patch)4
-rw-r--r--patches/server/0739-Fix-Entity-Position-Desync.patch (renamed from patches/server/0748-Fix-Entity-Position-Desync.patch)0
-rw-r--r--patches/server/0740-Custom-Potion-Mixes.patch (renamed from patches/server/0749-Custom-Potion-Mixes.patch)6
-rw-r--r--patches/server/0741-Force-close-world-loading-screen.patch (renamed from patches/server/0750-Force-close-world-loading-screen.patch)2
-rw-r--r--patches/server/0742-Fix-falling-block-spawn-methods.patch (renamed from patches/server/0751-Fix-falling-block-spawn-methods.patch)2
-rw-r--r--patches/server/0743-Expose-furnace-minecart-push-values.patch (renamed from patches/server/0752-Expose-furnace-minecart-push-values.patch)0
-rw-r--r--patches/server/0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (renamed from patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch)0
-rw-r--r--patches/server/0745-More-Projectile-API.patch (renamed from patches/server/0754-More-Projectile-API.patch)2
-rw-r--r--patches/server/0746-Fix-swamp-hut-cat-generation-deadlock.patch (renamed from patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch)0
-rw-r--r--patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch (renamed from patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch)2
-rw-r--r--patches/server/0748-Implement-getComputedBiome-API.patch (renamed from patches/server/0757-Implement-getComputedBiome-API.patch)0
-rw-r--r--patches/server/0749-Make-some-itemstacks-nonnull.patch (renamed from patches/server/0758-Make-some-itemstacks-nonnull.patch)0
-rw-r--r--patches/server/0750-Implement-enchantWithLevels-API.patch (renamed from patches/server/0759-Implement-enchantWithLevels-API.patch)0
-rw-r--r--patches/server/0751-Fix-saving-in-unloadWorld.patch (renamed from patches/server/0760-Fix-saving-in-unloadWorld.patch)2
-rw-r--r--patches/server/0752-Buffer-OOB-setBlock-calls.patch (renamed from patches/server/0761-Buffer-OOB-setBlock-calls.patch)0
-rw-r--r--patches/server/0753-Add-TameableDeathMessageEvent.patch (renamed from patches/server/0762-Add-TameableDeathMessageEvent.patch)0
-rw-r--r--patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch (renamed from patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch)4
-rw-r--r--patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch (renamed from patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch)2
-rw-r--r--patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch (renamed from patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch)4
-rw-r--r--patches/server/0757-cache-resource-keys.patch (renamed from patches/server/0766-cache-resource-keys.patch)0
-rw-r--r--patches/server/0758-Allow-changing-the-EnderDragon-podium.patch (renamed from patches/server/0767-Allow-changing-the-EnderDragon-podium.patch)0
-rw-r--r--patches/server/0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch (renamed from patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch)0
-rw-r--r--patches/server/0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch (renamed from patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch)0
-rw-r--r--patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch (renamed from patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch)4
-rw-r--r--patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch (renamed from patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch)2
-rw-r--r--patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch (renamed from patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch)6
-rw-r--r--patches/server/0764-Expand-PlayerItemDamageEvent.patch (renamed from patches/server/0773-Expand-PlayerItemDamageEvent.patch)0
-rw-r--r--patches/server/0765-WorldCreator-keepSpawnLoaded.patch (renamed from patches/server/0774-WorldCreator-keepSpawnLoaded.patch)2
-rw-r--r--patches/server/0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch (renamed from patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch)0
-rw-r--r--patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch (renamed from patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch)2
-rw-r--r--patches/server/0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch (renamed from patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch)0
-rw-r--r--patches/server/0769-Fire-CauldronLevelChange-on-initial-fill.patch (renamed from patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch)0
-rw-r--r--patches/server/0770-fix-powder-snow-cauldrons-not-turning-to-water.patch (renamed from patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch)0
-rw-r--r--patches/server/0771-Add-PlayerStopUsingItemEvent.patch (renamed from patches/server/0780-Add-PlayerStopUsingItemEvent.patch)2
-rw-r--r--patches/server/0772-Don-t-tick-markers.patch (renamed from patches/server/0781-Don-t-tick-markers.patch)4
-rw-r--r--patches/server/0773-Expand-FallingBlock-API.patch (renamed from patches/server/0782-Expand-FallingBlock-API.patch)2
-rw-r--r--patches/server/0774-Do-not-accept-invalid-client-settings.patch (renamed from patches/server/0783-Do-not-accept-invalid-client-settings.patch)4
-rw-r--r--patches/server/0775-Add-support-for-Proxy-Protocol.patch (renamed from patches/server/0784-Add-support-for-Proxy-Protocol.patch)19
-rw-r--r--patches/server/0776-Fix-OfflinePlayer-getBedSpawnLocation.patch (renamed from patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch)0
-rw-r--r--patches/server/0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch (renamed from patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch)0
-rw-r--r--patches/server/0778-Sanitize-sent-BlockEntity-NBT.patch (renamed from patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch)0
-rw-r--r--patches/server/0779-Disable-component-selector-resolving-in-books-by-def.patch (renamed from patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch)0
-rw-r--r--patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch (renamed from patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch)2
-rw-r--r--patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch (renamed from patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch)10
-rw-r--r--patches/server/0782-Dont-resent-entity-on-art-update.patch (renamed from patches/server/0792-Dont-resent-entity-on-art-update.patch)0
-rw-r--r--patches/server/0783-Add-WardenAngerChangeEvent.patch (renamed from patches/server/0793-Add-WardenAngerChangeEvent.patch)0
-rw-r--r--patches/server/0784-Add-option-for-strict-advancement-dimension-checks.patch (renamed from patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch)2
-rw-r--r--patches/server/0785-Add-missing-important-BlockStateListPopulator-method.patch (renamed from patches/server/0795-Add-missing-important-BlockStateListPopulator-method.patch)0
-rw-r--r--patches/server/0786-Nameable-Banner-API.patch (renamed from patches/server/0796-Nameable-Banner-API.patch)0
-rw-r--r--patches/server/0787-Don-t-broadcast-messages-to-command-blocks.patch (renamed from patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch)2
-rw-r--r--patches/server/0788-Prevent-empty-items-from-being-added-to-world.patch (renamed from patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch)4
-rw-r--r--patches/server/0789-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch (renamed from patches/server/0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch)0
-rw-r--r--patches/server/0790-Add-Player-getFishHook.patch (renamed from patches/server/0800-Add-Player-getFishHook.patch)0
-rw-r--r--patches/server/0791-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch (renamed from patches/server/0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch)0
-rw-r--r--patches/server/0792-Add-various-missing-EntityDropItemEvent-calls.patch (renamed from patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch)4
-rw-r--r--patches/server/0793-Fix-Bee-flower-NPE.patch (renamed from patches/server/0803-Fix-Bee-flower-NPE.patch)0
-rw-r--r--patches/server/0794-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch (renamed from patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch)4
-rw-r--r--patches/server/0795-More-Teleport-API.patch (renamed from patches/server/0805-More-Teleport-API.patch)4
-rw-r--r--patches/server/0796-Add-EntityPortalReadyEvent.patch (renamed from patches/server/0806-Add-EntityPortalReadyEvent.patch)6
-rw-r--r--patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch (renamed from patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch)2
-rw-r--r--patches/server/0798-Send-block-entities-after-destroy-prediction.patch (renamed from patches/server/0808-Send-block-entities-after-destroy-prediction.patch)6
-rw-r--r--patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch (renamed from patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch)6
-rw-r--r--patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch (renamed from patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch)0
-rw-r--r--patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch (renamed from patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch)0
-rw-r--r--patches/server/0802-Collision-API.patch (renamed from patches/server/0812-Collision-API.patch)0
-rw-r--r--patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch (renamed from patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch)2
-rw-r--r--patches/server/0804-Block-Ticking-API.patch (renamed from patches/server/0814-Block-Ticking-API.patch)0
-rw-r--r--patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch (renamed from patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch)8
-rw-r--r--patches/server/0806-Add-NamespacedKey-biome-methods.patch (renamed from patches/server/0816-Add-NamespacedKey-biome-methods.patch)0
-rw-r--r--patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch (renamed from patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch)2
-rw-r--r--patches/server/0808-Stop-large-look-changes-from-crashing-the-server.patch (renamed from patches/server/0818-Stop-large-look-changes-from-crashing-the-server.patch)4
-rw-r--r--patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch (renamed from patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch)0
-rw-r--r--patches/server/0810-Missing-eating-regain-reason.patch (renamed from patches/server/0820-Missing-eating-regain-reason.patch)0
-rw-r--r--patches/server/0811-Missing-effect-cause.patch (renamed from patches/server/0821-Missing-effect-cause.patch)0
-rw-r--r--patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch (renamed from patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch)0
-rw-r--r--patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (renamed from patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch)0
-rw-r--r--patches/server/0814-Call-BlockPhysicsEvent-more-often.patch (renamed from patches/server/0824-Call-BlockPhysicsEvent-more-often.patch)0
-rw-r--r--patches/server/0815-Configurable-chat-thread-limit.patch (renamed from patches/server/0825-Configurable-chat-thread-limit.patch)0
-rw-r--r--patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch (renamed from patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch)0
-rw-r--r--patches/server/0817-fix-Jigsaw-block-kicking-user.patch (renamed from patches/server/0827-fix-Jigsaw-block-kicking-user.patch)0
-rw-r--r--patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch (renamed from patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch)0
-rw-r--r--patches/server/0819-Add-getDrops-to-BlockState.patch (renamed from patches/server/0829-Add-getDrops-to-BlockState.patch)0
-rw-r--r--patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch (renamed from patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch)16
-rw-r--r--patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch (renamed from patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch)6
-rw-r--r--patches/server/0822-Fix-custom-piglin-loved-items.patch (renamed from patches/server/0832-Fix-custom-piglin-loved-items.patch)0
-rw-r--r--patches/server/0823-EntityPickupItemEvent-fixes.patch (renamed from patches/server/0833-EntityPickupItemEvent-fixes.patch)0
-rw-r--r--patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch (renamed from patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch)4
-rw-r--r--patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch (renamed from patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch)2
-rw-r--r--patches/server/0826-Elder-Guardian-appearance-API.patch (renamed from patches/server/0836-Elder-Guardian-appearance-API.patch)0
-rw-r--r--patches/server/0827-Allow-changing-bed-s-occupied-property.patch (renamed from patches/server/0837-Allow-changing-bed-s-occupied-property.patch)0
-rw-r--r--patches/server/0828-Add-entity-knockback-API.patch (renamed from patches/server/0838-Add-entity-knockback-API.patch)0
-rw-r--r--patches/server/0829-Detect-headless-JREs.patch (renamed from patches/server/0839-Detect-headless-JREs.patch)0
-rw-r--r--patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch (renamed from patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch)0
-rw-r--r--patches/server/0831-Add-EntityToggleSitEvent.patch (renamed from patches/server/0842-Add-EntityToggleSitEvent.patch)0
-rw-r--r--patches/server/0832-Add-fire-tick-delay-option.patch (renamed from patches/server/0843-Add-fire-tick-delay-option.patch)0
-rw-r--r--patches/server/0833-Add-Moving-Piston-API.patch (renamed from patches/server/0844-Add-Moving-Piston-API.patch)0
-rw-r--r--patches/server/0834-Ignore-impossible-spawn-tick.patch (renamed from patches/server/0845-Ignore-impossible-spawn-tick.patch)2
-rw-r--r--patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch (renamed from patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch)0
-rw-r--r--patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch (renamed from patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch)6
-rw-r--r--patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch (renamed from patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch)4
-rw-r--r--patches/server/0838-Add-PrePlayerAttackEntityEvent.patch (renamed from patches/server/0849-Add-PrePlayerAttackEntityEvent.patch)2
-rw-r--r--patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch (renamed from patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch)0
-rw-r--r--patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch (renamed from patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch)0
-rw-r--r--patches/server/0841-Add-Player-Warden-Warning-API.patch (renamed from patches/server/0852-Add-Player-Warden-Warning-API.patch)0
-rw-r--r--patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch (renamed from patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch)2
-rw-r--r--patches/server/0843-Add-paper-dumplisteners-command.patch (renamed from patches/server/0854-Add-paper-dumplisteners-command.patch)0
-rw-r--r--patches/server/0844-check-global-player-list-where-appropriate.patch (renamed from patches/server/0855-check-global-player-list-where-appropriate.patch)10
-rw-r--r--patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch (renamed from patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch)0
-rw-r--r--patches/server/0846-ItemStack-damage-API.patch (renamed from patches/server/0857-ItemStack-damage-API.patch)0
-rw-r--r--patches/server/0847-Friction-API.patch (renamed from patches/server/0858-Friction-API.patch)0
-rw-r--r--patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch (renamed from patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch)0
-rw-r--r--patches/server/0849-Fix-player-kick-on-shutdown.patch (renamed from patches/server/0860-Fix-player-kick-on-shutdown.patch)8
-rw-r--r--patches/server/0850-Sync-offhand-slot-in-menus.patch (renamed from patches/server/0861-Sync-offhand-slot-in-menus.patch)2
-rw-r--r--patches/server/0851-Player-Entity-Tracking-Events.patch (renamed from patches/server/0862-Player-Entity-Tracking-Events.patch)6
-rw-r--r--patches/server/0852-Limit-pet-look-distance.patch (renamed from patches/server/0863-Limit-pet-look-distance.patch)0
-rw-r--r--patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch (renamed from patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch)2
-rw-r--r--patches/server/0854-fix-Instruments.patch (renamed from patches/server/0866-fix-Instruments.patch)0
-rw-r--r--patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch (renamed from patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch)8
-rw-r--r--patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch (renamed from patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch)0
-rw-r--r--patches/server/0857-Add-BlockLockCheckEvent.patch (renamed from patches/server/0869-Add-BlockLockCheckEvent.patch)0
-rw-r--r--patches/server/0858-Add-Sneaking-API-for-Entities.patch (renamed from patches/server/0870-Add-Sneaking-API-for-Entities.patch)2
-rw-r--r--patches/server/0859-Improve-logging-and-errors.patch (renamed from patches/server/0871-Improve-logging-and-errors.patch)4
-rw-r--r--patches/server/0860-Improve-PortalEvents.patch (renamed from patches/server/0872-Improve-PortalEvents.patch)4
-rw-r--r--patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch (renamed from patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch)0
-rw-r--r--patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch (renamed from patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch)4
-rw-r--r--patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch (renamed from patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch)0
-rw-r--r--patches/server/0864-Flying-Fall-Damage.patch (renamed from patches/server/0876-Flying-Fall-Damage.patch)2
-rw-r--r--patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch (renamed from patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch)2
-rw-r--r--patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (renamed from patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch)4
-rw-r--r--patches/server/0867-config-for-disabling-entity-tag-tags.patch (renamed from patches/server/0879-config-for-disabling-entity-tag-tags.patch)2
-rw-r--r--patches/server/0868-Use-single-player-info-update-packet-on-join.patch (renamed from patches/server/0880-Use-single-player-info-update-packet-on-join.patch)6
-rw-r--r--patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch (renamed from patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch)2
-rw-r--r--patches/server/0870-Win-Screen-API.patch (renamed from patches/server/0882-Win-Screen-API.patch)0
-rw-r--r--patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch (renamed from patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch)0
-rw-r--r--patches/server/0872-Fix-force-opening-enchantment-tables.patch (renamed from patches/server/0884-Fix-force-opening-enchantment-tables.patch)0
-rw-r--r--patches/server/0873-Add-Entity-Body-Yaw-API.patch (renamed from patches/server/0885-Add-Entity-Body-Yaw-API.patch)4
-rw-r--r--patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch (renamed from patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch)0
-rw-r--r--patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch (renamed from patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch)4
-rw-r--r--patches/server/0876-Add-EntityFertilizeEggEvent.patch (renamed from patches/server/0888-Add-EntityFertilizeEggEvent.patch)4
-rw-r--r--patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch (renamed from patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch)0
-rw-r--r--patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch)0
-rw-r--r--patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch (renamed from patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch)0
-rw-r--r--patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch (renamed from patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch)2
-rw-r--r--patches/server/0881-Fix-text-display-error-on-spawn.patch (renamed from patches/server/0893-Fix-text-display-error-on-spawn.patch)0
-rw-r--r--patches/server/0882-Fix-inventories-returning-null-Locations.patch (renamed from patches/server/0894-Fix-inventories-returning-null-Locations.patch)0
-rw-r--r--patches/server/0883-Add-Shearable-API.patch (renamed from patches/server/0895-Add-Shearable-API.patch)0
-rw-r--r--patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch (renamed from patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch)0
-rw-r--r--patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch (renamed from patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch)2
-rw-r--r--patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch (renamed from patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch)0
-rw-r--r--patches/server/0887-Treat-sequence-violations-like-they-should-be.patch (renamed from patches/server/0900-Treat-sequence-violations-like-they-should-be.patch)4
-rw-r--r--patches/server/0888-remove-duplicate-animate-packet-for-records.patch (renamed from patches/server/0901-remove-duplicate-animate-packet-for-records.patch)0
-rw-r--r--patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch (renamed from patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch)4
-rw-r--r--patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch (renamed from patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch)4
-rw-r--r--patches/server/0891-Use-array-for-gamerule-storage.patch (renamed from patches/server/0904-Use-array-for-gamerule-storage.patch)0
-rw-r--r--patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch (renamed from patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch)0
-rw-r--r--patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch (renamed from patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch)0
-rw-r--r--patches/server/0894-Add-Mob-Experience-reward-API.patch (renamed from patches/server/0907-Add-Mob-Experience-reward-API.patch)0
-rw-r--r--patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch (renamed from patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch)0
-rw-r--r--patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch (renamed from patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch)2
-rw-r--r--patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch (renamed from patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch)0
-rw-r--r--patches/server/0898-More-accurate-isInOpenWater-impl.patch (renamed from patches/server/0911-More-accurate-isInOpenWater-impl.patch)0
-rw-r--r--patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch (renamed from patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch)0
-rw-r--r--patches/server/0900-Expand-PlayerItemMendEvent.patch (renamed from patches/server/0914-Expand-PlayerItemMendEvent.patch)4
-rw-r--r--patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch (renamed from patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch)4
-rw-r--r--patches/server/0902-Add-transient-modifier-API.patch (renamed from patches/server/0916-Add-transient-modifier-API.patch)0
-rw-r--r--patches/server/0903-Fix-block-place-logic.patch (renamed from patches/server/0917-Fix-block-place-logic.patch)6
-rw-r--r--patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch (renamed from patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch)2
-rw-r--r--patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch (renamed from patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch)0
-rw-r--r--patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch (renamed from patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch)2
-rw-r--r--patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch (renamed from patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch)0
-rw-r--r--patches/server/0908-Fix-sniffer-removeExploredLocation.patch (renamed from patches/server/0922-Fix-sniffer-removeExploredLocation.patch)0
-rw-r--r--patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch (renamed from patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch)0
-rw-r--r--patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch (renamed from patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch)0
-rw-r--r--patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch (renamed from patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch)0
-rw-r--r--patches/server/0912-Properly-cancel-usable-items.patch (renamed from patches/server/0926-Properly-cancel-usable-items.patch)8
-rw-r--r--patches/server/0913-Add-event-for-player-editing-sign.patch (renamed from patches/server/0927-Add-event-for-player-editing-sign.patch)2
-rw-r--r--patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch37
-rw-r--r--patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch (renamed from patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch)0
-rw-r--r--patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch (renamed from patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch)4
-rw-r--r--patches/server/0916-Add-option-to-disable-block-updates.patch (renamed from patches/server/0930-Add-option-to-disable-block-updates.patch)14
-rw-r--r--patches/server/0917-Call-missing-BlockDispenseEvent.patch (renamed from patches/server/0931-Call-missing-BlockDispenseEvent.patch)2
-rw-r--r--patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch (renamed from patches/server/0932-Don-t-load-chunks-for-supporting-block-checks.patch)4
-rw-r--r--patches/server/0919-Optimize-player-lookups-for-beacons.patch (renamed from patches/server/0933-Optimize-player-lookups-for-beacons.patch)0
-rw-r--r--patches/server/0920-Add-Sign-getInteractableSideFor.patch (renamed from patches/server/0934-Add-Sign-getInteractableSideFor.patch)0
-rw-r--r--patches/server/0921-Array-backed-synched-entity-data.patch (renamed from patches/server/0935-Array-backed-synched-entity-data.patch)2
-rw-r--r--patches/server/0922-fix-item-meta-for-tadpole-buckets.patch (renamed from patches/server/0936-fix-item-meta-for-tadpole-buckets.patch)0
-rw-r--r--patches/server/0923-Fix-BanList-API.patch (renamed from patches/server/0937-Fix-BanList-API.patch)0
-rw-r--r--patches/server/0924-Determine-lava-and-water-fluid-explosion-resistance-.patch (renamed from patches/server/0938-Determine-lava-and-water-fluid-explosion-resistance-.patch)0
-rw-r--r--patches/server/0925-Fix-possible-NPE-on-painting-creation.patch (renamed from patches/server/0939-Fix-possible-NPE-on-painting-creation.patch)0
-rw-r--r--patches/server/0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch (renamed from patches/server/0940-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch)0
-rw-r--r--patches/server/0927-ExperienceOrb-should-call-EntitySpawnEvent.patch (renamed from patches/server/0941-ExperienceOrb-should-call-EntitySpawnEvent.patch)2
-rw-r--r--patches/server/0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch (renamed from patches/server/0942-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch)0
-rw-r--r--patches/server/0929-Add-whitelist-events.patch (renamed from patches/server/0943-Add-whitelist-events.patch)0
-rw-r--r--patches/server/0930-Implement-PlayerFailMoveEvent.patch (renamed from patches/server/0944-Implement-PlayerFailMoveEvent.patch)64
-rw-r--r--patches/server/0931-Folia-scheduler-and-owned-region-API.patch (renamed from patches/server/0945-Folia-scheduler-and-owned-region-API.patch)16
-rw-r--r--patches/server/0932-Only-erase-allay-memory-on-non-item-targets.patch (renamed from patches/server/0946-Only-erase-allay-memory-on-non-item-targets.patch)0
-rw-r--r--patches/server/0933-API-for-updating-recipes-on-clients.patch (renamed from patches/server/0947-API-for-updating-recipes-on-clients.patch)4
-rw-r--r--patches/server/0934-Fix-rotation-when-spawning-display-entities.patch (renamed from patches/server/0948-Fix-rotation-when-spawning-display-entities.patch)0
-rw-r--r--patches/server/0935-Only-capture-actual-tree-growth.patch (renamed from patches/server/0949-Only-capture-actual-tree-growth.patch)10
-rw-r--r--patches/server/0936-Use-correct-source-for-mushroom-block-spread-event.patch (renamed from patches/server/0950-Use-correct-source-for-mushroom-block-spread-event.patch)0
-rw-r--r--patches/server/0937-Respect-randomizeData-on-more-entities-when-spawning.patch (renamed from patches/server/0951-Respect-randomizeData-on-more-entities-when-spawning.patch)0
-rw-r--r--patches/server/0938-Use-correct-seed-on-api-world-load.patch (renamed from patches/server/0952-Use-correct-seed-on-api-world-load.patch)2
-rw-r--r--patches/server/0939-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch (renamed from patches/server/0953-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch)0
-rw-r--r--patches/server/0940-Cache-map-ids-on-item-frames.patch (renamed from patches/server/0954-Cache-map-ids-on-item-frames.patch)0
-rw-r--r--patches/server/0941-Fix-custom-statistic-criteria-creation.patch (renamed from patches/server/0955-Fix-custom-statistic-criteria-creation.patch)0
-rw-r--r--patches/server/0942-Bandaid-fix-for-Effect.patch (renamed from patches/server/0956-Bandaid-fix-for-Effect.patch)2
-rw-r--r--patches/server/0943-SculkCatalyst-bloom-API.patch (renamed from patches/server/0957-SculkCatalyst-bloom-API.patch)0
-rw-r--r--patches/server/0944-API-for-an-entity-s-scoreboard-name.patch (renamed from patches/server/0958-API-for-an-entity-s-scoreboard-name.patch)4
-rw-r--r--patches/server/0945-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch (renamed from patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch)4
-rw-r--r--patches/server/0946-Deprecate-and-replace-methods-with-old-StructureType.patch (renamed from patches/server/0960-Deprecate-and-replace-methods-with-old-StructureType.patch)2
-rw-r--r--patches/server/0947-Don-t-tab-complete-namespaced-commands-if-send-names.patch (renamed from patches/server/0961-Don-t-tab-complete-namespaced-commands-if-send-names.patch)4
-rw-r--r--patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch (renamed from patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch)4
-rw-r--r--patches/server/0949-Fire-entity-death-event-for-ender-dragon.patch (renamed from patches/server/0963-Fire-entity-death-event-for-ender-dragon.patch)0
-rw-r--r--patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch (renamed from patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch)2
-rw-r--r--patches/server/0951-Add-Listing-API-for-Player.patch (renamed from patches/server/0965-Add-Listing-API-for-Player.patch)2
-rw-r--r--patches/server/0952-Configurable-Region-Compression-Format.patch (renamed from patches/server/0966-Configurable-Region-Compression-Format.patch)13
-rw-r--r--patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch (renamed from patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch)4
-rw-r--r--patches/server/0954-Fix-NPE-on-Boat-getStatus.patch (renamed from patches/server/0968-Fix-NPE-on-Boat-getStatus.patch)0
-rw-r--r--patches/server/0955-Expand-Pose-API.patch (renamed from patches/server/0969-Expand-Pose-API.patch)4
-rw-r--r--patches/server/0956-More-DragonBattle-API.patch (renamed from patches/server/0970-More-DragonBattle-API.patch)0
-rw-r--r--patches/server/0957-Deep-clone-unhandled-nbt-tags.patch (renamed from patches/server/0971-Deep-clone-unhandled-nbt-tags.patch)0
-rw-r--r--patches/server/0958-Add-PlayerPickItemEvent.patch (renamed from patches/server/0972-Add-PlayerPickItemEvent.patch)4
-rw-r--r--patches/server/0959-Allow-trident-custom-damage.patch (renamed from patches/server/0974-Allow-trident-custom-damage.patch)0
-rw-r--r--patches/server/0960-Expose-hand-in-BlockCanBuildEvent.patch (renamed from patches/server/0975-Expose-hand-in-BlockCanBuildEvent.patch)0
-rw-r--r--patches/server/0961-Optimize-nearest-structure-border-iteration.patch (renamed from patches/server/0976-Optimize-nearest-structure-border-iteration.patch)2
-rw-r--r--patches/server/0962-Implement-OfflinePlayer-isConnected.patch (renamed from patches/server/0977-Implement-OfflinePlayer-isConnected.patch)0
-rw-r--r--patches/server/0963-Fix-inventory-desync.patch (renamed from patches/server/0978-Fix-inventory-desync.patch)0
-rw-r--r--patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch (renamed from patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch)2
-rw-r--r--patches/server/0965-Configure-sniffer-egg-hatch-time.patch (renamed from patches/server/0980-Configure-sniffer-egg-hatch-time.patch)0
-rw-r--r--patches/server/0966-Do-crystal-portal-proximity-check-before-entity-look.patch (renamed from patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch)0
-rw-r--r--patches/server/0967-Skip-POI-finding-if-stuck-in-vehicle.patch (renamed from patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch)0
-rw-r--r--patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch (renamed from patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch)4
-rw-r--r--patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch (renamed from patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch)0
-rw-r--r--patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch (renamed from patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch)0
-rw-r--r--patches/server/0971-Fix-silent-equipment-change-for-mobs.patch (renamed from patches/server/0986-Fix-silent-equipment-change-for-mobs.patch)2
-rw-r--r--patches/server/0972-Fix-spigot-s-Forced-Stats.patch (renamed from patches/server/0987-Fix-spigot-s-Forced-Stats.patch)0
-rw-r--r--patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch (renamed from patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch)0
-rw-r--r--patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch (renamed from patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch)6
-rw-r--r--patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch (renamed from patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch)0
-rw-r--r--patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch (renamed from patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch)0
-rw-r--r--patches/server/0977-Fix-SuspiciousStewMeta.patch (renamed from patches/server/0993-Fix-SuspiciousStewMeta.patch)0
-rw-r--r--patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch (renamed from patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch)0
-rw-r--r--patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch (renamed from patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch)0
-rw-r--r--patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch (renamed from patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch)0
-rw-r--r--patches/server/0981-Fix-missing-map-initialize-event-call.patch (renamed from patches/server/1000-Fix-missing-map-initialize-event-call.patch)4
-rw-r--r--patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch (renamed from patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch)0
-rw-r--r--patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch (renamed from patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch)0
-rw-r--r--patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch (renamed from patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch)0
-rw-r--r--patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch (renamed from patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch)0
-rw-r--r--patches/server/0986-Add-player-idle-duration-API.patch (renamed from patches/server/1005-Add-player-idle-duration-API.patch)0
-rw-r--r--patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch (renamed from patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch)4
-rw-r--r--patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch (renamed from patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch)0
-rw-r--r--patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch (renamed from patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch)0
-rw-r--r--patches/server/0990-Optimize-VarInts.patch (renamed from patches/server/1009-Optimize-VarInts.patch)0
-rw-r--r--patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch (renamed from patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch)0
-rw-r--r--patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch (renamed from patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch)0
-rw-r--r--patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch (renamed from patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch)2
-rw-r--r--patches/server/0994-Expand-LingeringPotion-API.patch (renamed from patches/server/1013-Expand-LingeringPotion-API.patch)0
-rw-r--r--patches/server/0995-Add-MaterialTagsTest.patch (renamed from patches/server/1014-Add-MaterialTagsTest.patch)0
-rw-r--r--patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch (renamed from patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch)2
-rw-r--r--patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch (renamed from patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch)0
-rw-r--r--patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch (renamed from patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch)0
-rw-r--r--patches/server/0999-Add-UUID-attribute-modifier-API.patch (renamed from patches/server/1018-Add-UUID-attribute-modifier-API.patch)0
-rw-r--r--patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch (renamed from patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch)2
-rw-r--r--patches/server/1001-Lazily-create-LootContext-for-criterions.patch (renamed from patches/server/1020-Lazily-create-LootContext-for-criterions.patch)0
-rw-r--r--patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch (renamed from patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch)10
-rw-r--r--patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch (renamed from patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch)0
-rw-r--r--patches/server/1004-Restore-vanilla-entity-drops-behavior.patch (renamed from patches/server/1023-Restore-vanilla-entity-drops-behavior.patch)18
-rw-r--r--patches/server/1005-Add-Structure-check-API.patch (renamed from patches/server/1024-Add-Structure-check-API.patch)2
-rw-r--r--patches/server/1006-Dont-resend-blocks-on-interactions.patch (renamed from patches/server/1025-Dont-resend-blocks-on-interactions.patch)4
-rw-r--r--patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch (renamed from patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch)0
-rw-r--r--patches/server/1008-properly-read-and-store-sus-effect-duration.patch (renamed from patches/server/1027-properly-read-and-store-sus-effect-duration.patch)0
-rw-r--r--patches/server/1009-Use-correct-max-stack-size-in-crafter.patch (renamed from patches/server/1028-Use-correct-max-stack-size-in-crafter.patch)0
-rw-r--r--patches/server/1010-add-more-scoreboard-API.patch (renamed from patches/server/1029-add-more-scoreboard-API.patch)0
-rw-r--r--patches/server/1011-Improve-Registry.patch (renamed from patches/server/1030-Improve-Registry.patch)0
-rw-r--r--patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch (renamed from patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch)4
-rw-r--r--patches/server/1013-Add-experience-points-API.patch (renamed from patches/server/1032-Add-experience-points-API.patch)2
-rw-r--r--patches/server/1014-Add-missing-InventoryType.patch (renamed from patches/server/1033-Add-missing-InventoryType.patch)0
-rw-r--r--patches/server/1015-Add-drops-to-shear-events.patch (renamed from patches/server/1034-Add-drops-to-shear-events.patch)2
-rw-r--r--patches/server/1016-Add-PlayerShieldDisableEvent.patch (renamed from patches/server/1035-Add-PlayerShieldDisableEvent.patch)4
-rw-r--r--patches/server/1017-Add-HiddenPotionEffect-API.patch (renamed from patches/server/1036-Add-HiddenPotionEffect-API.patch)0
-rw-r--r--patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch (renamed from patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch)0
-rw-r--r--patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch (renamed from patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch)0
-rw-r--r--patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch (renamed from patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch)4
-rw-r--r--patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch (renamed from patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch)10
-rw-r--r--patches/server/1022-Fixup-NamespacedKey-handling.patch (renamed from patches/server/1041-Fixup-NamespacedKey-handling.patch)0
-rw-r--r--patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch (renamed from patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch)4
-rw-r--r--patches/server/1024-Write-SavedData-IO-async.patch (renamed from patches/server/1043-Write-SavedData-IO-async.patch)10
-rw-r--r--patches/server/1025-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/0668-Execute-chunk-tasks-mid-tick.patch)26
-rw-r--r--patches/server/1026-Optimise-random-block-ticking.patch (renamed from patches/server/0671-Optimise-random-block-ticking.patch)61
-rw-r--r--patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch)14
-rw-r--r--patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch)16
-rw-r--r--patches/server/1029-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/0674-Detail-more-information-in-watchdog-dumps.patch)20
-rw-r--r--patches/server/1030-Collision-optimisations.patch (renamed from patches/server/0705-Collision-optimisations.patch)55
-rw-r--r--patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch)41
-rw-r--r--patches/server/1032-Fix-tripwire-state-inconsistency.patch (renamed from patches/server/0710-Fix-tripwire-state-inconsistency.patch)12
-rw-r--r--patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch)28
-rw-r--r--patches/server/1034-Add-Alternate-Current-redstone-implementation.patch (renamed from patches/server/0791-Add-Alternate-Current-redstone-implementation.patch)13
-rw-r--r--patches/server/1035-optimize-dirt-and-snow-spreading.patch (renamed from patches/server/0841-optimize-dirt-and-snow-spreading.patch)0
-rw-r--r--patches/server/1036-Properly-resend-entities.patch (renamed from patches/server/0864-Properly-resend-entities.patch)16
-rw-r--r--patches/server/1037-Optimize-Hoppers.patch (renamed from patches/server/0897-Optimize-Hoppers.patch)8
-rw-r--r--patches/server/1038-Improve-performance-of-mass-crafts.patch (renamed from patches/server/0973-Improve-performance-of-mass-crafts.patch)0
-rw-r--r--patches/server/1039-Actually-optimise-explosions.patch (renamed from patches/server/0990-Actually-optimise-explosions.patch)0
-rw-r--r--patches/server/1040-Optimise-chunk-tick-iteration.patch (renamed from patches/server/0994-Optimise-chunk-tick-iteration.patch)12
-rw-r--r--patches/server/1041-Lag-compensation-ticks.patch (renamed from patches/server/0995-Lag-compensation-ticks.patch)18
-rw-r--r--patches/server/1042-Optimise-nearby-player-retrieval.patch (renamed from patches/server/0999-Optimise-nearby-player-retrieval.patch)2
-rw-r--r--scripts/moveback.py44
377 files changed, 543 insertions, 568 deletions
diff --git a/patches/server/0669-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch
index e1755f4038..a3103e4ff0 100644
--- a/patches/server/0669-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch
@@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have
better lookups than HashMap.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index bdda124f6cc89b8a7ed198fdf095aee5f3f24ce3..f761d600bb5d995a25ffbbe5469625508de1f8bc 100644
+index 03eb13021c3aa6d7b7254660ebc40908460a4cb6..dd16f13ca44cda3051a38085f6de117a475ce797 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1297,7 +1297,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch
index 467d7d58e7..467d7d58e7 100644
--- a/patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch
+++ b/patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch
diff --git a/patches/server/0675-Distance-manager-tick-timings.patch b/patches/server/0670-Distance-manager-tick-timings.patch
index f946d92596..451525be15 100644
--- a/patches/server/0675-Distance-manager-tick-timings.patch
+++ b/patches/server/0670-Distance-manager-tick-timings.patch
@@ -7,7 +7,7 @@ Recently this has been taking up more time, so add a timings to
really figure out how much.
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
-index 46449728f69ee7d4f78470f8da23c055acd53a3b..4b467f1af93452d13829f756d55dee18b8889d40 100644
+index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..7a4234abf620b8394307fa01913bc00215a64e23 100644
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java
+++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
@@ -47,6 +47,7 @@ public final class MinecraftTimings {
@@ -16,7 +16,7 @@ index 46449728f69ee7d4f78470f8da23c055acd53a3b..4b467f1af93452d13829f756d55dee18
public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
+ public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
- public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
+ private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
index 5b446e6ac151f99f64f0c442d0b40b5e251bc4c4..6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875 100644
diff --git a/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch
index 0ae49a07a3..b7f14756ca 100644
--- a/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch
+++ b/patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 0c60fa914310c7b6706e72cd3a61630873005102..4b0d854ed9fc16ecbdfabca4192969aa1beeaa19 100644
+index 109143fca98c6952ca6129f261a9ff8b43f00e52..6540c4e1d9d347ce41fb0f504ee275ee3a1c0a4f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2676,6 +2676,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2629,6 +2629,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
diff --git a/patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch
index fce5e326f9..fce5e326f9 100644
--- a/patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch
+++ b/patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch
diff --git a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index 8695ea1b7a..f3b2d0191f 100644
--- a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4f318c5e8a8cd2113d7b404aa97cdf03f7a87fd4..ff60a7951818341d5b279b51cdf3d0dd4d89bc26 100644
+index 27bcfe893db83bb369186ccf1d48f28e9d2cae82..0280c215f4e502cd0471523b040d8b54c50f7ab8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -733,6 +733,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0679-Add-packet-limiter-config.patch b/patches/server/0674-Add-packet-limiter-config.patch
index 7ed138c36f..0771f0d552 100644
--- a/patches/server/0679-Add-packet-limiter-config.patch
+++ b/patches/server/0674-Add-packet-limiter-config.patch
@@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK
If interval or rate are less-than 0, the limit is ignored
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 5d73043dc9847ae195cef804fa0b0f4bf6db06f2..e18406b4172499b0cb116a45cd5a968ae3e3fdce 100644
+index 6e75a5e7eb51a5bbb7b73436bbd37df1519cb0fc..a0434b92615c10a319eb4528808a83d01df2c516 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
diff --git a/patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
index 341421e59d..341421e59d 100644
--- a/patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
+++ b/patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
diff --git a/patches/server/0681-Ensure-valid-vehicle-status.patch b/patches/server/0676-Ensure-valid-vehicle-status.patch
index f98873e291..c5d3159b83 100644
--- a/patches/server/0681-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0676-Ensure-valid-vehicle-status.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 8d657cdb516b6b439b29100c48cccd5b27178fe9..5d30d67745ce3988f42457137f43b15b75a96a0c 100644
+index 9cd64d14d4b6df92bb30d0ad610f8af85791962a..c1dd624e03c85eaba8733769dc650d33142af714 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -576,7 +576,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch
index 6c29d86324..6c29d86324 100644
--- a/patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch
diff --git a/patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
index b766f53247..b766f53247 100644
--- a/patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
+++ b/patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
diff --git a/patches/server/0684-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0679-Don-t-log-debug-logging-being-disabled.patch
index 8daedd938d..8daedd938d 100644
--- a/patches/server/0684-Don-t-log-debug-logging-being-disabled.patch
+++ b/patches/server/0679-Don-t-log-debug-logging-being-disabled.patch
diff --git a/patches/server/0685-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0680-fix-various-menus-with-empty-level-accesses.patch
index efe5d1ddce..efe5d1ddce 100644
--- a/patches/server/0685-fix-various-menus-with-empty-level-accesses.patch
+++ b/patches/server/0680-fix-various-menus-with-empty-level-accesses.patch
diff --git a/patches/server/0686-Preserve-overstacked-loot.patch b/patches/server/0681-Preserve-overstacked-loot.patch
index 004c7c6f77..004c7c6f77 100644
--- a/patches/server/0686-Preserve-overstacked-loot.patch
+++ b/patches/server/0681-Preserve-overstacked-loot.patch
diff --git a/patches/server/0687-Update-head-rotation-in-missing-places.patch b/patches/server/0682-Update-head-rotation-in-missing-places.patch
index 75018caea0..a55311ded3 100644
--- a/patches/server/0687-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0682-Update-head-rotation-in-missing-places.patch
@@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw.
This issue only applies to players.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index d548a262515548808ffe075606ee2f2dba38740f..fe0f57dd69cb5477b64317ef940e3f748037d0e0 100644
+index 51791692213866adaff2eea48f14f818aaaa276c..b90caa5e25837bfb866bbac884468bd730b1f6d5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1917,6 +1917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1875,6 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F);
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
@@ -19,7 +19,7 @@ index d548a262515548808ffe075606ee2f2dba38740f..fe0f57dd69cb5477b64317ef940e3f74
}
public void absMoveTo(double x, double y, double z) {
-@@ -1955,6 +1956,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1913,6 +1914,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setXRot(pitch);
this.setOldPosAndRot();
this.reapplyPosition();
diff --git a/patches/server/0688-prevent-unintended-light-block-manipulation.patch b/patches/server/0683-prevent-unintended-light-block-manipulation.patch
index 90c181a20a..90c181a20a 100644
--- a/patches/server/0688-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0683-prevent-unintended-light-block-manipulation.patch
diff --git a/patches/server/0689-Fix-CraftCriteria-defaults-map.patch b/patches/server/0684-Fix-CraftCriteria-defaults-map.patch
index 3e79bd7fb7..3e79bd7fb7 100644
--- a/patches/server/0689-Fix-CraftCriteria-defaults-map.patch
+++ b/patches/server/0684-Fix-CraftCriteria-defaults-map.patch
diff --git a/patches/server/0690-Fix-upstreams-block-state-factories.patch b/patches/server/0685-Fix-upstreams-block-state-factories.patch
index 23a0382bf4..23a0382bf4 100644
--- a/patches/server/0690-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0685-Fix-upstreams-block-state-factories.patch
diff --git a/patches/server/0691-Configurable-feature-seeds.patch b/patches/server/0686-Configurable-feature-seeds.patch
index dfeea66b8d..c376ba2260 100644
--- a/patches/server/0691-Configurable-feature-seeds.patch
+++ b/patches/server/0686-Configurable-feature-seeds.patch
@@ -19,7 +19,7 @@ index 1080e1f67afe5574baca0df50cdb1d029a7a586a..a2f71a6d1a9e98133dff6cd0f625da94
}
final Object val = config.get(key);
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
-index 0a21632a3e02690a8edcc17ac25d2551a8964bbe..10b4458f3081dea06c1ff39d4134ab8e99adcc99 100644
+index 180f8ae443d1ea44a748c7f3ebb82a0bab8d31f1..f8306b4d0d1c0a4e7336bd5f99222f59920ab796 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
@@ -431,7 +431,14 @@ public abstract class ChunkGenerator {
diff --git a/patches/server/0692-Add-root-admin-user-detection.patch b/patches/server/0687-Add-root-admin-user-detection.patch
index 61ae81963d..61ae81963d 100644
--- a/patches/server/0692-Add-root-admin-user-detection.patch
+++ b/patches/server/0687-Add-root-admin-user-detection.patch
diff --git a/patches/server/0693-Always-allow-item-changing-in-Fireball.patch b/patches/server/0688-Always-allow-item-changing-in-Fireball.patch
index f8453901a9..f8453901a9 100644
--- a/patches/server/0693-Always-allow-item-changing-in-Fireball.patch
+++ b/patches/server/0688-Always-allow-item-changing-in-Fireball.patch
diff --git a/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch
index 9ad1287070..6410a0cf6c 100644
--- a/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index fe0f57dd69cb5477b64317ef940e3f748037d0e0..22d25fea0c995bf1509bb78d5f10e2b63eb484cb 100644
+index b90caa5e25837bfb866bbac884468bd730b1f6d5..6c2c9c2e0599fbe03f6a1622c64e071f92b66f34 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -793,7 +793,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
diff --git a/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch
index 0f925cea8f..7bef82bf18 100644
--- a/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index dfc62f5cfad3e0e0f5f25c614055426bbfcd5327..3fca4aad128195325d9d00433fae09f193f8f868 100644
+index 09425940b041755fd640a94362fffcd69636bcf1..9bd611292cf6e686c9e737d332bb0ae6d2fbaa98 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch
index c5c2fdc4f3..c5c2fdc4f3 100644
--- a/patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch
+++ b/patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch
diff --git a/patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch
index fb78c572eb..fb78c572eb 100644
--- a/patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch
+++ b/patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch
diff --git a/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch
index 5985cfea03..93eb216532 100644
--- a/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch
@@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 3fca4aad128195325d9d00433fae09f193f8f868..c8592032106e1e355fa51428cde03ec3c4184953 100644
+index 9bd611292cf6e686c9e737d332bb0ae6d2fbaa98..afed1b1287668250974bea61a7bc1b6720d19701 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch
index b97231a3ba..b59fc0acc1 100644
--- a/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch
+++ b/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch
@@ -18,7 +18,7 @@ index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c84a8e6fc5f136b12bc542ec64a6686386bfe0cf..2c4da4f18a217269f17e281cf99a573e759a5d52 100644
+index 0280c215f4e502cd0471523b040d8b54c50f7ab8..5aa9f337e1e251485310436f87786b02d181bcbb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2561,8 +2561,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -33,7 +33,7 @@ index c84a8e6fc5f136b12bc542ec64a6686386bfe0cf..2c4da4f18a217269f17e281cf99a573e
}
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index c8592032106e1e355fa51428cde03ec3c4184953..51e8cfeb21206793245b54379c5a14266d3e67bd 100644
+index afed1b1287668250974bea61a7bc1b6720d19701..fc965b9d51cc0c8fd5c0ea6440e4eae3eb50ed73 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0700-Fix-Spigot-growth-modifiers.patch b/patches/server/0695-Fix-Spigot-growth-modifiers.patch
index abf48a38c5..abf48a38c5 100644
--- a/patches/server/0700-Fix-Spigot-growth-modifiers.patch
+++ b/patches/server/0695-Fix-Spigot-growth-modifiers.patch
diff --git a/patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch
index 9dbace63bd..9dbace63bd 100644
--- a/patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch
+++ b/patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/server/0702-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0697-Add-PlayerItemFrameChangeEvent.patch
index e46cc3be4c..e46cc3be4c 100644
--- a/patches/server/0702-Add-PlayerItemFrameChangeEvent.patch
+++ b/patches/server/0697-Add-PlayerItemFrameChangeEvent.patch
diff --git a/patches/server/0703-Optimize-HashMapPalette.patch b/patches/server/0698-Optimize-HashMapPalette.patch
index a8cf001da1..a8cf001da1 100644
--- a/patches/server/0703-Optimize-HashMapPalette.patch
+++ b/patches/server/0698-Optimize-HashMapPalette.patch
diff --git a/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch
index 56b54104c8..caa2d8631b 100644
--- a/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b603541d56c7cee7aff8d3448d18c76cd72b63cb..4dc80d0cbd414cde8137d7030d7fe90d1fac424a 100644
+index b9e6d28d8eb982a404981ac4df71238bf30d0989..468756c24c9439fd6afe4f73f82e0094e41ade25 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2459,6 +2459,88 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
index e5b19cc588..e5b19cc588 100644
--- a/patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
+++ b/patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
diff --git a/patches/server/0708-Add-more-Campfire-API.patch b/patches/server/0701-Add-more-Campfire-API.patch
index 1133eb93bf..1133eb93bf 100644
--- a/patches/server/0708-Add-more-Campfire-API.patch
+++ b/patches/server/0701-Add-more-Campfire-API.patch
diff --git a/patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
index f83ede0807..f8ec0881dd 100644
--- a/patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
+++ b/patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
@@ -8,10 +8,10 @@ This ensures at least a valid version of the chunk exists
on disk, even if outdated
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
-index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c82871d03543 100644
+index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..6ca572500a3bb36acf481e54262e811295d64136 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
-@@ -1003,6 +1003,9 @@ public class RegionFile implements AutoCloseable {
+@@ -529,6 +529,9 @@ public class RegionFile implements AutoCloseable {
}
}
@@ -21,7 +21,7 @@ index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c828
// Paper end
private class ChunkBuffer extends ByteArrayOutputStream {
-@@ -1018,6 +1021,24 @@ public class RegionFile implements AutoCloseable {
+@@ -544,6 +547,24 @@ public class RegionFile implements AutoCloseable {
this.pos = chunkcoordintpair;
}
@@ -47,10 +47,10 @@ index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c828
ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
-index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae67941246b46 100644
+index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..99f2e104b2214dbbc0b6e43d9011744ff4b0b843 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
-@@ -314,10 +314,17 @@ public class RegionFileStorage implements AutoCloseable {
+@@ -286,10 +286,17 @@ public class RegionFileStorage implements AutoCloseable {
NbtIo.write(nbt, (DataOutput) dataoutputstream);
regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - Cache chunk status
regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone
@@ -69,7 +69,7 @@ index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae679
} catch (Throwable throwable1) {
throwable.addSuppressed(throwable1);
}
-@@ -325,10 +332,7 @@ public class RegionFileStorage implements AutoCloseable {
+@@ -297,10 +304,7 @@ public class RegionFileStorage implements AutoCloseable {
throw throwable;
}
@@ -81,7 +81,7 @@ index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae679
}
// Paper start
return;
-@@ -374,4 +378,13 @@ public class RegionFileStorage implements AutoCloseable {
+@@ -346,4 +350,13 @@ public class RegionFileStorage implements AutoCloseable {
}
}
diff --git a/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch
index d63ed2b34c..68f6018930 100644
--- a/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch
+++ b/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 696497771e607cd07bd8414deeffdd0f211a5ef6..85c48c92987bd87ee5e8c0ffb8847447e7ba4b78 100644
+index 6c2c9c2e0599fbe03f6a1622c64e071f92b66f34..3e8fe380f676fc93538a75650aa23e9034409614 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3530,6 +3530,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -3344,6 +3344,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public void restoreFrom(Entity original) {
@@ -22,7 +22,7 @@ index 696497771e607cd07bd8414deeffdd0f211a5ef6..85c48c92987bd87ee5e8c0ffb8847447
CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag());
nbttagcompound.remove("Dimension");
-@@ -3620,10 +3627,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -3434,10 +3441,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
}
// CraftBukkit end
diff --git a/patches/server/0712-Improve-scoreboard-entries.patch b/patches/server/0704-Improve-scoreboard-entries.patch
index 8acac86ce3..8acac86ce3 100644
--- a/patches/server/0712-Improve-scoreboard-entries.patch
+++ b/patches/server/0704-Improve-scoreboard-entries.patch
diff --git a/patches/server/0713-Entity-powdered-snow-API.patch b/patches/server/0705-Entity-powdered-snow-API.patch
index 817eaf068a..817eaf068a 100644
--- a/patches/server/0713-Entity-powdered-snow-API.patch
+++ b/patches/server/0705-Entity-powdered-snow-API.patch
diff --git a/patches/server/0714-Add-API-for-item-entity-health.patch b/patches/server/0706-Add-API-for-item-entity-health.patch
index c7354d7143..c7354d7143 100644
--- a/patches/server/0714-Add-API-for-item-entity-health.patch
+++ b/patches/server/0706-Add-API-for-item-entity-health.patch
diff --git a/patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch
index deae03d87c..deae03d87c 100644
--- a/patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch
+++ b/patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch
diff --git a/patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
index 1a1afc823f..1a1afc823f 100644
--- a/patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
+++ b/patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch
diff --git a/patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch
index 3e88533e6f..3e88533e6f 100644
--- a/patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch
+++ b/patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch
diff --git a/patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
index d7ccde8439..d7ccde8439 100644
--- a/patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
+++ b/patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
diff --git a/patches/server/0720-Fix-bees-aging-inside-hives.patch b/patches/server/0711-Fix-bees-aging-inside-hives.patch
index 528be5b54a..528be5b54a 100644
--- a/patches/server/0720-Fix-bees-aging-inside-hives.patch
+++ b/patches/server/0711-Fix-bees-aging-inside-hives.patch
diff --git a/patches/server/0721-Bucketable-API.patch b/patches/server/0712-Bucketable-API.patch
index 274ccde059..274ccde059 100644
--- a/patches/server/0721-Bucketable-API.patch
+++ b/patches/server/0712-Bucketable-API.patch
diff --git a/patches/server/0722-Validate-usernames.patch b/patches/server/0713-Validate-usernames.patch
index 2c5507f00c..230d95c9d7 100644
--- a/patches/server/0722-Validate-usernames.patch
+++ b/patches/server/0713-Validate-usernames.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa00596e1cf 100644
+index d4658328eeecb1c9e3e25eec14dea07e9e2a8b74..ebda34825bbd10145a81d54c345e31c2a4fb5de4 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -63,6 +63,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -26,7 +26,7 @@ index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa0
GameProfile gameprofile = this.server.getSingleplayerProfile();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 00f65551b82935a6b7b88cba4650404b9311f8f2..801b1f9b9b7dcdf4fe758e3a7a5800bf4b07d93b 100644
+index 385a2abff1660ed892a498e1d3283eb3b9fc4310..89e745736e6b53223cbab9dd63456ace43757f75 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -679,7 +679,7 @@ public abstract class PlayerList {
@@ -39,7 +39,7 @@ index 00f65551b82935a6b7b88cba4650404b9311f8f2..801b1f9b9b7dcdf4fe758e3a7a5800bf
}
}
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 80caada014bae0571a5aa6aa67d9bb87f89db17f..61516fbc3cbfb3aa85895b4458b5319752149f73 100644
+index e33278611e4f52ff01cf628c570bd3378ff5c071..dbecf65fdd4e094b9b8b8f9267618934642db40f 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0723-Make-water-animal-spawn-height-configurable.patch b/patches/server/0714-Make-water-animal-spawn-height-configurable.patch
index e523ed36f4..e523ed36f4 100644
--- a/patches/server/0723-Make-water-animal-spawn-height-configurable.patch
+++ b/patches/server/0714-Make-water-animal-spawn-height-configurable.patch
diff --git a/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 9a8d9831b9..2c7897ae70 100644
--- a/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8..5329f98cd455e863a1eae9dc12d26146e492e730 100644
+index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..497cc9729faceccaa43ac0a39ec75674507b1567 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -18,7 +18,7 @@ index ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8..5329f98cd455e863a1eae9dc12d26146
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 4dc80d0cbd414cde8137d7030d7fe90d1fac424a..11211d27a24266724043420a369ff9e2e77683eb 100644
+index 468756c24c9439fd6afe4f73f82e0094e41ade25..15e4eecdea44983d621debdbd7614f27b6ffb792 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1258,7 +1258,7 @@ public final class CraftServer implements Server {
@@ -31,7 +31,7 @@ index 4dc80d0cbd414cde8137d7030d7fe90d1fac424a..11211d27a24266724043420a369ff9e2
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 3e25f22ffd656cded58634049d48f19d97694496..94f722229432d5b88fc1ced115b0fbeb0eca5f57 100644
+index 1977368c44212eb290a1b141216bb3a880b3742e..921cbadba393616a7169e708a60846eea20b3438 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -205,6 +205,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0725-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0716-Add-config-option-for-worlds-affected-by-time-cmd.patch
index 156eacada9..156eacada9 100644
--- a/patches/server/0725-Add-config-option-for-worlds-affected-by-time-cmd.patch
+++ b/patches/server/0716-Add-config-option-for-worlds-affected-by-time-cmd.patch
diff --git a/patches/server/0726-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
index be0eedab93..be0eedab93 100644
--- a/patches/server/0726-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
+++ b/patches/server/0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch
diff --git a/patches/server/0727-Multiple-Entries-with-Scoreboards.patch b/patches/server/0718-Multiple-Entries-with-Scoreboards.patch
index 554fe28799..554fe28799 100644
--- a/patches/server/0727-Multiple-Entries-with-Scoreboards.patch
+++ b/patches/server/0718-Multiple-Entries-with-Scoreboards.patch
diff --git a/patches/server/0728-Reset-placed-block-on-exception.patch b/patches/server/0719-Reset-placed-block-on-exception.patch
index b6bf08780c..b6bf08780c 100644
--- a/patches/server/0728-Reset-placed-block-on-exception.patch
+++ b/patches/server/0719-Reset-placed-block-on-exception.patch
diff --git a/patches/server/0729-Add-configurable-height-for-slime-spawn.patch b/patches/server/0720-Add-configurable-height-for-slime-spawn.patch
index f1b39baf2e..f1b39baf2e 100644
--- a/patches/server/0729-Add-configurable-height-for-slime-spawn.patch
+++ b/patches/server/0720-Add-configurable-height-for-slime-spawn.patch
diff --git a/patches/server/0730-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0721-Fix-xp-reward-for-baby-zombies.patch
index 4fa70dea18..4fa70dea18 100644
--- a/patches/server/0730-Fix-xp-reward-for-baby-zombies.patch
+++ b/patches/server/0721-Fix-xp-reward-for-baby-zombies.patch
diff --git a/patches/server/0731-Multi-Block-Change-API-Implementation.patch b/patches/server/0722-Multi-Block-Change-API-Implementation.patch
index 610c021b71..610c021b71 100644
--- a/patches/server/0731-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0722-Multi-Block-Change-API-Implementation.patch
diff --git a/patches/server/0732-Fix-NotePlayEvent.patch b/patches/server/0723-Fix-NotePlayEvent.patch
index 85437cdf17..85437cdf17 100644
--- a/patches/server/0732-Fix-NotePlayEvent.patch
+++ b/patches/server/0723-Fix-NotePlayEvent.patch
diff --git a/patches/server/0733-Freeze-Tick-Lock-API.patch b/patches/server/0724-Freeze-Tick-Lock-API.patch
index c4b243ae5b..3dea21d29e 100644
--- a/patches/server/0733-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0724-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 85c48c92987bd87ee5e8c0ffb8847447e7ba4b78..6c995ac8a40e61a29d685b5527807efa73375147 100644
+index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf7fc0fbf1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -408,6 +408,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -25,7 +25,7 @@ index 85c48c92987bd87ee5e8c0ffb8847447e7ba4b78..6c995ac8a40e61a29d685b5527807efa
this.setTicksFrozen(0);
this.level().levelEvent((Player) null, 1009, this.blockPosition, 1);
}
-@@ -2453,6 +2454,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2326,6 +2327,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
if (fromNetherPortal) {
nbttagcompound.putBoolean("Paper.FromNetherPortal", true);
}
@@ -35,7 +35,7 @@ index 85c48c92987bd87ee5e8c0ffb8847447e7ba4b78..6c995ac8a40e61a29d685b5527807efa
// Paper end
return nbttagcompound;
} catch (Throwable throwable) {
-@@ -2597,6 +2601,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2470,6 +2474,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
if (spawnReason == null) {
spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT;
}
@@ -46,7 +46,7 @@ index 85c48c92987bd87ee5e8c0ffb8847447e7ba4b78..6c995ac8a40e61a29d685b5527807efa
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 51e8cfeb21206793245b54379c5a14266d3e67bd..c41153ad6025fe276326132f6cbfd3986f9c5c51 100644
+index fc965b9d51cc0c8fd5c0ea6440e4eae3eb50ed73..69afdbf5eac010f04b1a7f0c0b99bc7e0035fda1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0734-More-PotionEffectType-API.patch b/patches/server/0725-More-PotionEffectType-API.patch
index 7aa4f2a366..7aa4f2a366 100644
--- a/patches/server/0734-More-PotionEffectType-API.patch
+++ b/patches/server/0725-More-PotionEffectType-API.patch
diff --git a/patches/server/0735-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
index 1b86e32b63..1b86e32b63 100644
--- a/patches/server/0735-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
+++ b/patches/server/0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch
diff --git a/patches/server/0736-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0727-API-for-creating-command-sender-which-forwards-feedb.patch
index 38ab0a37e9..98d424fde6 100644
--- a/patches/server/0736-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0727-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 11211d27a24266724043420a369ff9e2e77683eb..3bf600de4eb99bd33bc4cd20529e38002f22f1d3 100644
+index 15e4eecdea44983d621debdbd7614f27b6ffb792..4e239b061db4b3d05804dd4fc44bb23bd803597a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2110,6 +2110,13 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0737-Add-missing-structure-set-seed-configs.patch b/patches/server/0728-Add-missing-structure-set-seed-configs.patch
index 6b1b8d62b1..12cc77ad3e 100644
--- a/patches/server/0737-Add-missing-structure-set-seed-configs.patch
+++ b/patches/server/0728-Add-missing-structure-set-seed-configs.patch
@@ -20,7 +20,7 @@ seeds/salts to the frequency reducer which has a similar effect.
Co-authored-by: William Blake Galbreath <[email protected]>
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
-index 10b4458f3081dea06c1ff39d4134ab8e99adcc99..6b743d4c7b304c21e2e89300e69df8eff672e8a6 100644
+index f8306b4d0d1c0a4e7336bd5f99222f59920ab796..aa2a014f5451e780219415fffcb64a6e7cdf9b87 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
@@ -568,7 +568,7 @@ public abstract class ChunkGenerator {
diff --git a/patches/server/0738-Implement-regenerateChunk.patch b/patches/server/0729-Implement-regenerateChunk.patch
index 24b04eadce..53ba1bb4ff 100644
--- a/patches/server/0738-Implement-regenerateChunk.patch
+++ b/patches/server/0729-Implement-regenerateChunk.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk
Co-authored-by: Jason Penilla <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 94f722229432d5b88fc1ced115b0fbeb0eca5f57..ba71ea08e1e2fa178366fdce1aa752fa12030ee6 100644
+index 921cbadba393616a7169e708a60846eea20b3438..f59555c21014cf5ff0b0e1c2c5fd0f73ba689803 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull;
diff --git a/patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch
index 872f00bd93..872f00bd93 100644
--- a/patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch
+++ b/patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch
diff --git a/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index 10fb87ad32..10ebcc7715 100644
--- a/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit
Copies appropriate checks from CraftWorld#getSpawnLimit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3bf600de4eb99bd33bc4cd20529e38002f22f1d3..8257b94fc234b6d10c9120a8ba4de526c45e66b1 100644
+index 4e239b061db4b3d05804dd4fc44bb23bd803597a..c569ddd5ae932d172aa791efab5c92c1394caf02 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2287,6 +2287,8 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0741-Add-GameEvent-tags.patch b/patches/server/0732-Add-GameEvent-tags.patch
index 58b00003dd..55aaa582d5 100644
--- a/patches/server/0741-Add-GameEvent-tags.patch
+++ b/patches/server/0732-Add-GameEvent-tags.patch
@@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8257b94fc234b6d10c9120a8ba4de526c45e66b1..1f70bd8267772a6f477caee4958a1cb271b30ee2 100644
+index c569ddd5ae932d172aa791efab5c92c1394caf02..8dc49151791b847aeec4f3f0341de0c6013ed757 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2708,6 +2708,15 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
index c99353017e..ec13c59488 100644
--- a/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
+++ b/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch
@@ -9,18 +9,18 @@ This might result in chunks loading far slower in the nether,
for example.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 5329f98cd455e863a1eae9dc12d26146e492e730..2d41aaa651dfefff9968ccbfee693c4410ba0f4e 100644
+index 497cc9729faceccaa43ac0a39ec75674507b1567..02f2c0185324ffd0f6f0a832f75efec28f691915 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
- this.executeMidTickTasks(); // Paper - execute chunk tasks mid tick
+@@ -1345,6 +1345,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ if (super.pollTask()) {
return true;
} else {
+ boolean ret = false; // Paper - force execution of all worlds, do not just bias the first
if (this.tickRateManager.isSprinting() || this.haveTime()) {
Iterator iterator = this.getAllLevels().iterator();
-@@ -1423,12 +1424,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1352,12 +1353,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
ServerLevel worldserver = (ServerLevel) iterator.next();
if (worldserver.getChunkSource().pollTask()) {
diff --git a/patches/server/0743-Furnace-RecipesUsed-API.patch b/patches/server/0734-Furnace-RecipesUsed-API.patch
index 075cd97b56..075cd97b56 100644
--- a/patches/server/0743-Furnace-RecipesUsed-API.patch
+++ b/patches/server/0734-Furnace-RecipesUsed-API.patch
diff --git a/patches/server/0744-Configurable-sculk-sensor-listener-range.patch b/patches/server/0735-Configurable-sculk-sensor-listener-range.patch
index f4bdef4317..f4bdef4317 100644
--- a/patches/server/0744-Configurable-sculk-sensor-listener-range.patch
+++ b/patches/server/0735-Configurable-sculk-sensor-listener-range.patch
diff --git a/patches/server/0745-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0736-Add-missing-block-data-mins-and-maxes.patch
index defc7411be..defc7411be 100644
--- a/patches/server/0745-Add-missing-block-data-mins-and-maxes.patch
+++ b/patches/server/0736-Add-missing-block-data-mins-and-maxes.patch
diff --git a/patches/server/0746-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0737-Option-to-have-default-CustomSpawners-in-custom-worl.patch
index 0d41cd20ba..f011e77e5c 100644
--- a/patches/server/0746-Option-to-have-default-CustomSpawners-in-custom-worl.patch
+++ b/patches/server/0737-Option-to-have-default-CustomSpawners-in-custom-worl.patch
@@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which
is one level below that. Defaults to off to keep vanilla behavior.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2d41aaa651dfefff9968ccbfee693c4410ba0f4e..5ec58c9eab4b790b68bb196d02c0818fc98ffaa4 100644
+index 02f2c0185324ffd0f6f0a832f75efec28f691915..8bbf8f051b38c351cdfedac9dee346410ee08553 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -623,7 +623,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0747-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0738-Put-world-into-worldlist-before-initing-the-world.patch
index 81bf833801..d49cf16448 100644
--- a/patches/server/0747-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0738-Put-world-into-worldlist-before-initing-the-world.patch
@@ -7,7 +7,7 @@ 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 5ec58c9eab4b790b68bb196d02c0818fc98ffaa4..23d8734a234efeeeba6843719715305f88b67dd5 100644
+index 8bbf8f051b38c351cdfedac9dee346410ee08553..a3cf92b539f6a0b3d80c61d7b81632c8673560b6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -635,9 +635,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -23,7 +23,7 @@ index 5ec58c9eab4b790b68bb196d02c0818fc98ffaa4..23d8734a234efeeeba6843719715305f
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 1f70bd8267772a6f477caee4958a1cb271b30ee2..032fbe061a989c0e77ff6a78f11b09e20320ec7c 100644
+index 8dc49151791b847aeec4f3f0341de0c6013ed757..9fdf24d84ac7cc506f662c2eb82d582a13e42768 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1288,10 +1288,11 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0748-Fix-Entity-Position-Desync.patch b/patches/server/0739-Fix-Entity-Position-Desync.patch
index 454d603827..454d603827 100644
--- a/patches/server/0748-Fix-Entity-Position-Desync.patch
+++ b/patches/server/0739-Fix-Entity-Position-Desync.patch
diff --git a/patches/server/0749-Custom-Potion-Mixes.patch b/patches/server/0740-Custom-Potion-Mixes.patch
index 02bc0e4666..7cd640da44 100644
--- a/patches/server/0749-Custom-Potion-Mixes.patch
+++ b/patches/server/0740-Custom-Potion-Mixes.patch
@@ -32,10 +32,10 @@ index 0000000000000000000000000000000000000000..7ea357ac2f3a93db4ebdf24b5072be7d
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 23d8734a234efeeeba6843719715305f88b67dd5..ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f 100644
+index a3cf92b539f6a0b3d80c61d7b81632c8673560b6..f5c551a0d6a63c4a28169052cb7c8c6d0b688dda 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -2213,6 +2213,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -2142,6 +2142,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.worldData.setDataConfiguration(worlddataconfiguration);
this.resources.managers.updateRegistryTags(this.registryAccess());
@@ -172,7 +172,7 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..bc01481ac5990ad1cfd1def5a16dd0ed
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 032fbe061a989c0e77ff6a78f11b09e20320ec7c..6cbf54f50538082a9027ec04de3337fe20bda452 100644
+index 9fdf24d84ac7cc506f662c2eb82d582a13e42768..884d3ba1be2d89da076b4cb63da6dd43c1c3ed95 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -304,6 +304,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0750-Force-close-world-loading-screen.patch b/patches/server/0741-Force-close-world-loading-screen.patch
index 8f451dcf0b..3ad6dd68df 100644
--- a/patches/server/0750-Force-close-world-loading-screen.patch
+++ b/patches/server/0741-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 801b1f9b9b7dcdf4fe758e3a7a5800bf4b07d93b..506d91df4dbcced7554db14b6efdf8697ea6805a 100644
+index 89e745736e6b53223cbab9dd63456ace43757f75..ec0c53a86c9e76f8c5bbd0eed8f7c7fa1d31a804 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -398,6 +398,16 @@ public abstract class PlayerList {
diff --git a/patches/server/0751-Fix-falling-block-spawn-methods.patch b/patches/server/0742-Fix-falling-block-spawn-methods.patch
index f96e1fe95b..4ca27654d7 100644
--- a/patches/server/0751-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0742-Fix-falling-block-spawn-methods.patch
@@ -11,7 +11,7 @@ Restores the API behavior from previous versions of the server
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index ba71ea08e1e2fa178366fdce1aa752fa12030ee6..a39f439716678611bc7daf943d29b4c330ab5acc 100644
+index f59555c21014cf5ff0b0e1c2c5fd0f73ba689803..c0e7680bff3f65269a7031c08c06f38fdbaa4979 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0752-Expose-furnace-minecart-push-values.patch b/patches/server/0743-Expose-furnace-minecart-push-values.patch
index 6245e14b4e..6245e14b4e 100644
--- a/patches/server/0752-Expose-furnace-minecart-push-values.patch
+++ b/patches/server/0743-Expose-furnace-minecart-push-values.patch
diff --git a/patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
index 03471ecb7f..03471ecb7f 100644
--- a/patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
+++ b/patches/server/0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch
diff --git a/patches/server/0754-More-Projectile-API.patch b/patches/server/0745-More-Projectile-API.patch
index 0a909b85ae..fa5579c359 100644
--- a/patches/server/0754-More-Projectile-API.patch
+++ b/patches/server/0745-More-Projectile-API.patch
@@ -509,7 +509,7 @@ index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 6423af82fbae4267d06229fde2390bfb5569137a..01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed 100644
+index 25133298b26523bd36300ab03e216200c915386b..af7e3acde2eb521ac809b4c5980ff6adb30c7135 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -831,19 +831,19 @@ public class CraftEventFactory {
diff --git a/patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0746-Fix-swamp-hut-cat-generation-deadlock.patch
index bac78b77ff..bac78b77ff 100644
--- a/patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch
+++ b/patches/server/0746-Fix-swamp-hut-cat-generation-deadlock.patch
diff --git a/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index b6efa41b2d..3d23d4c0b6 100644
--- a/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the
regular player move packet.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e6e9a2688a3d2f789831a9e095e555f784bd9c4a..6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770 100644
+index 5aa9f337e1e251485310436f87786b02d181bcbb..22d93d04d614ad68d12cddd2b7607a8988da0d3c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0757-Implement-getComputedBiome-API.patch b/patches/server/0748-Implement-getComputedBiome-API.patch
index 610d889706..610d889706 100644
--- a/patches/server/0757-Implement-getComputedBiome-API.patch
+++ b/patches/server/0748-Implement-getComputedBiome-API.patch
diff --git a/patches/server/0758-Make-some-itemstacks-nonnull.patch b/patches/server/0749-Make-some-itemstacks-nonnull.patch
index 4679d4a859..4679d4a859 100644
--- a/patches/server/0758-Make-some-itemstacks-nonnull.patch
+++ b/patches/server/0749-Make-some-itemstacks-nonnull.patch
diff --git a/patches/server/0759-Implement-enchantWithLevels-API.patch b/patches/server/0750-Implement-enchantWithLevels-API.patch
index ed80635228..ed80635228 100644
--- a/patches/server/0759-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0750-Implement-enchantWithLevels-API.patch
diff --git a/patches/server/0760-Fix-saving-in-unloadWorld.patch b/patches/server/0751-Fix-saving-in-unloadWorld.patch
index 8de450b8cc..04a743911e 100644
--- a/patches/server/0760-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0751-Fix-saving-in-unloadWorld.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld
Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6cbf54f50538082a9027ec04de3337fe20bda452..f4faa98285ab8cd675e84a5f5a02afb0c5cec599 100644
+index 884d3ba1be2d89da076b4cb63da6dd43c1c3ed95..e94c4a5419806e35aaabb88624afe672f93ffa57 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1336,7 +1336,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0761-Buffer-OOB-setBlock-calls.patch b/patches/server/0752-Buffer-OOB-setBlock-calls.patch
index 51a5d1943e..51a5d1943e 100644
--- a/patches/server/0761-Buffer-OOB-setBlock-calls.patch
+++ b/patches/server/0752-Buffer-OOB-setBlock-calls.patch
diff --git a/patches/server/0762-Add-TameableDeathMessageEvent.patch b/patches/server/0753-Add-TameableDeathMessageEvent.patch
index 58ea5cd5d1..58ea5cd5d1 100644
--- a/patches/server/0762-Add-TameableDeathMessageEvent.patch
+++ b/patches/server/0753-Add-TameableDeathMessageEvent.patch
diff --git a/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch
index a82a8f4727..6f15c61aa8 100644
--- a/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ b/patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch
@@ -91,7 +91,7 @@ index 0a2c2b847dc516abf31870116056dbdbb22f31d9..45906d273e6d6ec20cf44b4d07efdac6
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-index 2a8ed27101ff78542db120ff183ff33276fb832a..fed8a2519f6b20466f1986702baec2c0f7078dfe 100644
+index c360135b923aa8d1ed2c7caf97ede981cb605cf2..f33c03e81b7ff643741f56eea055e6af260de618 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -580,7 +580,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -196,7 +196,7 @@ index 61abbcfe97e3d3e3da5ee658672549d14594ad17..05e14322e519d1399e87beb532e1cc4a
}
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed..269a3837becfe8eb56997276e840c7055e10e6eb 100644
+index af7e3acde2eb521ac809b4c5980ff6adb30c7135..52a4a2b90f5b4684ffb94bf1db6020490e14942d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1410,11 +1410,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 84358c61a8..5345851a63 100644
--- a/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c76358e108a72297baf92b234d43145dde09e99f..aba972c49d6044f5b72c98a2c4f99f6e3d531a91 100644
+index c1dd624e03c85eaba8733769dc650d33142af714..8332af6921e37d7dbf2a57a40f8413443a1706f8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -924,12 +924,14 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch
index 3a8db84ffb..8a0081b8a6 100644
--- a/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch
+++ b/patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity
Bad plugins doing this would cause some obvious problems...
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 6c995ac8a40e61a29d685b5527807efa73375147..cef8f5473baab959471e108b81e418f6a668e8ac 100644
+index 6f1bd75c5bd38ac198290e05ceb2d9cf7fc0fbf1..1c72365643ea807c56f5f0b7484c06252acb1b6e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2846,7 +2846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2660,7 +2660,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public boolean startRiding(Entity entity, boolean force) {
diff --git a/patches/server/0766-cache-resource-keys.patch b/patches/server/0757-cache-resource-keys.patch
index d444813b7a..d444813b7a 100644
--- a/patches/server/0766-cache-resource-keys.patch
+++ b/patches/server/0757-cache-resource-keys.patch
diff --git a/patches/server/0767-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0758-Allow-changing-the-EnderDragon-podium.patch
index 68a8615204..68a8615204 100644
--- a/patches/server/0767-Allow-changing-the-EnderDragon-podium.patch
+++ b/patches/server/0758-Allow-changing-the-EnderDragon-podium.patch
diff --git a/patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
index aa5772fe8a..aa5772fe8a 100644
--- a/patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
+++ b/patches/server/0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch
diff --git a/patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
index dfa3c3ac08..dfa3c3ac08 100644
--- a/patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
+++ b/patches/server/0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch
diff --git a/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch
index 7e4fc60736..44efe882ca 100644
--- a/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770..985fdb70d4bc9fd6c08de83889108824facfd049 100644
+index 22d93d04d614ad68d12cddd2b7607a8988da0d3c..a5f4bc0160b073c0551107b382889031fed24d52 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3192,7 +3192,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3118,7 +3118,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
if (this.player.level().isLoaded(blockposition)) {
diff --git a/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch
index f6ec1a2950..ebddad6ea9 100644
--- a/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch
+++ b/patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 506d91df4dbcced7554db14b6efdf8697ea6805a..f22ca56e6acd56d894bd26d46133e835c7901b72 100644
+index ec0c53a86c9e76f8c5bbd0eed8f7c7fa1d31a804..c0ffcca75509b1ccee155c799ad8fbdfa657db26 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1449,7 +1449,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch
index e384656b1c..8e0d1d5762 100644
--- a/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch
+++ b/patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -18,10 +18,10 @@ index bb3acbe0ad049703245c51a92539376811365eb2..30b9685963ffc620846c220d1fff3fda
if (dedicatedserverproperties.enableQuery) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 985fdb70d4bc9fd6c08de83889108824facfd049..79f791dbe8dced29b311ad50237da9bfec0fbb2f 100644
+index a5f4bc0160b073c0551107b382889031fed24d52..a08cf32d56b6f5491d2f2e8e9486a5d65ec9a825 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2756,7 +2756,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2682,7 +2682,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent
@@ -167,7 +167,7 @@ index f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0..0112ef51815c4fab38b95d5e917d335e
this.onChanged(server);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a39f439716678611bc7daf943d29b4c330ab5acc..499452383527844354b39b43fb2ea0853ba5478e 100644
+index c0e7680bff3f65269a7031c08c06f38fdbaa4979..f22048c66f28a0c2cb6edb6afda4d3cf1469d913 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0773-Expand-PlayerItemDamageEvent.patch b/patches/server/0764-Expand-PlayerItemDamageEvent.patch
index a549b4189c..a549b4189c 100644
--- a/patches/server/0773-Expand-PlayerItemDamageEvent.patch
+++ b/patches/server/0764-Expand-PlayerItemDamageEvent.patch
diff --git a/patches/server/0774-WorldCreator-keepSpawnLoaded.patch b/patches/server/0765-WorldCreator-keepSpawnLoaded.patch
index fa5c412bf6..fb14f7b798 100644
--- a/patches/server/0774-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0765-WorldCreator-keepSpawnLoaded.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index f4faa98285ab8cd675e84a5f5a02afb0c5cec599..eff4f3100b018bc6475a9307bfe9853cd69abd2f 100644
+index e94c4a5419806e35aaabb88624afe672f93ffa57..583e3cfcd223561d1733c503f84b99edbb4b365e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1283,7 +1283,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
index feadff040a..feadff040a 100644
--- a/patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
+++ b/patches/server/0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch
diff --git a/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
index bb631548bf..b23922a4d1 100644
--- a/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
+++ b/patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 066e7e420b8eaa9733532a893855bcab14c22d0e..cfd09698025262f262489c4d024dc8b0013b542d 100644
+index 03b337ce5ccb1db61dc395b91b061a2aecf8fbf6..c783e0cbc2f124eeacebc7c7cabb9c38f720a328 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -423,12 +423,16 @@ public class ServerPlayerGameMode {
diff --git a/patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch
index 758be4b481..758be4b481 100644
--- a/patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch
+++ b/patches/server/0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff --git a/patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0769-Fire-CauldronLevelChange-on-initial-fill.patch
index 0ad967e4e4..0ad967e4e4 100644
--- a/patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch
+++ b/patches/server/0769-Fire-CauldronLevelChange-on-initial-fill.patch
diff --git a/patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0770-fix-powder-snow-cauldrons-not-turning-to-water.patch
index cfe6d93042..cfe6d93042 100644
--- a/patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch
+++ b/patches/server/0770-fix-powder-snow-cauldrons-not-turning-to-water.patch
diff --git a/patches/server/0780-Add-PlayerStopUsingItemEvent.patch b/patches/server/0771-Add-PlayerStopUsingItemEvent.patch
index 68ae540fef..a13ae5457e 100644
--- a/patches/server/0780-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0771-Add-PlayerStopUsingItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index c41153ad6025fe276326132f6cbfd3986f9c5c51..35ea0d337684f8ff41142c1defc05121f1348ef7 100644
+index 69afdbf5eac010f04b1a7f0c0b99bc7e0035fda1..6b561cb21497f214b82d8d91affb79ce1f63fbad 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0781-Don-t-tick-markers.patch b/patches/server/0772-Don-t-tick-markers.patch
index 32bb643d71..af2d0b352b 100644
--- a/patches/server/0781-Don-t-tick-markers.patch
+++ b/patches/server/0772-Don-t-tick-markers.patch
@@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d
}
});
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 4b0d854ed9fc16ecbdfabca4192969aa1beeaa19..0d5cdef130fb138c1b373ced129ccca245be4ec0 100644
+index 6540c4e1d9d347ce41fb0f504ee275ee3a1c0a4f..6f271c36f2dc47678f7e0b66872ae2c90baebafc 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2585,6 +2585,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2538,6 +2538,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
public void onTickingStart(Entity entity) {
diff --git a/patches/server/0782-Expand-FallingBlock-API.patch b/patches/server/0773-Expand-FallingBlock-API.patch
index 4e95766e58..0f7c1bbd7b 100644
--- a/patches/server/0782-Expand-FallingBlock-API.patch
+++ b/patches/server/0773-Expand-FallingBlock-API.patch
@@ -13,7 +13,7 @@ public net.minecraft.world.entity.item.FallingBlockEntity blockState
Co-authored-by: Lukas Planz <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
-index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..21a4669b01e9c57100224e20500bc23f8e101434 100644
+index bfd8304f4fc2aded1681c7a59cf9d81192e5a3b2..a75e48f27cd8fbf6165c96c5df09671494eb9dd8 100644
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -66,6 +66,7 @@ public class FallingBlockEntity extends Entity {
diff --git a/patches/server/0783-Do-not-accept-invalid-client-settings.patch b/patches/server/0774-Do-not-accept-invalid-client-settings.patch
index 18f009fc3c..c00092c57a 100644
--- a/patches/server/0783-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0774-Do-not-accept-invalid-client-settings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 79f791dbe8dced29b311ad50237da9bfec0fbb2f..f98e289c90425864576dead48eacb21c00970dcc 100644
+index a08cf32d56b6f5491d2f2e8e9486a5d65ec9a825..9810c476ba7cdee6a2ed17c48f8f101426596aea 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3316,6 +3316,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3242,6 +3242,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0784-Add-support-for-Proxy-Protocol.patch b/patches/server/0775-Add-support-for-Proxy-Protocol.patch
index 306ded1834..ef9bc5a74d 100644
--- a/patches/server/0784-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0775-Add-support-for-Proxy-Protocol.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol
diff --git a/build.gradle.kts b/build.gradle.kts
-index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644
+index c6241f858209ed662d8720217d143340916024e9..7c563ef33d12b227856e65392905bffa5289285a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -30,6 +30,7 @@ dependencies {
@@ -17,23 +17,10 @@ index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e6
implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
implementation("org.ow2.asm:asm-commons:9.5")
diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
-index 7383c367eba6e157b020655c858fef80bcf91822..0057f3f7669b03c36c3dd2e7629e4551e3cde700 100644
+index 13fc9b88c06b0436d23039ef4686f3a88589447e..a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
+++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
-@@ -111,6 +111,12 @@ public class ServerConnectionListener {
- ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.cipher.getLoadedVariant() + " cipher from Velocity.");
- // Paper end - Use Velocity cipher
-
-+ // Paper start - Add support for proxy protocol
-+ if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.proxyProtocol) {
-+ ServerConnectionListener.LOGGER.info("Paper: Using Proxy Protocol");
-+ }
-+ // Paper end - Add support for proxy protocol
-+
- this.channels.add(((ServerBootstrap) ((ServerBootstrap) (new ServerBootstrap()).channel(oclass)).childHandler(new ChannelInitializer<Channel>() {
- protected void initChannel(Channel channel) {
- Connection.setInitialProtocolAttributes(channel);
-@@ -129,6 +135,29 @@ public class ServerConnectionListener {
+@@ -124,6 +124,29 @@ public class ServerConnectionListener {
Connection object = j > 0 ? new RateKickingConnection(j) : new Connection(PacketFlow.SERVERBOUND); // CraftBukkit - decompile error
//ServerConnectionListener.this.connections.add(object); // Paper
diff --git a/patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0776-Fix-OfflinePlayer-getBedSpawnLocation.patch
index 7d9e9d920f..7d9e9d920f 100644
--- a/patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch
+++ b/patches/server/0776-Fix-OfflinePlayer-getBedSpawnLocation.patch
diff --git a/patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
index ef7517367b..ef7517367b 100644
--- a/patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
+++ b/patches/server/0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch
diff --git a/patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0778-Sanitize-sent-BlockEntity-NBT.patch
index d79abc0a00..d79abc0a00 100644
--- a/patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch
+++ b/patches/server/0778-Sanitize-sent-BlockEntity-NBT.patch
diff --git a/patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0779-Disable-component-selector-resolving-in-books-by-def.patch
index 33fd8e47d0..33fd8e47d0 100644
--- a/patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch
+++ b/patches/server/0779-Disable-component-selector-resolving-in-books-by-def.patch
diff --git a/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch
index 1d69022c7a..8742952c58 100644
--- a/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch
+++ b/patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index cef8f5473baab959471e108b81e418f6a668e8ac..2490da0e881e3514466bd44ba4f9336be67d603d 100644
+index 1c72365643ea807c56f5f0b7484c06252acb1b6e..3b23d1e1c1fb76e8931952846aa9f9d34584cd67 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -802,6 +802,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
diff --git a/patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch
index 8491aaff8b..be42f8546a 100644
--- a/patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch
@@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are
being ticked themselvess.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce94771253 100644
+index f5c551a0d6a63c4a28169052cb7c8c6d0b688dda..d42d9b38a9334e1e2b83fde671757ec191898c4b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -18,7 +18,7 @@ index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
AtomicReference<S> atomicreference = new AtomicReference();
-@@ -1633,7 +1634,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1562,7 +1563,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 ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce
// CraftBukkit start
// Run tasks that are waiting on processing
-@@ -1665,6 +1666,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1594,6 +1595,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Perf: Optimize time updates
MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper
@@ -36,7 +36,7 @@ index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
-@@ -1703,6 +1706,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1632,6 +1635,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.pop();
worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
}
@@ -45,7 +45,7 @@ index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce
this.profiler.popPush("connection");
MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index eff4f3100b018bc6475a9307bfe9853cd69abd2f..9c826cfb4f2e9336ae42d1b4ec1fbf2327021164 100644
+index 583e3cfcd223561d1733c503f84b99edbb4b365e..6a7ae215b901b4d8afdb2ee6166f89aa9943c8fb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -874,6 +874,11 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0792-Dont-resent-entity-on-art-update.patch b/patches/server/0782-Dont-resent-entity-on-art-update.patch
index 38d1a4ca58..38d1a4ca58 100644
--- a/patches/server/0792-Dont-resent-entity-on-art-update.patch
+++ b/patches/server/0782-Dont-resent-entity-on-art-update.patch
diff --git a/patches/server/0793-Add-WardenAngerChangeEvent.patch b/patches/server/0783-Add-WardenAngerChangeEvent.patch
index 9344bd47cf..9344bd47cf 100644
--- a/patches/server/0793-Add-WardenAngerChangeEvent.patch
+++ b/patches/server/0783-Add-WardenAngerChangeEvent.patch
diff --git a/patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0784-Add-option-for-strict-advancement-dimension-checks.patch
index 1087bbd32e..07480bbe95 100644
--- a/patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch
+++ b/patches/server/0784-Add-option-for-strict-advancement-dimension-checks.patch
@@ -24,7 +24,7 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd
} else {
BlockPos blockPos = BlockPos.containing(x, y, z);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index aba972c49d6044f5b72c98a2c4f99f6e3d531a91..4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828 100644
+index 8332af6921e37d7dbf2a57a40f8413443a1706f8..1b9459aeb7a676cb3ac1fbee3561f21923d9b20d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0795-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0785-Add-missing-important-BlockStateListPopulator-method.patch
index 70241cc9b8..70241cc9b8 100644
--- a/patches/server/0795-Add-missing-important-BlockStateListPopulator-method.patch
+++ b/patches/server/0785-Add-missing-important-BlockStateListPopulator-method.patch
diff --git a/patches/server/0796-Nameable-Banner-API.patch b/patches/server/0786-Nameable-Banner-API.patch
index 351d3597e0..351d3597e0 100644
--- a/patches/server/0796-Nameable-Banner-API.patch
+++ b/patches/server/0786-Nameable-Banner-API.patch
diff --git a/patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0787-Don-t-broadcast-messages-to-command-blocks.patch
index c1d8ecd2f6..a18b8c207a 100644
--- a/patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch
+++ b/patches/server/0787-Don-t-broadcast-messages-to-command-blocks.patch
@@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915
Date date = new Date();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 9c826cfb4f2e9336ae42d1b4ec1fbf2327021164..874387cce637c0adc3ded0f45f169c2c3b213d0d 100644
+index 6a7ae215b901b4d8afdb2ee6166f89aa9943c8fb..0d1fbb78394e60666d17fb7be67d5716d02a3099 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1873,7 +1873,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0788-Prevent-empty-items-from-being-added-to-world.patch
index e7db702bcc..477263d4dc 100644
--- a/patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch
+++ b/patches/server/0788-Prevent-empty-items-from-being-added-to-world.patch
@@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca
Just simply prevent them from being added to the world instead.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 88151659d6552d1678c202b8414476683807eafb..3d5e055e9ad5dff1ccc0836bd88bbacf09c02173 100644
+index 6f271c36f2dc47678f7e0b66872ae2c90baebafc..b15b3c1216baa84f696881deeae2de9d81201e27 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1567,6 +1567,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1519,6 +1519,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit
return false;
} else {
diff --git a/patches/server/0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0789-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
index 5816232b91..5816232b91 100644
--- a/patches/server/0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
+++ b/patches/server/0789-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch
diff --git a/patches/server/0800-Add-Player-getFishHook.patch b/patches/server/0790-Add-Player-getFishHook.patch
index d539d68f07..d539d68f07 100644
--- a/patches/server/0800-Add-Player-getFishHook.patch
+++ b/patches/server/0790-Add-Player-getFishHook.patch
diff --git a/patches/server/0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0791-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
index 8b8d15552f..8b8d15552f 100644
--- a/patches/server/0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
+++ b/patches/server/0791-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch
diff --git a/patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0792-Add-various-missing-EntityDropItemEvent-calls.patch
index 795c17a969..66a606bb99 100644
--- a/patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch
+++ b/patches/server/0792-Add-various-missing-EntityDropItemEvent-calls.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2490da0e881e3514466bd44ba4f9336be67d603d..0d7d96af96eeb882e53938244ca57e0c439eb130 100644
+index 3b23d1e1c1fb76e8931952846aa9f9d34584cd67..4617730a47c44a00f62131d977ad2ca24424dcb6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2698,6 +2698,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2571,6 +2571,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe
entityitem.setDefaultPickUpDelay();
diff --git a/patches/server/0803-Fix-Bee-flower-NPE.patch b/patches/server/0793-Fix-Bee-flower-NPE.patch
index 21a3d68e76..21a3d68e76 100644
--- a/patches/server/0803-Fix-Bee-flower-NPE.patch
+++ b/patches/server/0793-Fix-Bee-flower-NPE.patch
diff --git a/patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0794-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 6896c86ccb..f1f36e6ee8 100644
--- a/patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0794-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 f98e289c90425864576dead48eacb21c00970dcc..a4db041d701a35d05f4b01886ff7ee04212c5d86 100644
+index 9810c476ba7cdee6a2ed17c48f8f101426596aea..e7985c415e9efa79b1785d1270bcb8f0253000d5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2373,7 +2373,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2299,7 +2299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Spigot end
// this.chatSpamTickCount += 20;
diff --git a/patches/server/0805-More-Teleport-API.patch b/patches/server/0795-More-Teleport-API.patch
index 6301505e12..52a6386535 100644
--- a/patches/server/0805-More-Teleport-API.patch
+++ b/patches/server/0795-More-Teleport-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] More Teleport API
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a4db041d701a35d05f4b01886ff7ee04212c5d86..7a90ad5c707a01ae63662f94507fab312d415b85 100644
+index e7985c415e9efa79b1785d1270bcb8f0253000d5..15a2d3fb2db4abfe66392a22d9a33159a816f285 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1632,11 +1632,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1558,11 +1558,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return false; // CraftBukkit - Return event status
}
diff --git a/patches/server/0806-Add-EntityPortalReadyEvent.patch b/patches/server/0796-Add-EntityPortalReadyEvent.patch
index 3404c37ff4..2ddddcf34f 100644
--- a/patches/server/0806-Add-EntityPortalReadyEvent.patch
+++ b/patches/server/0796-Add-EntityPortalReadyEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityPortalReadyEvent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 0d7d96af96eeb882e53938244ca57e0c439eb130..4ac42a1cac859853f64fa5de3e709e7826d1f27f 100644
+index 4617730a47c44a00f62131d977ad2ca24424dcb6..0ab98129e5d3e09046b76938a7246a89602b95a9 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3098,6 +3098,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2912,6 +2912,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
this.level().getProfiler().push("portal");
this.portalTime = i;
@@ -22,7 +22,7 @@ index 0d7d96af96eeb882e53938244ca57e0c439eb130..4ac42a1cac859853f64fa5de3e709e78
this.setPortalCooldown();
// CraftBukkit start
if (this instanceof ServerPlayer) {
-@@ -3105,6 +3112,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2919,6 +2926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} else {
this.changeDimension(worldserver1);
}
diff --git a/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch
index c45ff812fb..bc78c6a474 100644
--- a/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch
+++ b/patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch
@@ -9,7 +9,7 @@ should be supported. Some entities (for whatever
reason) use the level's random in some places.
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
-index c865456d58cf7c2077ac452b6a1e3db2b84047ef..13efea97d1836a48ef4c0e077a61571d9c171a0e 100644
+index 459f793a6603d4f98c84df4e549f069298c54985..8aaca29b115a55bf48306e71432c4c20d2bd21dc 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -66,7 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
diff --git a/patches/server/0808-Send-block-entities-after-destroy-prediction.patch b/patches/server/0798-Send-block-entities-after-destroy-prediction.patch
index 04def1f820..4d84d9c447 100644
--- a/patches/server/0808-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0798-Send-block-entities-after-destroy-prediction.patch
@@ -7,7 +7,7 @@ Minecraft's prediction system does not handle block entities, so if we are manua
block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index cfd09698025262f262489c4d024dc8b0013b542d..fc19c68c19d443be654a5600f633d3a77f7069c1 100644
+index c783e0cbc2f124eeacebc7c7cabb9c38f720a328..c24701ed78824dc5377f8517dedf6a5aeff0614d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -62,6 +62,8 @@ public class ServerPlayerGameMode {
@@ -57,10 +57,10 @@ index cfd09698025262f262489c4d024dc8b0013b542d..fc19c68c19d443be654a5600f633d3a7
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7a90ad5c707a01ae63662f94507fab312d415b85..dd1a969c6ac8ee08c9898703953dda88c7b4f97e 100644
+index 15a2d3fb2db4abfe66392a22d9a33159a816f285..e868c434be0bf223728b439df9a0db6afeaee46e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1778,8 +1778,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1704,8 +1704,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// Paper end - Don't allow digging into unloaded chunks
diff --git a/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch
index be3a5623d1..a68f5b7ce4 100644
--- a/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 17f8dc044619bfa055f67f12cd9a296504ac76ee..b5815acea75cd70f65d9eb2b554b435c91be9994 100644
+index 6309ab0373e7f64c7f63a55d43ff4e54d4542332..d21667480e585c7a124e9c53b4a22fa1a8115082 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -812,7 +812,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -444,7 +444,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
private static boolean isInWorldBoundsHorizontal(BlockPos pos) {
@@ -18,7 +18,7 @@ index 17f8dc044619bfa055f67f12cd9a296504ac76ee..b5815acea75cd70f65d9eb2b554b435c
private static boolean isOutsideSpawnableHeight(int y) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 499452383527844354b39b43fb2ea0853ba5478e..d4fae4420b96520b2e1f6db40141e5392559c6fe 100644
+index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63ac4d3121 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch
index 1f20bc7a88..1f20bc7a88 100644
--- a/patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch
diff --git a/patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch
index 2813257f0f..2813257f0f 100644
--- a/patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch
+++ b/patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch
diff --git a/patches/server/0812-Collision-API.patch b/patches/server/0802-Collision-API.patch
index 5bc997b268..5bc997b268 100644
--- a/patches/server/0812-Collision-API.patch
+++ b/patches/server/0802-Collision-API.patch
diff --git a/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
index c042d58124..8645146d61 100644
--- a/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
+++ b/patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix suggest command message for brigadier syntax exceptions
This is a bug accidentally introduced in upstream CB
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
-index 4cec7e5b1086064650af50cc9b89da274c74bfd0..c1a80e0aa6692205f14d01b3c8c069e452101525 100644
+index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..dd7c1ac97505ce7a846aa8ee91bb654d060acc1a 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -392,7 +392,7 @@ public class Commands {
diff --git a/patches/server/0814-Block-Ticking-API.patch b/patches/server/0804-Block-Ticking-API.patch
index 6387ad09be..6387ad09be 100644
--- a/patches/server/0814-Block-Ticking-API.patch
+++ b/patches/server/0804-Block-Ticking-API.patch
diff --git a/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch
index 9db3935d77..cd339cb4f3 100644
--- a/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch
@@ -134,7 +134,7 @@ index 30b9685963ffc620846c220d1fff3fda834f1ffa..6de6dad36203479677a29ad61e21bc36
DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.");
}
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb944cf2822 100644
+index ebda34825bbd10145a81d54c345e31c2a4fb5de4..42ae62bdbe11fdfbacebf621d64e7c4985bbd1c7 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -162,7 +162,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9
// CraftBukkit start
// Paper start - Cache authenticator threads
authenticatorPool.execute(new Runnable() {
-@@ -291,6 +302,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+@@ -289,6 +300,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
// CraftBukkit start
private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent
@@ -175,7 +175,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9
String playerName = gameprofile.getName();
java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress();
java.util.UUID uniqueId = gameprofile.getId();
-@@ -336,6 +353,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+@@ -334,6 +351,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@Override
public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) {
@@ -228,7 +228,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 874387cce637c0adc3ded0f45f169c2c3b213d0d..1b4837ddb216d66164a893f5a34c0505c6f1aab2 100644
+index 0d1fbb78394e60666d17fb7be67d5716d02a3099..fd31a716ec66235970af4854dd7d83c1f88e229d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -803,7 +803,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0816-Add-NamespacedKey-biome-methods.patch b/patches/server/0806-Add-NamespacedKey-biome-methods.patch
index 7823841639..7823841639 100644
--- a/patches/server/0816-Add-NamespacedKey-biome-methods.patch
+++ b/patches/server/0806-Add-NamespacedKey-biome-methods.patch
diff --git a/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch
index df7630d2fe..a851566240 100644
--- a/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch
+++ b/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch
@@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index c3ce869eb8c53ba01f41840d050502ce94771253..ed9839ff23d0810912a6961979690c3fe9fc0e16 100644
+index d42d9b38a9334e1e2b83fde671757ec191898c4b..8d39cce9f938260817f00f42326771be8ff0fbaf 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
diff --git a/patches/server/0818-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0808-Stop-large-look-changes-from-crashing-the-server.patch
index ba3588d30d..fec57d27e8 100644
--- a/patches/server/0818-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0808-Stop-large-look-changes-from-crashing-the-server.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Stop large look changes from crashing the server
Co-authored-by: Jaren Knodel <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 35ea0d337684f8ff41142c1defc05121f1348ef7..fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e 100644
+index 6b561cb21497f214b82d8d91affb79ce1f63fbad..fca8970baaf7dea9397024f8c1aa2a044f7b721c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -54,7 +54,7 @@ index 35ea0d337684f8ff41142c1defc05121f1348ef7..fd0af0cbcef59ff1c23e65a1e214fb99
this.level().getProfiler().pop();
this.animStep += f2;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index cd9ef09e2d975ab16a3b96b8662477b687d58a4f..d01570d7c3c8c4bd40cafc32d02774b789355460 100644
+index 20842ed5b730dda88efd0cda9292a37f879a4017..0a207f3f2e4c0790e784fb4b0c3c2dfa49c39724 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -259,13 +259,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
diff --git a/patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch
index 168322884a..168322884a 100644
--- a/patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch
+++ b/patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch
diff --git a/patches/server/0820-Missing-eating-regain-reason.patch b/patches/server/0810-Missing-eating-regain-reason.patch
index cbd8900d95..cbd8900d95 100644
--- a/patches/server/0820-Missing-eating-regain-reason.patch
+++ b/patches/server/0810-Missing-eating-regain-reason.patch
diff --git a/patches/server/0821-Missing-effect-cause.patch b/patches/server/0811-Missing-effect-cause.patch
index 6710474f4b..6710474f4b 100644
--- a/patches/server/0821-Missing-effect-cause.patch
+++ b/patches/server/0811-Missing-effect-cause.patch
diff --git a/patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch
index f2a4d437f0..f2a4d437f0 100644
--- a/patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch
+++ b/patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch
diff --git a/patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
index a46b55a498..a46b55a498 100644
--- a/patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
+++ b/patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch
diff --git a/patches/server/0824-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0814-Call-BlockPhysicsEvent-more-often.patch
index 0adcc7e1fb..0adcc7e1fb 100644
--- a/patches/server/0824-Call-BlockPhysicsEvent-more-often.patch
+++ b/patches/server/0814-Call-BlockPhysicsEvent-more-often.patch
diff --git a/patches/server/0825-Configurable-chat-thread-limit.patch b/patches/server/0815-Configurable-chat-thread-limit.patch
index 5e312d3a14..5e312d3a14 100644
--- a/patches/server/0825-Configurable-chat-thread-limit.patch
+++ b/patches/server/0815-Configurable-chat-thread-limit.patch
diff --git a/patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
index ffb644e841..ffb644e841 100644
--- a/patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
+++ b/patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
diff --git a/patches/server/0827-fix-Jigsaw-block-kicking-user.patch b/patches/server/0817-fix-Jigsaw-block-kicking-user.patch
index 3c04241bd6..3c04241bd6 100644
--- a/patches/server/0827-fix-Jigsaw-block-kicking-user.patch
+++ b/patches/server/0817-fix-Jigsaw-block-kicking-user.patch
diff --git a/patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch
index 5d836bf948..5d836bf948 100644
--- a/patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch
+++ b/patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch
diff --git a/patches/server/0829-Add-getDrops-to-BlockState.patch b/patches/server/0819-Add-getDrops-to-BlockState.patch
index 93f48ad578..93f48ad578 100644
--- a/patches/server/0829-Add-getDrops-to-BlockState.patch
+++ b/patches/server/0819-Add-getDrops-to-BlockState.patch
diff --git a/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch
index c8051b90c4..152d117626 100644
--- a/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch
+++ b/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch
@@ -113,7 +113,7 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1
}
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15044226e8 100644
+index dd16f13ca44cda3051a38085f6de117a475ce797..879a07656954fa2492db19a5fa158571de538a4f 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -894,7 +894,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -126,10 +126,10 @@ index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15
return this.anyPlayerCloseEnoughForSpawning(pos, false);
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 3d5e055e9ad5dff1ccc0836bd88bbacf09c02173..4f121bf2e36d9d76bb4e7b3c379969105c12065e 100644
+index b15b3c1216baa84f696881deeae2de9d81201e27..f3884f7169835d3d65b8935ee41038f80306a61b 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1027,7 +1027,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1006,7 +1006,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} else {
AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D);
List<LivingEntity> list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> {
@@ -139,7 +139,7 @@ index 3d5e055e9ad5dff1ccc0836bd88bbacf09c02173..4f121bf2e36d9d76bb4e7b3c37996910
if (!list.isEmpty()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395e326c101 100644
+index 1b9459aeb7a676cb3ac1fbee3561f21923d9b20d..b43baee9a03f17801712e8a1af3317e1297248ab 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -468,14 +468,14 @@ public class ServerPlayer extends Player {
@@ -148,7 +148,7 @@ index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395
if (blockposition1 != null) {
- this.moveTo(blockposition1, 0.0F, 0.0F);
+ this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
- if (world.noCollision(this, this.getBoundingBox(), true)) { // Paper - make sure this loads chunks, we default to NOT loading now
+ if (world.noCollision((Entity) this)) {
break;
}
}
@@ -157,10 +157,10 @@ index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395
- this.moveTo(blockposition, 0.0F, 0.0F);
+ this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
- while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now
+ while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) {
this.setPos(this.getX(), this.getY() + 1.0D, this.getZ());
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d03685ae9e5e1 100644
+index c24701ed78824dc5377f8517dedf6a5aeff0614d..a38cda0029af022eccb12c12f1652fa8053b2aa6 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -92,7 +92,7 @@ public class ServerPlayerGameMode {
@@ -173,7 +173,7 @@ index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d0368
this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit
this.level.updateSleepingPlayerList();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index f22ca56e6acd56d894bd26d46133e835c7901b72..d2d21ccc45381787698c84870537ba11ebb75127 100644
+index c0ffcca75509b1ccee155c799ad8fbdfa657db26..56242bc33ed435e3ab06d7c7bebc05c255538633 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -711,8 +711,10 @@ public abstract class PlayerList {
diff --git a/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch
index 0b9ee9c5bf..e70e8070cb 100644
--- a/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch
+++ b/patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 4f121bf2e36d9d76bb4e7b3c379969105c12065e..f1f0056157d209ba5d987b6e09ce1fc020920fd9 100644
+index f3884f7169835d3d65b8935ee41038f80306a61b..528901e658cf553de0580bcff21e42740b5d0cd4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2621,7 +2621,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2566,7 +2566,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (entity instanceof Mob) {
Mob entityinsentient = (Mob) entity;
@@ -17,7 +17,7 @@ index 4f121bf2e36d9d76bb4e7b3c379969105c12065e..f1f0056157d209ba5d987b6e09ce1fc0
String s = "onTrackingStart called during navigation iteration";
Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration"));
-@@ -2707,7 +2707,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2652,7 +2652,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (entity instanceof Mob) {
Mob entityinsentient = (Mob) entity;
diff --git a/patches/server/0832-Fix-custom-piglin-loved-items.patch b/patches/server/0822-Fix-custom-piglin-loved-items.patch
index 59a92c2464..59a92c2464 100644
--- a/patches/server/0832-Fix-custom-piglin-loved-items.patch
+++ b/patches/server/0822-Fix-custom-piglin-loved-items.patch
diff --git a/patches/server/0833-EntityPickupItemEvent-fixes.patch b/patches/server/0823-EntityPickupItemEvent-fixes.patch
index 91ccd6c8ad..91ccd6c8ad 100644
--- a/patches/server/0833-EntityPickupItemEvent-fixes.patch
+++ b/patches/server/0823-EntityPickupItemEvent-fixes.patch
diff --git a/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch
index ce63884072..88286e5950 100644
--- a/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 9503511b28888e98ed65befdb95d03685ae9e5e1..870447743db05043f6d3c0f2a699310077529636 100644
+index a38cda0029af022eccb12c12f1652fa8053b2aa6..521fc5fd6b66c7095c729dd4aaf49bbc443f0200 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -516,6 +516,7 @@ public class ServerPlayerGameMode {
@@ -30,7 +30,7 @@ index 9503511b28888e98ed65befdb95d03685ae9e5e1..870447743db05043f6d3c0f2a6993100
this.interactResult = event.useItemInHand() == Event.Result.DENY;
this.interactPosition = blockposition.immutable();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 269a3837becfe8eb56997276e840c7055e10e6eb..fe855fd532e80a2d6b10053670dfb1b8fc009ac2 100644
+index 52a4a2b90f5b4684ffb94bf1db6020490e14942d..944bb12b14d50cdd7064ae7300c71465e15cb217 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -543,7 +543,13 @@ public class CraftEventFactory {
diff --git a/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch
index fc01c1ca33..9fcf5ded68 100644
--- a/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5bfeb1d214817b425f89265375281395e326c101..cdd5c2fa44d114058391b78434e1cb268c40dc6e 100644
+index b43baee9a03f17801712e8a1af3317e1297248ab..de80b618efcf9f0ceae40ed0b53d3436afca27b8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -379,6 +379,25 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0836-Elder-Guardian-appearance-API.patch b/patches/server/0826-Elder-Guardian-appearance-API.patch
index 6b3feb4446..6b3feb4446 100644
--- a/patches/server/0836-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0826-Elder-Guardian-appearance-API.patch
diff --git a/patches/server/0837-Allow-changing-bed-s-occupied-property.patch b/patches/server/0827-Allow-changing-bed-s-occupied-property.patch
index f1d50caf78..f1d50caf78 100644
--- a/patches/server/0837-Allow-changing-bed-s-occupied-property.patch
+++ b/patches/server/0827-Allow-changing-bed-s-occupied-property.patch
diff --git a/patches/server/0838-Add-entity-knockback-API.patch b/patches/server/0828-Add-entity-knockback-API.patch
index d9d400dd3a..d9d400dd3a 100644
--- a/patches/server/0838-Add-entity-knockback-API.patch
+++ b/patches/server/0828-Add-entity-knockback-API.patch
diff --git a/patches/server/0839-Detect-headless-JREs.patch b/patches/server/0829-Detect-headless-JREs.patch
index 637c75c82a..637c75c82a 100644
--- a/patches/server/0839-Detect-headless-JREs.patch
+++ b/patches/server/0829-Detect-headless-JREs.patch
diff --git a/patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch
index 9fe5a7cf02..9fe5a7cf02 100644
--- a/patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch
+++ b/patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch
diff --git a/patches/server/0842-Add-EntityToggleSitEvent.patch b/patches/server/0831-Add-EntityToggleSitEvent.patch
index 71b347d012..71b347d012 100644
--- a/patches/server/0842-Add-EntityToggleSitEvent.patch
+++ b/patches/server/0831-Add-EntityToggleSitEvent.patch
diff --git a/patches/server/0843-Add-fire-tick-delay-option.patch b/patches/server/0832-Add-fire-tick-delay-option.patch
index 6da077e53d..6da077e53d 100644
--- a/patches/server/0843-Add-fire-tick-delay-option.patch
+++ b/patches/server/0832-Add-fire-tick-delay-option.patch
diff --git a/patches/server/0844-Add-Moving-Piston-API.patch b/patches/server/0833-Add-Moving-Piston-API.patch
index b0b64257f1..b0b64257f1 100644
--- a/patches/server/0844-Add-Moving-Piston-API.patch
+++ b/patches/server/0833-Add-Moving-Piston-API.patch
diff --git a/patches/server/0845-Ignore-impossible-spawn-tick.patch b/patches/server/0834-Ignore-impossible-spawn-tick.patch
index 9c98b51936..fc336b2c29 100644
--- a/patches/server/0845-Ignore-impossible-spawn-tick.patch
+++ b/patches/server/0834-Ignore-impossible-spawn-tick.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ignore impossible spawn tick
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
-index b90c1e4e03f85dbfa7134bffd8da59330cea1e28..21b5765a12c5e4998870601e9665bd066a4ea471 100644
+index a9c74ef33182505b6982fea273a760e937ddbf51..7d08099b82dc47cf4b1ce49c721a4aca90b489af 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
+++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -82,6 +82,7 @@ public abstract class BaseSpawner {
diff --git a/patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch
index c5d89093dc..c5d89093dc 100644
--- a/patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch
+++ b/patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch
diff --git a/patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
index e8c896203a..8a2c14c67d 100644
--- a/patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
+++ b/patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch
@@ -9,19 +9,19 @@ suggestions, which especially matters when we force suggestions to
the server for this type
diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
-index d93698fd814683d451a3c8e8bcbb9cd475c79515..8d79cfa371546996ef65f94232c1d344e7c590ec 100644
+index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..8e008e752c5b11781088e2b4b5ba180bacb59326 100644
--- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
+++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
@@ -128,7 +128,12 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
StringReader stringreader = new StringReader(suggestionsbuilder.getInput());
stringreader.setCursor(suggestionsbuilder.getStart());
-- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments
+- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2));
+ // Paper start - Fix EntityArgument suggestion permissions
+ final boolean permission = object instanceof CommandSourceStack stack
+ ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector")
+ : icompletionprovider.hasPermission(2);
-+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments
++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission);
+ // Paper end - Fix EntityArgument suggestion permissions
try {
diff --git a/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
index 52bbf44364..7b4cc4c7a2 100644
--- a/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
+++ b/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4ac42a1cac859853f64fa5de3e709e7826d1f27f..888a8f5920083a24601d13123b6defd12b6b64d7 100644
+index 0ab98129e5d3e09046b76938a7246a89602b95a9..df64101be3440828479ef4afeb70140eb4bdd9da 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3377,6 +3377,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -3191,6 +3191,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
pluginManager.callEvent(entityCombustEvent);
if (!entityCombustEvent.isCancelled()) {
this.setSecondsOnFire(entityCombustEvent.getDuration(), false);
diff --git a/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0838-Add-PrePlayerAttackEntityEvent.patch
index de0539fb9e..99884e7e78 100644
--- a/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch
+++ b/patches/server/0838-Add-PrePlayerAttackEntityEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 61516fbc3cbfb3aa85895b4458b5319752149f73..d72ea2f3d9528f79149791e34065ea1f299cd089 100644
+index dbecf65fdd4e094b9b8b8f9267618934642db40f..06aef23895f486efc7eb00c35df356d0a88d58ed 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch
index 56b3405307..56b3405307 100644
--- a/patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch
+++ b/patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch
diff --git a/patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch
index 6f61c88362..6f61c88362 100644
--- a/patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch
+++ b/patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch
diff --git a/patches/server/0852-Add-Player-Warden-Warning-API.patch b/patches/server/0841-Add-Player-Warden-Warning-API.patch
index 48462712ee..48462712ee 100644
--- a/patches/server/0852-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0841-Add-Player-Warden-Warning-API.patch
diff --git a/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch
index 0617aa53ad..7bb1eafa6b 100644
--- a/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch
+++ b/patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More vanilla friendly methods to update trades
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
-index b33fa26d6e3cf8999fb24137069d0a4178f82caf..5c2010fb247462433bed6ae58d88a72c4e137ede 100644
+index fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781..1aae466e3e334d7f4bbb3ea9365a255afcc3dd3a 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -944,6 +944,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
diff --git a/patches/server/0854-Add-paper-dumplisteners-command.patch b/patches/server/0843-Add-paper-dumplisteners-command.patch
index 9669276c0a..9669276c0a 100644
--- a/patches/server/0854-Add-paper-dumplisteners-command.patch
+++ b/patches/server/0843-Add-paper-dumplisteners-command.patch
diff --git a/patches/server/0855-check-global-player-list-where-appropriate.patch b/patches/server/0844-check-global-player-list-where-appropriate.patch
index 8ce81166b6..9e3e8c00bf 100644
--- a/patches/server/0855-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0844-check-global-player-list-where-appropriate.patch
@@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player
instead of just checking players in their world.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index f1f0056157d209ba5d987b6e09ce1fc020920fd9..5b2de5cdac2440a4043c34525a0852067aa9371f 100644
+index 528901e658cf553de0580bcff21e42740b5d0cd4..a15bdf56c32b16c143c3060dc7d5f61544f8dc5f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2744,4 +2744,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2689,4 +2689,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.updateDynamicGameEventListener(DynamicGameEventListener::move);
}
}
@@ -24,7 +24,7 @@ index f1f0056157d209ba5d987b6e09ce1fc020920fd9..5b2de5cdac2440a4043c34525a085206
+ // Paper end - check global player list where appropriate
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e..49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f 100644
+index fca8970baaf7dea9397024f8c1aa2a044f7b721c..39a6823a2fef8c3907a39fc611489e07cdf6d1e1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -50,10 +50,10 @@ index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..7de9d012e7416eaa0189b513a0972c84
if (entityhuman instanceof ServerPlayer) {
CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager);
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
-index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..a3d15f30eaab29d85cb6b3d693df9980a880f686 100644
+index a25497eec004add7408a63b1a0f09e3fa443b324..8c436d16914e160be8e3074badc1293af2ae6b31 100644
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
-@@ -280,4 +280,11 @@ public interface EntityGetter {
+@@ -243,4 +243,11 @@ public interface EntityGetter {
return null;
}
diff --git a/patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch
index a3e5226fad..a3e5226fad 100644
--- a/patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch
+++ b/patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch
diff --git a/patches/server/0857-ItemStack-damage-API.patch b/patches/server/0846-ItemStack-damage-API.patch
index 98eb7e5cf6..98eb7e5cf6 100644
--- a/patches/server/0857-ItemStack-damage-API.patch
+++ b/patches/server/0846-ItemStack-damage-API.patch
diff --git a/patches/server/0858-Friction-API.patch b/patches/server/0847-Friction-API.patch
index d1a8023c7a..d1a8023c7a 100644
--- a/patches/server/0858-Friction-API.patch
+++ b/patches/server/0847-Friction-API.patch
diff --git a/patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch
index 0d4f49bc51..0d4f49bc51 100644
--- a/patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch
+++ b/patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch
diff --git a/patches/server/0860-Fix-player-kick-on-shutdown.patch b/patches/server/0849-Fix-player-kick-on-shutdown.patch
index 6c78f5fc99..0c36dc9398 100644
--- a/patches/server/0860-Fix-player-kick-on-shutdown.patch
+++ b/patches/server/0849-Fix-player-kick-on-shutdown.patch
@@ -9,15 +9,15 @@ also check if all packets are ignored during the shutdown process.
See net.minecraft.network.Connection#channelRead0(ChannelHandlerContext, Packet) and net.minecraft.util.thread.BlockableEventLoop#executeIfPossible(Runnable)
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
-index 7297bca9224c12d7ace0e1967340d99436afafc1..3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644 100644
+index 7de24c39b460e43d27839b3821e67213508ece81..454d0187ff8370a0d99cca051ee0a8c50b39cfb7 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
-@@ -44,7 +44,7 @@ public class PacketUtils {
+@@ -26,7 +26,7 @@ public class PacketUtils {
public static <T extends PacketListener> void ensureRunningOnSameThread(Packet<T> packet, T listener, BlockableEventLoop<?> engine) throws RunningOnDifferentThreadException {
if (!engine.isSameThread()) {
- engine.executeIfPossible(() -> {
+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown
- packetProcessing.push(listener); // Paper - detailed watchdog information
- try { // Paper - detailed watchdog information
if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590
+ if (listener.shouldHandleMessage(packet)) {
+ co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings
diff --git a/patches/server/0861-Sync-offhand-slot-in-menus.patch b/patches/server/0850-Sync-offhand-slot-in-menus.patch
index b04cc1689c..ac269b60ca 100644
--- a/patches/server/0861-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0850-Sync-offhand-slot-in-menus.patch
@@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th
by pressing the offhand swap item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index cdd5c2fa44d114058391b78434e1cb268c40dc6e..fb2ac7c4b9d938bc699ddc7475e2c3c3777cd056 100644
+index de80b618efcf9f0ceae40ed0b53d3436afca27b8..46a69ef6794065e144e4948ad165a1ea0f0e2f33 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -348,6 +348,13 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0862-Player-Entity-Tracking-Events.patch b/patches/server/0851-Player-Entity-Tracking-Events.patch
index 58c861db20..258f237465 100644
--- a/patches/server/0862-Player-Entity-Tracking-Events.patch
+++ b/patches/server/0851-Player-Entity-Tracking-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f1d311470 100644
+index 879a07656954fa2492db19a5fa158571de538a4f..4a597dd278947c7992d3c09e0813780689cbd9ab 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1405,7 +1405,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -21,10 +21,10 @@ index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f
} else if (this.seenBy.remove(player.connection)) {
this.serverEntity.removePairing(player);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 888a8f5920083a24601d13123b6defd12b6b64d7..c15c3e4da36c8804934c2c0b046aabd457be6855 100644
+index df64101be3440828479ef4afeb70140eb4bdd9da..c6cddb7099cf713e41b8a2478b562285e2aae3f0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -4104,7 +4104,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -3918,7 +3918,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void startSeenByPlayer(ServerPlayer player) {}
diff --git a/patches/server/0863-Limit-pet-look-distance.patch b/patches/server/0852-Limit-pet-look-distance.patch
index 915187e43e..915187e43e 100644
--- a/patches/server/0863-Limit-pet-look-distance.patch
+++ b/patches/server/0852-Limit-pet-look-distance.patch
diff --git a/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch
index 4398db1d19..3a7ad38e7b 100644
--- a/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch
+++ b/patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch
@@ -8,7 +8,7 @@ Fixes some wrong reasons, and adds missing spawn reasons for entities.
Co-authored-by: Doc <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 2fa2e5cada590c0f44a4735bcf20de51892f428b..3c4a57bc6159eac53fe37e817e765018d4b2bec9 100644
+index 3ddb1cc0edddcf77c1b5d6157247498cb90c57a7..847b2637434561e50e3f4f1a3e58cea50caab9f2 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -353,7 +353,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0866-fix-Instruments.patch b/patches/server/0854-fix-Instruments.patch
index c55f770244..c55f770244 100644
--- a/patches/server/0866-fix-Instruments.patch
+++ b/patches/server/0854-fix-Instruments.patch
diff --git a/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
index 638f7e665c..187a68ae37 100644
--- a/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
+++ b/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff 100644
+index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..42a086dcebcdba6ce19a8d0e77ba88ba91d63669 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -1078,15 +1078,15 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -995,15 +995,15 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.shapeExceedsCube; // Paper - moved into shape cache init
}
@@ -28,7 +28,7 @@ index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c922094
return this.isAir;
}
-@@ -1170,7 +1170,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -1087,7 +1087,7 @@ public abstract class BlockBehaviour implements FeatureElement {
}
}
@@ -37,7 +37,7 @@ index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c922094
return this.canOcclude;
}
-@@ -1378,11 +1378,11 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -1295,11 +1295,11 @@ public abstract class BlockBehaviour implements FeatureElement {
return this.getBlock().builtInRegistryHolder().is(key);
}
diff --git a/patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
index 2ffca4c12c..2ffca4c12c 100644
--- a/patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
+++ b/patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch
diff --git a/patches/server/0869-Add-BlockLockCheckEvent.patch b/patches/server/0857-Add-BlockLockCheckEvent.patch
index 07ffc14ac2..07ffc14ac2 100644
--- a/patches/server/0869-Add-BlockLockCheckEvent.patch
+++ b/patches/server/0857-Add-BlockLockCheckEvent.patch
diff --git a/patches/server/0870-Add-Sneaking-API-for-Entities.patch b/patches/server/0858-Add-Sneaking-API-for-Entities.patch
index 116708204d..0a0f88cbef 100644
--- a/patches/server/0870-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0858-Add-Sneaking-API-for-Entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 49e5a9fa95ebf4568eb875953f3032b8a7142080..35b6aa33b7715032686acdfd8e5b07d63729593b 100644
+index dab7108644aefe69448b5e361099d97354c8db1a..243726b6f503acc7d8ced18fbc4e697982a3fc4f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -871,6 +871,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0871-Improve-logging-and-errors.patch b/patches/server/0859-Improve-logging-and-errors.patch
index f10cdbe3e8..852cf6ed58 100644
--- a/patches/server/0871-Improve-logging-and-errors.patch
+++ b/patches/server/0859-Improve-logging-and-errors.patch
@@ -40,10 +40,10 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5
while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0fe7770fd4506980667e154c83d7024112cac26d..9b7da229e8dc8249b36e7ccf1e77997a146efb88 100644
+index e868c434be0bf223728b439df9a0db6afeaee46e..058ee906665d64b3631be5a6b9de39bd65bcf6be 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3390,7 +3390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3316,7 +3316,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
diff --git a/patches/server/0872-Improve-PortalEvents.patch b/patches/server/0860-Improve-PortalEvents.patch
index c3be194782..663ad158f5 100644
--- a/patches/server/0872-Improve-PortalEvents.patch
+++ b/patches/server/0860-Improve-PortalEvents.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index c15c3e4da36c8804934c2c0b046aabd457be6855..2777f71abf23be6748b0a80fe4dd64a89d38ffdb 100644
+index c6cddb7099cf713e41b8a2478b562285e2aae3f0..3c9e58f033932bc6c2fad33cd54107952c19b1f2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3762,7 +3762,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -3576,7 +3576,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
Location enter = bukkitEntity.getLocation();
Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld());
diff --git a/patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch
index 8d59d9f5d1..8d59d9f5d1 100644
--- a/patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch
+++ b/patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch
diff --git a/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch
index f694ecb04d..32d796a32f 100644
--- a/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 9b7da229e8dc8249b36e7ccf1e77997a146efb88..813f42c2f3925bd50f08b0a4f422bbff91e003e5 100644
+index 058ee906665d64b3631be5a6b9de39bd65bcf6be..07850cf4117f05bfbd96a4f02fd57db1566f90af 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2134,7 +2134,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2060,7 +2060,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start
String command = "/" + packet.command();
diff --git a/patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
index 581ad00ec1..581ad00ec1 100644
--- a/patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
+++ b/patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch
diff --git a/patches/server/0876-Flying-Fall-Damage.patch b/patches/server/0864-Flying-Fall-Damage.patch
index de70f746b5..4a0d52fb18 100644
--- a/patches/server/0876-Flying-Fall-Damage.patch
+++ b/patches/server/0864-Flying-Fall-Damage.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index d72ea2f3d9528f79149791e34065ea1f299cd089..7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd 100644
+index 06aef23895f486efc7eb00c35df356d0a88d58ed..a629755f07415997e6dbdd96f9b447b90e20b1d5 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
index 3d4a817cae..b5625b7768 100644
--- a/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
+++ b/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
@@ -130,7 +130,7 @@ index f81c0d07a5efc92942d8ab5c50a8260db033307d..8afc396c162d928902a9d9beb9f039b0
// See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity)
private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index fe855fd532e80a2d6b10053670dfb1b8fc009ac2..019c333a477e6e5f90447110f39ba0e9591a56f3 100644
+index 944bb12b14d50cdd7064ae7300c71465e15cb217..d55c52e6a89ddd469fdd648fbe5d0f44a60b0892 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1045,7 +1045,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
index 18f693331e..8bef620364 100644
--- a/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
+++ b/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2777f71abf23be6748b0a80fe4dd64a89d38ffdb..511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770 100644
+index 3c9e58f033932bc6c2fad33cd54107952c19b1f2..128c21c6fada9de2569e97f3a03decf2d36649c8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1161,7 +1161,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1126,7 +1126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
if (!bl.getType().isAir()) {
diff --git a/patches/server/0879-config-for-disabling-entity-tag-tags.patch b/patches/server/0867-config-for-disabling-entity-tag-tags.patch
index d9fd989731..345d6b5981 100644
--- a/patches/server/0879-config-for-disabling-entity-tag-tags.patch
+++ b/patches/server/0867-config-for-disabling-entity-tag-tags.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] config for disabling entity tag tags
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 3c4a57bc6159eac53fe37e817e765018d4b2bec9..dd4cf9011bf48623e95d5d0f3ff27ee962c88200 100644
+index 847b2637434561e50e3f4f1a3e58cea50caab9f2..a6e20b5ee4fe1841dfc2350264b5935b968fe3f3 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -497,6 +497,13 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0880-Use-single-player-info-update-packet-on-join.patch b/patches/server/0868-Use-single-player-info-update-packet-on-join.patch
index 32a22c8803..a16546c0e7 100644
--- a/patches/server/0880-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0868-Use-single-player-info-update-packet-on-join.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 813f42c2f3925bd50f08b0a4f422bbff91e003e5..7fea36c86d5f11604aa910c84a26898519b61422 100644
+index 07850cf4117f05bfbd96a4f02fd57db1566f90af..50f2c11d98dc4e8aa2e6f577fc802279e33e3e6b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3420,7 +3420,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3346,7 +3346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID());
this.chatMessageChain.append(() -> {
this.player.setChatSession(session);
@@ -18,7 +18,7 @@ index 813f42c2f3925bd50f08b0a4f422bbff91e003e5..7fea36c86d5f11604aa910c84a268985
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a625091f59aadccae7fc40c94b620248bca125de..f13bb3e384b45f8dd34b61de372c1068437a0f90 100644
+index 56242bc33ed435e3ab06d7c7bebc05c255538633..571354de840bce6fe86f45a1ba38ef923228f27a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -358,6 +358,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch
index 00d0733f65..049130cd16 100644
--- a/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch
@@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem
of undying was found and the event was called uncancelled.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index c13a7ae57c046832f65af11dc5efbc7b197b6f74..a0b7ab6a740992ff7b498effe16dc0c09a3b3f84 100644
+index 89b2977e848afb6ff577382d69616be40fd28a75..32f147ff4c5c889d8ce3c11d5b0c5274f2774248 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0882-Win-Screen-API.patch b/patches/server/0870-Win-Screen-API.patch
index e699a45b6a..e699a45b6a 100644
--- a/patches/server/0882-Win-Screen-API.patch
+++ b/patches/server/0870-Win-Screen-API.patch
diff --git a/patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch
index 4dff637cb9..4dff637cb9 100644
--- a/patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch
diff --git a/patches/server/0884-Fix-force-opening-enchantment-tables.patch b/patches/server/0872-Fix-force-opening-enchantment-tables.patch
index 70439d1f0f..70439d1f0f 100644
--- a/patches/server/0884-Fix-force-opening-enchantment-tables.patch
+++ b/patches/server/0872-Fix-force-opening-enchantment-tables.patch
diff --git a/patches/server/0885-Add-Entity-Body-Yaw-API.patch b/patches/server/0873-Add-Entity-Body-Yaw-API.patch
index 7821430318..f7b3bebaf7 100644
--- a/patches/server/0885-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0873-Add-Entity-Body-Yaw-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 35b6aa33b7715032686acdfd8e5b07d63729593b..e1a3d047743befa9fbc26e7491cb982df19b2f0c 100644
+index 243726b6f503acc7d8ced18fbc4e697982a3fc4f..8692e54ee6defecf391884488121fef84731eac6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1139,6 +1139,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1135,6 +1135,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isInPowderedSnow() {
return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed.
}
diff --git a/patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
index efaf1a6e90..efaf1a6e90 100644
--- a/patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
+++ b/patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch
diff --git a/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch
index 6d30351d9c..91148395bb 100644
--- a/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch
+++ b/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index b5815acea75cd70f65d9eb2b554b435c91be9994..460b1c589d335e1c74cffc8d39fa1e4a1abd45c7 100644
+index d21667480e585c7a124e9c53b4a22fa1a8115082..9464d79b8adb5099c4ba4400e5fa8ae6ce7be500 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -922,6 +922,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -554,6 +554,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags);
this.capturedBlockStates.put(pos.immutable(), blockstate);
}
diff --git a/patches/server/0888-Add-EntityFertilizeEggEvent.patch b/patches/server/0876-Add-EntityFertilizeEggEvent.patch
index 3558b6dd4d..6191dc1646 100644
--- a/patches/server/0888-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0876-Add-EntityFertilizeEggEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityFertilizeEggEvent
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
-index 2a3f1d14a4b24a3219d191b4f2e97ed7b061e006..f97bdfbd07db000845d3b791de64056c3c23f7ba 100644
+index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..1a2a4dcb3cfa2690f2aa936a6c176319d807bd74 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -445,6 +445,10 @@ public class Turtle extends Animal {
@@ -69,7 +69,7 @@ index 0e85e3ab58d848b119212fa7d2eb4f92d3efe29b..0a5b953bd8c0c7f181da4090b950e9e6
this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F);
} // Paper - Call EntityDropItemEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 019c333a477e6e5f90447110f39ba0e9591a56f3..0d407f06866571f3d87891e1a22d7aef625b39db 100644
+index d55c52e6a89ddd469fdd648fbe5d0f44a60b0892..8925e85ebbdbca9b9c8527c5494e190b989d1291 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -2092,4 +2092,29 @@ public class CraftEventFactory {
diff --git a/patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
index 39cf518fa6..39cf518fa6 100644
--- a/patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
+++ b/patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch
diff --git a/patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
index c5176a356f..c5176a356f 100644
--- a/patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
+++ b/patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch
diff --git a/patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch
index ea22d29006..ea22d29006 100644
--- a/patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch
+++ b/patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch
diff --git a/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch
index a1bff3ea41..712823f2d6 100644
--- a/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch
@@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a
return !this.getResponse();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index a0b7ab6a740992ff7b498effe16dc0c09a3b3f84..169590748b65c3160361ae41d124e7651871c7f0 100644
+index 32f147ff4c5c889d8ce3c11d5b0c5274f2774248..722273f0307a920365d3b2ca2879e5fc8cc5a398 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0893-Fix-text-display-error-on-spawn.patch b/patches/server/0881-Fix-text-display-error-on-spawn.patch
index 7074ea7170..7074ea7170 100644
--- a/patches/server/0893-Fix-text-display-error-on-spawn.patch
+++ b/patches/server/0881-Fix-text-display-error-on-spawn.patch
diff --git a/patches/server/0894-Fix-inventories-returning-null-Locations.patch b/patches/server/0882-Fix-inventories-returning-null-Locations.patch
index 9cf8fcb0e6..9cf8fcb0e6 100644
--- a/patches/server/0894-Fix-inventories-returning-null-Locations.patch
+++ b/patches/server/0882-Fix-inventories-returning-null-Locations.patch
diff --git a/patches/server/0895-Add-Shearable-API.patch b/patches/server/0883-Add-Shearable-API.patch
index 0cd904ff9d..0cd904ff9d 100644
--- a/patches/server/0895-Add-Shearable-API.patch
+++ b/patches/server/0883-Add-Shearable-API.patch
diff --git a/patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch
index 682696f502..682696f502 100644
--- a/patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch
+++ b/patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch
diff --git a/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch
index d8bf63c062..51f5e5014e 100644
--- a/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch
+++ b/patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e..71d93daa527ae34b83138394fa79289c403a33d8 100644
+index 23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac..0e9d515381a673e683b63a12c1a9e79a5eedd80b 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -422,6 +422,7 @@ public final class ItemStack {
diff --git a/patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
index 576441539c..576441539c 100644
--- a/patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
+++ b/patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch
diff --git a/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0887-Treat-sequence-violations-like-they-should-be.patch
index 3470210a4c..32175ef982 100644
--- a/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0887-Treat-sequence-violations-like-they-should-be.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7fea36c86d5f11604aa910c84a26898519b61422..ac126672d5fa58be8110c573abce5628f0532967 100644
+index 50f2c11d98dc4e8aa2e6f577fc802279e33e3e6b..522cb67c335ae831d560c8d452b263871782c3fd 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2038,6 +2038,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1964,6 +1964,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void ackBlockChangesUpTo(int sequence) {
if (sequence < 0) {
diff --git a/patches/server/0901-remove-duplicate-animate-packet-for-records.patch b/patches/server/0888-remove-duplicate-animate-packet-for-records.patch
index 9254f5b8cf..9254f5b8cf 100644
--- a/patches/server/0901-remove-duplicate-animate-packet-for-records.patch
+++ b/patches/server/0888-remove-duplicate-animate-packet-for-records.patch
diff --git a/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch
index 937e6c80c1..68ab96c59a 100644
--- a/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64
UPDATE_GAME_MODE((serialized, buf) -> {
serialized.gameMode = GameType.byId(buf.readVarInt());
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ac126672d5fa58be8110c573abce5628f0532967..91dbd137575c9191fcb48d561880f0b7a309334b 100644
+index 522cb67c335ae831d560c8d452b263871782c3fd..d2916743981c6632957ab8bed5ae7a2334c5646b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -49,7 +49,7 @@ index ac126672d5fa58be8110c573abce5628f0532967..91dbd137575c9191fcb48d561880f0b7
}
public void resetPosition() {
-@@ -3418,6 +3426,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3344,6 +3352,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void resetPlayerChatState(RemoteChatSession session) {
this.chatSession = session;
diff --git a/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
index 1f17b1f7b1..130ee87db0 100644
--- a/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
+++ b/patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 5b2de5cdac2440a4043c34525a0852067aa9371f..ab472d2e81c0756020ffb727db4b71aeb8d9d020 100644
+index a15bdf56c32b16c143c3060dc7d5f61544f8dc5f..d803b2c246f7e1935d2a466fe509df7fe80b2498 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1704,6 +1704,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1656,6 +1656,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
@Override
public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) {
diff --git a/patches/server/0904-Use-array-for-gamerule-storage.patch b/patches/server/0891-Use-array-for-gamerule-storage.patch
index 1629a3b7cf..1629a3b7cf 100644
--- a/patches/server/0904-Use-array-for-gamerule-storage.patch
+++ b/patches/server/0891-Use-array-for-gamerule-storage.patch
diff --git a/patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch
index 5e51d9930e..5e51d9930e 100644
--- a/patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch
+++ b/patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch
diff --git a/patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch
index 588524d49e..588524d49e 100644
--- a/patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch
+++ b/patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch
diff --git a/patches/server/0907-Add-Mob-Experience-reward-API.patch b/patches/server/0894-Add-Mob-Experience-reward-API.patch
index 874d481524..874d481524 100644
--- a/patches/server/0907-Add-Mob-Experience-reward-API.patch
+++ b/patches/server/0894-Add-Mob-Experience-reward-API.patch
diff --git a/patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch
index fd04a38431..fd04a38431 100644
--- a/patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch
+++ b/patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch
diff --git a/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch
index 82f43537bd..bb215c5eda 100644
--- a/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch
+++ b/patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0d407f06866571f3d87891e1a22d7aef625b39db..03ac6ae291945a31552956fc107a3854227e1151 100644
+index 8925e85ebbdbca9b9c8527c5494e190b989d1291..16ac933192a8d1c805e1b7d38fc1966d7de691a3 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1085,6 +1085,11 @@ public class CraftEventFactory {
diff --git a/patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch
index 346c3fd86c..346c3fd86c 100644
--- a/patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch
+++ b/patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch
diff --git a/patches/server/0911-More-accurate-isInOpenWater-impl.patch b/patches/server/0898-More-accurate-isInOpenWater-impl.patch
index ca26fd9045..ca26fd9045 100644
--- a/patches/server/0911-More-accurate-isInOpenWater-impl.patch
+++ b/patches/server/0898-More-accurate-isInOpenWater-impl.patch
diff --git a/patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
index 01fcd2b852..01fcd2b852 100644
--- a/patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
+++ b/patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch
diff --git a/patches/server/0914-Expand-PlayerItemMendEvent.patch b/patches/server/0900-Expand-PlayerItemMendEvent.patch
index 48868e0e00..ee6e1d3c4c 100644
--- a/patches/server/0914-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0900-Expand-PlayerItemMendEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemMendEvent
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
-index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6c03ccbac 100644
+index 36d5d1736bf826f3abc756277de431c94cabb744..e814b2ef2577f032d6760de2f798d4fe18c67d0c 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -337,7 +337,7 @@ public class ExperienceOrb extends Entity {
@@ -51,7 +51,7 @@ index 65bcc0b4a864c26a3167273230f642e0603c0702..c49d3448866caae8a2ceb51a45c3a056
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 03ac6ae291945a31552956fc107a3854227e1151..b0bcef03da4f4dfe41fb88b47bfec576af76f21b 100644
+index 16ac933192a8d1c805e1b7d38fc1966d7de691a3..8081fe1a1855b6c00bfa3914380ba045ed872292 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1321,10 +1321,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch
index 2b9a9a63bd..685db14db8 100644
--- a/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch
+++ b/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch
@@ -14,7 +14,7 @@ clearing the owner.
Co-authored-by: Warrior <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770..5af4da94c5710fd6d58fecbc60ba432c94319fe3 100644
+index 128c21c6fada9de2569e97f3a03decf2d36649c8..1a6d5af5a9cd91617696c5bc91d9a4d97ec617c4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -385,6 +385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -26,7 +26,7 @@ index 511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770..5af4da94c5710fd6d58fecbc60ba432c
public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled
public boolean persistentInvisibility = false;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index d01570d7c3c8c4bd40cafc32d02774b789355460..d6c0488618cedfa6fe47375daca4c38a8f49ccbc 100644
+index 0a207f3f2e4c0790e784fb4b0c3c2dfa49c39724..156809090f1f83ad68e7e2477a3cfddac5757a8e 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -50,14 +50,31 @@ public abstract class Projectile extends Entity implements TraceableEntity {
diff --git a/patches/server/0916-Add-transient-modifier-API.patch b/patches/server/0902-Add-transient-modifier-API.patch
index 8144e5dc44..8144e5dc44 100644
--- a/patches/server/0916-Add-transient-modifier-API.patch
+++ b/patches/server/0902-Add-transient-modifier-API.patch
diff --git a/patches/server/0917-Fix-block-place-logic.patch b/patches/server/0903-Fix-block-place-logic.patch
index 750fc73db9..c6a2251a6a 100644
--- a/patches/server/0917-Fix-block-place-logic.patch
+++ b/patches/server/0903-Fix-block-place-logic.patch
@@ -22,7 +22,7 @@ index 1ac739c92031e80c35e1af4417e6358346079580..8c54b92b65b3d379e14a11370b09d453
if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit
itemstack.shrink(1);
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58b37e35bf 100644
+index 0e9d515381a673e683b63a12c1a9e79a5eedd80b..096eb30dcfdd62b1d946891f7480e9d9c4dbb71d 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -493,13 +493,7 @@ public final class ItemStack {
@@ -41,10 +41,10 @@ index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 460b1c589d335e1c74cffc8d39fa1e4a1abd45c7..4ffbf7b738445bed08d9f889c6d9b5cadbb2165c 100644
+index 9464d79b8adb5099c4ba4400e5fa8ae6ce7be500..94c553295538c5c27783b11fc9449fead5fca70b 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1037,17 +1037,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -669,17 +669,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// CraftBukkit start
iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam
CraftWorld world = ((ServerLevel) this).getWorld();
diff --git a/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
index 9871a477c8..3b104d8aa3 100644
--- a/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
+++ b/patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 94cb7625c451df53de60783535ce0d58b37e35bf..5f3512f58124e0664666eeee541a6a22c022f75a 100644
+index 096eb30dcfdd62b1d946891f7480e9d9c4dbb71d..ecea96202f81e4955c0af554da070984e6e416ff 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -544,7 +544,11 @@ public final class ItemStack {
diff --git a/patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch
index 9054b42b6b..9054b42b6b 100644
--- a/patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch
+++ b/patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch
diff --git a/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
index 15631f0f32..9b243f8876 100644
--- a/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
+++ b/patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1b4837ddb216d66164a893f5a34c0505c6f1aab2..029b88ab23f9c1faa50fb4a367a56ede77008ea8 100644
+index fd31a716ec66235970af4854dd7d83c1f88e229d..fd1245ae71b05d283d2c56d05bc1959788f77a91 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -352,7 +352,11 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch
index 2fee78531f..2fee78531f 100644
--- a/patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch
+++ b/patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch
diff --git a/patches/server/0922-Fix-sniffer-removeExploredLocation.patch b/patches/server/0908-Fix-sniffer-removeExploredLocation.patch
index e8b1703090..e8b1703090 100644
--- a/patches/server/0922-Fix-sniffer-removeExploredLocation.patch
+++ b/patches/server/0908-Fix-sniffer-removeExploredLocation.patch
diff --git a/patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch
index 56ade4ed63..56ade4ed63 100644
--- a/patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch
+++ b/patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch
diff --git a/patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch
index e0a566756b..e0a566756b 100644
--- a/patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch
+++ b/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch
diff --git a/patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch
index cfcf15909a..cfcf15909a 100644
--- a/patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch
+++ b/patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch
diff --git a/patches/server/0926-Properly-cancel-usable-items.patch b/patches/server/0912-Properly-cancel-usable-items.patch
index a97f6e58dc..dba24348b6 100644
--- a/patches/server/0926-Properly-cancel-usable-items.patch
+++ b/patches/server/0912-Properly-cancel-usable-items.patch
@@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value
them in order for the client to reset their using item state.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 870447743db05043f6d3c0f2a699310077529636..84cc7d9b42cf8b2925ee433d87cb138d58a40fb3 100644
+index 521fc5fd6b66c7095c729dd4aaf49bbc443f0200..93ae151375608b6bbaa5e68a7384a04dc30a9502 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -557,6 +557,7 @@ public class ServerPlayerGameMode {
@@ -34,10 +34,10 @@ index 870447743db05043f6d3c0f2a699310077529636..84cc7d9b42cf8b2925ee433d87cb138d
return enuminteractionresult;
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 91dbd137575c9191fcb48d561880f0b7a309334b..a9a8850b2ddb4b4326542c7efa3f263b1f532b86 100644
+index d2916743981c6632957ab8bed5ae7a2334c5646b..33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1950,6 +1950,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1876,6 +1876,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (cancelled) {
@@ -46,7 +46,7 @@ index 91dbd137575c9191fcb48d561880f0b7a309334b..a9a8850b2ddb4b4326542c7efa3f263b
return;
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 169590748b65c3160361ae41d124e7651871c7f0..629d38851558207f302e9baa0157218d7c8596d7 100644
+index 722273f0307a920365d3b2ca2879e5fc8cc5a398..93eecdc6322dfc6161fbb80828d338aa4a311640 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0927-Add-event-for-player-editing-sign.patch b/patches/server/0913-Add-event-for-player-editing-sign.patch
index 62a97be048..9e38aba9d8 100644
--- a/patches/server/0927-Add-event-for-player-editing-sign.patch
+++ b/patches/server/0913-Add-event-for-player-editing-sign.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 5f3512f58124e0664666eeee541a6a22c022f75a..5756ab17e721d5886ed669a0527e18769b8e1b8b 100644
+index ecea96202f81e4955c0af554da070984e6e416ff..e14d928e8bf484c61f2687621623942a27f30db1 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -523,7 +523,7 @@ public final class ItemStack {
diff --git a/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch
deleted file mode 100644
index 2828d37eeb..0000000000
--- a/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Spottedleaf <[email protected]>
-Date: Mon, 15 May 2023 20:25:26 -0700
-Subject: [PATCH] Optimise recalcBlockCounts() for empty sections
-
-In 1.18, every chunk section is initialised to a non-null value
-and recalcBlockCounts() is invoked for each section.
-However, in a standard world, most sections are empty. In such cases,
-recalcBlockCounts() would iterate over ever position - even though
-the block data would all be air. To avoid this, we skip
-searching the section unless the palette indicates there _could_ be
-a non-air block state or non-empty fluid state.
-
-Chunk loading initially showed that recalcBlockCounts() over
-sections with a ZeroBitStorage data to to take ~20% of the process,
-now it takes <1%.
-
-diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
-index 6d340a9b64ae900dfe84eeeaf7a39f7e7a139198..1a473187c22c4158959a3aae33a6823229c5b7a7 100644
---- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
-+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
-@@ -144,6 +144,7 @@ public class LevelChunkSection {
- this.nonEmptyBlockCount = 0;
- this.tickingBlockCount = 0;
- this.tickingFluidCount = 0;
-+ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) { // Paper - Perf: do not run forEachLocation on clearly empty sections
- this.states.forEachLocation((BlockState iblockdata, int i) -> {
- FluidState fluid = iblockdata.getFluidState();
-
-@@ -169,6 +170,7 @@ public class LevelChunkSection {
- // Paper end - optimise collisions
-
- });
-+ } // Paper - Perf: do not run forEachLocation on clearly empty sections
- // Paper end
- }
-
diff --git a/patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch
index 7a1f001a2e..7a1f001a2e 100644
--- a/patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch
+++ b/patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch
diff --git a/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch
index 588d49923f..8bc99edf2c 100644
--- a/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch
+++ b/patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix cmd permission levels for command blocks
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
-index 21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9..623403c56d79e29421f340e97c05488efaf1893d 100644
+index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..faa375f2722793a86265248a4be4fa14736d9818 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
@@ -41,7 +41,7 @@ index 21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9..623403c56d79e29421f340e97c05488e
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
-index c1a80e0aa6692205f14d01b3c8c069e452101525..92e8aed5efd5c6f7f8baf44f4712209acd58cf83 100644
+index dd7c1ac97505ce7a846aa8ee91bb654d060acc1a..df06c28c778255cb2d8d5e14960bd38a2af9ad22 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -296,16 +296,7 @@ public class Commands {
diff --git a/patches/server/0930-Add-option-to-disable-block-updates.patch b/patches/server/0916-Add-option-to-disable-block-updates.patch
index f3797c4109..5550b0c010 100644
--- a/patches/server/0930-Add-option-to-disable-block-updates.patch
+++ b/patches/server/0916-Add-option-to-disable-block-updates.patch
@@ -108,7 +108,7 @@ index 92a24cf02f15f3ab893eb9a793770d9819e4f600..a541dc3a6e373b30fff0abf5305e7785
this.playNote(player, state, world, pos);
player.awardStat(Stats.TUNE_NOTEBLOCK);
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
-index a93a085b2e9564a2ff950fff505d856be7904863..3cb1db27dba902678a5848a1fb5e2c6ec6241e60 100644
+index 003fd247b12323cca5fd82a6cdf31bd897afd682..bdb99b799d1a97f1340c3d388d2901f7cb1c3527 100644
--- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
@@ -66,6 +66,7 @@ public class TripWireBlock extends Block {
@@ -139,7 +139,7 @@ index a93a085b2e9564a2ff950fff505d856be7904863..3cb1db27dba902678a5848a1fb5e2c6e
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
if (!moved && !state.is(newState.getBlock())) {
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true));
}
@@ -93,6 +97,7 @@ public class TripWireBlock extends Block {
@@ -154,10 +154,10 @@ index a93a085b2e9564a2ff950fff505d856be7904863..3cb1db27dba902678a5848a1fb5e2c6e
private void updateSource(Level world, BlockPos pos, BlockState state) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
- // Paper start - fix tripwire state inconsistency
- this.updateSource(world, pos, state, false);
- }
-@@ -140,6 +146,7 @@ public class TripWireBlock extends Block {
+ Direction[] aenumdirection = new Direction[]{Direction.SOUTH, Direction.WEST};
+ int i = aenumdirection.length;
+ int j = 0;
+@@ -134,6 +140,7 @@ public class TripWireBlock extends Block {
@Override
public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) {
@@ -165,7 +165,7 @@ index a93a085b2e9564a2ff950fff505d856be7904863..3cb1db27dba902678a5848a1fb5e2c6e
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
if (!world.isClientSide) {
if (!(Boolean) state.getValue(TripWireBlock.POWERED)) {
-@@ -150,6 +157,7 @@ public class TripWireBlock extends Block {
+@@ -144,6 +151,7 @@ public class TripWireBlock extends Block {
@Override
public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
diff --git a/patches/server/0931-Call-missing-BlockDispenseEvent.patch b/patches/server/0917-Call-missing-BlockDispenseEvent.patch
index 1dc0f4a812..37ab073a29 100644
--- a/patches/server/0931-Call-missing-BlockDispenseEvent.patch
+++ b/patches/server/0917-Call-missing-BlockDispenseEvent.patch
@@ -50,7 +50,7 @@ index a16fb04c014d3b2f3dac0610f8be81586d41c4e9..ad9eb752a2676c6acdba601b63a5fd16
for (int k = 0; k < 5; ++k) {
worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index b0bcef03da4f4dfe41fb88b47bfec576af76f21b..203824f47c705e621377f69baf8296073835e6ae 100644
+index 8081fe1a1855b6c00bfa3914380ba045ed872292..84e527cf6db14b1fe23a1b169c3bf5609c535e06 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -2098,6 +2098,32 @@ public class CraftEventFactory {
diff --git a/patches/server/0932-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch
index 5a73ddb1a0..a6777bb196 100644
--- a/patches/server/0932-Don-t-load-chunks-for-supporting-block-checks.patch
+++ b/patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5af4da94c5710fd6d58fecbc60ba432c94319fe3..e88a8c86c9d68807bd5026c43a9363b3f1186390 100644
+index 1a6d5af5a9cd91617696c5bc91d9a4d97ec617c4..fe61f868c595dedbc6ac9e2640c950436813151c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1361,7 +1361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1284,7 +1284,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
protected BlockPos getOnPos(float offset) {
diff --git a/patches/server/0933-Optimize-player-lookups-for-beacons.patch b/patches/server/0919-Optimize-player-lookups-for-beacons.patch
index a71b654065..a71b654065 100644
--- a/patches/server/0933-Optimize-player-lookups-for-beacons.patch
+++ b/patches/server/0919-Optimize-player-lookups-for-beacons.patch
diff --git a/patches/server/0934-Add-Sign-getInteractableSideFor.patch b/patches/server/0920-Add-Sign-getInteractableSideFor.patch
index a295746b04..a295746b04 100644
--- a/patches/server/0934-Add-Sign-getInteractableSideFor.patch
+++ b/patches/server/0920-Add-Sign-getInteractableSideFor.patch
diff --git a/patches/server/0935-Array-backed-synched-entity-data.patch b/patches/server/0921-Array-backed-synched-entity-data.patch
index a8b90f7b24..2345458940 100644
--- a/patches/server/0935-Array-backed-synched-entity-data.patch
+++ b/patches/server/0921-Array-backed-synched-entity-data.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Array backed synched entity data
Original code by jellysquid3 in Lithium, licensed under the GNU Lesser General Public License v3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
-index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..58b602e550258c1062ee940bc46538dac95d8979 100644
+index d088479d160dbd2fc90b48a30553be141db8eef2..07a362f9e485d0d507f16f1dda1ac84ade07ab27 100644
--- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
+++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
@@ -34,6 +34,11 @@ public class SynchedEntityData {
diff --git a/patches/server/0936-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0922-fix-item-meta-for-tadpole-buckets.patch
index ef43744d92..ef43744d92 100644
--- a/patches/server/0936-fix-item-meta-for-tadpole-buckets.patch
+++ b/patches/server/0922-fix-item-meta-for-tadpole-buckets.patch
diff --git a/patches/server/0937-Fix-BanList-API.patch b/patches/server/0923-Fix-BanList-API.patch
index 2636191597..2636191597 100644
--- a/patches/server/0937-Fix-BanList-API.patch
+++ b/patches/server/0923-Fix-BanList-API.patch
diff --git a/patches/server/0938-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0924-Determine-lava-and-water-fluid-explosion-resistance-.patch
index bea2e1c86f..bea2e1c86f 100644
--- a/patches/server/0938-Determine-lava-and-water-fluid-explosion-resistance-.patch
+++ b/patches/server/0924-Determine-lava-and-water-fluid-explosion-resistance-.patch
diff --git a/patches/server/0939-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0925-Fix-possible-NPE-on-painting-creation.patch
index a503b8ac40..a503b8ac40 100644
--- a/patches/server/0939-Fix-possible-NPE-on-painting-creation.patch
+++ b/patches/server/0925-Fix-possible-NPE-on-painting-creation.patch
diff --git a/patches/server/0940-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
index 9214a4ff32..9214a4ff32 100644
--- a/patches/server/0940-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
+++ b/patches/server/0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch
diff --git a/patches/server/0941-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0927-ExperienceOrb-should-call-EntitySpawnEvent.patch
index 36bd074948..c240e01326 100644
--- a/patches/server/0941-ExperienceOrb-should-call-EntitySpawnEvent.patch
+++ b/patches/server/0927-ExperienceOrb-should-call-EntitySpawnEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 203824f47c705e621377f69baf8296073835e6ae..9af251585723ab963a16f0a0405276666e14ce2b 100644
+index 84e527cf6db14b1fe23a1b169c3bf5609c535e06..f64a0628f5d487cb113d86319d7b51237b4a9f6e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -734,7 +734,8 @@ public class CraftEventFactory {
diff --git a/patches/server/0942-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
index 96b4aa8c41..96b4aa8c41 100644
--- a/patches/server/0942-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
+++ b/patches/server/0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch
diff --git a/patches/server/0943-Add-whitelist-events.patch b/patches/server/0929-Add-whitelist-events.patch
index 44cddb390d..44cddb390d 100644
--- a/patches/server/0943-Add-whitelist-events.patch
+++ b/patches/server/0929-Add-whitelist-events.patch
diff --git a/patches/server/0944-Implement-PlayerFailMoveEvent.patch b/patches/server/0930-Implement-PlayerFailMoveEvent.patch
index 5273159be3..18dddf876c 100644
--- a/patches/server/0944-Implement-PlayerFailMoveEvent.patch
+++ b/patches/server/0930-Implement-PlayerFailMoveEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerFailMoveEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1de49e63b5 100644
+index 33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3..22855d2790ac8b7c382d0355a372e9bebf7b530f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1313,8 +1313,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1279,8 +1279,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); final double toX = d0; // Paper - OBFHELPER
double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); final double toY = d1;
double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER
@@ -19,7 +19,7 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d
if (this.player.isPassenger()) {
this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1);
-@@ -1379,8 +1379,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1345,8 +1345,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper start - Prevent moving into unloaded chunks
if (this.player.level().paperConfig().chunks.preventMovingIntoUnloadedChunks && (this.player.getX() != toX || this.player.getZ() != toZ) && !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position())))) {
@@ -36,7 +36,7 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d
}
// Paper end - Prevent moving into unloaded chunks
-@@ -1389,9 +1395,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1355,9 +1361,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
// CraftBukkit end
@@ -56,45 +56,47 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d
}
}
}
-@@ -1457,8 +1470,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
- boolean flag2 = false;
+@@ -1419,14 +1432,29 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+
+ d8 = d2 - this.player.getZ();
+ d10 = d6 * d6 + d7 * d7 + d8 * d8;
+- boolean flag2 = false;
++ boolean movedWrongly = false; // Paper - Add fail move event; rename
if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
+- flag2 = true;
+ // Paper start - Add fail move event
+ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_WRONGLY,
+ toX, toY, toZ, toYaw, toPitch, true);
+ if (!event.isAllowed()) {
- flag2 = true; // Paper - diff on change, this should be moved wrongly
++ movedWrongly = true;
+ if (event.getLogWarning())
ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!", this.player.getName().getString());
+ }
-+ // Paper end - Add fail move event
}
- // Paper start - optimise out extra getCubes
-@@ -1471,6 +1491,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
- if (didCollide || !axisalignedbb.equals(newBox)) {
- // note: only call after setLocation, or else getBoundingBox is wrong
- teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox);
-+ // Paper start - Add fail move event
-+ if (teleportBack) {
-+ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
-+ toX, toY, toZ, toYaw, toPitch, false);
-+ if (event.isAllowed()) {
-+ teleportBack = false;
-+ }
-+ }
-+ // Paper end - Add fail move event
- } // else: no collision at all detected, why do we care?
- }
- if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes
-@@ -1564,6 +1593,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
- }
- }
+- if (!this.player.noPhysics && !this.player.isSleeping() && (flag2 && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2))) {
++ boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && (movedWrongly && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2));
++ if (teleportBack) {
++ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
++ toX, toY, toZ, toYaw, toPitch, false);
++ if (event.isAllowed()) {
++ teleportBack = false;
++ }
++ }
++ if (teleportBack) {
++ // Paper end - Add fail move event
+ this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
+ this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround());
+ } else {
+@@ -3371,4 +3399,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+ InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand);
+ }
++
+ // Paper start - Add fail move event
+ private io.papermc.paper.event.player.PlayerFailMoveEvent fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason failReason,
-+ double toX, double toY, double toZ, float toYaw, float toPitch, boolean logWarning) {
++ double toX, double toY, double toZ, float toYaw, float toPitch, boolean logWarning) {
+ Player player = this.getCraftPlayer();
+ Location from = new Location(player.getWorld(), this.lastPosX, this.lastPosY, this.lastPosZ, this.lastYaw, this.lastPitch);
+ Location to = new Location(player.getWorld(), toX, toY, toZ, toYaw, toPitch);
@@ -104,6 +106,4 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d
+ return event;
+ }
+ // Paper end - Add fail move event
- // Paper start - optimise out extra getCubes
- private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) {
- final List<AABB> collisionsBB = new java.util.ArrayList<>();
+ }
diff --git a/patches/server/0945-Folia-scheduler-and-owned-region-API.patch b/patches/server/0931-Folia-scheduler-and-owned-region-API.patch
index 76aeed293a..85e5d959c0 100644
--- a/patches/server/0945-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0931-Folia-scheduler-and-owned-region-API.patch
@@ -1148,10 +1148,10 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index afc23f859188a6cda27a683babd551c250a748ef..174f3dab7c7f02dd09d02dc8b4e69190284c3f48 100644
+index 8d39cce9f938260817f00f42326771be8ff0fbaf..fe9a5820d82e5563b53d949af060e80cc7a259f6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1558,6 +1558,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftTimings.bukkitSchedulerTimer.startTiming(); // Spigot // Paper
this.server.getScheduler().mainThreadHeartbeat(this.tickCount); // CraftBukkit
MinecraftTimings.bukkitSchedulerTimer.stopTiming(); // Spigot // Paper
@@ -1173,7 +1173,7 @@ index afc23f859188a6cda27a683babd551c250a748ef..174f3dab7c7f02dd09d02dc8b4e69190
this.profiler.push("commandFunctions");
MinecraftTimings.commandFunctionsTimer.startTiming(); // Spigot // Paper
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index f13bb3e384b45f8dd34b61de372c1068437a0f90..c1827d7619e5b7d519d2f8b21641ac8b059720a7 100644
+index 571354de840bce6fe86f45a1ba38ef923228f27a..982a9e5cba5b37e58c71a8339e05703e9f351a57 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -649,6 +649,7 @@ public abstract class PlayerList {
@@ -1185,7 +1185,7 @@ index f13bb3e384b45f8dd34b61de372c1068437a0f90..c1827d7619e5b7d519d2f8b21641ac8b
this.players.remove(entityplayer);
this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index e88a8c86c9d68807bd5026c43a9363b3f1186390..617f96f0def49f9c0331963da01df8245046da66 100644
+index fe61f868c595dedbc6ac9e2640c950436813151c..03bc38ef6a31e762a2db9e1993e064eb1656a986 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -248,11 +248,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1213,7 +1213,7 @@ index e88a8c86c9d68807bd5026c43a9363b3f1186390..617f96f0def49f9c0331963da01df824
@Override
public CommandSender getBukkitSender(CommandSourceStack wrapper) {
return this.getBukkitEntity();
-@@ -4733,6 +4745,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -4543,6 +4555,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return;
}
// Paper end - rewrite chunk system
@@ -1221,7 +1221,7 @@ index e88a8c86c9d68807bd5026c43a9363b3f1186390..617f96f0def49f9c0331963da01df824
if (this.removalReason == null) {
this.removalReason = reason;
}
-@@ -4743,12 +4756,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -4553,12 +4566,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
if (reason != RemovalReason.UNLOADED_TO_CHUNK) this.getPassengers().forEach(Entity::stopRiding); // Paper - chunk system - don't adjust passenger state when unloading, it's just not safe (and messes with our logic in entity chunk unload)
this.levelCallback.onRemove(reason);
@@ -1251,7 +1251,7 @@ index e88a8c86c9d68807bd5026c43a9363b3f1186390..617f96f0def49f9c0331963da01df824
public void setLevelCallback(EntityInLevelCallback changeListener) {
this.levelCallback = changeListener;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 50868ed5d90c404cb5da05956c879ca0f090455c..74b0a638c3f8098895c0855894d029f12fc55197 100644
+index fd1245ae71b05d283d2c56d05bc1959788f77a91..84d98fd048e15f43db02c1f5c52ca35f153be1a1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -306,6 +306,76 @@ public final class CraftServer implements Server {
@@ -1332,7 +1332,7 @@ index 50868ed5d90c404cb5da05956c879ca0f090455c..74b0a638c3f8098895c0855894d029f1
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index e1a3d047743befa9fbc26e7491cb982df19b2f0c..a7ae0e0c69a4b78bcef746763a208897f7678a94 100644
+index 8692e54ee6defecf391884488121fef84731eac6..ed760cce3ee719b89bb6636063a384eb9fd84deb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -67,6 +67,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0946-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0932-Only-erase-allay-memory-on-non-item-targets.patch
index 4afac36fc3..4afac36fc3 100644
--- a/patches/server/0946-Only-erase-allay-memory-on-non-item-targets.patch
+++ b/patches/server/0932-Only-erase-allay-memory-on-non-item-targets.patch
diff --git a/patches/server/0947-API-for-updating-recipes-on-clients.patch b/patches/server/0933-API-for-updating-recipes-on-clients.patch
index 4dfcfc785b..93e1ca4c58 100644
--- a/patches/server/0947-API-for-updating-recipes-on-clients.patch
+++ b/patches/server/0933-API-for-updating-recipes-on-clients.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] API for updating recipes on clients
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index c1827d7619e5b7d519d2f8b21641ac8b059720a7..ab750eb0f3520c4bc5f6d06ea095e0bf67d8bdf4 100644
+index 982a9e5cba5b37e58c71a8339e05703e9f351a57..86c1bb0d324cb070b1dbab8222913d4b46c4a94a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1545,6 +1545,13 @@ public abstract class PlayerList {
@@ -39,7 +39,7 @@ index c1827d7619e5b7d519d2f8b21641ac8b059720a7..ab750eb0f3520c4bc5f6d06ea095e0bf
Iterator iterator1 = this.players.iterator();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 74b0a638c3f8098895c0855894d029f12fc55197..70e127a86d710278f525bf03164384e9735dac62 100644
+index 84d98fd048e15f43db02c1f5c52ca35f153be1a1..da5eaf620612b65e7851ec299082c60ea5613b09 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1129,6 +1129,18 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0948-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0934-Fix-rotation-when-spawning-display-entities.patch
index afe854d47e..afe854d47e 100644
--- a/patches/server/0948-Fix-rotation-when-spawning-display-entities.patch
+++ b/patches/server/0934-Fix-rotation-when-spawning-display-entities.patch
diff --git a/patches/server/0949-Only-capture-actual-tree-growth.patch b/patches/server/0935-Only-capture-actual-tree-growth.patch
index af54c5bc49..f48c3370ab 100644
--- a/patches/server/0949-Only-capture-actual-tree-growth.patch
+++ b/patches/server/0935-Only-capture-actual-tree-growth.patch
@@ -17,7 +17,7 @@ index ad9eb752a2676c6acdba601b63a5fd1611316267..738f6348c14b0f6942f90d15b082e16d
}
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 5756ab17e721d5886ed669a0527e18769b8e1b8b..a33f22f03c54abed5fc24022a8b5f4af007e4597 100644
+index e14d928e8bf484c61f2687621623942a27f30db1..0fd5decb0790423aba80a7c1e55ce39aff6761b4 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -422,6 +422,7 @@ public final class ItemStack {
@@ -29,13 +29,13 @@ index 5756ab17e721d5886ed669a0527e18769b8e1b8b..a33f22f03c54abed5fc24022a8b5f4af
}
entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 4ffbf7b738445bed08d9f889c6d9b5cadbb2165c..1fd66fce58909b2001652f7d1d13028abee5fef7 100644
+index 94c553295538c5c27783b11fc9449fead5fca70b..0b2e7e098ad0d8250156a6277491676357e0b1db 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
- return null;
+@@ -1494,4 +1494,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+ return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent
}
- // Paper end - optimize redstone (Alternate Current)
+ // Paper end - respect global sound events gamerule
+ // Paper start - notify observers even if grow failed
+ public void checkCapturedTreeStateForObserverNotify(final BlockPos pos, final CraftBlockState craftBlockState) {
+ // notify observers if the block state is the same and the Y level equals the original y level (for mega trees)
diff --git a/patches/server/0950-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0936-Use-correct-source-for-mushroom-block-spread-event.patch
index b1a7bde7b7..b1a7bde7b7 100644
--- a/patches/server/0950-Use-correct-source-for-mushroom-block-spread-event.patch
+++ b/patches/server/0936-Use-correct-source-for-mushroom-block-spread-event.patch
diff --git a/patches/server/0951-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0937-Respect-randomizeData-on-more-entities-when-spawning.patch
index 0b50ce9b7b..0b50ce9b7b 100644
--- a/patches/server/0951-Respect-randomizeData-on-more-entities-when-spawning.patch
+++ b/patches/server/0937-Respect-randomizeData-on-more-entities-when-spawning.patch
diff --git a/patches/server/0952-Use-correct-seed-on-api-world-load.patch b/patches/server/0938-Use-correct-seed-on-api-world-load.patch
index 62df8c490c..5db2383afb 100644
--- a/patches/server/0952-Use-correct-seed-on-api-world-load.patch
+++ b/patches/server/0938-Use-correct-seed-on-api-world-load.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use correct seed on api world load
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 70e127a86d710278f525bf03164384e9735dac62..8f271c3dbd320cff7618b876e44cf566706643e7 100644
+index da5eaf620612b65e7851ec299082c60ea5613b09..a92f92f63366fd1d23d80e82863141150ff9d4e3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1347,7 +1347,7 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0953-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0939-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
index 6701e32f16..6701e32f16 100644
--- a/patches/server/0953-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
+++ b/patches/server/0939-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch
diff --git a/patches/server/0954-Cache-map-ids-on-item-frames.patch b/patches/server/0940-Cache-map-ids-on-item-frames.patch
index f04e56a45f..f04e56a45f 100644
--- a/patches/server/0954-Cache-map-ids-on-item-frames.patch
+++ b/patches/server/0940-Cache-map-ids-on-item-frames.patch
diff --git a/patches/server/0955-Fix-custom-statistic-criteria-creation.patch b/patches/server/0941-Fix-custom-statistic-criteria-creation.patch
index cb796007fd..cb796007fd 100644
--- a/patches/server/0955-Fix-custom-statistic-criteria-creation.patch
+++ b/patches/server/0941-Fix-custom-statistic-criteria-creation.patch
diff --git a/patches/server/0956-Bandaid-fix-for-Effect.patch b/patches/server/0942-Bandaid-fix-for-Effect.patch
index 7c6ed5b0a3..86ebc65cfd 100644
--- a/patches/server/0956-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0942-Bandaid-fix-for-Effect.patch
@@ -60,7 +60,7 @@ index a4519762175c68256b1f303daca8b9408ac182bb..457e9093adb99d31ffc7f061d8c858f9
case COMPOSTER_FILL_ATTEMPT:
datavalue = ((Boolean) data) ? 1 : 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d4fae4420b96520b2e1f6db40141e5392559c6fe..55330b6b5e52f67d7490a2932a0ac7ec0387f145 100644
+index 7899e9c905dd420821f1c422c6c07e63ac4d3121..654267fcb560c45ad2db8712c056d097b1bf4904 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1430,7 +1430,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0957-SculkCatalyst-bloom-API.patch b/patches/server/0943-SculkCatalyst-bloom-API.patch
index 77742addde..77742addde 100644
--- a/patches/server/0957-SculkCatalyst-bloom-API.patch
+++ b/patches/server/0943-SculkCatalyst-bloom-API.patch
diff --git a/patches/server/0958-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0944-API-for-an-entity-s-scoreboard-name.patch
index 13423e20d2..3183c6cdf6 100644
--- a/patches/server/0958-API-for-an-entity-s-scoreboard-name.patch
+++ b/patches/server/0944-API-for-an-entity-s-scoreboard-name.patch
@@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different
methods depending on the implementation of Entity you were working with.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index a7ae0e0c69a4b78bcef746763a208897f7678a94..7abc465b815ed645e84fa6fdd8eda7f4ba87b104 100644
+index ed760cce3ee719b89bb6636063a384eb9fd84deb..cc14e635a5f2f8afe593afc676c718c431361dfb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1195,4 +1195,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1191,4 +1191,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return !this.getHandle().level().noCollision(this.getHandle(), aabb);
}
// Paper end - Collision API
diff --git a/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0945-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
index e176aff119..2b706086ec 100644
--- a/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
+++ b/patches/server/0945-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
@@ -38,7 +38,7 @@ index 4a597dd278947c7992d3c09e0813780689cbd9ab..ebf69ec2830a3e3121707fd958f31180
// Paper end - Optional per player mob spawns
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 816678438c1714a757e5d1eebc38f101a0692521..e3618e76f9ce4d585287d0754193c2793ba1e492 100644
+index 25009accd401fc3860c57cac1ef628b233e746e7..15139198a02e366c0bbfcd5495a21c48e05b3a23 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -539,7 +539,17 @@ public class ServerChunkCache extends ChunkSource {
@@ -61,7 +61,7 @@ index 816678438c1714a757e5d1eebc38f101a0692521..e3618e76f9ce4d585287d0754193c279
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
} else {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e7f886074ddb4f5a7cb6a40c4fc57cf45418082d..f0b4c02b0c902a65f9cadfdb6ee7b451cf2cbe70 100644
+index 46a69ef6794065e144e4948ad165a1ea0f0e2f33..4520a6dddddb3857245c4dc8a0260664fba2dde6 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -260,6 +260,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0960-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0946-Deprecate-and-replace-methods-with-old-StructureType.patch
index b46aeb3155..960d7f1716 100644
--- a/patches/server/0960-Deprecate-and-replace-methods-with-old-StructureType.patch
+++ b/patches/server/0946-Deprecate-and-replace-methods-with-old-StructureType.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8f271c3dbd320cff7618b876e44cf566706643e7..4e0935274997bc4d2fb4119245c152d14993ac56 100644
+index a92f92f63366fd1d23d80e82863141150ff9d4e3..28b02fee73a3ab604f6921800a7ede59e2e6f414 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1951,6 +1951,11 @@ public final class CraftServer implements Server {
diff --git a/patches/server/0961-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0947-Don-t-tab-complete-namespaced-commands-if-send-names.patch
index 5d766e8a39..4974e1609b 100644
--- a/patches/server/0961-Don-t-tab-complete-namespaced-commands-if-send-names.patch
+++ b/patches/server/0947-Don-t-tab-complete-namespaced-commands-if-send-names.patch
@@ -11,10 +11,10 @@ This patch prevents server from sending namespaced commands when player
requests tab-complete only commands.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0ea2e00372659174e9fd941428e30d1de49e63b5..3e20918724125e7e60f880026bbc93e7cca06897 100644
+index 22855d2790ac8b7c382d0355a372e9bebf7b530f..a48915fb14e0bfba762853924913b7760a8aec2f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -804,6 +804,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -770,6 +770,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack());
this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
diff --git a/patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch
index 337ed7f3d2..07e3ba5929 100644
--- a/patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch
+++ b/patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch
@@ -9,7 +9,7 @@ food consumption, turtle egg count decreases, ice to water
conversions and beehive releases
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 84cc7d9b42cf8b2925ee433d87cb138d58a40fb3..98ebffb4f0345aa06c1cfbd404f0884ecc523d69 100644
+index 93ae151375608b6bbaa5e68a7384a04dc30a9502..b48663de0d749f2a6b53c7ad6ff7941e9e8072d6 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -433,8 +433,8 @@ public class ServerPlayerGameMode {
@@ -39,7 +39,7 @@ index a0ab721a01faccf216259c46e6d6f638426732c2..2d4a770ec7c0737eee6f06b32958716d
BeehiveBlockEntity tileentitybeehive = (BeehiveBlockEntity) blockEntity;
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
-index 6c4fd56956982eee743b4dea4e8b925891dd3b6f..5379c4a8c89cbbe73c3ab741d609cecdc81d928c 100644
+index af62781cc96354c87aa63d4f03f9e25b81959081..6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -423,10 +423,18 @@ public class Block extends BlockBehaviour implements ItemLike {
diff --git a/patches/server/0963-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0949-Fire-entity-death-event-for-ender-dragon.patch
index bc78e855ed..bc78e855ed 100644
--- a/patches/server/0963-Fire-entity-death-event-for-ender-dragon.patch
+++ b/patches/server/0949-Fire-entity-death-event-for-ender-dragon.patch
diff --git a/patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch
index 0e3d1aa361..1695f7f673 100644
--- a/patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch
+++ b/patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate
Options to configure entity tracking by Y coordinate, also for each entity category.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 28ad811401cd46ec17fbec27b7e1111ead1d45e7..c7d78fb217869204157606db8d6d73af0126a68f 100644
+index ebf69ec2830a3e3121707fd958f31180d361d9d0..815fb04fb2d14d0cea14a2b3509e81b383bbdbda 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1415,6 +1415,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0965-Add-Listing-API-for-Player.patch b/patches/server/0951-Add-Listing-API-for-Player.patch
index f77a0da946..f16c9fe8f9 100644
--- a/patches/server/0965-Add-Listing-API-for-Player.patch
+++ b/patches/server/0951-Add-Listing-API-for-Player.patch
@@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61
static class EntryBuilder {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ab750eb0f3520c4bc5f6d06ea095e0bf67d8bdf4..1c89b95ac40120ee970da0f06fd7fff36eb55e61 100644
+index 86c1bb0d324cb070b1dbab8222913d4b46c4a94a..947cb3b24d6e379b080f3de8cd4ea60e0ca457e4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -356,14 +356,22 @@ public abstract class PlayerList {
diff --git a/patches/server/0966-Configurable-Region-Compression-Format.patch b/patches/server/0952-Configurable-Region-Compression-Format.patch
index 9a895f6dac..facebba0b6 100644
--- a/patches/server/0966-Configurable-Region-Compression-Format.patch
+++ b/patches/server/0952-Configurable-Region-Compression-Format.patch
@@ -5,25 +5,20 @@ Subject: [PATCH] Configurable Region Compression Format
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
-index 50de979a447171ab98de59bf25b6c82871d03543..0761096829e2afc5f8dd88b9a693874fc2f1bb8b 100644
+index 6ca572500a3bb36acf481e54262e811295d64136..c5dbab099a328b37f5a59824384ee6e4be2f3482 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
-@@ -424,11 +424,11 @@ public class RegionFile implements AutoCloseable {
+@@ -75,7 +75,7 @@ public class RegionFile implements AutoCloseable {
// Paper end - Cache chunk status
public RegionFile(Path file, Path directory, boolean dsync) throws IOException {
- this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync);
+ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format
}
- // Paper start - add can recalc flag
- public RegionFile(Path file, Path directory, boolean dsync, boolean canRecalcHeader) throws IOException {
-- this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync, canRecalcHeader);
-+ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync, canRecalcHeader); // Paper - Configurable region compression format
- }
- // Paper end - add can recalc flag
+ public RegionFile(Path file, Path directory, RegionFileVersion outputChunkStreamVersion, boolean dsync) throws IOException {
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
-index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644
+index 5fa7a842431dd64c7a0dc5d8e940563a2aeef463..374ff77f15e339500714580673ae8077482ba247 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
@@ -30,6 +30,17 @@ public class RegionFileVersion {
diff --git a/patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch
index 3b4bca4118..6a0a891d90 100644
--- a/patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch
+++ b/patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockFace to BlockDamageEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 98ebffb4f0345aa06c1cfbd404f0884ecc523d69..52764f0f5b42e3b7fd9624bc342e9927037880d2 100644
+index b48663de0d749f2a6b53c7ad6ff7941e9e8072d6..a8c723c718aeb8e2aec997503a071c4cfedcd8ae 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -253,7 +253,7 @@ public class ServerPlayerGameMode {
@@ -18,7 +18,7 @@ index 98ebffb4f0345aa06c1cfbd404f0884ecc523d69..52764f0f5b42e3b7fd9624bc342e9927
if (blockEvent.isCancelled()) {
// Let the client know the block still exists
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 9af251585723ab963a16f0a0405276666e14ce2b..48dcf53304c52a39b60cd5b51e60bca42b7b04d0 100644
+index f64a0628f5d487cb113d86319d7b51237b4a9f6e..51cf0a068d17c0b6eaee38bb1af5b3c470de5875 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -649,13 +649,13 @@ public class CraftEventFactory {
diff --git a/patches/server/0968-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0954-Fix-NPE-on-Boat-getStatus.patch
index 060e44340f..060e44340f 100644
--- a/patches/server/0968-Fix-NPE-on-Boat-getStatus.patch
+++ b/patches/server/0954-Fix-NPE-on-Boat-getStatus.patch
diff --git a/patches/server/0969-Expand-Pose-API.patch b/patches/server/0955-Expand-Pose-API.patch
index 8985b6b769..dfd883c86c 100644
--- a/patches/server/0969-Expand-Pose-API.patch
+++ b/patches/server/0955-Expand-Pose-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 617f96f0def49f9c0331963da01df8245046da66..be36e4307636a02c806ed8eb9d217e84d837fef2 100644
+index 03bc38ef6a31e762a2db9e1993e064eb1656a986..e9df37e802a982d9332a40a7f889206440ac1cc2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -25,7 +25,7 @@ index 617f96f0def49f9c0331963da01df8245046da66..be36e4307636a02c806ed8eb9d217e84
if (pose == this.getPose()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 7abc465b815ed645e84fa6fdd8eda7f4ba87b104..03908ccb1bcd88b68fcec48c581677cb0a484508 100644
+index cc14e635a5f2f8afe593afc676c718c431361dfb..395476ab15a04f95710c671c9a896a9a37daa9b4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -896,6 +896,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0970-More-DragonBattle-API.patch b/patches/server/0956-More-DragonBattle-API.patch
index 368c6de4e6..368c6de4e6 100644
--- a/patches/server/0970-More-DragonBattle-API.patch
+++ b/patches/server/0956-More-DragonBattle-API.patch
diff --git a/patches/server/0971-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0957-Deep-clone-unhandled-nbt-tags.patch
index 36686863ba..36686863ba 100644
--- a/patches/server/0971-Deep-clone-unhandled-nbt-tags.patch
+++ b/patches/server/0957-Deep-clone-unhandled-nbt-tags.patch
diff --git a/patches/server/0972-Add-PlayerPickItemEvent.patch b/patches/server/0958-Add-PlayerPickItemEvent.patch
index 454a662705..dce304a5c2 100644
--- a/patches/server/0972-Add-PlayerPickItemEvent.patch
+++ b/patches/server/0958-Add-PlayerPickItemEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerPickItemEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3e20918724125e7e60f880026bbc93e7cca06897..4ce8af82944b1d164f3435125c22d1ab3a951c19 100644
+index a48915fb14e0bfba762853924913b7760a8aec2f..70941e46dd15db9d221b505577511cd0295ba603 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -941,8 +941,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -907,8 +907,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return;
}
diff --git a/patches/server/0974-Allow-trident-custom-damage.patch b/patches/server/0959-Allow-trident-custom-damage.patch
index 6e500d2b28..6e500d2b28 100644
--- a/patches/server/0974-Allow-trident-custom-damage.patch
+++ b/patches/server/0959-Allow-trident-custom-damage.patch
diff --git a/patches/server/0975-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0960-Expose-hand-in-BlockCanBuildEvent.patch
index ab17992d38..ab17992d38 100644
--- a/patches/server/0975-Expose-hand-in-BlockCanBuildEvent.patch
+++ b/patches/server/0960-Expose-hand-in-BlockCanBuildEvent.patch
diff --git a/patches/server/0976-Optimize-nearest-structure-border-iteration.patch b/patches/server/0961-Optimize-nearest-structure-border-iteration.patch
index ddf78eeb73..2fedf79601 100644
--- a/patches/server/0976-Optimize-nearest-structure-border-iteration.patch
+++ b/patches/server/0961-Optimize-nearest-structure-border-iteration.patch
@@ -14,7 +14,7 @@ ensure that the returned found structure (which may for example be a buried
treasure that will be marked on a treasure map) is the same as in vanilla.
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
-index 6b743d4c7b304c21e2e89300e69df8eff672e8a6..9cfb0283e568a7d4d554a2fed2417b375485df94 100644
+index aa2a014f5451e780219415fffcb64a6e7cdf9b87..b8b78494449c0cd638f9706a803dc54e184d981f 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
@@ -260,12 +260,15 @@ public abstract class ChunkGenerator {
diff --git a/patches/server/0977-Implement-OfflinePlayer-isConnected.patch b/patches/server/0962-Implement-OfflinePlayer-isConnected.patch
index b6c36d01f0..b6c36d01f0 100644
--- a/patches/server/0977-Implement-OfflinePlayer-isConnected.patch
+++ b/patches/server/0962-Implement-OfflinePlayer-isConnected.patch
diff --git a/patches/server/0978-Fix-inventory-desync.patch b/patches/server/0963-Fix-inventory-desync.patch
index 4345fa9aa5..4345fa9aa5 100644
--- a/patches/server/0978-Fix-inventory-desync.patch
+++ b/patches/server/0963-Fix-inventory-desync.patch
diff --git a/patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch
index 0afa17ab3a..7e24ee9238 100644
--- a/patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index ea76c2845965ceecce8a1c13f1a8454a088a5354..8afbf0d40af4040b18f68a549710112a0aa5fd00 100644
+index 4520a6dddddb3857245c4dc8a0260664fba2dde6..361541e8c152a9311634411d434cc29ec87c17e2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0980-Configure-sniffer-egg-hatch-time.patch b/patches/server/0965-Configure-sniffer-egg-hatch-time.patch
index b42c26e59c..b42c26e59c 100644
--- a/patches/server/0980-Configure-sniffer-egg-hatch-time.patch
+++ b/patches/server/0965-Configure-sniffer-egg-hatch-time.patch
diff --git a/patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0966-Do-crystal-portal-proximity-check-before-entity-look.patch
index 5d4a0ea4eb..5d4a0ea4eb 100644
--- a/patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch
+++ b/patches/server/0966-Do-crystal-portal-proximity-check-before-entity-look.patch
diff --git a/patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0967-Skip-POI-finding-if-stuck-in-vehicle.patch
index 62f6c025a8..62f6c025a8 100644
--- a/patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch
+++ b/patches/server/0967-Skip-POI-finding-if-stuck-in-vehicle.patch
diff --git a/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch
index 0c616ab1a7..351246e505 100644
--- a/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch
+++ b/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4ce8af82944b1d164f3435125c22d1ab3a951c19..5234d3dcb60d84f65621713b57bea034038af2a5 100644
+index 70941e46dd15db9d221b505577511cd0295ba603..9342efcb855dce5cced227b15356df090e9c451a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2987,6 +2987,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2900,6 +2900,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
break;
case SWAP:
if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) {
diff --git a/patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch
index c5d3495f31..c5d3495f31 100644
--- a/patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch
+++ b/patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch
diff --git a/patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch
index 11c616703a..11c616703a 100644
--- a/patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch
+++ b/patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch
diff --git a/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0971-Fix-silent-equipment-change-for-mobs.patch
index 71d648e31a..c56a73642f 100644
--- a/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch
+++ b/patches/server/0971-Fix-silent-equipment-change-for-mobs.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix silent equipment change for mobs
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 74004b78673e81218b44097eea89a79217e005a6..4050c46df8537da37c3b022d94b064e9d5dd0659 100644
+index 59b776c591af3e890b81f9c2ca67c119ba89695e..c411b692ba71400e4e3d2ed7af4f35c4a4fed4be 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting {
diff --git a/patches/server/0987-Fix-spigot-s-Forced-Stats.patch b/patches/server/0972-Fix-spigot-s-Forced-Stats.patch
index a138a58b79..a138a58b79 100644
--- a/patches/server/0987-Fix-spigot-s-Forced-Stats.patch
+++ b/patches/server/0972-Fix-spigot-s-Forced-Stats.patch
diff --git a/patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch
index 2a79e00b73..2a79e00b73 100644
--- a/patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch
+++ b/patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch
diff --git a/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
index a9d6af5d27..058652cce8 100644
--- a/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
+++ b/patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch
@@ -10,10 +10,10 @@ which would cause a crash on Folia but would appear to function
fine on Paper.
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
-index c09d42c03e1e430dd65218e8297be9e35cdef030..362516b6703dfa037954c55b8628074965240dff 100644
+index 0ef8ecc7932107029d85e961e2e747d7312d816e..bb5da9ddcd3030c8d6148902f3c649227430baab 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
-@@ -381,6 +381,13 @@ public class ChunkSerializer {
+@@ -369,6 +369,13 @@ public class ChunkSerializer {
for (int k1 = 0; k1 < nbttaglist3.size(); ++k1) {
CompoundTag nbttagcompound4 = nbttaglist3.getCompound(k1);
@@ -27,7 +27,7 @@ index c09d42c03e1e430dd65218e8297be9e35cdef030..362516b6703dfa037954c55b86280749
((ChunkAccess) object1).setBlockEntityNbt(nbttagcompound4);
}
-@@ -679,10 +686,19 @@ public class ChunkSerializer {
+@@ -667,10 +674,19 @@ public class ChunkSerializer {
CompoundTag nbttagcompound1 = nbttaglist1.getCompound(i);
boolean flag = nbttagcompound1.getBoolean("keepPacked");
diff --git a/patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch
index 2898d66615..2898d66615 100644
--- a/patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch
+++ b/patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch
diff --git a/patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch
index c6ad51bead..c6ad51bead 100644
--- a/patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch
+++ b/patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch
diff --git a/patches/server/0993-Fix-SuspiciousStewMeta.patch b/patches/server/0977-Fix-SuspiciousStewMeta.patch
index 834deff5db..834deff5db 100644
--- a/patches/server/0993-Fix-SuspiciousStewMeta.patch
+++ b/patches/server/0977-Fix-SuspiciousStewMeta.patch
diff --git a/patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
index e2c7a15a63..e2c7a15a63 100644
--- a/patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
+++ b/patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch
diff --git a/patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
index 7ccf4c0f03..7ccf4c0f03 100644
--- a/patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
+++ b/patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch
diff --git a/patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch
index 88a39d0b20..88a39d0b20 100644
--- a/patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch
+++ b/patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch
diff --git a/patches/server/1000-Fix-missing-map-initialize-event-call.patch b/patches/server/0981-Fix-missing-map-initialize-event-call.patch
index db53e677a1..cd4415beb8 100644
--- a/patches/server/1000-Fix-missing-map-initialize-event-call.patch
+++ b/patches/server/0981-Fix-missing-map-initialize-event-call.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call
public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index f5254ccffc19cf451cd5e358256b97fa33e51cfc..8680f351795eb50b8eff231cde4a28dd2f8aa509 100644
+index d803b2c246f7e1935d2a466fe509df7fe80b2498..9e8f47ab8b337a43760d781852348e4bddbb46d9 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2113,13 +2113,25 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1945,13 +1945,25 @@ public class ServerLevel extends Level implements WorldGenLevel {
@Nullable
@Override
public MapItemSavedData getMapData(String id) {
diff --git a/patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch
index 8cbc0f974a..8cbc0f974a 100644
--- a/patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch
+++ b/patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch
diff --git a/patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch
index ab46cdf78a..ab46cdf78a 100644
--- a/patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch
+++ b/patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch
diff --git a/patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch
index 3af04ed113..3af04ed113 100644
--- a/patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch
+++ b/patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch
diff --git a/patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch
index 3f5ca7c359..3f5ca7c359 100644
--- a/patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch
+++ b/patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch
diff --git a/patches/server/1005-Add-player-idle-duration-API.patch b/patches/server/0986-Add-player-idle-duration-API.patch
index 4a0cf2445b..4a0cf2445b 100644
--- a/patches/server/1005-Add-player-idle-duration-API.patch
+++ b/patches/server/0986-Add-player-idle-duration-API.patch
diff --git a/patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch
index b2ef1fef5c..3bc9774317 100644
--- a/patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch
+++ b/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 6c28b37056c70fa0076b290b24168bfb79ddd77d..257303162e3550e332cae01d5f6f158558b7ebf8 100644
+index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..303ab1ea6747bb71adbd3a09e419b2677c9b8c5f 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
-@@ -1431,7 +1431,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
+@@ -1426,7 +1426,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
// Paper end - Configurable entity tracking range by Y
// CraftBukkit start - respect vanish API
diff --git a/patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch
index b66e61a522..b66e61a522 100644
--- a/patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch
+++ b/patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch
diff --git a/patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
index 8d351f9a68..8d351f9a68 100644
--- a/patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
+++ b/patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
diff --git a/patches/server/1009-Optimize-VarInts.patch b/patches/server/0990-Optimize-VarInts.patch
index 19e7fc574a..19e7fc574a 100644
--- a/patches/server/1009-Optimize-VarInts.patch
+++ b/patches/server/0990-Optimize-VarInts.patch
diff --git a/patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch
index 7841c265cd..7841c265cd 100644
--- a/patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch
+++ b/patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch
diff --git a/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch
index ea4a275eaf..ea4a275eaf 100644
--- a/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch
+++ b/patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch
diff --git a/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch
index 3b3dea7ae8..91ef80895e 100644
--- a/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch
+++ b/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source
This fixes players (which can't view the collector) seeing item pickups with themselves as the target.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 91d88337f9147637b0e8fa1ac8bf9193b44751f2..4785c1029f6c68406d6405ed5e950a75230dfdc0 100644
+index 93eecdc6322dfc6161fbb80828d338aa4a311640..3bedc89be56dddb858d40c155a8137665bbf3726 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/1013-Expand-LingeringPotion-API.patch b/patches/server/0994-Expand-LingeringPotion-API.patch
index 6036e51ec0..6036e51ec0 100644
--- a/patches/server/1013-Expand-LingeringPotion-API.patch
+++ b/patches/server/0994-Expand-LingeringPotion-API.patch
diff --git a/patches/server/1014-Add-MaterialTagsTest.patch b/patches/server/0995-Add-MaterialTagsTest.patch
index 34233ba1ca..34233ba1ca 100644
--- a/patches/server/1014-Add-MaterialTagsTest.patch
+++ b/patches/server/0995-Add-MaterialTagsTest.patch
diff --git a/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
index 3ea939060d..50459d0a12 100644
--- a/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
+++ b/patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
@@ -45,7 +45,7 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334
BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 1843ae08cc19cb8f7290403f8622dcd760e9399f..af7ac110a30651ec02fcd57c33eb291c7fc28287 100644
+index 0d66ad3728eb31bb1dbf9f35b4f9193ed3c1f880..4303c4bd263356d9f4ab44226bbc485f4b260413 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch
index 0df08a85bc..0df08a85bc 100644
--- a/patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch
+++ b/patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch
diff --git a/patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch
index 27e4615bf0..27e4615bf0 100644
--- a/patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch
+++ b/patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch
diff --git a/patches/server/1018-Add-UUID-attribute-modifier-API.patch b/patches/server/0999-Add-UUID-attribute-modifier-API.patch
index 37efcab4b6..37efcab4b6 100644
--- a/patches/server/1018-Add-UUID-attribute-modifier-API.patch
+++ b/patches/server/0999-Add-UUID-attribute-modifier-API.patch
diff --git a/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch
index 208b336712..538b1a6306 100644
--- a/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch
+++ b/patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 03908ccb1bcd88b68fcec48c581677cb0a484508..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644
+index 395476ab15a04f95710c671c9a896a9a37daa9b4..9b8ba3199fa091c7b20a89044ff986d9861f088f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -255,6 +255,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/1020-Lazily-create-LootContext-for-criterions.patch b/patches/server/1001-Lazily-create-LootContext-for-criterions.patch
index 293dfbd694..293dfbd694 100644
--- a/patches/server/1020-Lazily-create-LootContext-for-criterions.patch
+++ b/patches/server/1001-Lazily-create-LootContext-for-criterions.patch
diff --git a/patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch
index 5c8ab53f3e..bf0a1af393 100644
--- a/patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch
+++ b/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch
@@ -19,10 +19,10 @@ where generation happened directly to a ServerLevel and the
entity still has the flag set.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 8680f351795eb50b8eff231cde4a28dd2f8aa509..48b0bce01a9ae1ce869203a685be308d49a8c880 100644
+index 9e8f47ab8b337a43760d781852348e4bddbb46d9..0c4c20ce794dd7e12cf1712dccc975bf21b01133 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1676,6 +1676,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1508,6 +1508,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit start
private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot
@@ -31,7 +31,7 @@ index 8680f351795eb50b8eff231cde4a28dd2f8aa509..48b0bce01a9ae1ce869203a685be308d
if (entity.valid) {
MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable());
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index be36e4307636a02c806ed8eb9d217e84d837fef2..4fdc55b78c4212603bd57a292c72d89c73d28871 100644
+index e9df37e802a982d9332a40a7f889206440ac1cc2..ec5a7f44b379a10c61f152eb57641994d382b017 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -712,7 +712,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -48,7 +48,7 @@ index be36e4307636a02c806ed8eb9d217e84d837fef2..4fdc55b78c4212603bd57a292c72d89c
this.entityData.set(Entity.DATA_POSE, pose);
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb44c6a139 100644
+index a6e20b5ee4fe1841dfc2350264b5935b968fe3f3..9da8d56ff3768fb37d1ab89300da4eca19e6218d 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -588,9 +588,15 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -68,7 +68,7 @@ index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb
}, () -> {
EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id"));
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4785c1029f6c68406d6405ed5e950a75230dfdc0..68e1ef67e58ef348d35dfc3b3e890336d4cb2108 100644
+index 3bedc89be56dddb858d40c155a8137665bbf3726..18004cc231804220aa63e41389a8caffcc434d66 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
index 8998416ffa..8998416ffa 100644
--- a/patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
+++ b/patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
diff --git a/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch
index 7ecbf4e964..8d807f67cd 100644
--- a/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch
+++ b/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch
@@ -9,10 +9,10 @@ on dropping the item instead of generalizing it for all dropped
items like CB does.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e3151fb27 100644
+index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a99166d9b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -944,22 +944,20 @@ public class ServerPlayer extends Player {
+@@ -941,22 +941,20 @@ public class ServerPlayer extends Player {
if (this.isRemoved()) {
return;
}
@@ -38,7 +38,7 @@ index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e
this.drops.clear(); // SPIGOT-5188: make sure to clear
} // Paper - fix player loottables running when mob loot gamerule is false
-@@ -2442,8 +2440,8 @@ public class ServerPlayer extends Player {
+@@ -2439,8 +2437,8 @@ public class ServerPlayer extends Player {
}
@Override
@@ -50,10 +50,10 @@ index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e
if (entityitem == null) {
return null;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e140954dea481b 100644
+index ec5a7f44b379a10c61f152eb57641994d382b017..f2f8bc9f8f55a43174acd9c5e841fb9a7d1b8065 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2702,6 +2702,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2575,6 +2575,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@Nullable
public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) {
@@ -79,7 +79,7 @@ index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e14095
if (stack.isEmpty()) {
return null;
} else if (this.level().isClientSide) {
-@@ -2709,14 +2728,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2582,14 +2601,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} else {
// CraftBukkit start - Capture drops for death event
if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) {
@@ -104,7 +104,7 @@ index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e14095
return this.spawnAtLocation(entityitem);
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 68e1ef67e58ef348d35dfc3b3e890336d4cb2108..5d27e1d3f15839663d89d198babe3be94cfd3f07 100644
+index 18004cc231804220aa63e41389a8caffcc434d66..563b30aca4a1dd04e298db3b9252904740422203 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -134,7 +134,7 @@ index 45906d273e6d6ec20cf44b4d07efdac68752ee9b..ac9eaeaf7df1e84ee588f371628c0a10
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index 92b4eecf7b8ce07334256a216d9caf241fa5363b..94a30a0c1266bf919d1dc4ca2b19489edd54a7fa 100644
+index e3412f9dd86dddd241bea8f6dcaeed77a7e67f08..6dfcc296ff7e59ecbebc5446973fabc9eff3cb43 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -610,7 +610,7 @@ public class ArmorStand extends LivingEntity {
@@ -165,7 +165,7 @@ index 92b4eecf7b8ce07334256a216d9caf241fa5363b..94a30a0c1266bf919d1dc4ca2b19489e
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index b3b1211d20c6d28a14c656159a1e345f8406a093..4f4d76065edff508ff996d507e955f5d270450ac 100644
+index 3865e6c7af0203ff9a366571a276b8af43b97c7c..93f79e5c7244fc155364a35a75a62d42f2d1ee27 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -937,17 +937,21 @@ public class CraftEventFactory {
diff --git a/patches/server/1024-Add-Structure-check-API.patch b/patches/server/1005-Add-Structure-check-API.patch
index 47076e059c..032a08ac1e 100644
--- a/patches/server/1024-Add-Structure-check-API.patch
+++ b/patches/server/1005-Add-Structure-check-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index af7ac110a30651ec02fcd57c33eb291c7fc28287..7f74f80d11784987a438e6aabfac6fcfb5d9a968 100644
+index 4303c4bd263356d9f4ab44226bbc485f4b260413..835ad8dc64f2342da7fd26e6ef2ea4603c115ae6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/1025-Dont-resend-blocks-on-interactions.patch b/patches/server/1006-Dont-resend-blocks-on-interactions.patch
index b6ecf3d30c..b9bd693428 100644
--- a/patches/server/1025-Dont-resend-blocks-on-interactions.patch
+++ b/patches/server/1006-Dont-resend-blocks-on-interactions.patch
@@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block
It should be noted that this system does not yet support block entities, so those still need to resynced when needed.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index fd8a282e0a4316ed3fe51501151f8b49ce8ad0c4..cfd4ac06a9af6bf3fac293110482e1df690e075e 100644
+index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330c8ed6937 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -199,7 +199,7 @@ public class ServerPlayerGameMode {
@@ -149,7 +149,7 @@ index 4b9e726e6ac255e743479d5c2e0cdb98464399a4..6371f326fc86cfc53e39bf8ed13b646f
return false;
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index a33f22f03c54abed5fc24022a8b5f4af007e4597..ed27a963223bfe18310ad5adabf461b5e307ef9c 100644
+index 0fd5decb0790423aba80a7c1e55ce39aff6761b4..2470acc82292bedd930be404a2e1d1f8fad700e1 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -457,10 +457,12 @@ public final class ItemStack {
diff --git a/patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch
index edb8c62895..edb8c62895 100644
--- a/patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch
+++ b/patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch
diff --git a/patches/server/1027-properly-read-and-store-sus-effect-duration.patch b/patches/server/1008-properly-read-and-store-sus-effect-duration.patch
index c970d92c46..c970d92c46 100644
--- a/patches/server/1027-properly-read-and-store-sus-effect-duration.patch
+++ b/patches/server/1008-properly-read-and-store-sus-effect-duration.patch
diff --git a/patches/server/1028-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1009-Use-correct-max-stack-size-in-crafter.patch
index 0ee54e0bc8..0ee54e0bc8 100644
--- a/patches/server/1028-Use-correct-max-stack-size-in-crafter.patch
+++ b/patches/server/1009-Use-correct-max-stack-size-in-crafter.patch
diff --git a/patches/server/1029-add-more-scoreboard-API.patch b/patches/server/1010-add-more-scoreboard-API.patch
index 3365b53a36..3365b53a36 100644
--- a/patches/server/1029-add-more-scoreboard-API.patch
+++ b/patches/server/1010-add-more-scoreboard-API.patch
diff --git a/patches/server/1030-Improve-Registry.patch b/patches/server/1011-Improve-Registry.patch
index 162949848b..162949848b 100644
--- a/patches/server/1030-Improve-Registry.patch
+++ b/patches/server/1011-Improve-Registry.patch
diff --git a/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
index 77d16936c0..3a2aaebbf4 100644
--- a/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
+++ b/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
@@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192
x = to.getX();
y = to.getY();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 5d27e1d3f15839663d89d198babe3be94cfd3f07..5e2f6a1cdaf83468c0db6a2cc8fefb71e6ec51d8 100644
+index 563b30aca4a1dd04e298db3b9252904740422203..b920f72e659956cc2d2d44743caddb0136d467e4 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4186,7 +4186,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!(this instanceof ServerPlayer)) {
EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2));
this.level().getCraftServer().getPluginManager().callEvent(teleport);
diff --git a/patches/server/1032-Add-experience-points-API.patch b/patches/server/1013-Add-experience-points-API.patch
index fe9eb0cc78..f7a36a99c9 100644
--- a/patches/server/1032-Add-experience-points-API.patch
+++ b/patches/server/1013-Add-experience-points-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 276f6e650f6b6a4e14bdf3132533668382fb33b4..a0312dc208acda99b871cbd9e62f350e5899303f 100644
+index a629755f07415997e6dbdd96f9b447b90e20b1d5..4713ed2d407e1425d7f5f18d0b43c6917ef876ec 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/1033-Add-missing-InventoryType.patch b/patches/server/1014-Add-missing-InventoryType.patch
index a49bdf073d..a49bdf073d 100644
--- a/patches/server/1033-Add-missing-InventoryType.patch
+++ b/patches/server/1014-Add-missing-InventoryType.patch
diff --git a/patches/server/1034-Add-drops-to-shear-events.patch b/patches/server/1015-Add-drops-to-shear-events.patch
index 5ff56975af..77b35dfe1f 100644
--- a/patches/server/1034-Add-drops-to-shear-events.patch
+++ b/patches/server/1015-Add-drops-to-shear-events.patch
@@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4f4d76065edff508ff996d507e955f5d270450ac..bf2323c81ddc5a1e495a694585135249c3fe1c4c 100644
+index 93f79e5c7244fc155364a35a75a62d42f2d1ee27..b9e90f589749dfc9324c4aa2062c505fbd4447bc 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1716,20 +1716,20 @@ public class CraftEventFactory {
diff --git a/patches/server/1035-Add-PlayerShieldDisableEvent.patch b/patches/server/1016-Add-PlayerShieldDisableEvent.patch
index b1e67d302a..14308e1970 100644
--- a/patches/server/1035-Add-PlayerShieldDisableEvent.patch
+++ b/patches/server/1016-Add-PlayerShieldDisableEvent.patch
@@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with
the cooldown event
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 4050c46df8537da37c3b022d94b064e9d5dd0659..76497f642ff268d4039590902708e0d21ddb6531 100644
+index c411b692ba71400e4e3d2ed7af4f35c4a4fed4be..dc941429b047d33fe39c1e4664371bc0ce8d5245 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -33,7 +33,7 @@ index 4050c46df8537da37c3b022d94b064e9d5dd0659..76497f642ff268d4039590902708e0d2
}
}
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 777043d4e4bd253a804353df3efad43078a5c3b3..7e77383368388f6e56159892cd483513b068e402 100644
+index 4713ed2d407e1425d7f5f18d0b43c6917ef876ec..35869e655a7488f7b5868895287b8045b03f2d63 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/1036-Add-HiddenPotionEffect-API.patch b/patches/server/1017-Add-HiddenPotionEffect-API.patch
index 5f9960d071..5f9960d071 100644
--- a/patches/server/1036-Add-HiddenPotionEffect-API.patch
+++ b/patches/server/1017-Add-HiddenPotionEffect-API.patch
diff --git a/patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
index c619812deb..c619812deb 100644
--- a/patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
+++ b/patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch
diff --git a/patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch
index 6df545066e..6df545066e 100644
--- a/patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch
+++ b/patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch
diff --git a/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch
index bc30169ed2..6cf68dcdf7 100644
--- a/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch
+++ b/patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch
@@ -40,7 +40,7 @@ index 5f9dcab27a07969c93555ad0892683c62cbebc8c..a4d875df936b6de16f0233482b03af05
this.path = path;
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd312b5e96 100644
+index 9da8d56ff3768fb37d1ab89300da4eca19e6218d..edc723ea5ca3a325106e7af38c60dbf9f0f5fb77 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -618,7 +618,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -53,7 +53,7 @@ index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 76497f642ff268d4039590902708e0d21ddb6531..3ebf777811cba0cc45cfae7587b277f06adeb045 100644
+index dc941429b047d33fe39c1e4664371bc0ce8d5245..22506c5c823c65e65034a962312c1dbd44356e23 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
diff --git a/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch
index 96b22c026d..e2efaa8c2c 100644
--- a/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch
+++ b/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch
@@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall
For classes that use custom xp amounts, they can drop the resources with disabling
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 1fd66fce58909b2001652f7d1d13028abee5fef7..1feca8c844c74b8f64d1a1034ae06bfd7a9c0ab2 100644
+index 0b2e7e098ad0d8250156a6277491676357e0b1db..e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1102,7 +1102,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -734,7 +734,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
if (drop) {
BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
@@ -21,7 +21,7 @@ index 1fd66fce58909b2001652f7d1d13028abee5fef7..1feca8c844c74b8f64d1a1034ae06bfd
boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth);
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
-index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b0937d577 100644
+index 6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91..68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -68,10 +68,10 @@ index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b
}
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index 7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff..97a9fbbe6d8435e88e5fe716770e4034ab0db7a7 100644
+index 42a086dcebcdba6ce19a8d0e77ba88ba91d63669..7ba5d00516dc310355d08dda955c934fe26786ee 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-@@ -1286,6 +1286,7 @@ public abstract class BlockBehaviour implements FeatureElement {
+@@ -1203,6 +1203,7 @@ public abstract class BlockBehaviour implements FeatureElement {
public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) {
this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience);
diff --git a/patches/server/1041-Fixup-NamespacedKey-handling.patch b/patches/server/1022-Fixup-NamespacedKey-handling.patch
index 14ddcf111d..14ddcf111d 100644
--- a/patches/server/1041-Fixup-NamespacedKey-handling.patch
+++ b/patches/server/1022-Fixup-NamespacedKey-handling.patch
diff --git a/patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
index 0551bc6470..82f9b1f9d9 100644
--- a/patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
+++ b/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
@@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78
@VisibleForTesting
static long encode(double value) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 257303162e3550e332cae01d5f6f158558b7ebf8..639c46a7d2b35f13d2310d9ded8a92a4703f6ebb 100644
+index 303ab1ea6747bb71adbd3a09e419b2677c9b8c5f..90393101fddd54f60b0b173beffd8650ad23349e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
-@@ -1414,10 +1414,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
+@@ -1409,10 +1409,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
public void updatePlayer(ServerPlayer player) {
org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot
if (player != this.entity) {
diff --git a/patches/server/1043-Write-SavedData-IO-async.patch b/patches/server/1024-Write-SavedData-IO-async.patch
index 22cbb3848d..014bb081f9 100644
--- a/patches/server/1043-Write-SavedData-IO-async.patch
+++ b/patches/server/1024-Write-SavedData-IO-async.patch
@@ -26,7 +26,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..9017907c0ec67a37a506f09b7e4499ce
this.threadPool.shutdown();
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05ef6351c10 100644
+index 15139198a02e366c0bbfcd5495a21c48e05b3a23..3b0fd733e8fd9639362f251876bea814a2515618 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -467,6 +467,13 @@ public class ServerChunkCache extends ChunkSource {
@@ -44,10 +44,10 @@ index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05e
// CraftBukkit start - modelled on below
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6d0018c37 100644
+index 0c4c20ce794dd7e12cf1712dccc975bf21b01133..4edae565873fdafdd83a0b4509676d4c62b3bbbe 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1486,7 +1486,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1318,7 +1318,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) {
if (doFull) {
@@ -56,7 +56,7 @@ index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6
}
this.timings.worldSaveChunks.startTiming(); // Paper
-@@ -1522,7 +1522,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1354,7 +1354,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
}
@@ -65,7 +65,7 @@ index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6
if (progressListener != null) {
progressListener.progressStage(Component.translatable("menu.savingChunks"));
}
-@@ -1545,12 +1545,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1377,12 +1377,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end
}
diff --git a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch b/patches/server/1025-Execute-chunk-tasks-mid-tick.patch
index ee918bed7e..1cb6d89d1d 100644
--- a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/1025-Execute-chunk-tasks-mid-tick.patch
@@ -6,12 +6,12 @@ Subject: [PATCH] Execute chunk tasks mid-tick
This will help the server load chunks if tick times are high.
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
-index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055acd53a3b 100644
+index 7a4234abf620b8394307fa01913bc00215a64e23..4b467f1af93452d13829f756d55dee18b8889d40 100644
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java
+++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
-@@ -48,6 +48,8 @@ public final class MinecraftTimings {
- public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate");
+@@ -49,6 +49,8 @@ public final class MinecraftTimings {
public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
+ public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
+ public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
+
@@ -19,10 +19,10 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055
private MinecraftTimings() {}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..fd23c278d38b1b8ed3c894f55e8907e259654558 100644
+index fe9a5820d82e5563b53d949af060e80cc7a259f6..9f4fc17622dd78b7c455de0bc2d8b772cc030024 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1341,8 +1341,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1352,8 +1352,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return flag;
}
@@ -101,12 +101,12 @@ index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..fd23c278d38b1b8ed3c894f55e8907e2
+ this.executeMidTickTasks(); // Paper - execute chunk tasks mid tick
return true;
} else {
- if (this.tickRateManager.isSprinting() || this.haveTime()) {
+ boolean ret = false; // Paper - force execution of all worlds, do not just bias the first
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 25009accd401fc3860c57cac1ef628b233e746e7..816678438c1714a757e5d1eebc38f101a0692521 100644
+index 3b0fd733e8fd9639362f251876bea814a2515618..c2973fcfde402b5432db37468e4a40a1a119cca1 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-@@ -566,6 +566,7 @@ public class ServerChunkCache extends ChunkSource {
+@@ -583,6 +583,7 @@ public class ServerChunkCache extends ChunkSource {
boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
Iterator iterator1 = list.iterator();
@@ -114,7 +114,7 @@ index 25009accd401fc3860c57cac1ef628b233e746e7..816678438c1714a757e5d1eebc38f101
while (iterator1.hasNext()) {
ServerChunkCache.ChunkAndHolder chunkproviderserver_a = (ServerChunkCache.ChunkAndHolder) iterator1.next();
LevelChunk chunk1 = chunkproviderserver_a.chunk;
-@@ -579,6 +580,7 @@ public class ServerChunkCache extends ChunkSource {
+@@ -596,6 +597,7 @@ public class ServerChunkCache extends ChunkSource {
if (this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) {
this.level.tickChunk(chunk1, l);
@@ -123,7 +123,7 @@ index 25009accd401fc3860c57cac1ef628b233e746e7..816678438c1714a757e5d1eebc38f101
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 109143fca98c6952ca6129f261a9ff8b43f00e52..9a3b060171dcf740bb599bcae7e950eff73d6487 100644
+index 4edae565873fdafdd83a0b4509676d4c62b3bbbe..30b9a46ec74978adeb80222eea67a6a43b3203e2 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -151,10 +151,10 @@ index 109143fca98c6952ca6129f261a9ff8b43f00e52..9a3b060171dcf740bb599bcae7e950ef
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index db940176ce512698350b5998e3c2c8a729539199..11378009c3f2ad220a33ec9112b46ffa88636be5 100644
+index e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a..267de93f036541a8a31971bcbd0f79678ab35d7b 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -926,6 +926,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -929,6 +929,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Spigot end
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
tickingblockentity.tick();
@@ -166,7 +166,7 @@ index db940176ce512698350b5998e3c2c8a729539199..11378009c3f2ad220a33ec9112b46ffa
}
}
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
-@@ -940,6 +945,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -943,6 +948,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public <T extends Entity> void guardEntityTick(Consumer<T> tickConsumer, T entity) {
try {
tickConsumer.accept(entity);
diff --git a/patches/server/0671-Optimise-random-block-ticking.patch b/patches/server/1026-Optimise-random-block-ticking.patch
index d94de95efe..638b1e6921 100644
--- a/patches/server/0671-Optimise-random-block-ticking.patch
+++ b/patches/server/1026-Optimise-random-block-ticking.patch
@@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index ec64866f695dbc62dfedf6c1de5abb130edd9cfa..15b11c48e78318d382e88c3dba322ede537ec005 100644
+index 30b9a46ec74978adeb80222eea67a6a43b3203e2..88f8821aba04adb23b11531a93f395381a0e4ce7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -855,6 +855,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -311,7 +311,7 @@ index f0f764f36fb92c64ab2dc8a0a50c3f48321c3c9a..311625277a26c9c187025a1036978229
public void getAll(IntConsumer action) {
for(int i = 0; i < this.size; ++i) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
-index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7b061e006 100644
+index 1a2a4dcb3cfa2690f2aa936a6c176319d807bd74..f97bdfbd07db000845d3b791de64056c3c23f7ba 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -87,7 +87,7 @@ public class Turtle extends Animal {
@@ -324,10 +324,10 @@ index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7
public BlockPos getHomePos() {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 34156fb87cfcd453b11a13a466239a7d56383000..4e51db012b4afc606734ab93c7ebc5101cabe6c6 100644
+index 267de93f036541a8a31971bcbd0f79678ab35d7b..c003f9b8109bd3e688d5b160150d229be4ae4d8a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1397,10 +1397,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -1400,10 +1400,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public abstract RecipeManager getRecipeManager();
public BlockPos getBlockRandomPos(int x, int y, int z, int l) {
@@ -348,7 +348,7 @@ index 34156fb87cfcd453b11a13a466239a7d56383000..4e51db012b4afc606734ab93c7ebc510
public boolean noSave() {
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
-index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e24550748a05dfa0 100644
+index 3efd0a462306fbd02a506a3f952d609645b1f874..52377adb01df3db297eaf2ece54efde63f9c2cfe 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
@@ -25,6 +25,7 @@ public class LevelChunkSection {
@@ -379,7 +379,7 @@ index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e2455074
}
}
-@@ -115,40 +122,31 @@ public class LevelChunkSection {
+@@ -115,40 +122,34 @@ public class LevelChunkSection {
}
public void recalcBlockCounts() {
@@ -392,50 +392,45 @@ index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e2455074
- a() {}
-
- public void accept(BlockState iblockdata, int i) {
-- FluidState fluid = iblockdata.getFluidState();
--
-- if (!iblockdata.isAir()) {
-- this.nonEmptyBlockCount += i;
-- if (iblockdata.isRandomlyTicking()) {
-- this.tickingBlockCount += i;
-- }
+ // Paper start - unfuck this
+ this.tickingList.clear();
+ this.nonEmptyBlockCount = 0;
+ this.tickingBlockCount = 0;
+ this.tickingFluidCount = 0;
-+ this.states.forEachLocation((BlockState iblockdata, int i) -> {
-+ FluidState fluid = iblockdata.getFluidState();
-+
-+ if (!iblockdata.isAir()) {
-+ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1);
-+ if (iblockdata.isRandomlyTicking()) {
-+ this.tickingBlockCount = (short)(this.tickingBlockCount + 1);
-+ this.tickingList.add(i, iblockdata);
++ // Don't run this on clearly empty sections
++ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) {
++ this.states.forEachLocation((BlockState iblockdata, int i) -> {
+ FluidState fluid = iblockdata.getFluidState();
+
+ if (!iblockdata.isAir()) {
+- this.nonEmptyBlockCount += i;
++ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1);
+ if (iblockdata.isRandomlyTicking()) {
+- this.tickingBlockCount += i;
++ this.tickingBlockCount = (short)(this.tickingBlockCount + 1);
++ this.tickingList.add(i, iblockdata);
+ }
}
-+ }
-- if (!fluid.isEmpty()) {
+ if (!fluid.isEmpty()) {
- this.nonEmptyBlockCount += i;
-- if (fluid.isRandomlyTicking()) {
++ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1);
+ if (fluid.isRandomlyTicking()) {
- this.tickingFluidCount += i;
-- }
-+ if (!fluid.isEmpty()) {
-+ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1);
-+ if (fluid.isRandomlyTicking()) {
-+ this.tickingFluidCount = (short) (this.tickingFluidCount + 1);
++ this.tickingFluidCount = (short) (this.tickingFluidCount + 1);
+ }
}
--
- }
-- }
+- }
++ });
+ }
+-
- a a0 = new a();
-
- this.states.count(a0);
- this.nonEmptyBlockCount = (short) a0.nonEmptyBlockCount;
- this.tickingBlockCount = (short) a0.tickingBlockCount;
- this.tickingFluidCount = (short) a0.tickingFluidCount;
-+ });
+ // Paper end
}
diff --git a/patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
index 563a31ce21..3bf3949204 100644
--- a/patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
+++ b/patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch
@@ -10,7 +10,7 @@ hoping that at least then we don't swap chunks, and maybe recover
them all.
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
-index 0ef8ecc7932107029d85e961e2e747d7312d816e..c09d42c03e1e430dd65218e8297be9e35cdef030 100644
+index bb5da9ddcd3030c8d6148902f3c649227430baab..362516b6703dfa037954c55b8628074965240dff 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java
@@ -70,6 +70,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks;
@@ -32,7 +32,7 @@ index 0ef8ecc7932107029d85e961e2e747d7312d816e..c09d42c03e1e430dd65218e8297be9e3
public static final Codec<PalettedContainer<BlockState>> BLOCK_STATE_CODEC = PalettedContainer.codecRW(Block.BLOCK_STATE_REGISTRY, BlockState.CODEC, PalettedContainer.Strategy.SECTION_STATES, Blocks.AIR.defaultBlockState(), null); // Paper - Anti-Xray - Add preset block states
private static final Logger LOGGER = LogUtils.getLogger();
-@@ -450,7 +462,7 @@ public class ChunkSerializer {
+@@ -457,7 +469,7 @@ public class ChunkSerializer {
nbttagcompound.putInt("xPos", chunkcoordintpair.x);
nbttagcompound.putInt("yPos", chunk.getMinSection());
nbttagcompound.putInt("zPos", chunkcoordintpair.z);
@@ -87,7 +87,7 @@ index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f193898
this.used.set(start, start + size);
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
-index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea170587fb4806f 100644
+index c5dbab099a328b37f5a59824384ee6e4be2f3482..4373ae3b454ad3fb8550e83b868e98cc04893c1b 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java
@@ -50,6 +50,355 @@ public class RegionFile implements AutoCloseable {
@@ -448,11 +448,11 @@ index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea17058
@@ -77,8 +426,19 @@ public class RegionFile implements AutoCloseable {
public RegionFile(Path file, Path directory, boolean dsync) throws IOException {
- this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync);
+ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format
}
+ // Paper start - add can recalc flag
+ public RegionFile(Path file, Path directory, boolean dsync, boolean canRecalcHeader) throws IOException {
-+ this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync, canRecalcHeader);
++ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync, canRecalcHeader);
+ }
+ // Paper end - add can recalc flag
@@ -685,7 +685,7 @@ index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea17058
return bytebuffer;
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
-index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..156cecae8ea7ffbc38974829942a1c92e828eca9 100644
+index 99f2e104b2214dbbc0b6e43d9011744ff4b0b843..a25e7183da64f726773aa279707ae67941246b46 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -24,6 +24,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -763,7 +763,7 @@ index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..156cecae8ea7ffbc38974829942a1c92
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
-index 5fa7a842431dd64c7a0dc5d8e940563a2aeef463..4411e427d3b6b592f8a18e61b6c59309cf699d3f 100644
+index 374ff77f15e339500714580673ae8077482ba247..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java
@@ -14,7 +14,7 @@ import javax.annotation.Nullable;
diff --git a/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch
index 0324925589..8f8f34ad27 100644
--- a/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use Velocity compression and cipher natives
diff --git a/build.gradle.kts b/build.gradle.kts
-index c6241f858209ed662d8720217d143340916024e9..ff1636d3e047e124c73496f4942e991abe01c150 100644
+index 7c563ef33d12b227856e65392905bffa5289285a..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
-@@ -39,6 +39,11 @@ dependencies {
+@@ -40,6 +40,11 @@ dependencies {
runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1")
runtimeOnly("com.mysql:mysql-connector-j:8.2.0")
runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
@@ -264,10 +264,10 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3
return this.threshold;
}
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267c90f2f37 100644
+index a0434b92615c10a319eb4528808a83d01df2c516..3a4d03a936bbbbb54cb3d63b57ad9c3490f98c83 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
-@@ -669,11 +669,28 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
+@@ -734,11 +734,28 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
return networkmanager;
}
@@ -300,7 +300,7 @@ index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267
public boolean isEncrypted() {
return this.encrypted;
-@@ -706,16 +723,17 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
+@@ -771,16 +788,17 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
public void setupCompression(int compressionThreshold, boolean rejectsBadPackets) {
if (compressionThreshold >= 0) {
@@ -321,7 +321,7 @@ index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267
this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper - Add Channel initialization listeners
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
-index c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a..7288a942397d223d97d7afd11b9c9e5dc6a96901 100644
+index a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0..586521a2cbb1d4dcfb912029f65e4363ec7674a7 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
+++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
@@ -106,6 +106,11 @@ public class ServerConnectionListener {
@@ -337,10 +337,10 @@ index c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a..7288a942397d223d97d7afd11b9c9e5d
protected void initChannel(Channel channel) {
Connection.setInitialProtocolAttributes(channel);
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..67c1cf5eb198079bd146a4a8ca0492b94cca788c 100644
+index 42ae62bdbe11fdfbacebf621d64e7c4985bbd1c7..f92d240e2984b0b49d09662ff33f5c524605ed47 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-@@ -223,12 +223,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
+@@ -235,12 +235,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
}
SecretKey secretkey = packet.getSecretKey(privatekey);
diff --git a/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1029-Detail-more-information-in-watchdog-dumps.patch
index 521520be63..46a806a471 100644
--- a/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch
+++ b/patches/server/1029-Detail-more-information-in-watchdog-dumps.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Detail more information in watchdog dumps
- Dump player name, player uuid, position, and world for packet handling
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 28adc086f7bc1b6f403e65c5db51b267c90f2f37..5d73043dc9847ae195cef804fa0b0f4bf6db06f2 100644
+index 3a4d03a936bbbbb54cb3d63b57ad9c3490f98c83..b189aeb8646b5385c7cca0c4babfcb071a642220 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
-@@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
+@@ -586,7 +586,13 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener)
|| loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING
|| Connection.joinAttemptsThisTick++ < MAX_PER_TICK) {
@@ -25,7 +25,7 @@ index 28adc086f7bc1b6f403e65c5db51b267c90f2f37..5d73043dc9847ae195cef804fa0b0f4b
// Paper end - Buffer joins to world
}
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
-index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d99436afafc1 100644
+index 454d0187ff8370a0d99cca051ee0a8c50b39cfb7..3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644 100644
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
@@ -18,6 +18,24 @@ public class PacketUtils {
@@ -56,7 +56,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994
@@ -27,6 +45,8 @@ public class PacketUtils {
public static <T extends PacketListener> void ensureRunningOnSameThread(Packet<T> packet, T listener, BlockableEventLoop<?> engine) throws RunningOnDifferentThreadException {
if (!engine.isSameThread()) {
- engine.executeIfPossible(() -> {
+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown
+ packetProcessing.push(listener); // Paper - detailed watchdog information
+ try { // Paper - detailed watchdog information
if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590
@@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994
});
throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 15b11c48e78318d382e88c3dba322ede537ec005..0c60fa914310c7b6706e72cd3a61630873005102 100644
+index 88f8821aba04adb23b11531a93f395381a0e4ce7..2d4830b4b7df1516c75de1fefd6f8176d8ef16a2 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1239,7 +1239,26 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -122,10 +122,10 @@ index 15b11c48e78318d382e88c3dba322ede537ec005..0c60fa914310c7b6706e72cd3a616308
private void tickPassenger(Entity vehicle, Entity passenger) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2dba38740f 100644
+index f2f8bc9f8f55a43174acd9c5e841fb9a7d1b8065..ab8cbf4a3fabeaeab71f5323068dd700d6e6666a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1030,7 +1030,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1051,7 +1051,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.onGround;
}
@@ -168,7 +168,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d
if (this.noPhysics) {
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
} else {
-@@ -1200,6 +1235,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1221,6 +1256,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.level().getProfiler().pop();
}
}
@@ -182,7 +182,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d
}
private boolean isStateClimbable(BlockState state) {
-@@ -4269,7 +4311,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -4365,7 +4407,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public void setDeltaMovement(Vec3 velocity) {
@@ -192,7 +192,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d
}
public void addDeltaMovement(Vec3 velocity) {
-@@ -4372,7 +4416,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -4468,7 +4512,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
// Paper end - Fix MC-4
if (this.position.x != x || this.position.y != y || this.position.z != z) {
diff --git a/patches/server/0705-Collision-optimisations.patch b/patches/server/1030-Collision-optimisations.patch
index 0fdbaa5dd5..374f174e48 100644
--- a/patches/server/0705-Collision-optimisations.patch
+++ b/patches/server/1030-Collision-optimisations.patch
@@ -2179,21 +2179,21 @@ index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9
private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) {
this.data3d = id;
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5d30d67745ce3988f42457137f43b15b75a96a0c..c76358e108a72297baf92b234d43145dde09e99f 100644
+index bd1a53e2ce2644681c23f8cf678afa2a99166d9b..4ef7cc68bdcad9eaa157325a195aa74e62b478e5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -469,7 +469,7 @@ public class ServerPlayer extends Player {
+@@ -496,7 +496,7 @@ public class ServerPlayer extends Player {
if (blockposition1 != null) {
- this.moveTo(blockposition1, 0.0F, 0.0F);
+ this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
- if (world.noCollision((Entity) this)) {
+ if (world.noCollision(this, this.getBoundingBox(), true)) { // Paper - make sure this loads chunks, we default to NOT loading now
break;
}
}
-@@ -477,7 +477,7 @@ public class ServerPlayer extends Player {
+@@ -504,7 +504,7 @@ public class ServerPlayer extends Player {
} else {
- this.moveTo(blockposition, 0.0F, 0.0F);
+ this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
- while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) {
+ while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now
@@ -2201,10 +2201,10 @@ index 5d30d67745ce3988f42457137f43b15b75a96a0c..c76358e108a72297baf92b234d43145d
}
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 6e56b55329e31682d3052949110762e8f9fc96da..00f65551b82935a6b7b88cba4650404b9311f8f2 100644
+index 947cb3b24d6e379b080f3de8cd4ea60e0ca457e4..5a932f329f67fd01a263b9536cbfb1c9a011f746 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -909,7 +909,7 @@ public abstract class PlayerList {
+@@ -936,7 +936,7 @@ public abstract class PlayerList {
entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
worldserver1.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper
@@ -2214,10 +2214,10 @@ index 6e56b55329e31682d3052949110762e8f9fc96da..00f65551b82935a6b7b88cba4650404b
entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ());
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f211a5ef6 100644
+index ab8cbf4a3fabeaeab71f5323068dd700d6e6666a..554fc0d4e791a98a46216714f0fb07e178ddabe4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1216,9 +1216,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1237,9 +1237,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
float f = this.getBlockSpeedFactor();
this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f));
@@ -2265,7 +2265,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f
if (this.remainingFireTicks <= 0) {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
-@@ -1398,32 +1433,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -1419,32 +1454,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
private Vec3 collide(Vec3 movement) {
@@ -2364,7 +2364,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f
}
public static Vec3 collideBoundingBox(@Nullable Entity entity, Vec3 movement, AABB entityBoundingBox, Level world, List<VoxelShape> collisions) {
-@@ -2628,11 +2713,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
+@@ -2689,11 +2774,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
float f = this.dimensions.width * 0.8F;
AABB axisalignedbb = AABB.ofSize(this.getEyePosition(), (double) f, 1.0E-6D, (double) f);
@@ -2440,7 +2440,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index e3412f9dd86dddd241bea8f6dcaeed77a7e67f08..92b4eecf7b8ce07334256a216d9caf241fa5363b 100644
+index 6dfcc296ff7e59ecbebc5446973fabc9eff3cb43..94a30a0c1266bf919d1dc4ca2b19489edd54a7fa 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -353,7 +353,7 @@ public class ArmorStand extends LivingEntity {
@@ -2498,7 +2498,7 @@ index c476e37df8a75d77f5093b2a449e04f25ef2c2dd..5d66aadae51db1ae760812849bfc8740
return this.noCollision((Entity)null, box);
}
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
-index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd8adc29ed 100644
+index 8c436d16914e160be8e3074badc1293af2ae6b31..a3d15f30eaab29d85cb6b3d693df9980a880f686 100644
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
@@ -45,17 +45,36 @@ public interface EntityGetter {
@@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd
// Paper start
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b2b29ede4 100644
+index c003f9b8109bd3e688d5b160150d229be4ae4d8a..4d91ff3dda92bdd503dd16d4f9e56aa18458592b 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -2985,7 +2985,7 @@ index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b
@Override
public boolean isClientSide() {
return this.isClientSide;
-@@ -960,7 +1328,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -963,7 +1331,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public boolean noCollision(@Nullable Entity entity, AABB box) {
if (entity instanceof net.minecraft.world.entity.decoration.ArmorStand && !entity.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return false;
@@ -3005,7 +3005,7 @@ index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b
// Paper end - Option to prevent armor stands from doing entity lookups
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
-index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b925891dd3b6f 100644
+index 68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0..73d6f881a7d4d8ff96040d34ac502e5b0937d577 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -284,7 +284,7 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -3018,7 +3018,7 @@ index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b9258
public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) {
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
-index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..100c2629f2746fc00435f60998dba70135637ef7 100644
+index 7ba5d00516dc310355d08dda955c934fe26786ee..97a9fbbe6d8435e88e5fe716770e4034ab0db7a7 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -882,6 +882,10 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -3126,7 +3126,7 @@ index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..100c2629f2746fc00435f60998dba701
public Block getBlock() {
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
-index 4a781375a4a18011259edcb4e24550748a05dfa0..6d340a9b64ae900dfe84eeeaf7a39f7e7a139198 100644
+index 52377adb01df3db297eaf2ece54efde63f9c2cfe..b10c652f53edfbf29f28b047d3b3c8edca21bc56 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
@@ -26,6 +26,22 @@ public class LevelChunkSection {
@@ -3171,19 +3171,18 @@ index 4a781375a4a18011259edcb4e24550748a05dfa0..6d340a9b64ae900dfe84eeeaf7a39f7e
return iblockdata1;
}
-@@ -145,6 +162,12 @@ public class LevelChunkSection {
+@@ -147,6 +164,11 @@ public class LevelChunkSection {
+ }
}
- }
-+ // Paper start - optimise collisions
-+ if (io.papermc.paper.util.CollisionUtil.isSpecialCollidingBlock(iblockdata)) {
-+ ++this.specialCollidingBlocks;
-+ }
-+ // Paper end - optimise collisions
-+
- });
++ // Paper start - optimise collisions
++ if (io.papermc.paper.util.CollisionUtil.isSpecialCollidingBlock(iblockdata)) {
++ ++this.specialCollidingBlocks;
++ }
++ // Paper end - optimise collisions
+ });
+ }
// Paper end
- }
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index a98ab20814cc29a25e9d29adfbb7e70d46768df2..6d8ff6c06af5545634f255ed17dc1e489ece2548 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
diff --git a/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch
index a3ff14cfda..28eb8d3c0c 100644
--- a/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,10 +8,10 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
CHECK ME
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f784bd9c4a 100644
+index 9342efcb855dce5cced227b15356df090e9c451a..721b6c47c7141871fba0d306da42147bff082b0a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -540,7 +540,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -553,7 +553,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
@@ -20,7 +20,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above
-@@ -556,6 +556,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -569,6 +569,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
@@ -28,7 +28,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
double d11 = d7;
d6 = d3 - entity.getX();
-@@ -569,15 +570,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -582,15 +583,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag2 = false;
if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
@@ -55,7 +55,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
entity.absMoveTo(d0, d1, d2, f, f1);
this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
this.send(new ClientboundMoveVehiclePacket(entity));
-@@ -656,7 +665,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -669,7 +678,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
private boolean noBlocksAround(Entity entity) {
@@ -89,7 +89,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
}
@Override
-@@ -1255,7 +1289,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1282,7 +1316,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (this.awaitingPositionFromClient != null) {
@@ -98,7 +98,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
this.awaitingTeleportTime = this.tickCount;
this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot());
}
-@@ -1349,7 +1383,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1389,7 +1423,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -107,7 +107,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
-@@ -1391,6 +1425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1431,6 +1465,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move
@@ -115,21 +115,14 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
// Paper start - prevent position desync
if (this.awaitingPositionFromClient != null) {
return; // ... thanks Mojang for letting move calls teleport across dimensions.
-@@ -1409,11 +1444,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
- boolean flag2 = false;
-
- if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
-- flag2 = true;
-+ flag2 = true; // Paper - diff on change, this should be moved wrongly
- ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!", this.player.getName().getString());
+@@ -1459,7 +1494,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+ }
}
-- if (!this.player.noPhysics && !this.player.isSleeping() && (flag2 && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2))) {
+- boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && (movedWrongly && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2));
+ // Paper start - optimise out extra getCubes
++ boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && movedWrongly;
+ this.player.absMoveTo(d0, d1, d2, f, f1); // prevent desync by tping to the set position, dropped for unknown reasons by mojang
-+ // Original for reference:
-+ // boolean teleportBack = flag2 && worldserver.getCubes(this.player, axisalignedbb) || (didCollide && this.a((IWorldReader) worldserver, axisalignedbb));
-+ boolean teleportBack = flag2; // violating this is always a fail
+ if (!this.player.noPhysics && !this.player.isSleeping() && !teleportBack) {
+ AABB newBox = this.player.getBoundingBox();
+ if (didCollide || !axisalignedbb.equals(newBox)) {
@@ -137,11 +130,11 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7
+ teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox);
+ } // else: no collision at all detected, why do we care?
+ }
-+ if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes
- this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
- this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround());
- } else {
-@@ -1504,6 +1551,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
++ // Paper end - optimise out extra getCubes
+ if (teleportBack) {
+ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
+ toX, toY, toZ, toYaw, toPitch, false);
+@@ -1559,6 +1604,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
diff --git a/patches/server/0710-Fix-tripwire-state-inconsistency.patch b/patches/server/1032-Fix-tripwire-state-inconsistency.patch
index 6f9de7ceeb..bce767ae73 100644
--- a/patches/server/0710-Fix-tripwire-state-inconsistency.patch
+++ b/patches/server/1032-Fix-tripwire-state-inconsistency.patch
@@ -6,22 +6,22 @@ Subject: [PATCH] Fix tripwire state inconsistency
This patch prevents updating and re-setting the tripwire when being removed in certain conditions
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
-index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856be7904863 100644
+index bdb99b799d1a97f1340c3d388d2901f7cb1c3527..3cb1db27dba902678a5848a1fb5e2c6ec6241e60 100644
--- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
-@@ -87,7 +87,7 @@ public class TripWireBlock extends Block {
- @Override
+@@ -91,7 +91,7 @@ public class TripWireBlock extends Block {
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
if (!moved && !state.is(newState.getBlock())) {
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true));
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency
}
}
-@@ -102,6 +102,12 @@ public class TripWireBlock extends Block {
- }
+@@ -108,6 +108,12 @@ public class TripWireBlock extends Block {
private void updateSource(Level world, BlockPos pos, BlockState state) {
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
+ // Paper start - fix tripwire state inconsistency
+ this.updateSource(world, pos, state, false);
+ }
@@ -31,7 +31,7 @@ index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856b
Direction[] aenumdirection = new Direction[]{Direction.SOUTH, Direction.WEST};
int i = aenumdirection.length;
int j = 0;
-@@ -117,7 +123,7 @@ public class TripWireBlock extends Block {
+@@ -123,7 +129,7 @@ public class TripWireBlock extends Block {
if (iblockdata1.is(this.hook)) {
if (iblockdata1.getValue(TripWireHookBlock.FACING) == enumdirection.getOpposite()) {
diff --git a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch
index d6c957489e..83872a3693 100644
--- a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch
@@ -10,10 +10,10 @@ when if this was fixed on the client, that wouldn't be needed.
Mojira Issue: https://bugs.mojang.com/browse/MC-235045
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
-index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..c47944b18a35929509ae3add455385e80f09763b 100644
+index faa375f2722793a86265248a4be4fa14736d9818..f341813e9713e39bfe142ca34b751de3d8efd25b 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
-@@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
+@@ -466,4 +466,20 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
return this.source.getBukkitSender(this);
}
// CraftBukkit end
@@ -35,10 +35,10 @@ index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..c47944b18a35929509ae3add455385e8
+ // Paper end - tell clients to ask server for suggestions for EntityArguments
}
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
-index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..39a47750d7feec04b2759929527d877663250df8 100644
+index df06c28c778255cb2d8d5e14960bd38a2af9ad22..b7f338e982d0dcab99137ab6dc200b82ac6b7cba 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
-@@ -531,6 +531,7 @@ public class Commands {
+@@ -522,6 +522,7 @@ public class Commands {
private void fillUsableCommands(CommandNode<CommandSourceStack> tree, CommandNode<SharedSuggestionProvider> result, CommandSourceStack source, Map<CommandNode<CommandSourceStack>, CommandNode<SharedSuggestionProvider>> resultNodes) {
Iterator iterator = tree.getChildren().iterator();
@@ -46,7 +46,7 @@ index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..39a47750d7feec04b2759929527d8776
while (iterator.hasNext()) {
CommandNode<CommandSourceStack> commandnode2 = (CommandNode) iterator.next();
// Paper start - Brigadier API
-@@ -557,6 +558,12 @@ public class Commands {
+@@ -548,6 +549,12 @@ public class Commands {
if (requiredargumentbuilder.getSuggestionsProvider() != null) {
requiredargumentbuilder.suggests(SuggestionProviders.safelySwap(requiredargumentbuilder.getSuggestionsProvider()));
@@ -60,19 +60,19 @@ index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..39a47750d7feec04b2759929527d8776
}
diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
-index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..d93698fd814683d451a3c8e8bcbb9cd475c79515 100644
+index 8e008e752c5b11781088e2b4b5ba180bacb59326..8d79cfa371546996ef65f94232c1d344e7c590ec 100644
--- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
+++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
-@@ -128,7 +128,7 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
- StringReader stringreader = new StringReader(suggestionsbuilder.getInput());
-
- stringreader.setCursor(suggestionsbuilder.getStart());
-- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2));
-+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments
+@@ -132,7 +132,7 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
+ final boolean permission = object instanceof CommandSourceStack stack
+ ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector")
+ : icompletionprovider.hasPermission(2);
+- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission);
++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments
+ // Paper end - Fix EntityArgument suggestion permissions
try {
- argumentparserselector.parse();
-@@ -137,7 +137,19 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
+@@ -142,7 +142,19 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
}
return argumentparserselector.fillSuggestions(suggestionsbuilder, (suggestionsbuilder1) -> {
diff --git a/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1034-Add-Alternate-Current-redstone-implementation.patch
index e7485866af..445a356f2d 100644
--- a/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch
+++ b/patches/server/1034-Add-Alternate-Current-redstone-implementation.patch
@@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b8414476683807eafb 100644
+index 2d4830b4b7df1516c75de1fefd6f8176d8ef16a2..1f0e9689acc1470a65a3c51505d5a386da7abc8e 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -2019,7 +2019,7 @@ index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b841447668
@Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
-@@ -2574,6 +2575,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2593,6 +2594,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
return crashreportsystemdetails;
}
@@ -2034,14 +2034,13 @@ index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b841447668
EntityCallbacks() {}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 205323c8e643c77b7aefe588d5ee2f8b2b29ede4..17f8dc044619bfa055f67f12cd9a296504ac76ee 100644
+index 4d91ff3dda92bdd503dd16d4f9e56aa18458592b..ae42d5b3dea423a144056c64337af213609923d4 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1884,4 +1884,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
- return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent
+@@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+ }
}
- // Paper end - respect global sound events gamerule
-+
+ // Paper end - notify observers even if grow failed
+ // Paper start - optimize redstone (Alternate Current)
+ public alternate.current.wire.WireHandler getWireHandler() {
+ // This method is overridden in ServerLevel.
diff --git a/patches/server/0841-optimize-dirt-and-snow-spreading.patch b/patches/server/1035-optimize-dirt-and-snow-spreading.patch
index 5c1d0ffe0c..5c1d0ffe0c 100644
--- a/patches/server/0841-optimize-dirt-and-snow-spreading.patch
+++ b/patches/server/1035-optimize-dirt-and-snow-spreading.patch
diff --git a/patches/server/0864-Properly-resend-entities.patch b/patches/server/1036-Properly-resend-entities.patch
index c4448fc5bf..2144df7aa2 100644
--- a/patches/server/0864-Properly-resend-entities.patch
+++ b/patches/server/1036-Properly-resend-entities.patch
@@ -16,10 +16,10 @@ See: https://github.com/PaperMC/Paper/pull/1896
public net.minecraft.server.level.ChunkMap$TrackedEntity serverEntity
diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
-index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0da37464c8 100644
+index 07a362f9e485d0d507f16f1dda1ac84ade07ab27..58b602e550258c1062ee940bc46538dac95d8979 100644
--- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
+++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java
-@@ -253,14 +253,63 @@ public class SynchedEntityData {
+@@ -275,14 +275,63 @@ public class SynchedEntityData {
// CraftBukkit start
public void refresh(ServerPlayer to) {
if (!this.isEmpty()) {
@@ -85,10 +85,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d
public static class DataItem<T> {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index dd1a969c6ac8ee08c9898703953dda88c7b4f97e..0fe7770fd4506980667e154c83d7024112cac26d 100644
+index 721b6c47c7141871fba0d306da42147bff082b0a..42b433d9461d0912b39542263684323369469ac0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2705,7 +2705,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
@@ -98,10 +98,10 @@ index dd1a969c6ac8ee08c9898703953dda88c7b4f97e..0fe7770fd4506980667e154c83d70241
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index d2d21ccc45381787698c84870537ba11ebb75127..a625091f59aadccae7fc40c94b620248bca125de 100644
+index 5a932f329f67fd01a263b9536cbfb1c9a011f746..2544495835f8f67eab07907ee8eb572b99ea0fcd 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -376,7 +376,7 @@ public abstract class PlayerList {
+@@ -390,7 +390,7 @@ public abstract class PlayerList {
((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - Fire PlayerJoinEvent when Player is actually ready; track entity now
// CraftBukkit end
@@ -125,10 +125,10 @@ index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a
}
entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index dab7108644aefe69448b5e361099d97354c8db1a..49e5a9fa95ebf4568eb875953f3032b8a7142080 100644
+index 9b8ba3199fa091c7b20a89044ff986d9861f088f..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -947,7 +947,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -999,7 +999,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return;
}
diff --git a/patches/server/0897-Optimize-Hoppers.patch b/patches/server/1037-Optimize-Hoppers.patch
index 17aa94ac70..f6f81b43e2 100644
--- a/patches/server/0897-Optimize-Hoppers.patch
+++ b/patches/server/1037-Optimize-Hoppers.patch
@@ -50,10 +50,10 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index ed9839ff23d0810912a6961979690c3fe9fc0e16..afc23f859188a6cda27a683babd551c250a748ef 100644
+index 9f4fc17622dd78b7c455de0bc2d8b772cc030024..093d9fa59fce871ba1d592482f7fc6616fd9b1ac 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
-@@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+@@ -1686,6 +1686,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
@@ -62,10 +62,10 @@ index ed9839ff23d0810912a6961979690c3fe9fc0e16..afc23f859188a6cda27a683babd551c2
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac..6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e 100644
+index 2470acc82292bedd930be404a2e1d1f8fad700e1..ed27a963223bfe18310ad5adabf461b5e307ef9c 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
-@@ -749,10 +749,16 @@ public final class ItemStack {
+@@ -751,10 +751,16 @@ public final class ItemStack {
}
public ItemStack copy() {
diff --git a/patches/server/0973-Improve-performance-of-mass-crafts.patch b/patches/server/1038-Improve-performance-of-mass-crafts.patch
index 21ed7a6c78..21ed7a6c78 100644
--- a/patches/server/0973-Improve-performance-of-mass-crafts.patch
+++ b/patches/server/1038-Improve-performance-of-mass-crafts.patch
diff --git a/patches/server/0990-Actually-optimise-explosions.patch b/patches/server/1039-Actually-optimise-explosions.patch
index 349e2e5f06..349e2e5f06 100644
--- a/patches/server/0990-Actually-optimise-explosions.patch
+++ b/patches/server/1039-Actually-optimise-explosions.patch
diff --git a/patches/server/0994-Optimise-chunk-tick-iteration.patch b/patches/server/1040-Optimise-chunk-tick-iteration.patch
index a15bf7045b..9597d6ba34 100644
--- a/patches/server/0994-Optimise-chunk-tick-iteration.patch
+++ b/patches/server/1040-Optimise-chunk-tick-iteration.patch
@@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754
List list;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..ccf0308855d6549d70cf010fc57b76abfbe93f26 100644
+index 90393101fddd54f60b0b173beffd8650ad23349e..424de333bf4fc5632410c689d9b17b2eab3371c4 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -187,10 +187,10 @@ index c80a625f7289e3bb33c6851d2072957e153ca1fb..7c425ac50c83757b66a2178bc19d4c92
public String getDebugStatus() {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16dc281292 100644
+index c2973fcfde402b5432db37468e4a40a1a119cca1..77a2458b8acb21c64676934cd8d6b05ef6351c10 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-@@ -516,18 +516,10 @@ public class ServerChunkCache extends ChunkSource {
+@@ -523,18 +523,10 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.push("pollingChunks");
gameprofilerfiller.push("filteringLoadedChunks");
@@ -211,7 +211,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16
if (this.level.getServer().tickRateManager().runsNormally()) {
gameprofilerfiller.popPush("naturalSpawnCount");
-@@ -562,38 +554,109 @@ public class ServerChunkCache extends ChunkSource {
+@@ -569,38 +561,109 @@ public class ServerChunkCache extends ChunkSource {
gameprofilerfiller.popPush("spawnAndTick");
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
@@ -337,7 +337,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16
this.level.timings.chunkTicks.stopTiming(); // Paper
gameprofilerfiller.popPush("customSpawners");
-@@ -605,11 +668,23 @@ public class ServerChunkCache extends ChunkSource {
+@@ -612,11 +675,23 @@ public class ServerChunkCache extends ChunkSource {
}
gameprofilerfiller.popPush("broadcast");
@@ -365,7 +365,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16
gameprofilerfiller.pop();
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index a78ee295d14e0f4543b5bbdb7b72c6383a4fb23a..40632eabeb297f2cb2206d18cba7476bfb9f7ae8 100644
+index 4ef7cc68bdcad9eaa157325a195aa74e62b478e5..4a0df97430cf025d1e830f681ef791ecec985102 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -325,6 +325,9 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0995-Lag-compensation-ticks.patch b/patches/server/1041-Lag-compensation-ticks.patch
index 536c00fbbb..b874637e1f 100644
--- a/patches/server/0995-Lag-compensation-ticks.patch
+++ b/patches/server/1041-Lag-compensation-ticks.patch
@@ -8,7 +8,7 @@ Areas affected by lag comepnsation:
- Eating food items
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 174f3dab7c7f02dd09d02dc8b4e69190284c3f48..ec1197e498d0fa8d58466b8dffe46fb0683b530c 100644
+index 093d9fa59fce871ba1d592482f7fc6616fd9b1ac..49ab2773658a2c6fababa316707762a8e2b19c58 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -311,6 +311,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -30,7 +30,7 @@ index 174f3dab7c7f02dd09d02dc8b4e69190284c3f48..ec1197e498d0fa8d58466b8dffe46fb0
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index ab472d2e81c0756020ffb727db4b71aeb8d9d020..ae6919fb2ed273d5527a6e4e7731c074d201393f 100644
+index 1f0e9689acc1470a65a3c51505d5a386da7abc8e..ffe910da16c33ebbce77fef441d9d5c2d097ce61 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -565,6 +565,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -52,7 +52,7 @@ index ab472d2e81c0756020ffb727db4b71aeb8d9d020..ae6919fb2ed273d5527a6e4e7731c074
// Add env and gen to constructor, IWorldDataServer -> WorldDataServer
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<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) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c173c59c6 100644
+index 83e017efd15d0ecaffc327f02d6d5330c8ed6937..cfd4ac06a9af6bf3fac293110482e1df690e075e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -124,7 +124,7 @@ public class ServerPlayerGameMode {
@@ -65,10 +65,10 @@ index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c
if (this.hasDelayedDestroy) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193b44751f2 100644
+index b920f72e659956cc2d2d44743caddb0136d467e4..ca1900d29a86b9b39078da39b071950128c08c23 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3827,6 +3827,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer);
}
// Paper end - Properly cancel usable items
@@ -79,7 +79,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193
private void updatingUsingItem() {
if (this.isUsingItem()) {
if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) {
-@@ -3837,7 +3841,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3845,7 +3849,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.triggerItemUseEffects(stack, 5);
}
@@ -93,7 +93,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193
this.completeUsingItem();
}
-@@ -3885,7 +3894,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3893,7 +3902,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack
this.useItem = itemstack;
@@ -105,7 +105,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193
if (!this.level().isClientSide) {
this.setLivingEntityFlag(1, true);
this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND);
-@@ -3910,7 +3922,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3918,7 +3930,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
} else if (!this.isUsingItem() && !this.useItem.isEmpty()) {
this.useItem = ItemStack.EMPTY;
@@ -117,7 +117,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193
}
}
-@@ -4045,7 +4060,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4053,7 +4068,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.useItem = ItemStack.EMPTY;
diff --git a/patches/server/0999-Optimise-nearby-player-retrieval.patch b/patches/server/1042-Optimise-nearby-player-retrieval.patch
index e2bed5bf46..c41f2cf273 100644
--- a/patches/server/0999-Optimise-nearby-player-retrieval.patch
+++ b/patches/server/1042-Optimise-nearby-player-retrieval.patch
@@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce
the number of tests per search.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index ae6919fb2ed273d5527a6e4e7731c074d201393f..f5254ccffc19cf451cd5e358256b97fa33e51cfc 100644
+index ffe910da16c33ebbce77fef441d9d5c2d097ce61..fa203e66887f5db1083728166e2f81ea4f656bd7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel {
diff --git a/scripts/moveback.py b/scripts/moveback.py
new file mode 100644
index 0000000000..744f101a1e
--- /dev/null
+++ b/scripts/moveback.py
@@ -0,0 +1,44 @@
+import os
+import sys
+
+# Use inside of server patch dir
+# py ../../scripts/moveback.py ''
+patch_target = 1038 # TODO: Update this
+
+
+def increment_number(filename):
+ current_number = int(filename[:4])
+ new_number = current_number + 1
+ return f"{new_number:04d}-{filename[5:]}"
+
+
+if len(sys.argv) != 2:
+ print("python moveback.py '<commit title>'")
+ sys.exit(1)
+
+input_string = sys.argv[1].replace(' ', '-').lower()
+if len(input_string) < 5:
+ print("Commit title is too short")
+ sys.exit(1)
+
+matching_files = [file for file in os.listdir() if input_string in file.lower()]
+
+if len(matching_files) == 0:
+ print("No file found matching the given string")
+ sys.exit(1)
+
+matching_file = matching_files[0]
+print(f"Found: {matching_file}")
+
+# Move all files after the target one up
+for file in os.listdir():
+ num = int(file[:4])
+ if num >= patch_target:
+ new_filename = increment_number(file)
+ os.rename(file, new_filename)
+ print(f"Renamed {file} to {new_filename}")
+
+# Rename the file to the target
+new_filename = f"{patch_target:04d}-{matching_file[5:]}"
+os.rename(matching_file, new_filename)
+print(f"Renamed {matching_file} to {new_filename}")