aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAikar <[email protected]>2020-06-23 04:30:45 -0400
committerAikar <[email protected]>2020-06-23 04:40:03 -0400
commitce270e141247fc1c7d7f0031a734f4a2db91e2ce (patch)
tree97d19a9bfd8c1d95638c88b971be7f365ec257a6
parentc4ada0e1990030634f0ec3c5878ecc8e2050b30f (diff)
downloadPaper-ce270e141247fc1c7d7f0031a734f4a2db91e2ce.tar.gz
Paper-ce270e141247fc1c7d7f0031a734f4a2db91e2ce.zip
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b2f1908c SPIGOT-5783: Add helpful info to UnknownDependencyException e4f46260 SPIGOT-2623: Add EntityEquipment methods to get/set ItemStacks by slot. 529a9a69 SPIGOT-5751: Clarify behaviour of block drop-related API methods CraftBukkit Changes: 8ea9b138 Remove outdated build delay. ffc2b251 Revert "#675: Fix redirected CommandNodes sometimes not being properly redirected" cb701f6b #675: Fix redirected CommandNodes sometimes not being properly redirected c9d7c16b SPIGOT-2623: Add EntityEquipment methods to get/set ItemStacks by slot. fad2494a #673: Fix Craftworld#isChunkLoaded 8637ec00 SPIGOT-5751: Made breakNaturally and getDrops returns the correct item if no argument is given Spigot Changes: a99063f7 Rebuild patches Fixes #3602
-rw-r--r--Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch4
-rw-r--r--Spigot-API-Patches/0188-Add-effect-to-block-break-naturally.patch6
-rw-r--r--Spigot-Server-Patches/0001-POM-Changes.patch4
-rw-r--r--Spigot-Server-Patches/0002-Paper-config-files.patch6
-rw-r--r--Spigot-Server-Patches/0004-MC-Utils.patch4
-rw-r--r--Spigot-Server-Patches/0009-Timings-v2.patch14
-rw-r--r--Spigot-Server-Patches/0139-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch4
-rw-r--r--Spigot-Server-Patches/0148-Use-TerminalConsoleAppender-for-console-improvements.patch4
-rw-r--r--Spigot-Server-Patches/0190-PlayerNaturallySpawnCreaturesEvent.patch4
-rw-r--r--Spigot-Server-Patches/0217-Expand-World.spawnParticle-API-and-add-Builder.patch4
-rw-r--r--Spigot-Server-Patches/0221-Allow-spawning-Item-entities-with-World.spawnEntity.patch4
-rw-r--r--Spigot-Server-Patches/0234-Expand-Explosions-API.patch4
-rw-r--r--Spigot-Server-Patches/0238-Implement-World.getEntity-UUID-API.patch4
-rw-r--r--Spigot-Server-Patches/0261-Ignore-Dead-Entities-in-entityList-iteration.patch10
-rw-r--r--Spigot-Server-Patches/0276-Send-nearby-packets-from-world-player-list-not-serve.patch6
-rw-r--r--Spigot-Server-Patches/0286-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch4
-rw-r--r--Spigot-Server-Patches/0307-Add-sun-related-API.patch4
-rw-r--r--Spigot-Server-Patches/0371-improve-CraftWorld-isChunkLoaded.patch7
-rw-r--r--Spigot-Server-Patches/0372-Configurable-Keep-Spawn-Loaded-range-per-world.patch6
-rw-r--r--Spigot-Server-Patches/0378-incremental-chunk-saving.patch8
-rw-r--r--Spigot-Server-Patches/0380-Fix-World-isChunkGenerated-calls.patch8
-rw-r--r--Spigot-Server-Patches/0390-Asynchronous-chunk-IO-and-loading.patch16
-rw-r--r--Spigot-Server-Patches/0392-Reduce-sync-loads.patch8
-rw-r--r--Spigot-Server-Patches/0396-implement-optional-per-player-mob-spawns.patch6
-rw-r--r--Spigot-Server-Patches/0404-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch4
-rw-r--r--Spigot-Server-Patches/0425-Add-effect-to-block-break-naturally.patch4
-rw-r--r--Spigot-Server-Patches/0431-Optimise-getChunkAt-calls-for-loaded-chunks.patch8
-rw-r--r--Spigot-Server-Patches/0456-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch6
-rw-r--r--Spigot-Server-Patches/0457-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch29
-rw-r--r--Spigot-Server-Patches/0457-Increase-Light-Queue-Size.patch (renamed from Spigot-Server-Patches/0458-Increase-Light-Queue-Size.patch)0
-rw-r--r--Spigot-Server-Patches/0458-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch (renamed from Spigot-Server-Patches/0459-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch)12
-rw-r--r--Spigot-Server-Patches/0459-Don-t-move-existing-players-to-world-spawn.patch (renamed from Spigot-Server-Patches/0460-Don-t-move-existing-players-to-world-spawn.patch)2
-rw-r--r--Spigot-Server-Patches/0460-Add-tick-times-API-and-mspt-command.patch (renamed from Spigot-Server-Patches/0461-Add-tick-times-API-and-mspt-command.patch)2
-rw-r--r--Spigot-Server-Patches/0461-Expose-MinecraftServer-isRunning.patch (renamed from Spigot-Server-Patches/0462-Expose-MinecraftServer-isRunning.patch)0
-rw-r--r--Spigot-Server-Patches/0462-Add-Raw-Byte-ItemStack-Serialization.patch (renamed from Spigot-Server-Patches/0463-Add-Raw-Byte-ItemStack-Serialization.patch)0
-rw-r--r--Spigot-Server-Patches/0463-Remove-streams-from-Mob-AI-System.patch (renamed from Spigot-Server-Patches/0464-Remove-streams-from-Mob-AI-System.patch)0
-rw-r--r--Spigot-Server-Patches/0464-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch (renamed from Spigot-Server-Patches/0465-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch)2
-rw-r--r--Spigot-Server-Patches/0465-Async-command-map-building.patch (renamed from Spigot-Server-Patches/0466-Async-command-map-building.patch)0
-rw-r--r--Spigot-Server-Patches/0466-Improved-Watchdog-Support.patch (renamed from Spigot-Server-Patches/0467-Improved-Watchdog-Support.patch)2
-rw-r--r--Spigot-Server-Patches/0467-Optimize-Pathfinding.patch (renamed from Spigot-Server-Patches/0468-Optimize-Pathfinding.patch)0
-rw-r--r--Spigot-Server-Patches/0468-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch (renamed from Spigot-Server-Patches/0469-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch)0
-rw-r--r--Spigot-Server-Patches/0469-Reduce-Either-Optional-allocation.patch (renamed from Spigot-Server-Patches/0470-Reduce-Either-Optional-allocation.patch)0
-rw-r--r--Spigot-Server-Patches/0470-Remove-streams-from-PairedQueue.patch (renamed from Spigot-Server-Patches/0471-Remove-streams-from-PairedQueue.patch)0
-rw-r--r--Spigot-Server-Patches/0471-Remove-streams-from-MinecraftKey.patch (renamed from Spigot-Server-Patches/0472-Remove-streams-from-MinecraftKey.patch)0
-rw-r--r--Spigot-Server-Patches/0472-Reduce-memory-footprint-of-NBTTagCompound.patch (renamed from Spigot-Server-Patches/0473-Reduce-memory-footprint-of-NBTTagCompound.patch)0
-rw-r--r--Spigot-Server-Patches/0473-Prevent-opening-inventories-when-frozen.patch (renamed from Spigot-Server-Patches/0474-Prevent-opening-inventories-when-frozen.patch)0
-rw-r--r--Spigot-Server-Patches/0474-Optimise-ArraySetSorted-removeIf.patch (renamed from Spigot-Server-Patches/0475-Optimise-ArraySetSorted-removeIf.patch)0
-rw-r--r--Spigot-Server-Patches/0475-Don-t-run-entity-collision-code-if-not-needed.patch (renamed from Spigot-Server-Patches/0476-Don-t-run-entity-collision-code-if-not-needed.patch)0
-rw-r--r--Spigot-Server-Patches/0476-Optimise-entity-hard-collision-checking.patch (renamed from Spigot-Server-Patches/0477-Optimise-entity-hard-collision-checking.patch)2
-rw-r--r--Spigot-Server-Patches/0477-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch (renamed from Spigot-Server-Patches/0478-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch)4
-rw-r--r--Spigot-Server-Patches/0478-Restrict-vanilla-teleport-command-to-valid-locations.patch (renamed from Spigot-Server-Patches/0479-Restrict-vanilla-teleport-command-to-valid-locations.patch)0
-rw-r--r--Spigot-Server-Patches/0479-Implement-Player-Client-Options-API.patch (renamed from Spigot-Server-Patches/0480-Implement-Player-Client-Options-API.patch)0
-rw-r--r--Spigot-Server-Patches/0480-Fix-Chunk-Post-Processing-deadlock-risk.patch (renamed from Spigot-Server-Patches/0481-Fix-Chunk-Post-Processing-deadlock-risk.patch)4
-rw-r--r--Spigot-Server-Patches/0481-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch (renamed from Spigot-Server-Patches/0482-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch)0
-rw-r--r--Spigot-Server-Patches/0482-Broadcast-join-message-to-console.patch (renamed from Spigot-Server-Patches/0483-Broadcast-join-message-to-console.patch)2
-rw-r--r--Spigot-Server-Patches/0483-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch (renamed from Spigot-Server-Patches/0484-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch)2
-rw-r--r--Spigot-Server-Patches/0484-Load-Chunks-for-Login-Asynchronously.patch (renamed from Spigot-Server-Patches/0485-Load-Chunks-for-Login-Asynchronously.patch)0
-rw-r--r--Spigot-Server-Patches/0485-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch (renamed from Spigot-Server-Patches/0486-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch)0
-rw-r--r--Spigot-Server-Patches/0486-Allow-sleeping-players-to-float.patch (renamed from Spigot-Server-Patches/0487-Allow-sleeping-players-to-float.patch)2
-rw-r--r--Spigot-Server-Patches/0487-Add-PlayerAttackEntityCooldownResetEvent.patch (renamed from Spigot-Server-Patches/0488-Add-PlayerAttackEntityCooldownResetEvent.patch)0
-rw-r--r--Spigot-Server-Patches/0488-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch (renamed from Spigot-Server-Patches/0489-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch)0
-rw-r--r--Spigot-Server-Patches/0489-Don-t-fire-BlockFade-on-worldgen-threads.patch (renamed from Spigot-Server-Patches/0490-Don-t-fire-BlockFade-on-worldgen-threads.patch)0
-rw-r--r--Spigot-Server-Patches/0490-Add-phantom-creative-and-insomniac-controls.patch (renamed from Spigot-Server-Patches/0491-Add-phantom-creative-and-insomniac-controls.patch)0
-rw-r--r--Spigot-Server-Patches/0491-Fix-numerous-item-duplication-issues-and-teleport-is.patch (renamed from Spigot-Server-Patches/0492-Fix-numerous-item-duplication-issues-and-teleport-is.patch)0
-rw-r--r--Spigot-Server-Patches/0492-Implement-Brigadier-Mojang-API.patch (renamed from Spigot-Server-Patches/0493-Implement-Brigadier-Mojang-API.patch)2
-rw-r--r--Spigot-Server-Patches/0493-Villager-Restocks-API.patch (renamed from Spigot-Server-Patches/0494-Villager-Restocks-API.patch)0
-rw-r--r--Spigot-Server-Patches/0494-Validate-PickItem-Packet-and-kick-for-invalid.patch (renamed from Spigot-Server-Patches/0495-Validate-PickItem-Packet-and-kick-for-invalid.patch)2
-rw-r--r--Spigot-Server-Patches/0495-Expose-game-version.patch (renamed from Spigot-Server-Patches/0496-Expose-game-version.patch)0
-rw-r--r--Spigot-Server-Patches/0496-Sync-position-on-teleportation.patch (renamed from Spigot-Server-Patches/0497-Sync-position-on-teleportation.patch)2
-rw-r--r--Spigot-Server-Patches/0497-Optimize-Voxel-Shape-Merging.patch (renamed from Spigot-Server-Patches/0498-Optimize-Voxel-Shape-Merging.patch)0
-rw-r--r--Spigot-Server-Patches/0498-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch (renamed from Spigot-Server-Patches/0499-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch)2
-rw-r--r--Spigot-Server-Patches/0499-Implement-Mob-Goal-API.patch (renamed from Spigot-Server-Patches/0500-Implement-Mob-Goal-API.patch)0
-rw-r--r--Spigot-Server-Patches/0500-Use-distance-map-to-optimise-entity-tracker.patch (renamed from Spigot-Server-Patches/0501-Use-distance-map-to-optimise-entity-tracker.patch)0
-rw-r--r--Spigot-Server-Patches/0501-Optimize-isOutsideRange-to-use-distance-maps.patch (renamed from Spigot-Server-Patches/0502-Optimize-isOutsideRange-to-use-distance-maps.patch)8
-rw-r--r--Spigot-Server-Patches/0502-Stop-copy-on-write-operations-for-updating-light-dat.patch (renamed from Spigot-Server-Patches/0503-Stop-copy-on-write-operations-for-updating-light-dat.patch)0
-rw-r--r--Spigot-Server-Patches/0503-No-Tick-view-distance-implementation.patch (renamed from Spigot-Server-Patches/0504-No-Tick-view-distance-implementation.patch)4
-rw-r--r--Spigot-Server-Patches/0504-Add-villager-reputation-API.patch (renamed from Spigot-Server-Patches/0505-Add-villager-reputation-API.patch)0
-rw-r--r--Spigot-Server-Patches/0505-Fix-Light-Command.patch (renamed from Spigot-Server-Patches/0506-Fix-Light-Command.patch)0
-rw-r--r--Spigot-Server-Patches/0506-Fix-CraftServer.unloadWorld-Leak.patch (renamed from Spigot-Server-Patches/0507-Fix-CraftServer.unloadWorld-Leak.patch)0
-rw-r--r--Spigot-Server-Patches/0507-Fix-PotionEffect-ignores-icon-flag.patch (renamed from Spigot-Server-Patches/0508-Fix-PotionEffect-ignores-icon-flag.patch)0
-rw-r--r--Spigot-Server-Patches/0508-Optimize-brigadier-child-sorting-performance.patch (renamed from Spigot-Server-Patches/0509-Optimize-brigadier-child-sorting-performance.patch)0
-rw-r--r--Spigot-Server-Patches/0509-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch (renamed from Spigot-Server-Patches/0510-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch)0
-rw-r--r--Spigot-Server-Patches/0510-Don-t-toString-block-unless-actually-showing-the-mes.patch (renamed from Spigot-Server-Patches/0511-Don-t-toString-block-unless-actually-showing-the-mes.patch)0
-rw-r--r--Spigot-Server-Patches/0511-Implement-JellySquid-s-Entity-Collision-optimisation.patch (renamed from Spigot-Server-Patches/0512-Implement-JellySquid-s-Entity-Collision-optimisation.patch)0
-rw-r--r--Spigot-Server-Patches/0512-Remove-some-Streams-usage-in-Entity-Collision.patch (renamed from Spigot-Server-Patches/0513-Remove-some-Streams-usage-in-Entity-Collision.patch)0
-rw-r--r--Spigot-Server-Patches/0513-Ensure-Entity-AABB-s-are-never-invalid.patch (renamed from Spigot-Server-Patches/0514-Ensure-Entity-AABB-s-are-never-invalid.patch)0
-rw-r--r--Spigot-Server-Patches/0514-Potential-bed-API.patch (renamed from Spigot-Server-Patches/0515-Potential-bed-API.patch)0
-rw-r--r--Spigot-Server-Patches/0515-Wait-for-Async-Tasks-during-shutdown.patch (renamed from Spigot-Server-Patches/0516-Wait-for-Async-Tasks-during-shutdown.patch)0
-rw-r--r--Spigot-Server-Patches/0516-Optimize-WorldBorder-collision-checks-and-air.patch (renamed from Spigot-Server-Patches/0517-Optimize-WorldBorder-collision-checks-and-air.patch)0
-rw-r--r--Spigot-Server-Patches/0517-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch (renamed from Spigot-Server-Patches/0518-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch)0
-rw-r--r--Spigot-Server-Patches/0518-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch (renamed from Spigot-Server-Patches/0519-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch)0
-rw-r--r--Spigot-Server-Patches/0519-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (renamed from Spigot-Server-Patches/0520-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch)0
-rw-r--r--Spigot-Server-Patches/0520-Optimize-NibbleArray-to-use-pooled-buffers.patch (renamed from Spigot-Server-Patches/0521-Optimize-NibbleArray-to-use-pooled-buffers.patch)0
-rw-r--r--Spigot-Server-Patches/0521-Reduce-MutableInt-allocations-from-light-engine.patch (renamed from Spigot-Server-Patches/0522-Reduce-MutableInt-allocations-from-light-engine.patch)0
-rw-r--r--Spigot-Server-Patches/0522-Reduce-allocation-of-Vec3D-by-entity-tracker.patch (renamed from Spigot-Server-Patches/0523-Reduce-allocation-of-Vec3D-by-entity-tracker.patch)0
-rw-r--r--Spigot-Server-Patches/0523-Ensure-safe-gateway-teleport.patch (renamed from Spigot-Server-Patches/0524-Ensure-safe-gateway-teleport.patch)0
-rw-r--r--Spigot-Server-Patches/0524-Add-permission-for-command-blocks.patch (renamed from Spigot-Server-Patches/0525-Add-permission-for-command-blocks.patch)0
-rw-r--r--Spigot-Server-Patches/0525-Add-option-for-console-having-all-permissions.patch (renamed from Spigot-Server-Patches/0526-Add-option-for-console-having-all-permissions.patch)0
-rw-r--r--Spigot-Server-Patches/0526-Workaround-for-Client-Lag-Spikes-MC-162253.patch (renamed from Spigot-Server-Patches/0527-Workaround-for-Client-Lag-Spikes-MC-162253.patch)0
-rw-r--r--Spigot-Server-Patches/0527-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch (renamed from Spigot-Server-Patches/0528-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch)18
-rw-r--r--Spigot-Server-Patches/0528-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch (renamed from Spigot-Server-Patches/0529-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch)0
-rw-r--r--Spigot-Server-Patches/0529-Optimize-sending-packets-to-nearby-locations-sounds-.patch (renamed from Spigot-Server-Patches/0530-Optimize-sending-packets-to-nearby-locations-sounds-.patch)0
-rw-r--r--Spigot-Server-Patches/0530-Optimize-Villagers.patch (renamed from Spigot-Server-Patches/0531-Optimize-Villagers.patch)0
-rw-r--r--Spigot-Server-Patches/0531-Improve-Chunk-Status-Transition-Speed.patch (renamed from Spigot-Server-Patches/0532-Improve-Chunk-Status-Transition-Speed.patch)0
-rw-r--r--Spigot-Server-Patches/0532-Fix-villager-trading-demand-MC-163962.patch (renamed from Spigot-Server-Patches/0533-Fix-villager-trading-demand-MC-163962.patch)0
-rw-r--r--Spigot-Server-Patches/0533-Maps-shouldn-t-load-chunks.patch (renamed from Spigot-Server-Patches/0534-Maps-shouldn-t-load-chunks.patch)0
-rw-r--r--Spigot-Server-Patches/0534-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch (renamed from Spigot-Server-Patches/0535-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch)2
-rw-r--r--Spigot-Server-Patches/0535-Optimize-Bit-Operations-by-inlining.patch (renamed from Spigot-Server-Patches/0536-Optimize-Bit-Operations-by-inlining.patch)0
-rw-r--r--Spigot-Server-Patches/0536-Optimize-Light-Engine.patch (renamed from Spigot-Server-Patches/0537-Optimize-Light-Engine.patch)4
-rw-r--r--Spigot-Server-Patches/0537-Delay-Chunk-Unloads-based-on-Player-Movement.patch (renamed from Spigot-Server-Patches/0538-Delay-Chunk-Unloads-based-on-Player-Movement.patch)2
-rw-r--r--Spigot-Server-Patches/0538-Add-Plugin-Tickets-to-API-Chunk-Methods.patch (renamed from Spigot-Server-Patches/0539-Add-Plugin-Tickets-to-API-Chunk-Methods.patch)20
-rw-r--r--Spigot-Server-Patches/0539-Fix-missing-chunks-due-to-integer-overflow.patch (renamed from Spigot-Server-Patches/0540-Fix-missing-chunks-due-to-integer-overflow.patch)0
-rw-r--r--Spigot-Server-Patches/0540-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch (renamed from Spigot-Server-Patches/0541-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch)0
-rw-r--r--Spigot-Server-Patches/0541-Fix-piston-physics-inconsistency-MC-188840.patch (renamed from Spigot-Server-Patches/0542-Fix-piston-physics-inconsistency-MC-188840.patch)0
-rw-r--r--Spigot-Server-Patches/0542-Fix-sand-duping.patch (renamed from Spigot-Server-Patches/0543-Fix-sand-duping.patch)0
-rw-r--r--Spigot-Server-Patches/0543-Prevent-position-desync-in-playerconnection-causing-.patch (renamed from Spigot-Server-Patches/0544-Prevent-position-desync-in-playerconnection-causing-.patch)2
-rw-r--r--Spigot-Server-Patches/0544-Fix-enderdragon-exp-dupe.patch (renamed from Spigot-Server-Patches/0545-Fix-enderdragon-exp-dupe.patch)0
-rw-r--r--Spigot-Server-Patches/0545-Inventory-getHolder-method-without-block-snapshot.patch (renamed from Spigot-Server-Patches/0546-Inventory-getHolder-method-without-block-snapshot.patch)0
-rw-r--r--Spigot-Server-Patches/0546-Expose-Arrow-getItemStack.patch (renamed from Spigot-Server-Patches/0547-Expose-Arrow-getItemStack.patch)0
-rw-r--r--Spigot-Server-Patches/0547-Add-and-implement-PlayerRecipeBookClickEvent.patch (renamed from Spigot-Server-Patches/0548-Add-and-implement-PlayerRecipeBookClickEvent.patch)2
-rwxr-xr-xpaper7
m---------work/Bukkit0
m---------work/CraftBukkit58
m---------work/Spigot0
124 files changed, 150 insertions, 221 deletions
diff --git a/Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch b/Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch
index 6f1c6b0dfd..99aba6f305 100644
--- a/Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch
+++ b/Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch
@@ -64,7 +64,7 @@ index 0000000000000000000000000000000000000000..8cf87d228a7006658d52ce0da16c2d74
+ Sound getFallSound();
+}
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
-index 41f6b849186346f9a4e254122d2448a7ea8e0ee9..9713867950572fdc8c0f8798afcb37712a6a4e85 100644
+index d7c7df85228c01529e266ffdd3b3bcdc9ed35774..596f1d68b69a2ba3976398d0045379f047541f40 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -1,6 +1,7 @@
@@ -75,7 +75,7 @@ index 41f6b849186346f9a4e254122d2448a7ea8e0ee9..9713867950572fdc8c0f8798afcb3771
import org.bukkit.Chunk;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
-@@ -539,4 +540,16 @@ public interface Block extends Metadatable {
+@@ -540,4 +541,16 @@ public interface Block extends Metadatable {
*/
@NotNull
BoundingBox getBoundingBox();
diff --git a/Spigot-API-Patches/0188-Add-effect-to-block-break-naturally.patch b/Spigot-API-Patches/0188-Add-effect-to-block-break-naturally.patch
index 0ee1187617..af59321963 100644
--- a/Spigot-API-Patches/0188-Add-effect-to-block-break-naturally.patch
+++ b/Spigot-API-Patches/0188-Add-effect-to-block-break-naturally.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Add effect to block break naturally
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
-index 9713867950572fdc8c0f8798afcb37712a6a4e85..19a3b2a1faa5037c34486873e0be0c534813da1d 100644
+index 596f1d68b69a2ba3976398d0045379f047541f40..999f2a362c62cf58752d9c3d378aafe6754d2aaf 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
-@@ -468,6 +468,18 @@ public interface Block extends Metadatable {
+@@ -469,6 +469,18 @@ public interface Block extends Metadatable {
*/
- boolean breakNaturally(@NotNull ItemStack tool);
+ boolean breakNaturally(@Nullable ItemStack tool);
+ // Paper start
+ /**
diff --git a/Spigot-Server-Patches/0001-POM-Changes.patch b/Spigot-Server-Patches/0001-POM-Changes.patch
index 520ca9eb46..d0e2a70921 100644
--- a/Spigot-Server-Patches/0001-POM-Changes.patch
+++ b/Spigot-Server-Patches/0001-POM-Changes.patch
@@ -190,13 +190,13 @@ index 9fc92e347f24a0210a9190513e93cba3b6772557..3554314526b3f33ad02df2adfd42d451
<!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
<dependency>
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 88223a53cb547727bacbba2d6006ecabf92bb524..cb5d0f5378418655eee2cd68bab8dc39a7b7052b 100644
+index 91e2d0b9d9f698f54b49636944a6282adcff5b4b..3fb78997d8c4d913770a9a6a35f34e2c61b896fa 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -186,7 +186,7 @@ public class Main {
}
- if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
+ if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
- Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
+ Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper
diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch
index c18f6f82ae..f8d47ac482 100644
--- a/Spigot-Server-Patches/0002-Paper-config-files.patch
+++ b/Spigot-Server-Patches/0002-Paper-config-files.patch
@@ -530,10 +530,10 @@ index 0000000000000000000000000000000000000000..a738657394bcccd859ef260a801736d4
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 41eac3588e01431818d8848a56ae009a5a510f30..32c496fa88eb1426ab4996fa1bd9803f60648267 100644
+index 87c4b4c6b7793808308c0bfab957f9fd6425f452..beb6b63fa483f0a7b29f5403bebf7ee47b27cd29 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -260,15 +260,15 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -270,15 +270,15 @@ public class ChunkProviderServer extends IChunkProvider {
}
}
@@ -699,7 +699,7 @@ index be30f6bf6a978dfe14af1aca1099cb9a6f7ab443..ad1dcf53040695a1b3194efa92b54917
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index cb5d0f5378418655eee2cd68bab8dc39a7b7052b..101d5b42e319c010fd7ed043fb17d1f2289ae38f 100644
+index 3fb78997d8c4d913770a9a6a35f34e2c61b896fa..daa65aaf8c9616e5e058f3337fc4fc0895d13364 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -129,6 +129,14 @@ public class Main {
diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch
index 5d646fa432..10a690c4bd 100644
--- a/Spigot-Server-Patches/0004-MC-Utils.patch
+++ b/Spigot-Server-Patches/0004-MC-Utils.patch
@@ -2729,7 +2729,7 @@ index 260644bf0be4c5b2d96033f11382f88231048ce3..5a975f6bc60922ac872ec9c00c9150ce
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 32c496fa88eb1426ab4996fa1bd9803f60648267..ba2af2abe2dd09eb6801f431a0942bd93755c97e 100644
+index beb6b63fa483f0a7b29f5403bebf7ee47b27cd29..64d84b334d211fe39e808d2c8b5d457757fb1359 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -23,7 +23,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -2911,7 +2911,7 @@ index 32c496fa88eb1426ab4996fa1bd9803f60648267..ba2af2abe2dd09eb6801f431a0942bd9
public ChunkProviderServer(WorldServer worldserver, File file, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, ChunkGenerator<?> chunkgenerator, int i, WorldLoadListener worldloadlistener, Supplier<WorldPersistentData> supplier) {
this.world = worldserver;
this.serverThreadQueue = new ChunkProviderServer.a(worldserver);
-@@ -77,6 +240,49 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -87,6 +250,49 @@ public class ChunkProviderServer extends IChunkProvider {
this.cacheChunk[0] = ichunkaccess;
}
diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch
index 918dc84a43..19951169a7 100644
--- a/Spigot-Server-Patches/0009-Timings-v2.patch
+++ b/Spigot-Server-Patches/0009-Timings-v2.patch
@@ -754,10 +754,10 @@ index f1b9b937e8ced0c718db463c94d716422113c396..43dc791191cdf2aa3e5cb2768c25e6be
}
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1ca32bb4d 100644
+index 64d84b334d211fe39e808d2c8b5d457757fb1359..83707fa6ae5cf4f564760ca0fb5e8c1932d4a91e 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -308,11 +308,13 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -318,11 +318,13 @@ public class ChunkProviderServer extends IChunkProvider {
}
gameprofilerfiller.c("getChunkCacheMiss");
@@ -773,7 +773,7 @@ index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1
ichunkaccess = (IChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1;
}, (playerchunk_failure) -> {
-@@ -505,7 +507,9 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -515,7 +517,9 @@ public class ChunkProviderServer extends IChunkProvider {
public void save(boolean flag) {
this.tickDistanceManager();
@@ -783,7 +783,7 @@ index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1
}
@Override
-@@ -542,7 +546,9 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -552,7 +556,9 @@ public class ChunkProviderServer extends IChunkProvider {
this.tickDistanceManager();
this.world.timings.doChunkMap.stopTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("chunks");
@@ -793,7 +793,7 @@ index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1
this.world.timings.doChunkUnload.startTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("unload");
this.playerChunkMap.unloadChunks(booleansupplier);
-@@ -573,10 +579,12 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -583,10 +589,12 @@ public class ChunkProviderServer extends IChunkProvider {
// CraftBukkit end
this.world.getMethodProfiler().enter("naturalSpawnCount");
@@ -806,7 +806,7 @@ index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1
this.world.getMethodProfiler().exit();
this.playerChunkMap.f().forEach((playerchunk) -> {
Optional<Chunk> optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
-@@ -585,11 +593,14 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -595,11 +603,14 @@ public class ChunkProviderServer extends IChunkProvider {
Chunk chunk = (Chunk) optional.get();
this.world.getMethodProfiler().enter("broadcast");
@@ -821,7 +821,7 @@ index ba2af2abe2dd09eb6801f431a0942bd93755c97e..875f353dc3a0f3418b01821abf30e0f1
chunk.setInhabitedTime(chunk.getInhabitedTime() + j);
if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(chunkcoordintpair, true)) { // Spigot
this.world.getMethodProfiler().enter("spawner");
-@@ -640,24 +651,24 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -650,24 +661,24 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.getMethodProfiler().exit();
}
diff --git a/Spigot-Server-Patches/0139-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/Spigot-Server-Patches/0139-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index c01af3f6b4..570232f963 100644
--- a/Spigot-Server-Patches/0139-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/Spigot-Server-Patches/0139-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -265,10 +265,10 @@ index 8dc47452a453023e332303575b36732417abd84e..560e2f42b702c5c4870640ad7da3aa48
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 32e96bc05704f10ac4830a661bd6abb71b71f487..265af7ac7fba984ed3d486d6c5d01b54dd2592d9 100644
+index 4ca9ddacb7da760b31d405e77b691ef6d8ff534a..13a83f285126123811a148453ccaea6f9bf197b4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1799,7 +1799,7 @@ public class CraftWorld implements World {
+@@ -1797,7 +1797,7 @@ public class CraftWorld implements World {
} else if (TNTPrimed.class.isAssignableFrom(clazz)) {
entity = new EntityTNTPrimed(world, x, y, z, null);
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
diff --git a/Spigot-Server-Patches/0148-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0148-Use-TerminalConsoleAppender-for-console-improvements.patch
index ce4c77d9fe..561fe6d2d0 100644
--- a/Spigot-Server-Patches/0148-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/Spigot-Server-Patches/0148-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -286,7 +286,7 @@ index 9eb4acf93c65a1473e385be317e5d93cd4571d41..681a84e5b3e7594a43fac0d47f1df2ee
@Override
public PluginCommand getPluginCommand(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index afbe711acbd1cbaf307513d4fede44bb17b3caae..fc07fdb590475ccaa09875b8fcbb81adc0db5e66 100644
+index 18a945ea8674390d294e2a978c78ee2b53039aed..c3641ca48bfe4051f6450c891ccd4dd023257cb5 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -13,7 +13,7 @@ import java.util.logging.Logger;
@@ -325,7 +325,7 @@ index afbe711acbd1cbaf307513d4fede44bb17b3caae..fc07fdb590475ccaa09875b8fcbb81ad
+ System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
}
- if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
+ if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
@@ -226,7 +237,7 @@ public class Main {
System.out.println("Unable to read system info");
}
diff --git a/Spigot-Server-Patches/0190-PlayerNaturallySpawnCreaturesEvent.patch b/Spigot-Server-Patches/0190-PlayerNaturallySpawnCreaturesEvent.patch
index ceca554c42..c21361276e 100644
--- a/Spigot-Server-Patches/0190-PlayerNaturallySpawnCreaturesEvent.patch
+++ b/Spigot-Server-Patches/0190-PlayerNaturallySpawnCreaturesEvent.patch
@@ -9,10 +9,10 @@ from triggering monster spawns on a server.
Also a highly more effecient way to blanket block spawns in a world
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index fa4ad0b6dcd2cb428d87047340b81594b271e4b2..8c6550433c20c54cbe390219821ce393c5720da8 100644
+index 7464aeb4e2f2cbe177cfd2ac19c45aabac625632..261eff5bdb4f4dfae2f66eecad79b21fef69ea8f 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -589,6 +589,15 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -599,6 +599,15 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.world.getMethodProfiler().exit();
diff --git a/Spigot-Server-Patches/0217-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0217-Expand-World.spawnParticle-API-and-add-Builder.patch
index 23b25cfecf..f01c7fe61d 100644
--- a/Spigot-Server-Patches/0217-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/Spigot-Server-Patches/0217-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -43,10 +43,10 @@ index e428b3cb8c8ca5a662a0e867bf74d08775f1bacd..a834a77b2de8f7287be69fd5d002ff43
if (this.a(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 265af7ac7fba984ed3d486d6c5d01b54dd2592d9..d6e101ca9fade08e4d2545fb6e38cb2f6e988a1c 100644
+index 13a83f285126123811a148453ccaea6f9bf197b4..1a3ca48485ebce128ae1288e6a50308c76ee0452 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2289,11 +2289,17 @@ public class CraftWorld implements World {
+@@ -2287,11 +2287,17 @@ public class CraftWorld implements World {
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
diff --git a/Spigot-Server-Patches/0221-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/Spigot-Server-Patches/0221-Allow-spawning-Item-entities-with-World.spawnEntity.patch
index f0ebebc1ea..69f7bafb33 100644
--- a/Spigot-Server-Patches/0221-Allow-spawning-Item-entities-with-World.spawnEntity.patch
+++ b/Spigot-Server-Patches/0221-Allow-spawning-Item-entities-with-World.spawnEntity.patch
@@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function
Item can be set inside of the Consumer pre spawn function.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d6e101ca9fade08e4d2545fb6e38cb2f6e988a1c..a427fea9c70380e2301515c6a24497e382c5097b 100644
+index 1a3ca48485ebce128ae1288e6a50308c76ee0452..28a94e473482b414b50ca793564acd409a5dc133 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1491,6 +1491,10 @@ public class CraftWorld implements World {
+@@ -1489,6 +1489,10 @@ public class CraftWorld implements World {
if (Boat.class.isAssignableFrom(clazz)) {
entity = new EntityBoat(world, x, y, z);
entity.setPositionRotation(x, y, z, yaw, pitch);
diff --git a/Spigot-Server-Patches/0234-Expand-Explosions-API.patch b/Spigot-Server-Patches/0234-Expand-Explosions-API.patch
index 170ff1c52b..7f70c39212 100644
--- a/Spigot-Server-Patches/0234-Expand-Explosions-API.patch
+++ b/Spigot-Server-Patches/0234-Expand-Explosions-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a427fea9c70380e2301515c6a24497e382c5097b..a16ab1f845ba98b8895402ae93c4cd90f48f617c 100644
+index 28a94e473482b414b50ca793564acd409a5dc133..8968bf92b6c2718cbf9519c724bc85d27de54e72 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -879,6 +879,11 @@ public class CraftWorld implements World {
+@@ -877,6 +877,11 @@ public class CraftWorld implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !world.createExplosion(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.Effect.BREAK : Explosion.Effect.NONE).wasCanceled;
}
diff --git a/Spigot-Server-Patches/0238-Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/0238-Implement-World.getEntity-UUID-API.patch
index 9e4be993be..e0c5971e19 100644
--- a/Spigot-Server-Patches/0238-Implement-World.getEntity-UUID-API.patch
+++ b/Spigot-Server-Patches/0238-Implement-World.getEntity-UUID-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a16ab1f845ba98b8895402ae93c4cd90f48f617c..cde999c97f5a1ccab0d13f02708992fac3876e67 100644
+index 8968bf92b6c2718cbf9519c724bc85d27de54e72..a59172ff043e5220ffdd363582c38ae53c429f1a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1293,6 +1293,15 @@ public class CraftWorld implements World {
+@@ -1291,6 +1291,15 @@ public class CraftWorld implements World {
return list;
}
diff --git a/Spigot-Server-Patches/0261-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0261-Ignore-Dead-Entities-in-entityList-iteration.patch
index 7a08644b29..f73a9fa204 100644
--- a/Spigot-Server-Patches/0261-Ignore-Dead-Entities-in-entityList-iteration.patch
+++ b/Spigot-Server-Patches/0261-Ignore-Dead-Entities-in-entityList-iteration.patch
@@ -92,10 +92,10 @@ index 426ca12970e0c75ba75eee6c3e3cdbf833730737..3067ab76d94c58fbfd52fac6754bf6d6
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index cde999c97f5a1ccab0d13f02708992fac3876e67..960e29cb16f1b08f522832700c60d25416585cce 100644
+index a59172ff043e5220ffdd363582c38ae53c429f1a..6c3cd51d92d2271cd216c42c18733d549fbe668d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1029,6 +1029,7 @@ public class CraftWorld implements World {
+@@ -1027,6 +1027,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@@ -103,7 +103,7 @@ index cde999c97f5a1ccab0d13f02708992fac3876e67..960e29cb16f1b08f522832700c60d254
Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null
-@@ -1048,6 +1049,7 @@ public class CraftWorld implements World {
+@@ -1046,6 +1047,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@@ -111,7 +111,7 @@ index cde999c97f5a1ccab0d13f02708992fac3876e67..960e29cb16f1b08f522832700c60d254
Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null
-@@ -1074,6 +1076,7 @@ public class CraftWorld implements World {
+@@ -1072,6 +1074,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) {
@@ -119,7 +119,7 @@ index cde999c97f5a1ccab0d13f02708992fac3876e67..960e29cb16f1b08f522832700c60d254
Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity();
if (bukkitEntity == null) {
-@@ -1097,6 +1100,7 @@ public class CraftWorld implements World {
+@@ -1095,6 +1098,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) {
diff --git a/Spigot-Server-Patches/0276-Send-nearby-packets-from-world-player-list-not-serve.patch b/Spigot-Server-Patches/0276-Send-nearby-packets-from-world-player-list-not-serve.patch
index bf45bb8124..b1c1a742dc 100644
--- a/Spigot-Server-Patches/0276-Send-nearby-packets-from-world-player-list-not-serve.patch
+++ b/Spigot-Server-Patches/0276-Send-nearby-packets-from-world-player-list-not-serve.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Send nearby packets from world player list not server list
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 22f18be4627fefe500239f7a35eee3b019bcffcc..085b70508bb116a1082a9fd79a389199a263109b 100644
+index a225cd8738df80344afe5256ae14c84337865371..69c2c3871a45052a64202470aa5bcc1feba61f11 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -910,8 +910,25 @@ public abstract class PlayerList {
@@ -68,10 +68,10 @@ index 3067ab76d94c58fbfd52fac6754bf6d6d7f01d09..6e878c9b9dee511812df5ea2491d953f
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 960e29cb16f1b08f522832700c60d25416585cce..c7c75a3bfd35ed4a9233e80575a5082660d82d03 100644
+index 6c3cd51d92d2271cd216c42c18733d549fbe668d..ad951812835b1fa786e964c533efc4547c57b7a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2124,7 +2124,7 @@ public class CraftWorld implements World {
+@@ -2122,7 +2122,7 @@ public class CraftWorld implements World {
double z = loc.getZ();
PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), SoundCategory.valueOf(category.name()), new Vec3D(x, y, z), volume, pitch);
diff --git a/Spigot-Server-Patches/0286-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/Spigot-Server-Patches/0286-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index aa492048c1..ee5898d3ec 100644
--- a/Spigot-Server-Patches/0286-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/Spigot-Server-Patches/0286-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c7c75a3bfd35ed4a9233e80575a5082660d82d03..68b1382838f187f9bfbd83a3f582631af6218e29 100644
+index ad951812835b1fa786e964c533efc4547c57b7a2..4e7b11af047c267ce87549e0ba178d7223c03b63 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -501,7 +501,7 @@ public class CraftWorld implements World {
+@@ -499,7 +499,7 @@ public class CraftWorld implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/Spigot-Server-Patches/0307-Add-sun-related-API.patch b/Spigot-Server-Patches/0307-Add-sun-related-API.patch
index f18305a2bc..b6b1d73cac 100644
--- a/Spigot-Server-Patches/0307-Add-sun-related-API.patch
+++ b/Spigot-Server-Patches/0307-Add-sun-related-API.patch
@@ -17,10 +17,10 @@ index b5816dc89ede5f5f1780d3086d9b1a41fba2b19d..bed15873b675bbd05c0149d655f9fb16
if (this.world.isDay() && !this.world.isClientSide) {
float f = this.aI();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 68b1382838f187f9bfbd83a3f582631af6218e29..db31b17b87084c47402f5452872f385629c58382 100644
+index 4e7b11af047c267ce87549e0ba178d7223c03b63..07729667f5c66bbcb85fc59cb5fa3c218efa2ec8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -860,6 +860,13 @@ public class CraftWorld implements World {
+@@ -858,6 +858,13 @@ public class CraftWorld implements World {
}
}
diff --git a/Spigot-Server-Patches/0371-improve-CraftWorld-isChunkLoaded.patch b/Spigot-Server-Patches/0371-improve-CraftWorld-isChunkLoaded.patch
index 697a2b033e..38c1e0435f 100644
--- a/Spigot-Server-Patches/0371-improve-CraftWorld-isChunkLoaded.patch
+++ b/Spigot-Server-Patches/0371-improve-CraftWorld-isChunkLoaded.patch
@@ -9,15 +9,14 @@ waiting for the execution queue to get to our request; We can just query
the chunk status and get a response now, vs having to wait
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 0d5731429abe7b4ff97d6644ff088063dde19e60..5ea7b0b25ae837645f690443d674ce7eb48c1692 100644
+index 2a3d133e51326b0088af2ce53e09bf2fe4b0c3c6..568eca9d3c499e33290aa8ab8548d9c64c97ce5f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -405,14 +405,13 @@ public class CraftWorld implements World {
+@@ -405,13 +405,13 @@ public class CraftWorld implements World {
@Override
public boolean isChunkLoaded(int x, int z) {
-- net.minecraft.server.Chunk chunk = world.getChunkProvider().getChunkAt(x, z, false);
-- return chunk != null;
+- return world.getChunkProvider().isChunkLoaded(x, z);
+ return world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z) != null; // Paper
}
diff --git a/Spigot-Server-Patches/0372-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0372-Configurable-Keep-Spawn-Loaded-range-per-world.patch
index 6416f8958d..1aeb58ac84 100644
--- a/Spigot-Server-Patches/0372-Configurable-Keep-Spawn-Loaded-range-per-world.patch
+++ b/Spigot-Server-Patches/0372-Configurable-Keep-Spawn-Loaded-range-per-world.patch
@@ -21,7 +21,7 @@ index 572679e4d1ca0d84a08a5c48542fa40d426461e5..071e5e7f729d6c3ffb70506e7ef32eeb
+ }
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 4b50158fe12533d0af541be343731d220e772bd9..8b499c815c77bf5b356d4216ba6cbf2a329c9aca 100644
+index eabca3975af61b669fd31a23cb7c27883db7833e..257adcf4d5387fc18d5c48e0fa221f68539ad8f9 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -586,6 +586,14 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -199,10 +199,10 @@ index 55c0b5dc30cff8de5a83a97ae17fec7624cbe3d9..ca0a23be27ee8174204867d463eb89a1
public LongSet getForceLoadedChunks() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5ea7b0b25ae837645f690443d674ce7eb48c1692..8f8c18c5a4f483acee0d61a8007577ac8193bef9 100644
+index 568eca9d3c499e33290aa8ab8548d9c64c97ce5f..b257ef7583f7bc3b6d31f0be89990603640c5ff7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1932,15 +1932,21 @@ public class CraftWorld implements World {
+@@ -1931,15 +1931,21 @@ public class CraftWorld implements World {
@Override
public void setKeepSpawnInMemory(boolean keepLoaded) {
diff --git a/Spigot-Server-Patches/0378-incremental-chunk-saving.patch b/Spigot-Server-Patches/0378-incremental-chunk-saving.patch
index 7461611345..6afaaf3e9d 100644
--- a/Spigot-Server-Patches/0378-incremental-chunk-saving.patch
+++ b/Spigot-Server-Patches/0378-incremental-chunk-saving.patch
@@ -29,7 +29,7 @@ index 071e5e7f729d6c3ffb70506e7ef32eebee1e9118..48676152152faf7a7b9524ac37d8b4a8
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
-index 4f05468590e30f4b11599d3841418c76519255e4..820033289cbeb782429b26b6bcabc3835b0101a3 100644
+index 962f425bbb7165740e77664dc543f976ef3d9c4a..dd3857bb6a002d8432ecbc6c6b52a39e5d55e6a6 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -42,7 +42,7 @@ public class Chunk implements IChunkAccess {
@@ -42,10 +42,10 @@ index 4f05468590e30f4b11599d3841418c76519255e4..820033289cbeb782429b26b6bcabc383
private long inhabitedTime;
@Nullable
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index e6d08756f76360b29b29f18305e5ec84d09f2d54..6713b7667ae4fe3f1f555a71321832b4a9492162 100644
+index 8a8fb6acaabc5fc179a23ce3e23ddb54e1ee23a4..7b855ec2914a8a31ce0ade0f7ad085dd04f71478 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -515,6 +515,15 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -525,6 +525,15 @@ public class ChunkProviderServer extends IChunkProvider {
} // Paper - Timings
}
@@ -62,7 +62,7 @@ index e6d08756f76360b29b29f18305e5ec84d09f2d54..6713b7667ae4fe3f1f555a71321832b4
public void close() throws IOException {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 8b499c815c77bf5b356d4216ba6cbf2a329c9aca..cfed5f51431ec5aecb538a321327bfb6e8a0bd88 100644
+index 257adcf4d5387fc18d5c48e0fa221f68539ad8f9..7920d24ab089fb8360ef74946cf7dc35cb7625eb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -168,6 +168,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
diff --git a/Spigot-Server-Patches/0380-Fix-World-isChunkGenerated-calls.patch b/Spigot-Server-Patches/0380-Fix-World-isChunkGenerated-calls.patch
index 8edc363ea2..66b5a976d6 100644
--- a/Spigot-Server-Patches/0380-Fix-World-isChunkGenerated-calls.patch
+++ b/Spigot-Server-Patches/0380-Fix-World-isChunkGenerated-calls.patch
@@ -8,7 +8,7 @@ This patch also adds a chunk status cache on region files (note that
its only purpose is to cache the status on DISK)
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 6713b7667ae4fe3f1f555a71321832b4a9492162..4c9c8e483974f8869d6711626620cfd7d814d956 100644
+index 7b855ec2914a8a31ce0ade0f7ad085dd04f71478..d8647f272bdb29518b1a7faafa6fbcb53ffe1163 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -28,7 +28,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -20,7 +20,7 @@ index 6713b7667ae4fe3f1f555a71321832b4a9492162..4c9c8e483974f8869d6711626620cfd7
public final PlayerChunkMap playerChunkMap;
private final WorldPersistentData worldPersistentData;
private long lastTickTime;
-@@ -284,6 +284,21 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -294,6 +294,21 @@ public class ChunkProviderServer extends IChunkProvider {
return ret;
}
@@ -280,7 +280,7 @@ index 942b7d323936a872d83c536c1901b4b436aa7e7c..2f8af42e2aadeb1b11db94fdb54ec0ba
throwable = throwable1;
throw throwable1;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 8f8c18c5a4f483acee0d61a8007577ac8193bef9..50467656df0b54c2dcba8696b5677a2fc975b178 100644
+index b257ef7583f7bc3b6d31f0be89990603640c5ff7..cf059aa091e9c732f99b89fc347074a9c1b879a8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -19,6 +19,7 @@ import java.util.Objects;
@@ -315,7 +315,7 @@ index 8f8c18c5a4f483acee0d61a8007577ac8193bef9..50467656df0b54c2dcba8696b5677a2f
} catch (IOException ex) {
throw new RuntimeException(ex);
}
-@@ -523,20 +538,49 @@ public class CraftWorld implements World {
+@@ -522,20 +537,49 @@ public class CraftWorld implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/Spigot-Server-Patches/0390-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0390-Asynchronous-chunk-IO-and-loading.patch
index 284ba12769..63124c86df 100644
--- a/Spigot-Server-Patches/0390-Asynchronous-chunk-IO-and-loading.patch
+++ b/Spigot-Server-Patches/0390-Asynchronous-chunk-IO-and-loading.patch
@@ -2309,10 +2309,10 @@ index 0000000000000000000000000000000000000000..b5c2e1f4a2b5fdcaa6bb01f4b3b6847c
+
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 4c9c8e483974f8869d6711626620cfd7d814d956..a88e8598aab55ac769a5f186507f362e4f99cef4 100644
+index d8647f272bdb29518b1a7faafa6fbcb53ffe1163..981cf581c7504c38120d48c06b6351952fab43c0 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -299,11 +299,138 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -309,11 +309,138 @@ public class ChunkProviderServer extends IChunkProvider {
return playerChunk.getAvailableChunkNow();
}
@@ -2451,7 +2451,7 @@ index 4c9c8e483974f8869d6711626620cfd7d814d956..a88e8598aab55ac769a5f186507f362e
if (Thread.currentThread() != this.serverThread) {
return (IChunkAccess) CompletableFuture.supplyAsync(() -> {
return this.getChunkAt(i, j, chunkstatus, flag);
-@@ -326,11 +453,16 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -336,11 +463,16 @@ public class ChunkProviderServer extends IChunkProvider {
}
gameprofilerfiller.c("getChunkCacheMiss");
@@ -2469,7 +2469,7 @@ index 4c9c8e483974f8869d6711626620cfd7d814d956..a88e8598aab55ac769a5f186507f362e
this.world.timings.syncChunkLoad.stopTiming(); // Paper
} // Paper
ichunkaccess = (IChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
-@@ -396,6 +528,11 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -406,6 +538,11 @@ public class ChunkProviderServer extends IChunkProvider {
}
private CompletableFuture<Either<IChunkAccess, PlayerChunk.Failure>> getChunkFutureMainThread(int i, int j, ChunkStatus chunkstatus, boolean flag) {
@@ -2481,7 +2481,7 @@ index 4c9c8e483974f8869d6711626620cfd7d814d956..a88e8598aab55ac769a5f186507f362e
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i, j);
long k = chunkcoordintpair.pair();
int l = 33 + ChunkStatus.a(chunkstatus);
-@@ -835,11 +972,12 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -845,11 +982,12 @@ public class ChunkProviderServer extends IChunkProvider {
protected boolean executeNext() {
// CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task
try {
@@ -4038,7 +4038,7 @@ index 83585f3ba7ef9e72f3702079a82f62c8b17e4077..83e6c872028107a17de1c08a5f6e8a02
}
public void removeTicketsForSpawn(int radiusInBlocks, BlockPosition spawn) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 50467656df0b54c2dcba8696b5677a2fc975b178..1c5154f8f1b02d8e84fc54afeacb56a86e244ec3 100644
+index cf059aa091e9c732f99b89fc347074a9c1b879a8..5aea49404717061fce4bf24e91f36217db5cee83 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -75,6 +75,7 @@ import net.minecraft.server.GroupDataEntity;
@@ -4049,7 +4049,7 @@ index 50467656df0b54c2dcba8696b5677a2fc975b178..1c5154f8f1b02d8e84fc54afeacb56a8
import net.minecraft.server.MovingObjectPosition;
import net.minecraft.server.PacketPlayOutCustomSoundEffect;
import net.minecraft.server.PacketPlayOutUpdateTime;
-@@ -556,22 +557,23 @@ public class CraftWorld implements World {
+@@ -555,22 +556,23 @@ public class CraftWorld implements World {
return true;
}
@@ -4081,7 +4081,7 @@ index 50467656df0b54c2dcba8696b5677a2fc975b178..1c5154f8f1b02d8e84fc54afeacb56a8
// fall through to load
// we do this so we do not re-read the chunk data on disk
-@@ -2443,6 +2445,34 @@ public class CraftWorld implements World {
+@@ -2442,6 +2444,34 @@ public class CraftWorld implements World {
return new CraftDragonBattle(((WorldProviderTheEnd) worldProvider).o()); // PAIL rename getDragonBattle
}
diff --git a/Spigot-Server-Patches/0392-Reduce-sync-loads.patch b/Spigot-Server-Patches/0392-Reduce-sync-loads.patch
index 4d1b785979..cd2b995d79 100644
--- a/Spigot-Server-Patches/0392-Reduce-sync-loads.patch
+++ b/Spigot-Server-Patches/0392-Reduce-sync-loads.patch
@@ -286,10 +286,10 @@ index 0000000000000000000000000000000000000000..59aec103295f747793fdc0a52eb45f41
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index a88e8598aab55ac769a5f186507f362e4f99cef4..21e444e6ad78081353a7330b60c74164e4596d61 100644
+index 981cf581c7504c38120d48c06b6351952fab43c0..54cf319e9db1aad793ab7f55249f9857b450eda2 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -460,6 +460,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -470,6 +470,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.asyncChunkTaskManager.raisePriority(x, z, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY);
com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.world, x, z);
// Paper end
@@ -298,7 +298,7 @@ index a88e8598aab55ac769a5f186507f362e4f99cef4..21e444e6ad78081353a7330b60c74164
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 21bb992cad2fd2692940ebe26360b8014c1df136..d46f09f684b0b49e84b86fab5f10ac83b4b64d0b 100644
+index 8e5c54af26d2c7abf2daae081af97caee7fd9f7a..045e449c7e411dec7ef415c76c808cda426db652 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1174,7 +1174,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -329,7 +329,7 @@ index 21bb992cad2fd2692940ebe26360b8014c1df136..d46f09f684b0b49e84b86fab5f10ac83
if (chunk != null) {
chunk.a(oclass, axisalignedbb, list, predicate);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index f84248ad9f90aaaf02afa35a4147fb11f703fdcb..befdabc38edfcdffb588c4cdbe52908afe8a9c04 100644
+index 83e6c872028107a17de1c08a5f6e8a02d62277ea..da38293cf02d84f3e24a883136ffe5118a510b5a 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -154,6 +154,12 @@ public class WorldServer extends World {
diff --git a/Spigot-Server-Patches/0396-implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/0396-implement-optional-per-player-mob-spawns.patch
index de524d0762..cf5dc5764c 100644
--- a/Spigot-Server-Patches/0396-implement-optional-per-player-mob-spawns.patch
+++ b/Spigot-Server-Patches/0396-implement-optional-per-player-mob-spawns.patch
@@ -545,10 +545,10 @@ index 0000000000000000000000000000000000000000..4f13d3ff8391793a99f067189f854078
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 21e444e6ad78081353a7330b60c74164e4596d61..927abc78e973e6f0f87e12303409fd808b3cf6ab 100644
+index 54cf319e9db1aad793ab7f55249f9857b450eda2..633f12098973857eca04acd2839bb4d453860f1e 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -747,7 +747,22 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -757,7 +757,22 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.countNaturalMobs.startTiming(); // Paper - timings
int l = this.chunkMapDistance.b();
EnumCreatureType[] aenumcreaturetype = EnumCreatureType.values();
@@ -572,7 +572,7 @@ index 21e444e6ad78081353a7330b60c74164e4596d61..927abc78e973e6f0f87e12303409fd80
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.world.getMethodProfiler().exit();
-@@ -815,8 +830,23 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -825,8 +840,23 @@ public class ChunkProviderServer extends IChunkProvider {
if (enumcreaturetype != EnumCreatureType.MISC && (!enumcreaturetype.c() || this.allowAnimals) && (enumcreaturetype.c() || this.allowMonsters) && (!enumcreaturetype.d() || flag2)) {
int k1 = limit * l / ChunkProviderServer.b; // CraftBukkit - use per-world limits
diff --git a/Spigot-Server-Patches/0404-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch b/Spigot-Server-Patches/0404-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch
index db365cc564..f136189c97 100644
--- a/Spigot-Server-Patches/0404-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch
+++ b/Spigot-Server-Patches/0404-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix spawning of hanging entities that are not ItemFrames and
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 1c5154f8f1b02d8e84fc54afeacb56a86e244ec3..5f51e8c05a822dfad35bcfa4c9a33f1f067e85a7 100644
+index 5aea49404717061fce4bf24e91f36217db5cee83..c030ff7b34fdd4c4632714a800935a6a5f8082cb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1851,7 +1851,12 @@ public class CraftWorld implements World {
+@@ -1850,7 +1850,12 @@ public class CraftWorld implements World {
height = 9;
}
diff --git a/Spigot-Server-Patches/0425-Add-effect-to-block-break-naturally.patch b/Spigot-Server-Patches/0425-Add-effect-to-block-break-naturally.patch
index 570b22340e..f43e886f86 100644
--- a/Spigot-Server-Patches/0425-Add-effect-to-block-break-naturally.patch
+++ b/Spigot-Server-Patches/0425-Add-effect-to-block-break-naturally.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add effect to block break naturally
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
-index 1fc7f55fcaa1f9aaa4c675f9fcd508ffb80e9629..a5f981cd0d373db45f22384803c323be428dce0c 100644
+index 16349e8e796c5e7e4e43fb355d4d641df7f41dc9..382b50d37aced746266b618f3f277846728565bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -606,6 +606,13 @@ public class CraftBlock implements Block {
@@ -24,7 +24,7 @@ index 1fc7f55fcaa1f9aaa4c675f9fcd508ffb80e9629..a5f981cd0d373db45f22384803c323be
net.minecraft.server.Block block = iblockdata.getBlock();
@@ -615,6 +622,7 @@ public class CraftBlock implements Block {
// Modelled off EntityHuman#hasBlock
- if (block != Blocks.AIR && (iblockdata.getMaterial().isAlwaysDestroyable() || nmsItem.canDestroySpecialBlock(iblockdata))) {
+ if (block != Blocks.AIR && (item == null || iblockdata.getMaterial().isAlwaysDestroyable() || nmsItem.canDestroySpecialBlock(iblockdata))) {
net.minecraft.server.Block.dropItems(iblockdata, world.getMinecraftWorld(), position, world.getTileEntity(position), null, nmsItem);
+ if (triggerEffect) world.triggerEffect(org.bukkit.Effect.STEP_SOUND.getId(), position, net.minecraft.server.Block.getCombinedId(block.getBlockData())); // Paper
result = true;
diff --git a/Spigot-Server-Patches/0431-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/Spigot-Server-Patches/0431-Optimise-getChunkAt-calls-for-loaded-chunks.patch
index bf4279931a..9ac993e609 100644
--- a/Spigot-Server-Patches/0431-Optimise-getChunkAt-calls-for-loaded-chunks.patch
+++ b/Spigot-Server-Patches/0431-Optimise-getChunkAt-calls-for-loaded-chunks.patch
@@ -7,10 +7,10 @@ bypass the need to get a player chunk, then get the either,
then unwrap it...
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 927abc78e973e6f0f87e12303409fd808b3cf6ab..6688b1340e2cc8fb13a7e80c9b7c37b8822dcecd 100644
+index 633f12098973857eca04acd2839bb4d453860f1e..e467cd8123dafc46a8c894f1ffa9440de0d45340 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -436,6 +436,12 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -446,6 +446,12 @@ public class ChunkProviderServer extends IChunkProvider {
return this.getChunkAt(i, j, chunkstatus, flag);
}, this.serverThreadQueue).join();
} else {
@@ -23,7 +23,7 @@ index 927abc78e973e6f0f87e12303409fd808b3cf6ab..6688b1340e2cc8fb13a7e80c9b7c37b8
GameProfilerFiller gameprofilerfiller = this.world.getMethodProfiler();
gameprofilerfiller.c("getChunk");
-@@ -486,39 +492,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -496,39 +502,7 @@ public class ChunkProviderServer extends IChunkProvider {
if (Thread.currentThread() != this.serverThread) {
return null;
} else {
@@ -65,7 +65,7 @@ index 927abc78e973e6f0f87e12303409fd808b3cf6ab..6688b1340e2cc8fb13a7e80c9b7c37b8
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index b9685abed74fd1fb239b0940751fde65cceb6f57..d8eb8a59da36215334582ae73822e1fd4a5b2df1 100644
+index d7ac4c86d170a8d7d816f86ac691c3b5129a20ba..adacff593ee20804b5ddb2df55b66bc6c162dc70 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -266,6 +266,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
diff --git a/Spigot-Server-Patches/0456-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch b/Spigot-Server-Patches/0456-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch
index dae3153824..7383da9f43 100644
--- a/Spigot-Server-Patches/0456-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch
+++ b/Spigot-Server-Patches/0456-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch
@@ -57,10 +57,10 @@ index 0000000000000000000000000000000000000000..f6ff4d8132a95895680f5bc81f8f873e
+ }
+}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index d53b34ba552771bf271131ce0a56ebb992ccc84c..a1b5e6b90fc93f83186cf3ebf3e158767008c69a 100644
+index 9e3471be219b5e061486c8a3e4b638a45e6f28f5..9d5275c628b3963befdfa60841ef3c3331c8338c 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -756,7 +756,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -766,7 +766,7 @@ public class ChunkProviderServer extends IChunkProvider {
entityPlayer.playerNaturallySpawnedEvent.callEvent();
};
// Paper end
@@ -243,7 +243,7 @@ index 6a2cf0c6f649e7a74b58fc292f57a08c0663b0a4..ea6b310e8e4741c8bb301e5bc586faca
while (objectbidirectionaliterator.hasNext()) {
Entry<PlayerChunk> entry = (Entry) objectbidirectionaliterator.next();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5f51e8c05a822dfad35bcfa4c9a33f1f067e85a7..efa92c798010b4815b4aa63fe1e4832eeeccd9e9 100644
+index c030ff7b34fdd4c4632714a800935a6a5f8082cb..1929aacbe83c401c7254484aa8df62ed1554e3ba 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -74,6 +74,7 @@ import net.minecraft.server.GameRules;
diff --git a/Spigot-Server-Patches/0457-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch b/Spigot-Server-Patches/0457-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch
deleted file mode 100644
index 0868780563..0000000000
--- a/Spigot-Server-Patches/0457-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Aikar <[email protected]>
-Date: Wed, 8 Apr 2020 21:07:08 -0400
-Subject: [PATCH] Don't load chunks when attempting to unload a chunk
-
-Big Brain Logic
-
-diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index efa92c798010b4815b4aa63fe1e4832eeeccd9e9..c77c59223eb652346502b9a896e0ad536395e444 100644
---- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -474,7 +474,7 @@ public class CraftWorld implements World {
- @Override
- public boolean unloadChunkRequest(int x, int z) {
- org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
-- net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, false);
-+ net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper
- if (chunk != null) {
- world.getChunkProvider().removeTicket(TicketType.PLUGIN, chunk.getPos(), 1, Unit.INSTANCE);
- }
-@@ -484,7 +484,7 @@ public class CraftWorld implements World {
-
- private boolean unloadChunk0(int x, int z, boolean save) {
- org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
-- net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, false);
-+ net.minecraft.server.Chunk chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper
- if (chunk == null) {
- return true;
- }
diff --git a/Spigot-Server-Patches/0458-Increase-Light-Queue-Size.patch b/Spigot-Server-Patches/0457-Increase-Light-Queue-Size.patch
index 7ad92c02d1..7ad92c02d1 100644
--- a/Spigot-Server-Patches/0458-Increase-Light-Queue-Size.patch
+++ b/Spigot-Server-Patches/0457-Increase-Light-Queue-Size.patch
diff --git a/Spigot-Server-Patches/0459-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch b/Spigot-Server-Patches/0458-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch
index 16b6d82ad4..8f9ba37c0e 100644
--- a/Spigot-Server-Patches/0459-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch
+++ b/Spigot-Server-Patches/0458-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch
@@ -56,10 +56,10 @@ index f1b41e16c8ce8323a896339c5d822f8ff7d8f7e6..f8f225e18fa38cad917f52a379233e0a
+ }
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index a1b5e6b90fc93f83186cf3ebf3e158767008c69a..2ef8506f10426b8a5877e30986c105c0d95be774 100644
+index 9d5275c628b3963befdfa60841ef3c3331c8338c..b6146330a55665a0365ff7474f1843766e0c0ce1 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -689,6 +689,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -699,6 +699,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.getMethodProfiler().enter("purge");
this.world.timings.doChunkMap.startTiming(); // Spigot
this.chunkMapDistance.purgeTickets();
@@ -67,7 +67,7 @@ index a1b5e6b90fc93f83186cf3ebf3e158767008c69a..2ef8506f10426b8a5877e30986c105c0
this.tickDistanceManager();
this.world.timings.doChunkMap.stopTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("chunks");
-@@ -698,6 +699,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -708,6 +709,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.doChunkUnload.startTiming(); // Spigot
this.world.getMethodProfiler().exitEnter("unload");
this.playerChunkMap.unloadChunks(booleansupplier);
@@ -75,7 +75,7 @@ index a1b5e6b90fc93f83186cf3ebf3e158767008c69a..2ef8506f10426b8a5877e30986c105c0
this.world.timings.doChunkUnload.stopTiming(); // Spigot
this.world.getMethodProfiler().exit();
this.clearCache();
-@@ -756,7 +758,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -766,7 +768,7 @@ public class ChunkProviderServer extends IChunkProvider {
entityPlayer.playerNaturallySpawnedEvent.callEvent();
};
// Paper end
@@ -84,7 +84,7 @@ index a1b5e6b90fc93f83186cf3ebf3e158767008c69a..2ef8506f10426b8a5877e30986c105c0
Optional<Chunk> optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
if (optional.isPresent()) {
-@@ -839,6 +841,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -849,6 +851,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.chunkTicks.startTiming(); // Spigot // Paper
this.world.a(chunk, k);
this.world.timings.chunkTicks.stopTiming(); // Spigot // Paper
@@ -92,7 +92,7 @@ index a1b5e6b90fc93f83186cf3ebf3e158767008c69a..2ef8506f10426b8a5877e30986c105c0
}
}
});
-@@ -980,6 +983,41 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -990,6 +993,41 @@ public class ChunkProviderServer extends IChunkProvider {
super.executeTask(runnable);
}
diff --git a/Spigot-Server-Patches/0460-Don-t-move-existing-players-to-world-spawn.patch b/Spigot-Server-Patches/0459-Don-t-move-existing-players-to-world-spawn.patch
index 76150d5164..261e26db9e 100644
--- a/Spigot-Server-Patches/0460-Don-t-move-existing-players-to-world-spawn.patch
+++ b/Spigot-Server-Patches/0459-Don-t-move-existing-players-to-world-spawn.patch
@@ -40,7 +40,7 @@ index f4215d38acef8018f09dff5f379c14336647687d..4e4c0acc6c103c85b7ba2a390a54d351
this.dimension = ((WorldServer) this.world).getWorldProvider().getDimensionManager();
this.playerInteractManager.a((WorldServer) world);
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 32d8cc7f22aaddef2e68506eeb44e01795f2aff5..ab2831830ad3a4cec0671d189e0534c843b47f5e 100644
+index 157738f452493aabdefb228cd527ba85400baad5..611dea90200fe346915d66317e21d94154381e97 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -108,6 +108,7 @@ public abstract class PlayerList {
diff --git a/Spigot-Server-Patches/0461-Add-tick-times-API-and-mspt-command.patch b/Spigot-Server-Patches/0460-Add-tick-times-API-and-mspt-command.patch
index 5daae2368e..1d28a9ba79 100644
--- a/Spigot-Server-Patches/0461-Add-tick-times-API-and-mspt-command.patch
+++ b/Spigot-Server-Patches/0460-Add-tick-times-API-and-mspt-command.patch
@@ -87,7 +87,7 @@ index f8f225e18fa38cad917f52a379233e0a7a869b07..3ee7e5671dd2519cec72b81211f1f391
version = getInt("config-version", 20);
set("config-version", 20);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 2d54c9a27fc5ca35c54a42b59f5321277d2d822b..c07339c87f8efff9c26aadc778cc3b16e170673f 100644
+index 11349565e71d97384d3dcab9cdf6ea168c6d2f4f..a0e33d42a158defc8b4a72de5d01b9395dca42eb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -106,6 +106,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
diff --git a/Spigot-Server-Patches/0462-Expose-MinecraftServer-isRunning.patch b/Spigot-Server-Patches/0461-Expose-MinecraftServer-isRunning.patch
index f4f3b22086..f4f3b22086 100644
--- a/Spigot-Server-Patches/0462-Expose-MinecraftServer-isRunning.patch
+++ b/Spigot-Server-Patches/0461-Expose-MinecraftServer-isRunning.patch
diff --git a/Spigot-Server-Patches/0463-Add-Raw-Byte-ItemStack-Serialization.patch b/Spigot-Server-Patches/0462-Add-Raw-Byte-ItemStack-Serialization.patch
index 290b76e00c..290b76e00c 100644
--- a/Spigot-Server-Patches/0463-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/Spigot-Server-Patches/0462-Add-Raw-Byte-ItemStack-Serialization.patch
diff --git a/Spigot-Server-Patches/0464-Remove-streams-from-Mob-AI-System.patch b/Spigot-Server-Patches/0463-Remove-streams-from-Mob-AI-System.patch
index 7ae4a8f8c8..7ae4a8f8c8 100644
--- a/Spigot-Server-Patches/0464-Remove-streams-from-Mob-AI-System.patch
+++ b/Spigot-Server-Patches/0463-Remove-streams-from-Mob-AI-System.patch
diff --git a/Spigot-Server-Patches/0465-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch b/Spigot-Server-Patches/0464-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch
index 28c0231086..0bd387f305 100644
--- a/Spigot-Server-Patches/0465-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch
+++ b/Spigot-Server-Patches/0464-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Delay unsafe actions until after entity ticking is done
This will help prevent many cases of unregistering entities during entity ticking
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index a4a2882d32d0167738f8367209dbfd3ca4f5b953..9e32e2db10f5faaa3c5f4adc5cbc2c1a2e4d3073 100644
+index 69e6614049e490dc70baf745761c62b173cf693e..aaf85a1497de98522e3a01d4f81a267c4b0cc087 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -60,6 +60,16 @@ public class WorldServer extends World {
diff --git a/Spigot-Server-Patches/0466-Async-command-map-building.patch b/Spigot-Server-Patches/0465-Async-command-map-building.patch
index 2d3efaa3ad..2d3efaa3ad 100644
--- a/Spigot-Server-Patches/0466-Async-command-map-building.patch
+++ b/Spigot-Server-Patches/0465-Async-command-map-building.patch
diff --git a/Spigot-Server-Patches/0467-Improved-Watchdog-Support.patch b/Spigot-Server-Patches/0466-Improved-Watchdog-Support.patch
index 71f97b5370..b49dd4ed46 100644
--- a/Spigot-Server-Patches/0467-Improved-Watchdog-Support.patch
+++ b/Spigot-Server-Patches/0466-Improved-Watchdog-Support.patch
@@ -330,7 +330,7 @@ index b627180729a24a83ca383f83aee53133ea1b398e..f49193d9d7cd9655fdedf64bebdcf4e1
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 093dbeae2784d51dae74f66e3e1ce5bf6a370428..99e1e902d8fdf33c157416c5d6abc71b495ac48e 100644
+index d3463abe89f6e730373cef5e3ac8c0911d0b0963..e913d249d850210c9efba1bb46ce2ce4df013a62 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -150,6 +150,37 @@ public class Main {
diff --git a/Spigot-Server-Patches/0468-Optimize-Pathfinding.patch b/Spigot-Server-Patches/0467-Optimize-Pathfinding.patch
index b06ced5912..b06ced5912 100644
--- a/Spigot-Server-Patches/0468-Optimize-Pathfinding.patch
+++ b/Spigot-Server-Patches/0467-Optimize-Pathfinding.patch
diff --git a/Spigot-Server-Patches/0469-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch b/Spigot-Server-Patches/0468-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch
index 8b5c367abc..8b5c367abc 100644
--- a/Spigot-Server-Patches/0469-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch
+++ b/Spigot-Server-Patches/0468-Port-20w15a-Villager-AI-optimizations-DROP-1.16.patch
diff --git a/Spigot-Server-Patches/0470-Reduce-Either-Optional-allocation.patch b/Spigot-Server-Patches/0469-Reduce-Either-Optional-allocation.patch
index 0f4641263b..0f4641263b 100644
--- a/Spigot-Server-Patches/0470-Reduce-Either-Optional-allocation.patch
+++ b/Spigot-Server-Patches/0469-Reduce-Either-Optional-allocation.patch
diff --git a/Spigot-Server-Patches/0471-Remove-streams-from-PairedQueue.patch b/Spigot-Server-Patches/0470-Remove-streams-from-PairedQueue.patch
index a0ba9fe4c5..a0ba9fe4c5 100644
--- a/Spigot-Server-Patches/0471-Remove-streams-from-PairedQueue.patch
+++ b/Spigot-Server-Patches/0470-Remove-streams-from-PairedQueue.patch
diff --git a/Spigot-Server-Patches/0472-Remove-streams-from-MinecraftKey.patch b/Spigot-Server-Patches/0471-Remove-streams-from-MinecraftKey.patch
index 853063b15a..853063b15a 100644
--- a/Spigot-Server-Patches/0472-Remove-streams-from-MinecraftKey.patch
+++ b/Spigot-Server-Patches/0471-Remove-streams-from-MinecraftKey.patch
diff --git a/Spigot-Server-Patches/0473-Reduce-memory-footprint-of-NBTTagCompound.patch b/Spigot-Server-Patches/0472-Reduce-memory-footprint-of-NBTTagCompound.patch
index 8f36b43e48..8f36b43e48 100644
--- a/Spigot-Server-Patches/0473-Reduce-memory-footprint-of-NBTTagCompound.patch
+++ b/Spigot-Server-Patches/0472-Reduce-memory-footprint-of-NBTTagCompound.patch
diff --git a/Spigot-Server-Patches/0474-Prevent-opening-inventories-when-frozen.patch b/Spigot-Server-Patches/0473-Prevent-opening-inventories-when-frozen.patch
index a245aa5c49..a245aa5c49 100644
--- a/Spigot-Server-Patches/0474-Prevent-opening-inventories-when-frozen.patch
+++ b/Spigot-Server-Patches/0473-Prevent-opening-inventories-when-frozen.patch
diff --git a/Spigot-Server-Patches/0475-Optimise-ArraySetSorted-removeIf.patch b/Spigot-Server-Patches/0474-Optimise-ArraySetSorted-removeIf.patch
index 529f78279c..529f78279c 100644
--- a/Spigot-Server-Patches/0475-Optimise-ArraySetSorted-removeIf.patch
+++ b/Spigot-Server-Patches/0474-Optimise-ArraySetSorted-removeIf.patch
diff --git a/Spigot-Server-Patches/0476-Don-t-run-entity-collision-code-if-not-needed.patch b/Spigot-Server-Patches/0475-Don-t-run-entity-collision-code-if-not-needed.patch
index fa10e6fb2d..fa10e6fb2d 100644
--- a/Spigot-Server-Patches/0476-Don-t-run-entity-collision-code-if-not-needed.patch
+++ b/Spigot-Server-Patches/0475-Don-t-run-entity-collision-code-if-not-needed.patch
diff --git a/Spigot-Server-Patches/0477-Optimise-entity-hard-collision-checking.patch b/Spigot-Server-Patches/0476-Optimise-entity-hard-collision-checking.patch
index fed43bd677..b80a505ed9 100644
--- a/Spigot-Server-Patches/0477-Optimise-entity-hard-collision-checking.patch
+++ b/Spigot-Server-Patches/0476-Optimise-entity-hard-collision-checking.patch
@@ -178,7 +178,7 @@ index 4157e50e4d99c029759bffcb48a8d645487554c8..5135308fb6137a34ed6fd061f0a210de
return stream.filter(axisalignedbb1::c).map(VoxelShapes::a);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
-index 8cf191ec7f7c825e3d0996b7e224956a569ab2ba..9f4268202653f6f0ebed49cd67ae691a8b18ccd2 100644
+index bdd0908adb7d3cd5370b43be196c975e6c48a70f..1c7955d3ae7ddd1c2d924cec20a91202cf090f40 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1179,6 +1179,32 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
diff --git a/Spigot-Server-Patches/0478-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch b/Spigot-Server-Patches/0477-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch
index e8a65459c1..9bd9a6f1eb 100644
--- a/Spigot-Server-Patches/0478-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch
+++ b/Spigot-Server-Patches/0477-Optimize-ChunkProviderServer-s-chunk-level-checking-.patch
@@ -9,10 +9,10 @@ so inline where possible, and avoid the abstraction of the
Either class.
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 2ef8506f10426b8a5877e30986c105c0d95be774..722db939971fe395d8250c388fbd7f3b5e87804d 100644
+index b6146330a55665a0365ff7474f1843766e0c0ce1..695d12e1942018be6a9e8c999ba6071b9f778568 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -607,27 +607,37 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -617,27 +617,37 @@ public class ChunkProviderServer extends IChunkProvider {
public final boolean isInEntityTickingChunk(Entity entity) { return this.a(entity); } // Paper - OBFHELPER
@Override public boolean a(Entity entity) {
diff --git a/Spigot-Server-Patches/0479-Restrict-vanilla-teleport-command-to-valid-locations.patch b/Spigot-Server-Patches/0478-Restrict-vanilla-teleport-command-to-valid-locations.patch
index 9cfca0614e..9cfca0614e 100644
--- a/Spigot-Server-Patches/0479-Restrict-vanilla-teleport-command-to-valid-locations.patch
+++ b/Spigot-Server-Patches/0478-Restrict-vanilla-teleport-command-to-valid-locations.patch
diff --git a/Spigot-Server-Patches/0480-Implement-Player-Client-Options-API.patch b/Spigot-Server-Patches/0479-Implement-Player-Client-Options-API.patch
index 2126083443..2126083443 100644
--- a/Spigot-Server-Patches/0480-Implement-Player-Client-Options-API.patch
+++ b/Spigot-Server-Patches/0479-Implement-Player-Client-Options-API.patch
diff --git a/Spigot-Server-Patches/0481-Fix-Chunk-Post-Processing-deadlock-risk.patch b/Spigot-Server-Patches/0480-Fix-Chunk-Post-Processing-deadlock-risk.patch
index 9e74c02f5f..3cc4ccdb74 100644
--- a/Spigot-Server-Patches/0481-Fix-Chunk-Post-Processing-deadlock-risk.patch
+++ b/Spigot-Server-Patches/0480-Fix-Chunk-Post-Processing-deadlock-risk.patch
@@ -25,10 +25,10 @@ This successfully fixed a reoccurring and highly reproduceable crash
for heightmaps.
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 722db939971fe395d8250c388fbd7f3b5e87804d..ba99e9949c6fdfc4f49b6b6716100eb51697227d 100644
+index 695d12e1942018be6a9e8c999ba6071b9f778568..665d83042dab467cddf315fade883fd55ffc8bfd 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -1040,6 +1040,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -1050,6 +1050,7 @@ public class ChunkProviderServer extends IChunkProvider {
return super.executeNext() || execChunkTask; // Paper
}
} finally {
diff --git a/Spigot-Server-Patches/0482-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/Spigot-Server-Patches/0481-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
index fae600572c..fae600572c 100644
--- a/Spigot-Server-Patches/0482-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
+++ b/Spigot-Server-Patches/0481-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
diff --git a/Spigot-Server-Patches/0483-Broadcast-join-message-to-console.patch b/Spigot-Server-Patches/0482-Broadcast-join-message-to-console.patch
index 9dc5529fd8..046df57479 100644
--- a/Spigot-Server-Patches/0483-Broadcast-join-message-to-console.patch
+++ b/Spigot-Server-Patches/0482-Broadcast-join-message-to-console.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Broadcast join message to console
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index 78040e83899f1ef1a6d5c456beb9d13959307c18..c491612267977fb331368825e0d87b2fc297e9c5 100644
+index 5428f306340acb92b93fe133b827173b646e5d4c..ba97c48c937051adc0baa1e9acbc911575ea58d0 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -188,9 +188,9 @@ public abstract class PlayerList {
diff --git a/Spigot-Server-Patches/0484-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/Spigot-Server-Patches/0483-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
index 5d3432d74c..835b1f83a7 100644
--- a/Spigot-Server-Patches/0484-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
+++ b/Spigot-Server-Patches/0483-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
@@ -52,7 +52,7 @@ index 48f858388029e77f710365e73905f8570f1103f5..2caa53a7e143aae32918ecbefc1bdadc
if (!(entity instanceof EntityComplexPart)) {
if (!(entity instanceof EntityLightning)) {
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
-index c491612267977fb331368825e0d87b2fc297e9c5..40f5d9fa9069a330b6999eefa50015daa4c19217 100644
+index ba97c48c937051adc0baa1e9acbc911575ea58d0..1c7aac029ae01afa127ca386278a4ff8520e3674 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -177,6 +177,12 @@ public abstract class PlayerList {
diff --git a/Spigot-Server-Patches/0485-Load-Chunks-for-Login-Asynchronously.patch b/Spigot-Server-Patches/0484-Load-Chunks-for-Login-Asynchronously.patch
index b2205b212d..b2205b212d 100644
--- a/Spigot-Server-Patches/0485-Load-Chunks-for-Login-Asynchronously.patch
+++ b/Spigot-Server-Patches/0484-Load-Chunks-for-Login-Asynchronously.patch
diff --git a/Spigot-Server-Patches/0486-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/Spigot-Server-Patches/0485-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
index 3e1193387b..3e1193387b 100644
--- a/Spigot-Server-Patches/0486-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
+++ b/Spigot-Server-Patches/0485-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
diff --git a/Spigot-Server-Patches/0487-Allow-sleeping-players-to-float.patch b/Spigot-Server-Patches/0486-Allow-sleeping-players-to-float.patch
index c8a5996a44..0727ae686c 100644
--- a/Spigot-Server-Patches/0487-Allow-sleeping-players-to-float.patch
+++ b/Spigot-Server-Patches/0486-Allow-sleeping-players-to-float.patch
@@ -9,7 +9,7 @@ their position to the ground/exit location when entering the bed, resulting in
the server believing they're still in the air.
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index cf274bcfdc5aeea780eae96df36816c2c5a1f4d9..91d078b6388eaf869afa0e602f73eb194b2e99a5 100644
+index 6dd4303c1c211ac4b0bb542ea96cc150581bf8c1..08e087d952edfecd73ad698684b71c09dabbac9e 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -160,7 +160,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/Spigot-Server-Patches/0488-Add-PlayerAttackEntityCooldownResetEvent.patch b/Spigot-Server-Patches/0487-Add-PlayerAttackEntityCooldownResetEvent.patch
index f5ba23a129..f5ba23a129 100644
--- a/Spigot-Server-Patches/0488-Add-PlayerAttackEntityCooldownResetEvent.patch
+++ b/Spigot-Server-Patches/0487-Add-PlayerAttackEntityCooldownResetEvent.patch
diff --git a/Spigot-Server-Patches/0489-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch b/Spigot-Server-Patches/0488-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch
index b2f5e22745..b2f5e22745 100644
--- a/Spigot-Server-Patches/0489-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch
+++ b/Spigot-Server-Patches/0488-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch
diff --git a/Spigot-Server-Patches/0490-Don-t-fire-BlockFade-on-worldgen-threads.patch b/Spigot-Server-Patches/0489-Don-t-fire-BlockFade-on-worldgen-threads.patch
index b9ea27eb3c..b9ea27eb3c 100644
--- a/Spigot-Server-Patches/0490-Don-t-fire-BlockFade-on-worldgen-threads.patch
+++ b/Spigot-Server-Patches/0489-Don-t-fire-BlockFade-on-worldgen-threads.patch
diff --git a/Spigot-Server-Patches/0491-Add-phantom-creative-and-insomniac-controls.patch b/Spigot-Server-Patches/0490-Add-phantom-creative-and-insomniac-controls.patch
index 723b5b1a26..723b5b1a26 100644
--- a/Spigot-Server-Patches/0491-Add-phantom-creative-and-insomniac-controls.patch
+++ b/Spigot-Server-Patches/0490-Add-phantom-creative-and-insomniac-controls.patch
diff --git a/Spigot-Server-Patches/0492-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/Spigot-Server-Patches/0491-Fix-numerous-item-duplication-issues-and-teleport-is.patch
index fd2e4bff84..fd2e4bff84 100644
--- a/Spigot-Server-Patches/0492-Fix-numerous-item-duplication-issues-and-teleport-is.patch
+++ b/Spigot-Server-Patches/0491-Fix-numerous-item-duplication-issues-and-teleport-is.patch
diff --git a/Spigot-Server-Patches/0493-Implement-Brigadier-Mojang-API.patch b/Spigot-Server-Patches/0492-Implement-Brigadier-Mojang-API.patch
index c612ebbab9..b4c15ac4f4 100644
--- a/Spigot-Server-Patches/0493-Implement-Brigadier-Mojang-API.patch
+++ b/Spigot-Server-Patches/0492-Implement-Brigadier-Mojang-API.patch
@@ -69,7 +69,7 @@ index 0b23a0548d52a30c064d624e39a896a9791aab3b..c988c929f1063b417d10d84b0c131277
public boolean hasPermission(int i) {
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 91d078b6388eaf869afa0e602f73eb194b2e99a5..c2f2671da9b3598c2f866db1078d4b1d0f3430ef 100644
+index 08e087d952edfecd73ad698684b71c09dabbac9e..c3a86d3007c2fdc5d45f628226507b4a1c968ad6 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -581,8 +581,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/Spigot-Server-Patches/0494-Villager-Restocks-API.patch b/Spigot-Server-Patches/0493-Villager-Restocks-API.patch
index f47011ebd4..f47011ebd4 100644
--- a/Spigot-Server-Patches/0494-Villager-Restocks-API.patch
+++ b/Spigot-Server-Patches/0493-Villager-Restocks-API.patch
diff --git a/Spigot-Server-Patches/0495-Validate-PickItem-Packet-and-kick-for-invalid.patch b/Spigot-Server-Patches/0494-Validate-PickItem-Packet-and-kick-for-invalid.patch
index 238559fce6..e8c029c3a1 100644
--- a/Spigot-Server-Patches/0495-Validate-PickItem-Packet-and-kick-for-invalid.patch
+++ b/Spigot-Server-Patches/0494-Validate-PickItem-Packet-and-kick-for-invalid.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index c2f2671da9b3598c2f866db1078d4b1d0f3430ef..294e9a47e21be0babad2ea3d2a9b3fc79083e350 100644
+index c3a86d3007c2fdc5d45f628226507b4a1c968ad6..a716f25478ba9731b7bb07f5d80c3655c8190e8b 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -696,7 +696,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/Spigot-Server-Patches/0496-Expose-game-version.patch b/Spigot-Server-Patches/0495-Expose-game-version.patch
index 8d6ba360d2..8d6ba360d2 100644
--- a/Spigot-Server-Patches/0496-Expose-game-version.patch
+++ b/Spigot-Server-Patches/0495-Expose-game-version.patch
diff --git a/Spigot-Server-Patches/0497-Sync-position-on-teleportation.patch b/Spigot-Server-Patches/0496-Sync-position-on-teleportation.patch
index cd3f0fcb4b..06ad495a7e 100644
--- a/Spigot-Server-Patches/0497-Sync-position-on-teleportation.patch
+++ b/Spigot-Server-Patches/0496-Sync-position-on-teleportation.patch
@@ -13,7 +13,7 @@ it is triggering a massive movement velocity.
This will ensure that the servers position is synchronized anytime player is teleported.
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 294e9a47e21be0babad2ea3d2a9b3fc79083e350..45944cad9436dd309a6323f80a0c4c2f2bb6367b 100644
+index a716f25478ba9731b7bb07f5d80c3655c8190e8b..1f9d231fb93e30286205f7a0a4c898a0e153bd95 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -498,6 +498,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/Spigot-Server-Patches/0498-Optimize-Voxel-Shape-Merging.patch b/Spigot-Server-Patches/0497-Optimize-Voxel-Shape-Merging.patch
index dfe8d29d49..dfe8d29d49 100644
--- a/Spigot-Server-Patches/0498-Optimize-Voxel-Shape-Merging.patch
+++ b/Spigot-Server-Patches/0497-Optimize-Voxel-Shape-Merging.patch
diff --git a/Spigot-Server-Patches/0499-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/Spigot-Server-Patches/0498-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch
index ffd3684e5b..50dcdc2c0c 100644
--- a/Spigot-Server-Patches/0499-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch
+++ b/Spigot-Server-Patches/0498-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch
@@ -17,7 +17,7 @@ keeping long lived large direct buffers in cache.
Set system properly at server startup if not set already to help protect from this.
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 99e1e902d8fdf33c157416c5d6abc71b495ac48e..d6e5d014c0d81f5f7cff6638ccfc2e983fea53d9 100644
+index e913d249d850210c9efba1bb46ce2ce4df013a62..2ea6f5b7da35cbb342e72a00ea70fef667f05d49 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -21,6 +21,7 @@ public class Main {
diff --git a/Spigot-Server-Patches/0500-Implement-Mob-Goal-API.patch b/Spigot-Server-Patches/0499-Implement-Mob-Goal-API.patch
index 799c09f79b..799c09f79b 100644
--- a/Spigot-Server-Patches/0500-Implement-Mob-Goal-API.patch
+++ b/Spigot-Server-Patches/0499-Implement-Mob-Goal-API.patch
diff --git a/Spigot-Server-Patches/0501-Use-distance-map-to-optimise-entity-tracker.patch b/Spigot-Server-Patches/0500-Use-distance-map-to-optimise-entity-tracker.patch
index 790612e3d0..790612e3d0 100644
--- a/Spigot-Server-Patches/0501-Use-distance-map-to-optimise-entity-tracker.patch
+++ b/Spigot-Server-Patches/0500-Use-distance-map-to-optimise-entity-tracker.patch
diff --git a/Spigot-Server-Patches/0502-Optimize-isOutsideRange-to-use-distance-maps.patch b/Spigot-Server-Patches/0501-Optimize-isOutsideRange-to-use-distance-maps.patch
index 9e507e0377..76f0eb6a96 100644
--- a/Spigot-Server-Patches/0502-Optimize-isOutsideRange-to-use-distance-maps.patch
+++ b/Spigot-Server-Patches/0501-Optimize-isOutsideRange-to-use-distance-maps.patch
@@ -77,10 +77,10 @@ index 10e385eb556faff954df28ed0b3ddaceac2b8baa..ae27942991eeaec77f72b58ab32260a3
public String c() {
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index ba99e9949c6fdfc4f49b6b6716100eb51697227d..7a275bf3260f9fbefc41883c5ebdc1eb2196daf0 100644
+index 665d83042dab467cddf315fade883fd55ffc8bfd..3089d673a029c493cac756124eb0baa21a8bab7f 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -725,6 +725,36 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -735,6 +735,36 @@ public class ChunkProviderServer extends IChunkProvider {
boolean flag1 = this.world.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && !world.getPlayers().isEmpty(); // CraftBukkit
if (!flag) {
@@ -117,7 +117,7 @@ index ba99e9949c6fdfc4f49b6b6716100eb51697227d..7a275bf3260f9fbefc41883c5ebdc1eb
this.world.getMethodProfiler().enter("pollingChunks");
int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
BlockPosition blockposition = this.world.getSpawn();
-@@ -759,15 +789,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -769,15 +799,7 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.world.getMethodProfiler().exit();
@@ -134,7 +134,7 @@ index ba99e9949c6fdfc4f49b6b6716100eb51697227d..7a275bf3260f9fbefc41883c5ebdc1eb
final int[] chunksTicked = {0}; this.playerChunkMap.forEachVisibleChunk((playerchunk) -> { // Paper - safe iterator incase chunk loads, also no wrapping
Optional<Chunk> optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
-@@ -781,10 +803,10 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -791,10 +813,10 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.getMethodProfiler().exit();
ChunkCoordIntPair chunkcoordintpair = playerchunk.i();
diff --git a/Spigot-Server-Patches/0503-Stop-copy-on-write-operations-for-updating-light-dat.patch b/Spigot-Server-Patches/0502-Stop-copy-on-write-operations-for-updating-light-dat.patch
index ede6c2717b..ede6c2717b 100644
--- a/Spigot-Server-Patches/0503-Stop-copy-on-write-operations-for-updating-light-dat.patch
+++ b/Spigot-Server-Patches/0502-Stop-copy-on-write-operations-for-updating-light-dat.patch
diff --git a/Spigot-Server-Patches/0504-No-Tick-view-distance-implementation.patch b/Spigot-Server-Patches/0503-No-Tick-view-distance-implementation.patch
index 72a5f130e8..5c11fc1075 100644
--- a/Spigot-Server-Patches/0504-No-Tick-view-distance-implementation.patch
+++ b/Spigot-Server-Patches/0503-No-Tick-view-distance-implementation.patch
@@ -603,10 +603,10 @@ index 1c7955d3ae7ddd1c2d924cec20a91202cf090f40..7bd3f789b6055d73f3a6c0628652cca2
if (!this.isClientSide && (i & 1) != 0) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c77c59223eb652346502b9a896e0ad536395e444..5f180bb77b736220c848357b2cac4d0d2b99e3df 100644
+index 1929aacbe83c401c7254484aa8df62ed1554e3ba..36207acffac3620879afd11bb47e06341a3dabb9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2494,10 +2494,39 @@ public class CraftWorld implements World {
+@@ -2493,10 +2493,39 @@ public class CraftWorld implements World {
// Spigot start
@Override
public int getViewDistance() {
diff --git a/Spigot-Server-Patches/0505-Add-villager-reputation-API.patch b/Spigot-Server-Patches/0504-Add-villager-reputation-API.patch
index ab2742c643..ab2742c643 100644
--- a/Spigot-Server-Patches/0505-Add-villager-reputation-API.patch
+++ b/Spigot-Server-Patches/0504-Add-villager-reputation-API.patch
diff --git a/Spigot-Server-Patches/0506-Fix-Light-Command.patch b/Spigot-Server-Patches/0505-Fix-Light-Command.patch
index a6cb9a1c73..a6cb9a1c73 100644
--- a/Spigot-Server-Patches/0506-Fix-Light-Command.patch
+++ b/Spigot-Server-Patches/0505-Fix-Light-Command.patch
diff --git a/Spigot-Server-Patches/0507-Fix-CraftServer.unloadWorld-Leak.patch b/Spigot-Server-Patches/0506-Fix-CraftServer.unloadWorld-Leak.patch
index fb1455d4f9..fb1455d4f9 100644
--- a/Spigot-Server-Patches/0507-Fix-CraftServer.unloadWorld-Leak.patch
+++ b/Spigot-Server-Patches/0506-Fix-CraftServer.unloadWorld-Leak.patch
diff --git a/Spigot-Server-Patches/0508-Fix-PotionEffect-ignores-icon-flag.patch b/Spigot-Server-Patches/0507-Fix-PotionEffect-ignores-icon-flag.patch
index 9c6ba39afd..9c6ba39afd 100644
--- a/Spigot-Server-Patches/0508-Fix-PotionEffect-ignores-icon-flag.patch
+++ b/Spigot-Server-Patches/0507-Fix-PotionEffect-ignores-icon-flag.patch
diff --git a/Spigot-Server-Patches/0509-Optimize-brigadier-child-sorting-performance.patch b/Spigot-Server-Patches/0508-Optimize-brigadier-child-sorting-performance.patch
index 2c05eb7a0f..2c05eb7a0f 100644
--- a/Spigot-Server-Patches/0509-Optimize-brigadier-child-sorting-performance.patch
+++ b/Spigot-Server-Patches/0508-Optimize-brigadier-child-sorting-performance.patch
diff --git a/Spigot-Server-Patches/0510-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch b/Spigot-Server-Patches/0509-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch
index 613fea34fe..613fea34fe 100644
--- a/Spigot-Server-Patches/0510-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch
+++ b/Spigot-Server-Patches/0509-MC-183249-Don-t-generate-Carving-Masks-BitSet-unless.patch
diff --git a/Spigot-Server-Patches/0511-Don-t-toString-block-unless-actually-showing-the-mes.patch b/Spigot-Server-Patches/0510-Don-t-toString-block-unless-actually-showing-the-mes.patch
index f81d312f6d..f81d312f6d 100644
--- a/Spigot-Server-Patches/0511-Don-t-toString-block-unless-actually-showing-the-mes.patch
+++ b/Spigot-Server-Patches/0510-Don-t-toString-block-unless-actually-showing-the-mes.patch
diff --git a/Spigot-Server-Patches/0512-Implement-JellySquid-s-Entity-Collision-optimisation.patch b/Spigot-Server-Patches/0511-Implement-JellySquid-s-Entity-Collision-optimisation.patch
index d1d02e180f..d1d02e180f 100644
--- a/Spigot-Server-Patches/0512-Implement-JellySquid-s-Entity-Collision-optimisation.patch
+++ b/Spigot-Server-Patches/0511-Implement-JellySquid-s-Entity-Collision-optimisation.patch
diff --git a/Spigot-Server-Patches/0513-Remove-some-Streams-usage-in-Entity-Collision.patch b/Spigot-Server-Patches/0512-Remove-some-Streams-usage-in-Entity-Collision.patch
index 308a1606f4..308a1606f4 100644
--- a/Spigot-Server-Patches/0513-Remove-some-Streams-usage-in-Entity-Collision.patch
+++ b/Spigot-Server-Patches/0512-Remove-some-Streams-usage-in-Entity-Collision.patch
diff --git a/Spigot-Server-Patches/0514-Ensure-Entity-AABB-s-are-never-invalid.patch b/Spigot-Server-Patches/0513-Ensure-Entity-AABB-s-are-never-invalid.patch
index ed3bac4005..ed3bac4005 100644
--- a/Spigot-Server-Patches/0514-Ensure-Entity-AABB-s-are-never-invalid.patch
+++ b/Spigot-Server-Patches/0513-Ensure-Entity-AABB-s-are-never-invalid.patch
diff --git a/Spigot-Server-Patches/0515-Potential-bed-API.patch b/Spigot-Server-Patches/0514-Potential-bed-API.patch
index 2dd156300d..2dd156300d 100644
--- a/Spigot-Server-Patches/0515-Potential-bed-API.patch
+++ b/Spigot-Server-Patches/0514-Potential-bed-API.patch
diff --git a/Spigot-Server-Patches/0516-Wait-for-Async-Tasks-during-shutdown.patch b/Spigot-Server-Patches/0515-Wait-for-Async-Tasks-during-shutdown.patch
index b7b12e7797..b7b12e7797 100644
--- a/Spigot-Server-Patches/0516-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/Spigot-Server-Patches/0515-Wait-for-Async-Tasks-during-shutdown.patch
diff --git a/Spigot-Server-Patches/0517-Optimize-WorldBorder-collision-checks-and-air.patch b/Spigot-Server-Patches/0516-Optimize-WorldBorder-collision-checks-and-air.patch
index 25658a705b..25658a705b 100644
--- a/Spigot-Server-Patches/0517-Optimize-WorldBorder-collision-checks-and-air.patch
+++ b/Spigot-Server-Patches/0516-Optimize-WorldBorder-collision-checks-and-air.patch
diff --git a/Spigot-Server-Patches/0518-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch b/Spigot-Server-Patches/0517-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch
index a5a5728cf9..a5a5728cf9 100644
--- a/Spigot-Server-Patches/0518-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch
+++ b/Spigot-Server-Patches/0517-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch
diff --git a/Spigot-Server-Patches/0519-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/Spigot-Server-Patches/0518-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
index afb15db8d5..afb15db8d5 100644
--- a/Spigot-Server-Patches/0519-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
+++ b/Spigot-Server-Patches/0518-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch
diff --git a/Spigot-Server-Patches/0520-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/Spigot-Server-Patches/0519-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 6952b8854c..6952b8854c 100644
--- a/Spigot-Server-Patches/0520-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/Spigot-Server-Patches/0519-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
diff --git a/Spigot-Server-Patches/0521-Optimize-NibbleArray-to-use-pooled-buffers.patch b/Spigot-Server-Patches/0520-Optimize-NibbleArray-to-use-pooled-buffers.patch
index bbd03eef7a..bbd03eef7a 100644
--- a/Spigot-Server-Patches/0521-Optimize-NibbleArray-to-use-pooled-buffers.patch
+++ b/Spigot-Server-Patches/0520-Optimize-NibbleArray-to-use-pooled-buffers.patch
diff --git a/Spigot-Server-Patches/0522-Reduce-MutableInt-allocations-from-light-engine.patch b/Spigot-Server-Patches/0521-Reduce-MutableInt-allocations-from-light-engine.patch
index 2524f18f3d..2524f18f3d 100644
--- a/Spigot-Server-Patches/0522-Reduce-MutableInt-allocations-from-light-engine.patch
+++ b/Spigot-Server-Patches/0521-Reduce-MutableInt-allocations-from-light-engine.patch
diff --git a/Spigot-Server-Patches/0523-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/Spigot-Server-Patches/0522-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
index 45ed81a066..45ed81a066 100644
--- a/Spigot-Server-Patches/0523-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
+++ b/Spigot-Server-Patches/0522-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
diff --git a/Spigot-Server-Patches/0524-Ensure-safe-gateway-teleport.patch b/Spigot-Server-Patches/0523-Ensure-safe-gateway-teleport.patch
index 3e35b9bdc2..3e35b9bdc2 100644
--- a/Spigot-Server-Patches/0524-Ensure-safe-gateway-teleport.patch
+++ b/Spigot-Server-Patches/0523-Ensure-safe-gateway-teleport.patch
diff --git a/Spigot-Server-Patches/0525-Add-permission-for-command-blocks.patch b/Spigot-Server-Patches/0524-Add-permission-for-command-blocks.patch
index 0a39da8a7c..0a39da8a7c 100644
--- a/Spigot-Server-Patches/0525-Add-permission-for-command-blocks.patch
+++ b/Spigot-Server-Patches/0524-Add-permission-for-command-blocks.patch
diff --git a/Spigot-Server-Patches/0526-Add-option-for-console-having-all-permissions.patch b/Spigot-Server-Patches/0525-Add-option-for-console-having-all-permissions.patch
index f04d491a80..f04d491a80 100644
--- a/Spigot-Server-Patches/0526-Add-option-for-console-having-all-permissions.patch
+++ b/Spigot-Server-Patches/0525-Add-option-for-console-having-all-permissions.patch
diff --git a/Spigot-Server-Patches/0527-Workaround-for-Client-Lag-Spikes-MC-162253.patch b/Spigot-Server-Patches/0526-Workaround-for-Client-Lag-Spikes-MC-162253.patch
index 794ef4675d..794ef4675d 100644
--- a/Spigot-Server-Patches/0527-Workaround-for-Client-Lag-Spikes-MC-162253.patch
+++ b/Spigot-Server-Patches/0526-Workaround-for-Client-Lag-Spikes-MC-162253.patch
diff --git a/Spigot-Server-Patches/0528-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/0527-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
index 4ef1f2dc6f..55fde45492 100644
--- a/Spigot-Server-Patches/0528-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
+++ b/Spigot-Server-Patches/0527-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
@@ -484,10 +484,10 @@ index 7702fbefa598bce7e6a2d287f7ec36b78a62bff8..35a4999b2c34ae62cba042885db25dd1
protected int c(long i) {
return this.a.get(i);
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb1674323a517 100644
+index 3089d673a029c493cac756124eb0baa21a8bab7f..8efe036be0c74a5ceb6a18e019c4a08a49a28693 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -432,6 +432,26 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -442,6 +442,26 @@ public class ChunkProviderServer extends IChunkProvider {
public <T> void removeTicketAtLevel(TicketType<T> ticketType, ChunkCoordIntPair chunkPos, int ticketLevel, T identifier) {
this.chunkMapDistance.removeTicketAtLevel(ticketType, chunkPos, ticketLevel, identifier);
}
@@ -514,7 +514,7 @@ index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb167
// Paper end
@Nullable
-@@ -470,6 +490,8 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -480,6 +500,8 @@ public class ChunkProviderServer extends IChunkProvider {
if (!completablefuture.isDone()) { // Paper
// Paper start - async chunk io/loading
@@ -523,7 +523,7 @@ index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb167
this.world.asyncChunkTaskManager.raisePriority(x, z, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY);
com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.world, x, z);
// Paper end
-@@ -478,6 +500,8 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -488,6 +510,8 @@ public class ChunkProviderServer extends IChunkProvider {
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
this.world.timings.syncChunkLoad.stopTiming(); // Paper
@@ -532,7 +532,7 @@ index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb167
} // Paper
ichunkaccess = (IChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1;
-@@ -530,10 +554,12 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -540,10 +564,12 @@ public class ChunkProviderServer extends IChunkProvider {
if (flag && !currentlyUnloading) {
// CraftBukkit end
this.chunkMapDistance.a(TicketType.UNKNOWN, chunkcoordintpair, l, chunkcoordintpair);
@@ -545,7 +545,7 @@ index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb167
this.tickDistanceManager();
playerchunk = this.getChunk(k);
gameprofilerfiller.exit();
-@@ -542,8 +568,13 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -552,8 +578,13 @@ public class ChunkProviderServer extends IChunkProvider {
}
}
}
@@ -561,7 +561,7 @@ index 7a275bf3260f9fbefc41883c5ebdc1eb2196daf0..b6a7e475c6ebe499c641db5967adb167
}
private boolean a(@Nullable PlayerChunk playerchunk, int i) {
-@@ -593,7 +624,8 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -603,7 +634,8 @@ public class ChunkProviderServer extends IChunkProvider {
return this.serverThreadQueue.executeNext();
}
@@ -1187,10 +1187,10 @@ index d7b9d9fd3a3b607278a3d72b0b306b0be2aa30ad..6fd852db6bcfbfbf84ec2acf6d23b08a
public static <T> TicketType<T> a(String s, Comparator<T> comparator) {
return new TicketType<>(s, comparator, 0L);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5f180bb77b736220c848357b2cac4d0d2b99e3df..d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a 100644
+index 36207acffac3620879afd11bb47e06341a3dabb9..5992fdda8a5c66f77dbfca86d6261b98cce2b1e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2484,6 +2484,10 @@ public class CraftWorld implements World {
+@@ -2483,6 +2483,10 @@ public class CraftWorld implements World {
return future;
}
diff --git a/Spigot-Server-Patches/0529-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch b/Spigot-Server-Patches/0528-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch
index 29b5e63ec6..29b5e63ec6 100644
--- a/Spigot-Server-Patches/0529-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch
+++ b/Spigot-Server-Patches/0528-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch
diff --git a/Spigot-Server-Patches/0530-Optimize-sending-packets-to-nearby-locations-sounds-.patch b/Spigot-Server-Patches/0529-Optimize-sending-packets-to-nearby-locations-sounds-.patch
index fe477cdf8b..fe477cdf8b 100644
--- a/Spigot-Server-Patches/0530-Optimize-sending-packets-to-nearby-locations-sounds-.patch
+++ b/Spigot-Server-Patches/0529-Optimize-sending-packets-to-nearby-locations-sounds-.patch
diff --git a/Spigot-Server-Patches/0531-Optimize-Villagers.patch b/Spigot-Server-Patches/0530-Optimize-Villagers.patch
index d7cec2bf86..d7cec2bf86 100644
--- a/Spigot-Server-Patches/0531-Optimize-Villagers.patch
+++ b/Spigot-Server-Patches/0530-Optimize-Villagers.patch
diff --git a/Spigot-Server-Patches/0532-Improve-Chunk-Status-Transition-Speed.patch b/Spigot-Server-Patches/0531-Improve-Chunk-Status-Transition-Speed.patch
index 85c0553f68..85c0553f68 100644
--- a/Spigot-Server-Patches/0532-Improve-Chunk-Status-Transition-Speed.patch
+++ b/Spigot-Server-Patches/0531-Improve-Chunk-Status-Transition-Speed.patch
diff --git a/Spigot-Server-Patches/0533-Fix-villager-trading-demand-MC-163962.patch b/Spigot-Server-Patches/0532-Fix-villager-trading-demand-MC-163962.patch
index daa484429a..daa484429a 100644
--- a/Spigot-Server-Patches/0533-Fix-villager-trading-demand-MC-163962.patch
+++ b/Spigot-Server-Patches/0532-Fix-villager-trading-demand-MC-163962.patch
diff --git a/Spigot-Server-Patches/0534-Maps-shouldn-t-load-chunks.patch b/Spigot-Server-Patches/0533-Maps-shouldn-t-load-chunks.patch
index 9b5bf77979..9b5bf77979 100644
--- a/Spigot-Server-Patches/0534-Maps-shouldn-t-load-chunks.patch
+++ b/Spigot-Server-Patches/0533-Maps-shouldn-t-load-chunks.patch
diff --git a/Spigot-Server-Patches/0535-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/Spigot-Server-Patches/0534-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch
index 4a73a87a38..0a2d3d9c47 100644
--- a/Spigot-Server-Patches/0535-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch
+++ b/Spigot-Server-Patches/0534-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch
@@ -19,7 +19,7 @@ index 134468da1a8fad6fdd48f64bf9ea885794e86bdf..b09de92ee56f491f7b4c526105f8d306
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
-index 854c97bddb711ed252c2ae8398247641fdfb10be..17289cf3776a5db2f17b493e39fea83d4d0c4abd 100644
+index 2c9acffe5a62af43ff4f4ccdb6962929d645e226..49da7352dcee6c352904cabe8b5db0152c427029 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -283,8 +283,9 @@ public class WorldServer extends World {
diff --git a/Spigot-Server-Patches/0536-Optimize-Bit-Operations-by-inlining.patch b/Spigot-Server-Patches/0535-Optimize-Bit-Operations-by-inlining.patch
index 7f92515714..7f92515714 100644
--- a/Spigot-Server-Patches/0536-Optimize-Bit-Operations-by-inlining.patch
+++ b/Spigot-Server-Patches/0535-Optimize-Bit-Operations-by-inlining.patch
diff --git a/Spigot-Server-Patches/0537-Optimize-Light-Engine.patch b/Spigot-Server-Patches/0536-Optimize-Light-Engine.patch
index 4b00c7d98b..56f8be81f9 100644
--- a/Spigot-Server-Patches/0537-Optimize-Light-Engine.patch
+++ b/Spigot-Server-Patches/0536-Optimize-Light-Engine.patch
@@ -38,10 +38,10 @@ index d2207a2c95690de586ab2d181b64955a6d2ea70d..66244a9d0e253b3709df4ae2adcd21e4
return this.j;
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-index b6a7e475c6ebe499c641db5967adb1674323a517..75c22a3f4e2df9cf7f2d22cafbde9acce01589e1 100644
+index 8efe036be0c74a5ceb6a18e019c4a08a49a28693..7d50b94cb37ea921451af1baa47c8900e99b37e1 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
-@@ -1090,7 +1090,7 @@ public class ChunkProviderServer extends IChunkProvider {
+@@ -1100,7 +1100,7 @@ public class ChunkProviderServer extends IChunkProvider {
if (ChunkProviderServer.this.tickDistanceManager()) {
return true;
} else {
diff --git a/Spigot-Server-Patches/0538-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0537-Delay-Chunk-Unloads-based-on-Player-Movement.patch
index f8c1c715ee..36bc22fde8 100644
--- a/Spigot-Server-Patches/0538-Delay-Chunk-Unloads-based-on-Player-Movement.patch
+++ b/Spigot-Server-Patches/0537-Delay-Chunk-Unloads-based-on-Player-Movement.patch
@@ -35,7 +35,7 @@ index c3f7717869c86d9ac6395615bceda324aea16b27..ecacb72b922927f06883b75e7d2cc1f9
+ }
}
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
-index 3a33d625cac39036df67aac81599fa1db7f808d4..7eb14c2e3a13a9d2d6c5e699eca3ce60b50e9188 100644
+index ff9e164574f1f3d043740ac727faf567122e5b64..cc02ed6b58a219d8f06e4ccc2a51f46c33af98d1 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -176,6 +176,27 @@ public abstract class ChunkMapDistance {
diff --git a/Spigot-Server-Patches/0539-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/Spigot-Server-Patches/0538-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index 63d7a34e4e..4ba303feae 100644
--- a/Spigot-Server-Patches/0539-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/Spigot-Server-Patches/0538-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -44,7 +44,7 @@ index 894917c8891a951edb251f019529d0f7bec7037d..568aefdf698facfc36edacc9332e8319
printSaveWarning = false;
console.autosavePeriod = configuration.getInt("ticks-per.autosave");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a..f4a1be34f08551692c1612cffea04fdcf71f2cd4 100644
+index 5992fdda8a5c66f77dbfca86d6261b98cce2b1e9..73ffc3c24d38c11982cb44bf0c08e761b9667cda 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -399,9 +399,22 @@ public class CraftWorld implements World {
@@ -71,16 +71,16 @@ index d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a..f4a1be34f08551692c1612cffea04fdc
@Override
public Chunk getChunkAt(Block block) {
Preconditions.checkArgument(block != null, "null block");
-@@ -476,7 +489,7 @@ public class CraftWorld implements World {
+@@ -475,7 +488,7 @@ public class CraftWorld implements World {
+ public boolean unloadChunkRequest(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
- net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper
- if (chunk != null) {
-- world.getChunkProvider().removeTicket(TicketType.PLUGIN, chunk.getPos(), 1, Unit.INSTANCE);
-+ world.getChunkProvider().removeTicket(TicketType.PLUGIN, chunk.getPos(), 0, Unit.INSTANCE); // Paper
+ if (isChunkLoaded(x, z)) {
+- world.getChunkProvider().removeTicket(TicketType.PLUGIN, new ChunkCoordIntPair(x, z), 1, Unit.INSTANCE);
++ world.getChunkProvider().removeTicket(TicketType.PLUGIN, new ChunkCoordIntPair(x, z), 0, Unit.INSTANCE); // Paper
}
return true;
-@@ -553,10 +566,12 @@ public class CraftWorld implements World {
+@@ -552,10 +565,12 @@ public class CraftWorld implements World {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
// Paper start - Optimize this method
ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(x, z);
@@ -94,7 +94,7 @@ index d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a..f4a1be34f08551692c1612cffea04fdc
if (immediate == null) {
immediate = world.getChunkProvider().playerChunkMap.getUnloadingChunk(x, z);
}
-@@ -564,7 +579,7 @@ public class CraftWorld implements World {
+@@ -563,7 +578,7 @@ public class CraftWorld implements World {
if (!(immediate instanceof ProtoChunkExtension) && !(immediate instanceof net.minecraft.server.Chunk)) {
return false; // not full status
}
@@ -103,7 +103,7 @@ index d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a..f4a1be34f08551692c1612cffea04fdc
world.getChunkAt(x, z); // make sure we're at ticket level 32 or lower
return true;
}
-@@ -591,7 +606,7 @@ public class CraftWorld implements World {
+@@ -590,7 +605,7 @@ public class CraftWorld implements World {
// we do this so we do not re-read the chunk data on disk
}
@@ -112,7 +112,7 @@ index d3c5b7d1904a6cbd65db406639ed2ba90ec9fd2a..f4a1be34f08551692c1612cffea04fdc
world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, true);
return true;
// Paper end
-@@ -2490,6 +2505,7 @@ public class CraftWorld implements World {
+@@ -2489,6 +2504,7 @@ public class CraftWorld implements World {
}
return this.world.getChunkProvider().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> {
net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) either.left().orElse(null);
diff --git a/Spigot-Server-Patches/0540-Fix-missing-chunks-due-to-integer-overflow.patch b/Spigot-Server-Patches/0539-Fix-missing-chunks-due-to-integer-overflow.patch
index 3bea36db8a..3bea36db8a 100644
--- a/Spigot-Server-Patches/0540-Fix-missing-chunks-due-to-integer-overflow.patch
+++ b/Spigot-Server-Patches/0539-Fix-missing-chunks-due-to-integer-overflow.patch
diff --git a/Spigot-Server-Patches/0541-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/Spigot-Server-Patches/0540-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
index ca4d8858c8..ca4d8858c8 100644
--- a/Spigot-Server-Patches/0541-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
+++ b/Spigot-Server-Patches/0540-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch
diff --git a/Spigot-Server-Patches/0542-Fix-piston-physics-inconsistency-MC-188840.patch b/Spigot-Server-Patches/0541-Fix-piston-physics-inconsistency-MC-188840.patch
index 91358261da..91358261da 100644
--- a/Spigot-Server-Patches/0542-Fix-piston-physics-inconsistency-MC-188840.patch
+++ b/Spigot-Server-Patches/0541-Fix-piston-physics-inconsistency-MC-188840.patch
diff --git a/Spigot-Server-Patches/0543-Fix-sand-duping.patch b/Spigot-Server-Patches/0542-Fix-sand-duping.patch
index a42ac1b7f3..a42ac1b7f3 100644
--- a/Spigot-Server-Patches/0543-Fix-sand-duping.patch
+++ b/Spigot-Server-Patches/0542-Fix-sand-duping.patch
diff --git a/Spigot-Server-Patches/0544-Prevent-position-desync-in-playerconnection-causing-.patch b/Spigot-Server-Patches/0543-Prevent-position-desync-in-playerconnection-causing-.patch
index 76b429cda6..b5b0331a01 100644
--- a/Spigot-Server-Patches/0544-Prevent-position-desync-in-playerconnection-causing-.patch
+++ b/Spigot-Server-Patches/0543-Prevent-position-desync-in-playerconnection-causing-.patch
@@ -14,7 +14,7 @@ behaviour, we need to move all of this dangerous logic outside
of the move call and into an appropriate place in the tick method.
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 7123e197c7ed01afd4fbf7aa0760611373039a13..3e5dea60fd043010506436e700601c0e8ffd8f17 100644
+index f9cb87a3be35575ecf3362b10dc7fe5ebadb56ec..2109afc8ca0af636be2d7e7c041e3160448f4a38 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1080,6 +1080,11 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/Spigot-Server-Patches/0545-Fix-enderdragon-exp-dupe.patch b/Spigot-Server-Patches/0544-Fix-enderdragon-exp-dupe.patch
index f37907b171..f37907b171 100644
--- a/Spigot-Server-Patches/0545-Fix-enderdragon-exp-dupe.patch
+++ b/Spigot-Server-Patches/0544-Fix-enderdragon-exp-dupe.patch
diff --git a/Spigot-Server-Patches/0546-Inventory-getHolder-method-without-block-snapshot.patch b/Spigot-Server-Patches/0545-Inventory-getHolder-method-without-block-snapshot.patch
index 24e430cfb5..24e430cfb5 100644
--- a/Spigot-Server-Patches/0546-Inventory-getHolder-method-without-block-snapshot.patch
+++ b/Spigot-Server-Patches/0545-Inventory-getHolder-method-without-block-snapshot.patch
diff --git a/Spigot-Server-Patches/0547-Expose-Arrow-getItemStack.patch b/Spigot-Server-Patches/0546-Expose-Arrow-getItemStack.patch
index 2c0aea35cb..2c0aea35cb 100644
--- a/Spigot-Server-Patches/0547-Expose-Arrow-getItemStack.patch
+++ b/Spigot-Server-Patches/0546-Expose-Arrow-getItemStack.patch
diff --git a/Spigot-Server-Patches/0548-Add-and-implement-PlayerRecipeBookClickEvent.patch b/Spigot-Server-Patches/0547-Add-and-implement-PlayerRecipeBookClickEvent.patch
index 60db6e2b7a..13f7bfcdfa 100644
--- a/Spigot-Server-Patches/0548-Add-and-implement-PlayerRecipeBookClickEvent.patch
+++ b/Spigot-Server-Patches/0547-Add-and-implement-PlayerRecipeBookClickEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
-index 3e5dea60fd043010506436e700601c0e8ffd8f17..639d186971b9f334ed026964f10f1bf33c1e0afc 100644
+index 2109afc8ca0af636be2d7e7c041e3160448f4a38..10e3bf60f13fbc8e26071bcfe8d19cbb635662a9 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2476,9 +2476,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
diff --git a/paper b/paper
index 687c3813e6..6106243b08 100755
--- a/paper
+++ b/paper
@@ -129,6 +129,13 @@ case "$1" in
rm -rf work
echo "Cleaned build files"
;;
+ "con" | "continue")
+ if [ -d ".git/rebase-apply" ]; then
+ git -c commit.gpgsign=false am --continue
+ elif [ -d ".git/rebase-merge" ]; then
+ git -c commit.gpgsign=false rebase --continue
+ fi
+ ;;
"e" | "edit")
case "$2" in
"s" | "server")
diff --git a/work/Bukkit b/work/Bukkit
-Subproject e2699636407094a6e25843907291cde511fbb19
+Subproject b2f1908c59d22a693ee7ef10f48008143614525
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 1b2830a3b3aa5ecf4d2f44696654fc028a2c53a
+Subproject 8ea9b1386bc7f131c3df3ed0b87b49a5a3e811b
diff --git a/work/Spigot b/work/Spigot
-Subproject 2f5d615f157752a2b28b0986b34cc708d5e7767
+Subproject a99063f77142a462546e31413de6c6190e913f1