From a3dfe6dca5e2a5fadd232e9ea3425ec0841de2c3 Mon Sep 17 00:00:00 2001
From: Jason <11360596+jpenilla@users.noreply.github.com>
Date: Mon, 4 Oct 2021 22:14:11 -0500
Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot) (#6722)
---
patches/api/0004-Add-FastUtil-to-Bukkit.patch | 2 +-
patches/api/0006-Timings-v2.patch | 8 ++--
patches/api/0007-Adventure.patch | 48 +++++++++----------
patches/api/0009-Add-getTPS-method.patch | 8 ++--
patches/api/0013-Add-view-distance-API.patch | 4 +-
.../api/0017-Expose-server-CommandMap.patch | 8 ++--
...cord-chat-API-from-spigot-subclasses.patch | 10 ++--
.../0025-Use-ASM-for-event-executors.patch | 2 +-
...eload-permissions.yml-and-require-co.patch | 8 ++--
...1-Allow-Reloading-of-Command-Aliases.patch | 8 ++--
...rovide-E-TE-Chunk-count-stat-methods.patch | 2 +-
...n-option-to-prevent-player-names-fro.patch | 8 ++--
patches/api/0053-Fix-upstream-javadocs.patch | 10 ++--
.../api/0057-Basic-PlayerProfile-API.patch | 8 ++--
...low-plugins-to-use-SLF4J-for-logging.patch | 2 +-
...nt-protocol-version-and-virtual-host.patch | 2 +-
...9-Ability-to-apply-mending-to-XP-API.patch | 2 +-
patches/api/0091-getPlayerUniqueId-API.patch | 8 ++--
...94-Add-Ban-Methods-to-Player-Objects.patch | 2 +-
...tional-world.getNearbyEntities-API-s.patch | 2 +-
...ld.spawnParticle-API-and-add-Builder.patch | 4 +-
patches/api/0114-Expand-Explosions-API.patch | 2 +-
.../0118-Add-World.getEntity-UUID-API.patch | 2 +-
...vide-Chunk-Coordinates-as-a-Long-API.patch | 4 +-
...Blocks-to-be-accessed-via-a-long-key.patch | 2 +-
patches/api/0143-isChunkGenerated-API.patch | 2 +-
patches/api/0146-Async-Chunks-API.patch | 4 +-
patches/api/0159-Add-sun-related-API.patch | 2 +-
...ault-permission-message-configurable.patch | 8 ++--
.../0178-Fix-Spigot-annotation-mistakes.patch | 12 ++---
patches/api/0181-Add-Heightmap-API.patch | 2 +-
...186-Expose-the-internal-current-tick.patch | 8 ++--
patches/api/0192-Add-tick-times-API.patch | 8 ++--
...193-Expose-MinecraftServer-isRunning.patch | 8 ++--
patches/api/0202-Add-Mob-Goal-API.patch | 8 ++--
patches/api/0203-Expose-game-version.patch | 8 ++--
...llow-delegation-to-vanilla-chunk-gen.patch | 8 ++--
patches/api/0218-Add-setMaxPlayers-API.patch | 8 ++--
patches/api/0219-Add-moon-phase-API.patch | 2 +-
...-Add-getOfflinePlayerIfCached-String.patch | 8 ++--
...0248-Additional-Block-Material-API-s.patch | 2 +-
patches/api/0280-Add-Block-isValidTool.patch | 2 +-
.../api/0281-Implement-Keyed-on-World.patch | 10 ++--
patches/api/0290-More-World-API.patch | 4 +-
patches/api/0301-Add-basic-Datapack-API.patch | 8 ++--
.../api/0313-Add-PlayerKickEvent-causes.patch | 2 +-
.../0317-Add-more-line-of-sight-methods.patch | 2 +-
...mation-to-version-command-on-startup.patch | 6 +--
patches/server/0002-Remap-fixes.patch | 2 +-
patches/server/0004-Paper-config-files.patch | 14 +++---
patches/server/0006-MC-Utils.patch | 16 +++----
patches/server/0010-Timings-v2.patch | 18 +++----
patches/server/0011-Adventure.patch | 26 +++++-----
...figurable-baby-zombie-movement-speed.patch | 2 +-
...7-Allow-for-toggling-of-spawn-chunks.patch | 4 +-
...ient-crashes-server-lists-and-Mojang.patch | 4 +-
.../0022-Player-affects-spawning-API.patch | 6 +--
...024-Further-improve-server-tick-loop.patch | 4 +-
...025-Only-refresh-abilities-if-needed.patch | 2 +-
patches/server/0026-Entity-Origin-API.patch | 2 +-
...event-tile-entity-and-entity-crashes.patch | 4 +-
patches/server/0033-Optimize-explosions.patch | 6 +--
.../0034-Disable-explosion-knockback.patch | 2 +-
...layer-View-Distance-API-placeholders.patch | 2 +-
.../0042-Disable-spigot-tick-limiters.patch | 4 +-
...45-Ensure-commands-are-not-ran-async.patch | 4 +-
...chunks-are-slime-spawn-chunks-toggle.patch | 2 +-
.../0047-Expose-server-CommandMap.patch | 4 +-
.../0049-Player-Tab-List-and-Title-APIs.patch | 2 +-
.../server/0052-Add-velocity-warnings.patch | 6 +--
...ble-inter-world-teleportation-safety.patch | 2 +-
.../0054-Add-exception-reporting-event.patch | 12 ++---
...oreboards-for-non-players-by-default.patch | 2 +-
.../0058-Complete-resource-pack-API.patch | 2 +-
.../server/0059-Chunk-Save-Reattempt.patch | 2 +-
...ading-permissions.yml-before-plugins.patch | 6 +--
...llow-Reloading-of-Custom-Permissions.patch | 4 +-
.../0062-Remove-Metadata-on-reload.patch | 4 +-
.../server/0065-Add-World-Util-Methods.patch | 4 +-
...6-Custom-replacement-for-eaten-items.patch | 2 +-
...th-absorb-values-and-repair-bad-data.patch | 4 +-
...068-Use-a-Shared-Random-for-Entities.patch | 2 +-
...Location-getType-and-getBlockData-fo.patch | 6 +--
...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 8 ++--
...egionFileCache-and-make-configurable.patch | 2 +-
...g-BlockPlaceEvent-triggering-physics.patch | 4 +-
...nilla-per-world-scoreboard-coloring-.patch | 2 +-
...nd-for-setting-passengers-on-players.patch | 2 +-
.../0084-Configurable-Player-Collision.patch | 2 +-
...87-Implement-PlayerLocaleChangeEvent.patch | 2 +-
...ityRegainHealthEvent-isFastRegen-API.patch | 2 +-
...-possibility-for-getServer-singleton.patch | 2 +-
...item-frames-performance-and-bug-fixe.patch | 2 +-
.../0095-Optimize-UserCache-Thread-Safe.patch | 2 +-
...r-redstone-torch-rapid-clock-removal.patch | 4 +-
...on-Wither-Death-sounds-to-same-world.patch | 2 +-
.../server/0100-Fix-Old-Sign-Conversion.patch | 2 +-
...setting-for-proxy-online-mode-status.patch | 4 +-
patches/server/0109-Add-EntityZapEvent.patch | 4 +-
...2-Allow-Reloading-of-Command-Aliases.patch | 4 +-
...4-Don-t-let-fishinghooks-use-portals.patch | 2 +-
...imize-World.isLoaded-BlockPosition-Z.patch | 4 +-
...to-control-if-armour-stands-can-move.patch | 2 +-
.../0122-String-based-Action-Bar-API.patch | 2 +-
...rovide-E-TE-Chunk-count-stat-methods.patch | 6 +--
...PI-for-Reason-Source-Triggering-play.patch | 12 ++---
.../server/0130-Cap-Entity-Collisions.patch | 2 +-
...more-aggressive-in-the-chunk-unload-.patch | 2 +-
.../0133-Do-not-let-armorstands-drown.patch | 2 +-
...le-async-calls-to-restart-the-server.patch | 2 +-
...ke-parrots-stay-on-shoulders-despite.patch | 2 +-
...n-option-to-prevent-player-names-fro.patch | 4 +-
...oleAppender-for-console-improvements.patch | 6 +--
...urable-option-to-disable-creeper-lin.patch | 2 +-
.../server/0142-Add-UnknownCommandEvent.patch | 4 +-
.../server/0143-Basic-PlayerProfile-API.patch | 6 +--
.../0144-Shoulder-Entities-Release-API.patch | 2 +-
.../server/0147-Entity-fromMobSpawner.patch | 2 +-
...awns-should-honor-nametags-and-leash.patch | 2 +-
...n-prefixes-using-Log4J-configuration.patch | 2 +-
...nt-protocol-version-and-virtual-host.patch | 2 +-
...dEffects-only-to-players-who-can-see.patch | 2 +-
.../0164-Add-PlayerArmorChangeEvent.patch | 2 +-
...66-Fix-MC-117075-TE-Unload-Lag-Spike.patch | 8 ++--
...e-implementations-for-captured-block.patch | 8 ++--
.../server/0169-AsyncTabCompleteEvent.patch | 4 +-
...1-Ability-to-apply-mending-to-XP-API.patch | 2 +-
...-max-squid-spawn-height-configurable.patch | 2 +-
...3-PlayerNaturallySpawnCreaturesEvent.patch | 2 +-
.../server/0174-PreCreatureSpawnEvent.patch | 8 ++--
...r-crits-helps-mitigate-hacked-client.patch | 2 +-
...nt-extended-PaperServerListPingEvent.patch | 2 +-
.../0186-Player.setPlayerProfile-API.patch | 4 +-
.../server/0187-getPlayerUniqueId-API.patch | 4 +-
...91-Flag-to-disable-the-channel-limit.patch | 2 +-
...urable-sprint-interruption-on-attack.patch | 2 +-
patches/server/0195-EndermanEscapeEvent.patch | 2 +-
.../0196-Enderman.teleportRandomly.patch | 2 +-
...0197-Block-Enderpearl-Travel-Exploit.patch | 2 +-
...ld.spawnParticle-API-and-add-Builder.patch | 4 +-
.../0200-EndermanAttackPlayerEvent.patch | 2 +-
.../server/0201-WitchConsumePotionEvent.patch | 2 +-
.../server/0202-WitchThrowPotionEvent.patch | 2 +-
.../server/0204-WitchReadyPotionEvent.patch | 2 +-
...ed-flag-on-cancel-of-Explosion-Event.patch | 2 +-
.../0208-Fix-CraftEntity-hashCode.patch | 2 +-
...e-shield-blocking-delay-configurable.patch | 2 +-
.../0212-Improve-EntityShootBowEvent.patch | 2 +-
.../server/0213-PlayerReadyArrowEvent.patch | 2 +-
...plement-EntityKnockbackByEntityEvent.patch | 4 +-
.../server/0215-Expand-Explosions-API.patch | 4 +-
...9-Implement-World.getEntity-UUID-API.patch | 4 +-
.../0220-InventoryCloseEvent-Reason-API.patch | 4 +-
...r-to-keep-logging-IO-off-main-thread.patch | 2 +-
...t-armor-stands-from-doing-entity-loo.patch | 6 +--
...3-Vanished-players-don-t-have-rights.patch | 4 +-
...Allow-disabling-armour-stand-ticking.patch | 2 +-
.../0239-Add-hand-to-bucket-events.patch | 8 ++--
...ies-option-to-debug-dupe-uuid-issues.patch | 4 +-
...dd-Early-Warning-Feature-to-WatchDog.patch | 6 +--
...efault-mob-spawn-range-and-water-ani.patch | 13 -----
.../server/0252-Slime-Pathfinder-Events.patch | 2 +-
.../0256-Add-PhantomPreSpawnEvent.patch | 2 +-
.../server/0257-Add-More-Creeper-API.patch | 2 +-
...loadChunk-int-int-false-load-unconve.patch | 4 +-
...60-Asynchronous-chunk-IO-and-loading.patch | 4 +-
...-ray-tracing-methods-to-LivingEntity.patch | 2 +-
...e-attack-cooldown-methods-for-Player.patch | 2 +-
.../server/0263-Improve-death-events.patch | 4 +-
...wning-from-loading-generating-chunks.patch | 6 +--
patches/server/0275-Add-sun-related-API.patch | 4 +-
...ther-worlds-for-shooter-of-projectil.patch | 2 +-
...0-Add-Velocity-IP-Forwarding-Support.patch | 4 +-
patches/server/0281-Add-more-Witch-API.patch | 2 +-
...owned-for-Villager-Aggression-Config.patch | 2 +-
...er-Thread-Pool-and-Thread-Priorities.patch | 2 +-
.../0288-Optimize-World-Time-Updates.patch | 2 +-
...ault-permission-message-configurable.patch | 4 +-
patches/server/0298-Add-more-Zombie-API.patch | 2 +-
...Prevent-Enderman-from-loading-chunks.patch | 2 +-
...-replace-OfflinePlayer-getLastPlayed.patch | 4 +-
...vehicle-tracking-issue-on-disconnect.patch | 2 +-
...-remove-from-being-called-on-Players.patch | 2 +-
patches/server/0306-BlockDestroyEvent.patch | 4 +-
...st-tick-at-start-of-drowning-process.patch | 2 +-
.../0316-Entity-getEntitySpawnReason.patch | 2 +-
patches/server/0321-Server-Tick-Events.patch | 2 +-
...0322-PlayerDeathEvent-getItemsToKeep.patch | 2 +-
...-Optimize-Captured-TileEntity-Lookup.patch | 4 +-
patches/server/0324-Add-Heightmap-API.patch | 4 +-
...isPrimaryThread-and-MinecraftServer-.patch | 4 +-
...329-improve-CraftWorld-isChunkLoaded.patch | 4 +-
...le-Keep-Spawn-Loaded-range-per-world.patch | 4 +-
...335-Expose-the-internal-current-tick.patch | 4 +-
...336-Fix-World-isChunkGenerated-calls.patch | 6 +--
...ate-location-if-we-failed-to-read-it.patch | 2 +-
...al-Spawned-mobs-towards-natural-spaw.patch | 2 +-
...gurable-projectile-relative-velocity.patch | 2 +-
...if-we-have-a-custom-Bukkit-generator.patch | 2 +-
patches/server/0344-Generator-Settings.patch | 2 +-
...-sneak-when-changing-worlds-MC-10657.patch | 2 +-
.../0352-Duplicate-UUID-Resolve-Option.patch | 2 +-
patches/server/0353-Optimize-Hoppers.patch | 4 +-
...layerDeathEvent-shouldDropExperience.patch | 2 +-
...oading-chunks-checking-hive-position.patch | 2 +-
.../0364-Entity-Activation-Range-2.0.patch | 8 ++--
.../0365-Increase-Light-Queue-Size.patch | 2 +-
patches/server/0367-Anti-Xray.patch | 12 ++---
...No-Tick-view-distance-implementation.patch | 10 ++--
.../0370-Tracking-Range-Improvements.patch | 2 +-
...ement-optional-per-player-mob-spawns.patch | 20 ++++----
...opper-searches-if-there-are-no-items.patch | 4 +-
...get-gravity-in-void.-Fixes-MC-167279.patch | 2 +-
...e-getChunkAt-calls-for-loaded-chunks.patch | 2 +-
.../0376-Add-debug-for-sync-chunk-loads.patch | 2 +-
...382-add-hand-to-BlockMultiPlaceEvent.patch | 2 +-
...to-allow-iron-golems-to-spawn-in-air.patch | 2 +-
...-chance-of-villager-zombie-infection.patch | 2 +-
...spawn-settings-and-per-player-option.patch | 2 +-
...low-bees-to-load-chunks-for-beehives.patch | 2 +-
...-PlayerChunkMap-adds-crashing-server.patch | 2 +-
.../server/0394-Don-t-tick-dead-players.patch | 2 +-
...d-Player-s-shouldn-t-be-able-to-move.patch | 2 +-
...move-existing-players-to-world-spawn.patch | 2 +-
...-Add-tick-times-API-and-mspt-command.patch | 4 +-
...398-Expose-MinecraftServer-isRunning.patch | 4 +-
.../0402-Improved-Watchdog-Support.patch | 10 ++--
...vent-opening-inventories-when-frozen.patch | 2 +-
...-Implement-Player-Client-Options-API.patch | 4 +-
...-Chunk-Post-Processing-deadlock-risk.patch | 4 +-
...g-Broken-behavior-of-PlayerJoinEvent.patch | 4 +-
...Load-Chunks-for-Login-Asynchronously.patch | 2 +-
...ntom-creative-and-insomniac-controls.patch | 2 +-
...m-duplication-issues-and-teleport-is.patch | 4 +-
.../0422-Implement-Brigadier-Mojang-API.patch | 2 +-
patches/server/0425-Expose-game-version.patch | 4 +-
.../server/0428-misc-debugging-dumps.patch | 4 +-
.../server/0430-Implement-Mob-Goal-API.patch | 6 +--
...tance-map-to-optimise-entity-tracker.patch | 2 +-
...-isOutsideRange-to-use-distance-maps.patch | 4 +-
...-maximum-exp-value-when-merging-orbs.patch | 2 +-
.../server/0435-ExperienceOrbMergeEvent.patch | 2 +-
...Wait-for-Async-Tasks-during-shutdown.patch | 4 +-
...and-End-Portal-Frames-from-being-des.patch | 4 +-
...llocation-of-Vec3D-by-entity-tracker.patch | 2 +-
.../0444-Ensure-safe-gateway-teleport.patch | 2 +-
...-Plugin-Tickets-to-API-Chunk-Methods.patch | 22 ++++-----
.../0455-incremental-chunk-saving.patch | 4 +-
...ld-Difficulty-Remembering-Difficulty.patch | 4 +-
.../server/0481-Add-entity-liquid-API.patch | 2 +-
.../server/0484-Add-PrepareResultEvent.patch | 2 +-
...llow-delegation-to-vanilla-chunk-gen.patch | 4 +-
...k-Priority-Urgency-System-for-Chunks.patch | 10 ++--
...mprove-Chunk-Status-Transition-Speed.patch | 2 +-
...-Vanilla-Command-permission-checking.patch | 2 +-
...keLighting-call-to-World-spigot-stri.patch | 4 +-
.../0499-Incremental-player-saving.patch | 4 +-
patches/server/0504-Brand-support.patch | 4 +-
.../server/0505-Add-setMaxPlayers-API.patch | 4 +-
...geEvent-not-firing-for-all-use-cases.patch | 4 +-
patches/server/0509-Add-moon-phase-API.patch | 4 +-
...Add-zombie-targets-turtle-egg-config.patch | 2 +-
.../0521-Cache-block-data-strings.patch | 2 +-
...ortation-and-cancel-velocity-if-tele.patch | 4 +-
patches/server/0529-Entity-isTicking.patch | 2 +-
...-non-whitelisted-player-when-white-l.patch | 2 +-
...r-large-move-vectors-crashing-server.patch | 2 +-
...ace-order-when-capturing-blockstates.patch | 2 +-
.../server/0540-Player-elytra-boost-API.patch | 2 +-
...ling-up-when-item-stack-is-empty-in-.patch | 2 +-
...-Add-getOfflinePlayerIfCached-String.patch | 4 +-
.../0544-Add-ignore-discounts-API.patch | 2 +-
.../server/0550-Add-API-for-quit-reason.patch | 4 +-
.../0554-Expose-world-spawn-angle.patch | 4 +-
...r-spawnParticle-x-y-z-precision-loss.patch | 2 +-
...ing-zombie-villager-discount-exploit.patch | 2 +-
.../server/0565-Limit-recipe-packets.patch | 2 +-
...0568-Player-Chunk-Load-Unload-Events.patch | 2 +-
...-OBSTRUCTED-reason-to-BedEnterResult.patch | 2 +-
.../server/0578-Cache-burn-durations.patch | 2 +-
...-event-not-being-called-in-adventure.patch | 2 +-
...0584-Fix-nerfed-slime-when-splitting.patch | 2 +-
.../0587-Added-WorldGameRuleChangeEvent.patch | 6 +--
...8-Added-ServerResourcesReloadedEvent.patch | 2 +-
...ld-settings-for-mobs-picking-up-loot.patch | 2 +-
...Implemented-BlockFailedDispenseEvent.patch | 2 +-
...onfigurable-door-breaking-difficulty.patch | 4 +-
...PI-to-expose-exact-interaction-point.patch | 2 +-
patches/server/0598-Add-sendOpLevel-API.patch | 2 +-
...onent-with-empty-text-instead-of-thr.patch | 2 +-
...0605-Implement-BlockPreDispenseEvent.patch | 2 +-
.../0606-Added-Vanilla-Entity-Tags.patch | 4 +-
patches/server/0607-added-Wither-API.patch | 2 +-
...Leash-variable-to-EntityUnleashEvent.patch | 2 +-
...-shield-blocking-on-dimension-change.patch | 2 +-
patches/server/0615-EntityMoveEvent.patch | 2 +-
...w-adding-items-to-BlockDropItemEvent.patch | 2 +-
...pport-for-hex-color-codes-in-console.patch | 2 +-
.../server/0624-Expose-Tracked-Players.patch | 2 +-
...Fix-Wither-hostility-towards-players.patch | 2 +-
.../0634-Add-recipe-to-cook-events.patch | 2 +-
...-using-signs-inside-spawn-protection.patch | 2 +-
.../0637-Implement-Keyed-on-World.patch | 10 ++--
...Timer-for-Wandering-Traders-spawned-.patch | 2 +-
...telist-use-configurable-kick-message.patch | 2 +-
...ignore-result-of-PlayerEditBookEvent.patch | 2 +-
...ent-suggestion-tooltips-in-AsyncTabC.patch | 2 +-
...ating-give-items-on-item-drop-cancel.patch | 2 +-
...-add-consumeFuel-to-FurnaceBurnEvent.patch | 2 +-
...fix-PigZombieAngerEvent-cancellation.patch | 2 +-
...fix-PlayerItemHeldEvent-firing-twice.patch | 2 +-
.../0660-Added-PlayerDeepSleepEvent.patch | 2 +-
patches/server/0661-More-World-API.patch | 4 +-
...d-RespawnFlags-to-PlayerRespawnEvent.patch | 2 +-
.../0669-Add-more-WanderingTrader-API.patch | 2 +-
...CreateEvent-players-and-end-platform.patch | 2 +-
...n-in-sunlight-API-for-Phantoms-and-S.patch | 2 +-
.../server/0677-Add-basic-Datapack-API.patch | 8 ++--
...ditions-to-PlayerGameModeChangeEvent.patch | 4 +-
...-option-to-load-extra-plugin-jars-no.patch | 6 +--
...x-and-optimise-world-force-upgrading.patch | 12 ++---
...cause-to-Weather-ThunderChangeEvents.patch | 6 +--
.../0691-Add-PufferFishStateChangeEvent.patch | 2 +-
.../0692-Add-PlayerKickEvent-causes.patch | 6 +--
...698-Add-ElderGuardianAppearanceEvent.patch | 2 +-
.../server/0702-Line-Of-Sight-Changes.patch | 4 +-
.../0703-add-per-world-spawn-limits.patch | 4 +-
...PlayerDropItemEvent-using-wrong-item.patch | 4 +-
...nect-for-book-edit-is-called-on-main.patch | 2 +-
...dd-git-branch-and-commit-to-manifest.patch | 2 +-
...etChunkIfLoadedImmediately-in-places.patch | 8 ++--
.../0714-Adds-PlayerArmSwingEvent.patch | 2 +-
...k-event-leave-message-not-being-sent.patch | 2 +-
...g-for-mobs-immune-to-default-effects.patch | 8 ++--
...n-t-apply-cramming-damage-to-players.patch | 2 +-
...a-bunch-of-missing-forceDrop-toggles.patch | 4 +-
.../0724-Add-System.out-err-catcher.patch | 4 +-
...-AFK-kick-while-watching-end-credits.patch | 2 +-
.../server/0730-Add-PlayerSetSpawnEvent.patch | 4 +-
...6-Make-CallbackExecutor-strict-again.patch | 2 +-
...ket-level-changes-while-unloading-pl.patch | 2 +-
...-logic-for-inventories-on-chunk-unlo.patch | 4 +-
...chunks-refusing-to-unload-at-low-TPS.patch | 2 +-
.../0762-Rewrite-the-light-engine.patch | 2 +-
...ite-entity-bounding-box-lookup-calls.patch | 10 ++--
...single-and-multi-AABB-VoxelShapes-an.patch | 2 +-
.../0766-Execute-chunk-tasks-mid-tick.patch | 6 +--
.../0768-Do-not-copy-visible-chunks.patch | 10 ++--
...9-Replace-player-chunk-loader-system.patch | 16 +++----
...on-checking-in-player-move-packet-ha.patch | 2 +-
...d-getChunkAt-has-inlined-logic-for-l.patch | 4 +-
...primise-map-impl-for-tracked-players.patch | 2 +-
.../0790-Optimise-random-block-ticking.patch | 4 +-
.../0792-Optimise-nearby-player-lookups.patch | 12 ++---
.../0794-Optimise-WorldServer-notify.patch | 2 +-
...ocity-compression-and-cipher-natives.patch | 2 +-
...oftlocked-end-exit-portal-generation.patch | 2 +-
...aper-mobcaps-and-paper-playermobcaps.patch | 12 +++--
...-axolotls-from-buckets-as-persistent.patch | 2 +-
.../0808-Ensure-valid-vehicle-status.patch | 2 +-
...piglins-and-hoglins-towards-mob-cap.patch} | 2 +-
...gister-spawn-egg-meta-for-1.17-mobs.patch} | 0
work/Bukkit | 2 +-
work/CraftBukkit | 2 +-
work/Spigot | 2 +-
365 files changed, 725 insertions(+), 732 deletions(-)
rename patches/server/{0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch => 0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch} (93%)
rename patches/server/{0815-Register-spawn-egg-meta-for-1.17-mobs.patch => 0816-Register-spawn-egg-meta-for-1.17-mobs.patch} (100%)
diff --git a/patches/api/0004-Add-FastUtil-to-Bukkit.patch b/patches/api/0004-Add-FastUtil-to-Bukkit.patch
index c54e283ca..40a9672a4 100644
--- a/patches/api/0004-Add-FastUtil-to-Bukkit.patch
+++ b/patches/api/0004-Add-FastUtil-to-Bukkit.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit
Doesn't expose to plugins, just allows Paper-API to use it for optimization
diff --git a/build.gradle.kts b/build.gradle.kts
-index db6a7b2e60da0d96ef96545a781f1e056482d6ff..17fd7162ab32785252bf2579daae8d47aec21684 100644
+index 8cabc75b2272dbb448c1f04a0ef6b0339d9f6b17..3a395a44ff50a77895341bbbfb8c81deede41b8b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -18,6 +18,7 @@ dependencies {
diff --git a/patches/api/0006-Timings-v2.patch b/patches/api/0006-Timings-v2.patch
index 9c00bed82..9f0aff06f 100644
--- a/patches/api/0006-Timings-v2.patch
+++ b/patches/api/0006-Timings-v2.patch
@@ -2782,10 +2782,10 @@ index 0000000000000000000000000000000000000000..5989ee21297935651b0edd44b8239e65
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index de23baef8a0902956ef4f35dd74744fca8dc6fce..1d54b48250cd8313719c301a2770358a61d9d152 100644
+index be99eb7f6d1c2c9e43918ccfa4c858b47c39cd80..f813a727e291acd3a3625747fc5b5e604a5a56d4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -673,7 +673,6 @@ public final class Bukkit {
+@@ -695,7 +695,6 @@ public final class Bukkit {
*/
public static void reload() {
server.reload();
@@ -2794,10 +2794,10 @@ index de23baef8a0902956ef4f35dd74744fca8dc6fce..1d54b48250cd8313719c301a2770358a
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index c43f40f699818032511714cd468e894a432a35bd..f549bac30ea5e42d99a8920d305fe33748dc84a9 100644
+index 175fb513b3dac30450cbada37275986b7da1465f..2081ebf5d401130e169ddd588a809275f9369a92 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1415,6 +1415,26 @@ public interface Server extends PluginMessageRecipient {
+@@ -1451,6 +1451,26 @@ public interface Server extends PluginMessageRecipient {
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/patches/api/0007-Adventure.patch b/patches/api/0007-Adventure.patch
index e4fce304c..2e09993d9 100644
--- a/patches/api/0007-Adventure.patch
+++ b/patches/api/0007-Adventure.patch
@@ -464,10 +464,10 @@ index 0000000000000000000000000000000000000000..77db592d05b754f879f8d1790642e9d9
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a1a39cee3 100644
+index f813a727e291acd3a3625747fc5b5e604a5a56d4..e8747e52ae2ebac79546a04c19a7945d3d4dabe4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -302,7 +302,9 @@ public final class Bukkit {
+@@ -303,7 +303,9 @@ public final class Bukkit {
*
* @param message the message
* @return the number of players
@@ -477,7 +477,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
public static int broadcastMessage(@NotNull String message) {
return server.broadcastMessage(message);
}
-@@ -915,6 +917,19 @@ public final class Bukkit {
+@@ -937,6 +939,19 @@ public final class Bukkit {
server.shutdown();
}
@@ -497,7 +497,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
/**
* Broadcasts the specified message to every user with the given
* permission name.
-@@ -924,6 +939,21 @@ public final class Bukkit {
+@@ -946,6 +961,21 @@ public final class Bukkit {
* permissibles} must have to receive the broadcast
* @return number of message recipients
*/
@@ -519,7 +519,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
public static int broadcast(@NotNull String message, @NotNull String permission) {
return server.broadcast(message, permission);
}
-@@ -1123,6 +1153,7 @@ public final class Bukkit {
+@@ -1145,6 +1175,7 @@ public final class Bukkit {
return server.createInventory(owner, type);
}
@@ -527,7 +527,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1148,6 +1179,38 @@ public final class Bukkit {
+@@ -1170,6 +1201,38 @@ public final class Bukkit {
* @see InventoryType#isCreatable()
*/
@NotNull
@@ -566,7 +566,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) {
return server.createInventory(owner, type, title);
}
-@@ -1166,6 +1229,7 @@ public final class Bukkit {
+@@ -1188,6 +1251,7 @@ public final class Bukkit {
return server.createInventory(owner, size);
}
@@ -574,7 +574,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1178,10 +1242,30 @@ public final class Bukkit {
+@@ -1200,10 +1264,30 @@ public final class Bukkit {
* @throws IllegalArgumentException if the size is not a multiple of 9
*/
@NotNull
@@ -605,7 +605,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
/**
* Creates an empty merchant.
*
-@@ -1189,7 +1273,20 @@ public final class Bukkit {
+@@ -1211,7 +1295,20 @@ public final class Bukkit {
* when the merchant inventory is viewed
* @return a new merchant
*/
@@ -626,7 +626,7 @@ index 1d54b48250cd8313719c301a2770358a61d9d152..241d6179347a3eedbab537e6e596f18a
public static Merchant createMerchant(@Nullable String title) {
return server.createMerchant(title);
}
-@@ -1260,22 +1357,47 @@ public final class Bukkit {
+@@ -1291,22 +1388,47 @@ public final class Bukkit {
return server.isPrimaryThread();
}
@@ -748,10 +748,10 @@ index 803fa0019869127ee8c7e4fb1777a59c43e66f8a..c65f0d6569c130b4920a9e71ad24af64
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf03db123c 100644
+index 2081ebf5d401130e169ddd588a809275f9369a92..e71fe881872e7be2a39f7a6830be9dc83c78ec8c 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -55,13 +55,13 @@ import org.jetbrains.annotations.Nullable;
+@@ -56,13 +56,13 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a server implementation.
*/
@@ -767,7 +767,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
*/
public static final String BROADCAST_CHANNEL_ADMINISTRATIVE = "bukkit.broadcast.admin";
-@@ -69,7 +69,7 @@ public interface Server extends PluginMessageRecipient {
+@@ -70,7 +70,7 @@ public interface Server extends PluginMessageRecipient {
* Used for all announcement messages, such as informing users that a
* player has joined.
*
@@ -776,7 +776,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
*/
public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user";
-@@ -249,7 +249,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -250,7 +250,9 @@ public interface Server extends PluginMessageRecipient {
*
* @param message the message
* @return the number of players
@@ -786,7 +786,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
public int broadcastMessage(@NotNull String message);
/**
-@@ -774,8 +776,33 @@ public interface Server extends PluginMessageRecipient {
+@@ -795,8 +797,33 @@ public interface Server extends PluginMessageRecipient {
* @param permission the required permission {@link Permissible
* permissibles} must have to receive the broadcast
* @return number of message recipients
@@ -820,7 +820,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
/**
* Gets the player by the given name, regardless if they are offline or
-@@ -940,6 +967,7 @@ public interface Server extends PluginMessageRecipient {
+@@ -961,6 +988,7 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type);
@@ -828,7 +828,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -965,6 +993,36 @@ public interface Server extends PluginMessageRecipient {
+@@ -986,6 +1014,36 @@ public interface Server extends PluginMessageRecipient {
* @see InventoryType#isCreatable()
*/
@NotNull
@@ -865,7 +865,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title);
/**
-@@ -979,6 +1037,22 @@ public interface Server extends PluginMessageRecipient {
+@@ -1000,6 +1058,22 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException;
@@ -888,7 +888,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -989,10 +1063,13 @@ public interface Server extends PluginMessageRecipient {
+@@ -1010,10 +1084,13 @@ public interface Server extends PluginMessageRecipient {
* viewed
* @return a new inventory
* @throws IllegalArgumentException if the size is not a multiple of 9
@@ -902,7 +902,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
/**
* Creates an empty merchant.
*
-@@ -1000,7 +1077,18 @@ public interface Server extends PluginMessageRecipient {
+@@ -1021,7 +1098,18 @@ public interface Server extends PluginMessageRecipient {
* when the merchant inventory is viewed
* @return a new merchant
*/
@@ -921,7 +921,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
Merchant createMerchant(@Nullable String title);
/**
-@@ -1057,20 +1145,41 @@ public interface Server extends PluginMessageRecipient {
+@@ -1085,20 +1173,41 @@ public interface Server extends PluginMessageRecipient {
*/
boolean isPrimaryThread();
@@ -963,7 +963,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
String getShutdownMessage();
/**
-@@ -1439,7 +1548,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1475,7 +1584,9 @@ public interface Server extends PluginMessageRecipient {
* Sends the component to the player
*
* @param component the components to send
@@ -973,7 +973,7 @@ index f549bac30ea5e42d99a8920d305fe33748dc84a9..6f87dec0e0b1625e1628e8a1a8357ddf
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1448,7 +1559,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1484,7 +1595,9 @@ public interface Server extends PluginMessageRecipient {
* Sends an array of components as a single message to the player
*
* @param components the components to send
@@ -1076,7 +1076,7 @@ index efb97712cc9dc7c1e12a59f5b94e4f2ad7c6b7d8..3024468af4c073324e536c1cb26beffb
return warning == null || warning.value();
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index dd0fef9155077ce6df7bdadc9e4152008f700a3b..92e8b0b1ccebdc2646337114793ea9f3e7759d25 100644
+index 794bbd3fa66fdfbcf4bb7ce0d64ede07626d4918..3f7658c5347aad369fde6750d969f5fa63e922de 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -38,7 +38,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0009-Add-getTPS-method.patch b/patches/api/0009-Add-getTPS-method.patch
index c41a8269e..e064258fc 100644
--- a/patches/api/0009-Add-getTPS-method.patch
+++ b/patches/api/0009-Add-getTPS-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 241d6179347a3eedbab537e6e596f18a1a39cee3..357536ffc82e2adb220a3069fa2e76fa28f215e4 100644
+index e8747e52ae2ebac79546a04c19a7945d3d4dabe4..82f1a3e4de427c24262d880009c73acf086c1415 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1622,6 +1622,17 @@ public final class Bukkit {
+@@ -1653,6 +1653,17 @@ public final class Bukkit {
return server.getEntity(uuid);
}
@@ -27,10 +27,10 @@ index 241d6179347a3eedbab537e6e596f18a1a39cee3..357536ffc82e2adb220a3069fa2e76fa
* Get the advancement specified by this key.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 6f87dec0e0b1625e1628e8a1a8357ddf03db123c..f3102fdbb4caab2d58a8f5e305ac80fa36d10d8d 100644
+index e71fe881872e7be2a39f7a6830be9dc83c78ec8c..9779298ab98859a118690c8dce63f621c8255af2 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1372,6 +1372,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1400,6 +1400,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
Entity getEntity(@NotNull UUID uuid);
diff --git a/patches/api/0013-Add-view-distance-API.patch b/patches/api/0013-Add-view-distance-API.patch
index 1d918ad9f..d2a5cd598 100644
--- a/patches/api/0013-Add-view-distance-API.patch
+++ b/patches/api/0013-Add-view-distance-API.patch
@@ -8,10 +8,10 @@ Add per player no-tick, tick, and send view distances.
Also add send/no-tick view distance to World.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 92e8b0b1ccebdc2646337114793ea9f3e7759d25..5d01ba43ead1c5d257e38645380359c81f3de849 100644
+index 3f7658c5347aad369fde6750d969f5fa63e922de..49be21d2676a93c384f37c09fe84eba2ffc11781 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
-@@ -2379,6 +2379,51 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+@@ -2443,6 +2443,51 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
int getViewDistance();
// Spigot end
diff --git a/patches/api/0017-Expose-server-CommandMap.patch b/patches/api/0017-Expose-server-CommandMap.patch
index 163c97845..f264857bb 100644
--- a/patches/api/0017-Expose-server-CommandMap.patch
+++ b/patches/api/0017-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 357536ffc82e2adb220a3069fa2e76fa28f215e4..0a3ae145c5406999eecbf0983cff8790ce42388e 100644
+index 82f1a3e4de427c24262d880009c73acf086c1415..3d83ecdb09d8f853583d11da2b02b5d80ef25360 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1796,6 +1796,19 @@ public final class Bukkit {
+@@ -1837,6 +1837,19 @@ public final class Bukkit {
return server.getUnsafe();
}
@@ -29,10 +29,10 @@ index 357536ffc82e2adb220a3069fa2e76fa28f215e4..0a3ae145c5406999eecbf0983cff8790
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index f3102fdbb4caab2d58a8f5e305ac80fa36d10d8d..53455bbe675bdfd424d8cebeb057c1d8defd0dd5 100644
+index 9779298ab98859a118690c8dce63f621c8255af2..833be0b61a375cef5b53e8a35dc2a99bebd550ef 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1382,6 +1382,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1410,6 +1410,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public double[] getTPS();
// Paper end
diff --git a/patches/api/0018-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0018-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index 4cbd143c6..fc7b53244 100644
--- a/patches/api/0018-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/patches/api/0018-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 0a3ae145c5406999eecbf0983cff8790ce42388e..d2c98a9e670bb5202b6db0a1be8aa2b78328da91 100644
+index 3d83ecdb09d8f853583d11da2b02b5d80ef25360..ca1a9c1ac6f9716435c6bc7858acce36785fdbe5 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -309,6 +309,30 @@ public final class Bukkit {
+@@ -310,6 +310,30 @@ public final class Bukkit {
return server.broadcastMessage(message);
}
@@ -41,10 +41,10 @@ index 0a3ae145c5406999eecbf0983cff8790ce42388e..d2c98a9e670bb5202b6db0a1be8aa2b7
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 53455bbe675bdfd424d8cebeb057c1d8defd0dd5..5ae4b3c4a20fd8fd727efbfe7b721c9b365b87a6 100644
+index 833be0b61a375cef5b53e8a35dc2a99bebd550ef..4db7cffbc1baaaece076cedb55aff07f7e5ab379 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -254,6 +254,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -255,6 +255,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Deprecated // Paper
public int broadcastMessage(@NotNull String message);
@@ -76,7 +76,7 @@ index 53455bbe675bdfd424d8cebeb057c1d8defd0dd5..5ae4b3c4a20fd8fd727efbfe7b721c9b
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 28ef62e9e04501dbf4fe7b0fec52b1435621cffb..bd652a0c20335be67aae67ea663a23ea215d237a 100644
+index 14f35121aaeb641ac90bcadc906816f225e165ac..a989f63b6862123dc2b1293b9fd901bd093c84d0 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -710,6 +710,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/patches/api/0025-Use-ASM-for-event-executors.patch b/patches/api/0025-Use-ASM-for-event-executors.patch
index 48f7e0c19..f5bd29806 100644
--- a/patches/api/0025-Use-ASM-for-event-executors.patch
+++ b/patches/api/0025-Use-ASM-for-event-executors.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/build.gradle.kts b/build.gradle.kts
-index f3018c133440e2f6d1bcdf1adb060dfc6db1a866..d347f7eb79a7d0f0f8c8ec117885158cff1bacf5 100644
+index 6ebea1d9fafb08ede7e37dfe1b145a676c7aaaf9..533600dfb2e73736857cc2a10525db7dc2452433 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,9 @@ dependencies {
diff --git a/patches/api/0028-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0028-Add-command-to-reload-permissions.yml-and-require-co.patch
index aa8dba83b..718aec48b 100644
--- a/patches/api/0028-Add-command-to-reload-permissions.yml-and-require-co.patch
+++ b/patches/api/0028-Add-command-to-reload-permissions.yml-and-require-co.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index d2c98a9e670bb5202b6db0a1be8aa2b78328da91..9ba12077dfbdd99cbb269dfcffc09dc9e325bae3 100644
+index ca1a9c1ac6f9716435c6bc7858acce36785fdbe5..43167715275a6e99bfb61f41636d01e34e8d5332 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1831,6 +1831,13 @@ public final class Bukkit {
+@@ -1872,6 +1872,13 @@ public final class Bukkit {
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
}
@@ -24,10 +24,10 @@ index d2c98a9e670bb5202b6db0a1be8aa2b78328da91..9ba12077dfbdd99cbb269dfcffc09dc9
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 5ae4b3c4a20fd8fd727efbfe7b721c9b365b87a6..414a24197256c5a27e9e854a96428ed2aa81f60c 100644
+index 4db7cffbc1baaaece076cedb55aff07f7e5ab379..f1bba0713cf9f0aed4997b750d5fe1fa9459d37b 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1620,4 +1620,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1656,4 +1656,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
Spigot spigot();
// Spigot end
diff --git a/patches/api/0041-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0041-Allow-Reloading-of-Command-Aliases.patch
index 7a119211e..588931803 100644
--- a/patches/api/0041-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/api/0041-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 9ba12077dfbdd99cbb269dfcffc09dc9e325bae3..fd7ac75f545810c5c85b231639483b30da373e6e 100644
+index 43167715275a6e99bfb61f41636d01e34e8d5332..622aaf0786140059b81704763175773d8ea41952 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1838,6 +1838,15 @@ public final class Bukkit {
+@@ -1879,6 +1879,15 @@ public final class Bukkit {
public static void reloadPermissions() {
server.reloadPermissions();
}
@@ -26,10 +26,10 @@ index 9ba12077dfbdd99cbb269dfcffc09dc9e325bae3..fd7ac75f545810c5c85b231639483b30
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 414a24197256c5a27e9e854a96428ed2aa81f60c..075573b2ba144752cdee270c9d599b8bc0972df0 100644
+index f1bba0713cf9f0aed4997b750d5fe1fa9459d37b..861ec80f86ffcb4625e89887e2b752ea02716596 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1622,4 +1622,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1658,4 +1658,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Spigot end
void reloadPermissions(); // Paper
diff --git a/patches/api/0049-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/api/0049-Provide-E-TE-Chunk-count-stat-methods.patch
index 25684b41b..61a57fd0f 100644
--- a/patches/api/0049-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/api/0049-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 864fd2f67820e60e74443c135f8f5e5c62a077bb..370a7a078eeaeac70cd5032264e6dd21fb444bd1 100644
+index 49be21d2676a93c384f37c09fe84eba2ffc11781..98c74a6b4f126f2a3e65f95e55561f652c10c4b9 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -40,6 +40,33 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0052-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0052-Add-configuration-option-to-prevent-player-names-fro.patch
index bb860225f..541027b03 100644
--- a/patches/api/0052-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/api/0052-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index fd7ac75f545810c5c85b231639483b30da373e6e..02045103fc776a149cd05a779461acb6164b656f 100644
+index 622aaf0786140059b81704763175773d8ea41952..c4be0ad6f4ddcceb4505a4bbe185605cf3d9e016 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1847,6 +1847,16 @@ public final class Bukkit {
+@@ -1888,6 +1888,16 @@ public final class Bukkit {
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
@@ -27,10 +27,10 @@ index fd7ac75f545810c5c85b231639483b30da373e6e..02045103fc776a149cd05a779461acb6
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 075573b2ba144752cdee270c9d599b8bc0972df0..1d13a4c289e6a764b3b080455a86e17a5e60929e 100644
+index 861ec80f86ffcb4625e89887e2b752ea02716596..12e4b491ec9abfa16b304423942d9ecdee30f5c9 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1624,4 +1624,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1660,4 +1660,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
diff --git a/patches/api/0053-Fix-upstream-javadocs.patch b/patches/api/0053-Fix-upstream-javadocs.patch
index 0e867f42d..89bdcdd4f 100644
--- a/patches/api/0053-Fix-upstream-javadocs.patch
+++ b/patches/api/0053-Fix-upstream-javadocs.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix upstream javadocs
Upstream still refuses to use Java 8 with the API so they are likely unaware these are even issues.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 02045103fc776a149cd05a779461acb6164b656f..03f5d90d58617d463cb15e0b1d5b7bd76d8f4b21 100644
+index c4be0ad6f4ddcceb4505a4bbe185605cf3d9e016..35bd618dd21e5ff9b6b5aabc76c0025a16c0b275 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1123,6 +1123,8 @@ public final class Bukkit {
+@@ -1145,6 +1145,8 @@ public final class Bukkit {
/**
* Gets every player that has ever played on this server.
@@ -19,10 +19,10 @@ index 02045103fc776a149cd05a779461acb6164b656f..03f5d90d58617d463cb15e0b1d5b7bd7
* @return an array containing all previous players
*/
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 1d13a4c289e6a764b3b080455a86e17a5e60929e..294b6092b438ad3d09bf3ad28d08ffdfdda4ac5c 100644
+index 12e4b491ec9abfa16b304423942d9ecdee30f5c9..04e086a8b8460cc6a5cbda07aa7c09657077e590 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -945,6 +945,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -966,6 +966,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Gets every player that has ever played on this server.
@@ -76,7 +76,7 @@ index be9334a8b5fba9181ad63c211697e798be63da25..0514a141cb93a650be38c63d4336d46e
* Instructs this Mob to set the specified LivingEntity as its target.
*
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 9d5c5b5f7d7ae4f0278410833d9d385242872498..2301a5c6ada86b63b1c0207a6d89b0da4c167bbb 100644
+index d39e5da511b8cc2239ad2eeb300762df2c4387bd..dac2db2d953f1897ad79ea985a391d78d992dd84 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -730,7 +730,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/patches/api/0057-Basic-PlayerProfile-API.patch b/patches/api/0057-Basic-PlayerProfile-API.patch
index 2ba01359a..87be65764 100644
--- a/patches/api/0057-Basic-PlayerProfile-API.patch
+++ b/patches/api/0057-Basic-PlayerProfile-API.patch
@@ -267,10 +267,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 03f5d90d58617d463cb15e0b1d5b7bd76d8f4b21..faa02f8ad00d1634c75f5372740b6cefdf9cb94e 100644
+index 35bd618dd21e5ff9b6b5aabc76c0025a16c0b275..e5515d68b6d69816e29faf1c6d6babe94918b63b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1859,6 +1859,40 @@ public final class Bukkit {
+@@ -1900,6 +1900,40 @@ public final class Bukkit {
public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -312,10 +312,10 @@ index 03f5d90d58617d463cb15e0b1d5b7bd76d8f4b21..faa02f8ad00d1634c75f5372740b6cef
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 294b6092b438ad3d09bf3ad28d08ffdfdda4ac5c..8ad09e03927acebfd3eb17c0e7fe390eeadd2a28 100644
+index 04e086a8b8460cc6a5cbda07aa7c09657077e590..d442ba16abfb096817a2be584a596bf6536b070e 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1635,5 +1635,33 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1671,5 +1671,33 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0068-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0068-Allow-plugins-to-use-SLF4J-for-logging.patch
index 4ce74e677..e61970e72 100644
--- a/patches/api/0068-Allow-plugins-to-use-SLF4J-for-logging.patch
+++ b/patches/api/0068-Allow-plugins-to-use-SLF4J-for-logging.patch
@@ -14,7 +14,7 @@ it without having to shade it in the plugin and going through
several layers of logging abstraction.
diff --git a/build.gradle.kts b/build.gradle.kts
-index 7cb2fd3adcbf425857ec3de03d009d4c0bd81dc3..689d470ebe2c7e25e4c87f6127978d1d283e55b5 100644
+index 533600dfb2e73736857cc2a10525db7dc2452433..02f80c9a34a23c2285a1e05b41f53b4bafc28c5a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -37,6 +37,8 @@ dependencies {
diff --git a/patches/api/0075-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0075-Expose-client-protocol-version-and-virtual-host.patch
index fc30cd151..55b3593a9 100644
--- a/patches/api/0075-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/api/0075-Expose-client-protocol-version-and-virtual-host.patch
@@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b
+
+}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 2301a5c6ada86b63b1c0207a6d89b0da4c167bbb..4dc4811d608e51aea3cd2c26beaebc7c25f4b69b 100644
+index dac2db2d953f1897ad79ea985a391d78d992dd84..146487d04db8a52f489cafa919a7e731671f825d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -35,7 +35,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0079-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0079-Ability-to-apply-mending-to-XP-API.patch
index bfbd31353..4b8532a80 100644
--- a/patches/api/0079-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/api/0079-Ability-to-apply-mending-to-XP-API.patch
@@ -10,7 +10,7 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 4dc4811d608e51aea3cd2c26beaebc7c25f4b69b..30e7cd8e35549022d68e9ca206e55a2537694b14 100644
+index 146487d04db8a52f489cafa919a7e731671f825d..b98a0bfe2c58377e0b3b135ef4e6250c3a59cc7f 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -988,12 +988,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/patches/api/0091-getPlayerUniqueId-API.patch b/patches/api/0091-getPlayerUniqueId-API.patch
index ba7f6e800..f895df449 100644
--- a/patches/api/0091-getPlayerUniqueId-API.patch
+++ b/patches/api/0091-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a903cc8e0fd6f44dc31b8b3998767d24a18f59b6..85cb12d2719ca42c04abcd63726059767bba6fe7 100644
+index e5515d68b6d69816e29faf1c6d6babe94918b63b..7a5ed3f1ff00ac689f570cd8c02fbd6c7beb7f44 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -528,6 +528,20 @@ public final class Bukkit {
+@@ -550,6 +550,20 @@ public final class Bukkit {
return server.getPlayer(id);
}
@@ -34,10 +34,10 @@ index a903cc8e0fd6f44dc31b8b3998767d24a18f59b6..85cb12d2719ca42c04abcd6372605976
* Gets the plugin manager for interfacing with plugins.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index d1554849a8a0e698d6106487fea44ad8e8b438da..d2fce537c80c73bd1711854fd4b86fb4730e6fe4 100644
+index d442ba16abfb096817a2be584a596bf6536b070e..87690bd58bdab40edcfddc40b26acc8e1f8cf8fc 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -449,6 +449,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -470,6 +470,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public Player getPlayer(@NotNull UUID id);
diff --git a/patches/api/0094-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0094-Add-Ban-Methods-to-Player-Objects.patch
index c832e33e7..c73b720f9 100644
--- a/patches/api/0094-Add-Ban-Methods-to-Player-Objects.patch
+++ b/patches/api/0094-Add-Ban-Methods-to-Player-Objects.patch
@@ -74,7 +74,7 @@ index 58313929f81509030216a0e5e3869da63e11108e..6cf05fed701c67a2c797a4e0839c7958
/**
* Checks if this player is whitelisted or not
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index d12d7e421eb634a9a3b5e35f8970995ec7786055..09d7ce67f711d48e63d71b6b8f19047aaa09d24d 100644
+index 5379b34f82bc36604d53f527b949a93c42ff441f..debe69ccb0da02815dfcb5288eb37b22ce55cb90 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -5,6 +5,10 @@ import java.util.UUID;
diff --git a/patches/api/0097-Additional-world.getNearbyEntities-API-s.patch b/patches/api/0097-Additional-world.getNearbyEntities-API-s.patch
index 1fa4fee7a..eb246ae5d 100644
--- a/patches/api/0097-Additional-world.getNearbyEntities-API-s.patch
+++ b/patches/api/0097-Additional-world.getNearbyEntities-API-s.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's
Provides more methods to get nearby entities, and filter by types and predicates
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 6b3dc349e5bf8f092e4d2bbbd4747d7d527b0949..9945fe0ee354603490cc0b759264f91e8a7a0f6b 100644
+index 98c74a6b4f126f2a3e65f95e55561f652c10c4b9..8e434b7048cd650245c6b522807e2f8a6dc497e9 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1,6 +1,9 @@
diff --git a/patches/api/0099-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0099-Expand-World.spawnParticle-API-and-add-Builder.patch
index 9580a95bc..3d88eab5c 100644
--- a/patches/api/0099-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/api/0099-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -522,10 +522,10 @@ index c5315ee1ed435c39a3ae298e248b67c5dc291497..687a62707c8021f87e03d6bc358b3b4e
* Options which can be applied to redstone dust particles - a particle
* color and size.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 9945fe0ee354603490cc0b759264f91e8a7a0f6b..8b71809fd13c267ef6c84552c6d0a263670ad62f 100644
+index 8e434b7048cd650245c6b522807e2f8a6dc497e9..8ed7fadf1375b80b338e2493405a41957b104b8e 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
-@@ -2573,7 +2573,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+@@ -2637,7 +2637,57 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
* @param data the data to use for the particle or null,
* the type of this depends on {@link Particle#getDataType()}
*/
diff --git a/patches/api/0114-Expand-Explosions-API.patch b/patches/api/0114-Expand-Explosions-API.patch
index 3e47c176d..0895fe036 100644
--- a/patches/api/0114-Expand-Explosions-API.patch
+++ b/patches/api/0114-Expand-Explosions-API.patch
@@ -106,7 +106,7 @@ index bbc636baef2e2b0586c7d517be428438ca26ab66..a8d4f7972d07ddde171b4a1ec470a4c6
* Returns a list of entities within a bounding box centered around a Location.
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 8b71809fd13c267ef6c84552c6d0a263670ad62f..d5793644cf51f6e864897893961f367c8d0dc6e8 100644
+index 8ed7fadf1375b80b338e2493405a41957b104b8e..2bc0d5d6c81c21fd2c9318e968c3807f3e5474e0 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1419,6 +1419,88 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0118-Add-World.getEntity-UUID-API.patch b/patches/api/0118-Add-World.getEntity-UUID-API.patch
index 0b2ef4f5f..92a50173c 100644
--- a/patches/api/0118-Add-World.getEntity-UUID-API.patch
+++ b/patches/api/0118-Add-World.getEntity-UUID-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index d5793644cf51f6e864897893961f367c8d0dc6e8..fef5a98a5c84b018f30a59faac613a60257f3a44 100644
+index 2bc0d5d6c81c21fd2c9318e968c3807f3e5474e0..e0c2ce5ad528ee1dd6293d0ed5ac3d6474c6d106 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -939,6 +939,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0135-Provide-Chunk-Coordinates-as-a-Long-API.patch b/patches/api/0135-Provide-Chunk-Coordinates-as-a-Long-API.patch
index 0b526f3b4..735997749 100644
--- a/patches/api/0135-Provide-Chunk-Coordinates-as-a-Long-API.patch
+++ b/patches/api/0135-Provide-Chunk-Coordinates-as-a-Long-API.patch
@@ -7,7 +7,7 @@ Allows you to easily access the chunks X/z as a long, and a method
to look up by the long key too.
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
-index beac1439c71fb28f1a3baecf56157237e12ccfd5..fa576096e908f8fbdbef53e1bd91215ac9e73ed6 100644
+index 5fd6030b2693d793951ed632ad4870e1a6f909aa..40ddeb7abd49eeece531a8e90b4508f3831cc3e9 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -28,6 +28,32 @@ public interface Chunk extends PersistentDataHolder {
@@ -44,7 +44,7 @@ index beac1439c71fb28f1a3baecf56157237e12ccfd5..fa576096e908f8fbdbef53e1bd91215a
* Gets the world containing this chunk
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 5846d085b770b3c89cadcd9e2e57ded776babc9e..49e07ff7a3d8a2d9994205c8b29bd7295bc6acc0 100644
+index e0c2ce5ad528ee1dd6293d0ed5ac3d6474c6d106..33558b6acc861f8b9986122c7c553f9dde22a45d 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -207,6 +207,22 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0139-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0139-Allow-Blocks-to-be-accessed-via-a-long-key.patch
index 966ebe867..42ad1623e 100644
--- a/patches/api/0139-Allow-Blocks-to-be-accessed-via-a-long-key.patch
+++ b/patches/api/0139-Allow-Blocks-to-be-accessed-via-a-long-key.patch
@@ -48,7 +48,7 @@ index 36ed248f0716f2cc465c08ab851b7d83d4c7c0a7..58728a0f0722b378efa129e26f0c822b
* @return A new location where X/Y/Z are the center of the block
*/
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 49e07ff7a3d8a2d9994205c8b29bd7295bc6acc0..28bcf496d658ba305a6bf459cdd710502399ff04 100644
+index 33558b6acc861f8b9986122c7c553f9dde22a45d..c1bdd642e870660931c3367884dcd7aa9d3e6923 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -90,6 +90,38 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0143-isChunkGenerated-API.patch b/patches/api/0143-isChunkGenerated-API.patch
index fac20ce8a..8e52bb2f9 100644
--- a/patches/api/0143-isChunkGenerated-API.patch
+++ b/patches/api/0143-isChunkGenerated-API.patch
@@ -34,7 +34,7 @@ index 58728a0f0722b378efa129e26f0c822b63d1af36..88b3e0323dbc4f0fce31b147c7aaa08d
/**
* Sets the position of this Location and returns itself
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 28bcf496d658ba305a6bf459cdd710502399ff04..e4bf314c954d8cca6bdb52f0b88137cac4d83f24 100644
+index c1bdd642e870660931c3367884dcd7aa9d3e6923..7f57fe55a13c57bfe833d8e83e2f71fb5e074f5e 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -253,6 +253,17 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0146-Async-Chunks-API.patch b/patches/api/0146-Async-Chunks-API.patch
index 416deecba..1a0153ff8 100644
--- a/patches/api/0146-Async-Chunks-API.patch
+++ b/patches/api/0146-Async-Chunks-API.patch
@@ -8,7 +8,7 @@ Adds API's to load or generate chunks asynchronously.
Also adds utility methods to Entity to teleport asynchronously.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 891eaf0d1ed600e8e81a7bbdaf9e8f34e2ca50b9..2a371a93c99cb034df897fa82d816ee852a2c4e7 100644
+index 7f57fe55a13c57bfe833d8e83e2f71fb5e074f5e..fff4d4083a0065655192cff4ed61f4e80a2e7f75 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -962,6 +962,482 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@@ -495,7 +495,7 @@ index 891eaf0d1ed600e8e81a7bbdaf9e8f34e2ca50b9..2a371a93c99cb034df897fa82d816ee8
/**
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
-index 38d7685063bf47491c55c1911c6f2cb915f64202..92927b9a90b2a4497dd572f6f752c40cf35dd8b8 100644
+index 0f1e456c8b278d0fb45871e6f57baf2c6234ed51..0207348eda9a5fcd3814e368a1bc61ae451a1aff 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -163,6 +163,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
diff --git a/patches/api/0159-Add-sun-related-API.patch b/patches/api/0159-Add-sun-related-API.patch
index 1f99757dd..7f3635a01 100644
--- a/patches/api/0159-Add-sun-related-API.patch
+++ b/patches/api/0159-Add-sun-related-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 2a371a93c99cb034df897fa82d816ee852a2c4e7..f2dc2c9138c3e2e3431837cb24307be894da3ee0 100644
+index fff4d4083a0065655192cff4ed61f4e80a2e7f75..e4d3618afa8a022ae556febd23be76b5fe6dfe0e 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1789,6 +1789,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0164-Make-the-default-permission-message-configurable.patch b/patches/api/0164-Make-the-default-permission-message-configurable.patch
index c15acc84b..41cee6f48 100644
--- a/patches/api/0164-Make-the-default-permission-message-configurable.patch
+++ b/patches/api/0164-Make-the-default-permission-message-configurable.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 85bdfecaecbb2303f55742d024aa3b1d4f89dcf6..d8c6d6252e79ee7d4c2a1ba4618e833772192c12 100644
+index 7a5ed3f1ff00ac689f570cd8c02fbd6c7beb7f44..a4b717250bf4800803b3173c2f2771b11777577f 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1874,6 +1874,15 @@ public final class Bukkit {
+@@ -1915,6 +1915,15 @@ public final class Bukkit {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -25,10 +25,10 @@ index 85bdfecaecbb2303f55742d024aa3b1d4f89dcf6..d8c6d6252e79ee7d4c2a1ba4618e8337
* Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 01f48e15bf502b4e8bd415bf606bbe22b2343380..4c7ceb92bd529e263b08ce53a8fcdfe91d4e5136 100644
+index 87690bd58bdab40edcfddc40b26acc8e1f8cf8fc..bb77ab2a93eb4242b2e66c679effc7e466ed6f6f 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1648,6 +1648,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1684,6 +1684,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0178-Fix-Spigot-annotation-mistakes.patch b/patches/api/0178-Fix-Spigot-annotation-mistakes.patch
index 791e3f3ca..9d9c6c235 100644
--- a/patches/api/0178-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0178-Fix-Spigot-annotation-mistakes.patch
@@ -9,10 +9,10 @@ a ton of noise to plugin developers.
These do not help plugin developers if they bring moise noise than value.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index d8c6d6252e79ee7d4c2a1ba4618e833772192c12..cb3cecd97217a6c282e7a5fcacb7099dc08183b2 100644
+index a4b717250bf4800803b3173c2f2771b11777577f..91100e2acf40a8944190a79da2d5bf06799cd4b6 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1470,7 +1470,7 @@ public final class Bukkit {
+@@ -1501,7 +1501,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -21,7 +21,7 @@ index d8c6d6252e79ee7d4c2a1ba4618e833772192c12..cb3cecd97217a6c282e7a5fcacb7099d
public static ScoreboardManager getScoreboardManager() {
return server.getScoreboardManager();
}
-@@ -1767,7 +1767,7 @@ public final class Bukkit {
+@@ -1798,7 +1798,7 @@ public final class Bukkit {
* @param clazz the class of the tag entries
* @return the tag or null
*/
@@ -62,10 +62,10 @@ index 88b3e0323dbc4f0fce31b147c7aaa08d65745852..23ca89dde7f6ac9082d4b97fce295942
if (this.world == null) {
return null;
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 4c7ceb92bd529e263b08ce53a8fcdfe91d4e5136..6636a5192b48cde5a8cf5fe16d6d31596f33be47 100644
+index bb77ab2a93eb4242b2e66c679effc7e466ed6f6f..c165a4e3d68c8a62316a8e295c23d2c28c56cae8 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1244,7 +1244,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1272,7 +1272,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -74,7 +74,7 @@ index 4c7ceb92bd529e263b08ce53a8fcdfe91d4e5136..6636a5192b48cde5a8cf5fe16d6d3159
ScoreboardManager getScoreboardManager();
/**
-@@ -1514,7 +1514,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1542,7 +1542,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param clazz the class of the tag entries
* @return the tag or null
*/
diff --git a/patches/api/0181-Add-Heightmap-API.patch b/patches/api/0181-Add-Heightmap-API.patch
index 0c6c7fb4b..8ef3a8afb 100644
--- a/patches/api/0181-Add-Heightmap-API.patch
+++ b/patches/api/0181-Add-Heightmap-API.patch
@@ -103,7 +103,7 @@ index 23ca89dde7f6ac9082d4b97fce2959425f3680cb..8321441b8f528a05e297f485672f928e
* Creates explosion at this location with given power
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index ef17e3caf6a899fc19ed5b1df1446d42322fb098..57b4b3056d6408b67f070be5fe29e58c4699b486 100644
+index e4d3618afa8a022ae556febd23be76b5fe6dfe0e..bcac107353149d0129571a3548965a407aa7640c 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -160,6 +160,87 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0186-Expose-the-internal-current-tick.patch b/patches/api/0186-Expose-the-internal-current-tick.patch
index fe7f0e9b5..08a477bd3 100644
--- a/patches/api/0186-Expose-the-internal-current-tick.patch
+++ b/patches/api/0186-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cb3cecd97217a6c282e7a5fcacb7099dc08183b2..4a45ae0ebedb1b45c7167a8a8b9a79797302eea8 100644
+index 91100e2acf40a8944190a79da2d5bf06799cd4b6..663d8e27ba6625a20201a9abc66371dc71eeee42 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1916,6 +1916,10 @@ public final class Bukkit {
+@@ -1957,6 +1957,10 @@ public final class Bukkit {
public static com.destroystokyo.paper.profile.PlayerProfile createProfile(@Nullable UUID uuid, @Nullable String name) {
return server.createProfile(uuid, name);
}
@@ -20,10 +20,10 @@ index cb3cecd97217a6c282e7a5fcacb7099dc08183b2..4a45ae0ebedb1b45c7167a8a8b9a7979
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 6636a5192b48cde5a8cf5fe16d6d31596f33be47..de0bf2b6b4ca4cc5ca3f53fb195db9fcd8000894 100644
+index c165a4e3d68c8a62316a8e295c23d2c28c56cae8..339bcb8d47c3d9856cf5fbc87ba3a104f414c462 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1682,5 +1682,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1718,5 +1718,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfile(@Nullable UUID uuid, @Nullable String name);
diff --git a/patches/api/0192-Add-tick-times-API.patch b/patches/api/0192-Add-tick-times-API.patch
index ad0500cfc..5790749a0 100644
--- a/patches/api/0192-Add-tick-times-API.patch
+++ b/patches/api/0192-Add-tick-times-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 4a45ae0ebedb1b45c7167a8a8b9a79797302eea8..9a5888032602616996a27aa93dbe3b89356acd05 100644
+index 663d8e27ba6625a20201a9abc66371dc71eeee42..86a9db588b1009d10e66f8e6a5aca7929148d227 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1671,6 +1671,25 @@ public final class Bukkit {
+@@ -1702,6 +1702,25 @@ public final class Bukkit {
public static double[] getTPS() {
return server.getTPS();
}
@@ -35,10 +35,10 @@ index 4a45ae0ebedb1b45c7167a8a8b9a79797302eea8..9a5888032602616996a27aa93dbe3b89
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index de0bf2b6b4ca4cc5ca3f53fb195db9fcd8000894..685b4af3a0a041c4c65e3435f42ab83d2feb5d4e 100644
+index 339bcb8d47c3d9856cf5fbc87ba3a104f414c462..c51860ac56d60c08ba9a06dd70c6860dccd4c490 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1418,6 +1418,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1446,6 +1446,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
public double[] getTPS();
diff --git a/patches/api/0193-Expose-MinecraftServer-isRunning.patch b/patches/api/0193-Expose-MinecraftServer-isRunning.patch
index 91b1ca18c..c26162cc1 100644
--- a/patches/api/0193-Expose-MinecraftServer-isRunning.patch
+++ b/patches/api/0193-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 9a5888032602616996a27aa93dbe3b89356acd05..eb82ccb5923847bbb48972e8145a12cb5dcedd17 100644
+index 86a9db588b1009d10e66f8e6a5aca7929148d227..fea11d016dc1b2c585ded4fbcbcf5b405b78712f 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1939,6 +1939,15 @@ public final class Bukkit {
+@@ -1980,6 +1980,15 @@ public final class Bukkit {
public static int getCurrentTick() {
return server.getCurrentTick();
}
@@ -26,10 +26,10 @@ index 9a5888032602616996a27aa93dbe3b89356acd05..eb82ccb5923847bbb48972e8145a12cb
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 685b4af3a0a041c4c65e3435f42ab83d2feb5d4e..300779fe31a71be182edde10fd3beac812fae504 100644
+index c51860ac56d60c08ba9a06dd70c6860dccd4c490..98d683761fcd5dffcce8c08aeae369ab2e2e5665 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1704,5 +1704,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1740,5 +1740,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return Current tick
*/
int getCurrentTick();
diff --git a/patches/api/0202-Add-Mob-Goal-API.patch b/patches/api/0202-Add-Mob-Goal-API.patch
index 7f1d34acf..9ec66cad3 100644
--- a/patches/api/0202-Add-Mob-Goal-API.patch
+++ b/patches/api/0202-Add-Mob-Goal-API.patch
@@ -520,10 +520,10 @@ index 0000000000000000000000000000000000000000..fb0c77c66ca117eaff9487a41f1e280a
+ @Deprecated GoalKey UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset"));
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index eb82ccb5923847bbb48972e8145a12cb5dcedd17..efcbc1e667fab15a55fe44b234dc9713aec895f2 100644
+index fea11d016dc1b2c585ded4fbcbcf5b405b78712f..ea67d9e95f0c9ca0b0ae3afba67563e43743abec 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1948,6 +1948,16 @@ public final class Bukkit {
+@@ -1989,6 +1989,16 @@ public final class Bukkit {
public static boolean isStopping() {
return server.isStopping();
}
@@ -541,10 +541,10 @@ index eb82ccb5923847bbb48972e8145a12cb5dcedd17..efcbc1e667fab15a55fe44b234dc9713
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 300779fe31a71be182edde10fd3beac812fae504..b666d5f03bfb5cc91570688382f541498dd1a1c5 100644
+index 98d683761fcd5dffcce8c08aeae369ab2e2e5665..451a75c2716b23ca61ff53927d594034493da359 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1711,5 +1711,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1747,5 +1747,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if server is in the process of being shutdown
*/
boolean isStopping();
diff --git a/patches/api/0203-Expose-game-version.patch b/patches/api/0203-Expose-game-version.patch
index 47f783d71..91ea56bc7 100644
--- a/patches/api/0203-Expose-game-version.patch
+++ b/patches/api/0203-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index efcbc1e667fab15a55fe44b234dc9713aec895f2..ba49dfc7547da0e1e408c2afc70b1f42a1beb76c 100644
+index ea67d9e95f0c9ca0b0ae3afba67563e43743abec..396e3e32e71a310702cb5d8138e1ee378656d10e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -118,6 +118,18 @@ public final class Bukkit {
+@@ -119,6 +119,18 @@ public final class Bukkit {
return server.getBukkitVersion();
}
@@ -28,10 +28,10 @@ index efcbc1e667fab15a55fe44b234dc9713aec895f2..ba49dfc7547da0e1e408c2afc70b1f42
* Gets a view of all currently logged in players. This {@linkplain
* Collections#unmodifiableCollection(Collection) view} is a reused
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b666d5f03bfb5cc91570688382f541498dd1a1c5..2b21ffb60312cdd2033096b52155610b689f3294 100644
+index 451a75c2716b23ca61ff53927d594034493da359..f9fe3c20b749acf89c7ea78e73a11a96448940d7 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -97,6 +97,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -98,6 +98,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public String getBukkitVersion();
diff --git a/patches/api/0216-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0216-Allow-delegation-to-vanilla-chunk-gen.patch
index f346c955c..cec8cd2db 100644
--- a/patches/api/0216-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/api/0216-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ba49dfc7547da0e1e408c2afc70b1f42a1beb76c..a5bad2633506ded8394f7706c0eced9c395c13e8 100644
+index 396e3e32e71a310702cb5d8138e1ee378656d10e..51eb99fd09ab546ebdf0c5ab5a76492a31a93139 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1571,6 +1571,22 @@ public final class Bukkit {
+@@ -1602,6 +1602,22 @@ public final class Bukkit {
return server.createChunkData(world);
}
@@ -32,10 +32,10 @@ index ba49dfc7547da0e1e408c2afc70b1f42a1beb76c..a5bad2633506ded8394f7706c0eced9c
* Creates a boss bar instance to display to players. The progress
* defaults to 1.0
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 2b21ffb60312cdd2033096b52155610b689f3294..a0695411d3a55babd3cb5f926c3496985ef6e402 100644
+index f9fe3c20b749acf89c7ea78e73a11a96448940d7..849384a6fc7380c5344430beb08210c102c39407 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1329,6 +1329,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1357,6 +1357,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ChunkGenerator.ChunkData createChunkData(@NotNull World world);
diff --git a/patches/api/0218-Add-setMaxPlayers-API.patch b/patches/api/0218-Add-setMaxPlayers-API.patch
index c07c240e0..9e468bd86 100644
--- a/patches/api/0218-Add-setMaxPlayers-API.patch
+++ b/patches/api/0218-Add-setMaxPlayers-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add #setMaxPlayers API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a5bad2633506ded8394f7706c0eced9c395c13e8..d64d32fad3063b3337ddde7d1350101c5a4d8519 100644
+index 51eb99fd09ab546ebdf0c5ab5a76492a31a93139..9a1da52ce6d255715e1f765f491a9e20e47da400 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -171,6 +171,17 @@ public final class Bukkit {
+@@ -172,6 +172,17 @@ public final class Bukkit {
return server.getMaxPlayers();
}
@@ -27,10 +27,10 @@ index a5bad2633506ded8394f7706c0eced9c395c13e8..d64d32fad3063b3337ddde7d1350101c
* Get the game port that the server runs on.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index a0695411d3a55babd3cb5f926c3496985ef6e402..b0b6220d16c7889b4c7d81925db864b740d39a37 100644
+index 849384a6fc7380c5344430beb08210c102c39407..8a10350c4ed5e8f3de5a1cd7fb5064b01d7dd7c2 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -144,6 +144,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -145,6 +145,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
public int getMaxPlayers();
diff --git a/patches/api/0219-Add-moon-phase-API.patch b/patches/api/0219-Add-moon-phase-API.patch
index e4ddb1559..7eddf3f9c 100644
--- a/patches/api/0219-Add-moon-phase-API.patch
+++ b/patches/api/0219-Add-moon-phase-API.patch
@@ -47,7 +47,7 @@ index 0000000000000000000000000000000000000000..df05153397b42930cd53d37b30824c7e
+ }
+}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index c55c07b33e56706c2ffa710e1bb52c387e87ecb1..35d1c5981c679cb3173b72fdfa0cf3af25cd20d6 100644
+index bcac107353149d0129571a3548965a407aa7640c..ef960a72bc10d43690c89ff412dc1b3edb7bdd34 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -68,6 +68,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0232-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0232-Add-getOfflinePlayerIfCached-String.patch
index 196c2d70c..fc556259e 100644
--- a/patches/api/0232-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/api/0232-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index d64d32fad3063b3337ddde7d1350101c5a4d8519..9cd632751c7e15c79b65209d69c76e8ae1916deb 100644
+index 9a1da52ce6d255715e1f765f491a9e20e47da400..4823820a29d250df2cfb068dff0960476e052653 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1041,6 +1041,27 @@ public final class Bukkit {
+@@ -1063,6 +1063,27 @@ public final class Bukkit {
return server.getOfflinePlayer(name);
}
@@ -37,10 +37,10 @@ index d64d32fad3063b3337ddde7d1350101c5a4d8519..9cd632751c7e15c79b65209d69c76e8a
* Gets the player by the given UUID, regardless if they are offline or
* online.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b0b6220d16c7889b4c7d81925db864b740d39a37..3e77a6a294afa41e3dd0e5288b4a761d77ee18ff 100644
+index 8a10350c4ed5e8f3de5a1cd7fb5064b01d7dd7c2..532a27a088a2fc00d4a34724a2f0cfc2a4ab92f2 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -879,6 +879,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -900,6 +900,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
diff --git a/patches/api/0248-Additional-Block-Material-API-s.patch b/patches/api/0248-Additional-Block-Material-API-s.patch
index 6565323d0..41ccd7fbb 100644
--- a/patches/api/0248-Additional-Block-Material-API-s.patch
+++ b/patches/api/0248-Additional-Block-Material-API-s.patch
@@ -9,7 +9,7 @@ process to do this in the Bukkit API
Adds API for buildable, replaceable, burnable too.
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
-index cc570b31e817433d6e90990277cce283ee5d449e..492a59b0cc5ca3ea53688c7a734fb8c1a43c29b7 100644
+index 33fa378176d2a46e60de539246e5e13a34cb4bac..9738a3aac9738a59d152e2ffec7472fda3ccbb0b 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -428,6 +428,42 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran
diff --git a/patches/api/0280-Add-Block-isValidTool.patch b/patches/api/0280-Add-Block-isValidTool.patch
index d3692b560..be5e12319 100644
--- a/patches/api/0280-Add-Block-isValidTool.patch
+++ b/patches/api/0280-Add-Block-isValidTool.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Block#isValidTool
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
-index 492a59b0cc5ca3ea53688c7a734fb8c1a43c29b7..ad8bce01ba459a036cd4ebbbe4fc974021924fe2 100644
+index 9738a3aac9738a59d152e2ffec7472fda3ccbb0b..0006a5a53dfa9fc81c608423e8740a9c820659a3 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -219,6 +219,15 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran
diff --git a/patches/api/0281-Implement-Keyed-on-World.patch b/patches/api/0281-Implement-Keyed-on-World.patch
index c72cf5718..00d93d703 100644
--- a/patches/api/0281-Implement-Keyed-on-World.patch
+++ b/patches/api/0281-Implement-Keyed-on-World.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement Keyed on World
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 9cd632751c7e15c79b65209d69c76e8ae1916deb..fa99f414c2ce515bbdb6d8ca7bb94aa2ad1f640a 100644
+index 4823820a29d250df2cfb068dff0960476e052653..ef0bb0df4457e0bae6370853b9da89eb99f79e7e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -663,6 +663,18 @@ public final class Bukkit {
+@@ -685,6 +685,18 @@ public final class Bukkit {
public static World getWorld(@NotNull UUID uid) {
return server.getWorld(uid);
}
@@ -28,10 +28,10 @@ index 9cd632751c7e15c79b65209d69c76e8ae1916deb..fa99f414c2ce515bbdb6d8ca7bb94aa2
/**
* Gets the map from the given item ID.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3e77a6a294afa41e3dd0e5288b4a761d77ee18ff..14dc56c8e7702e63875f6d2f8aa804a109107456 100644
+index 532a27a088a2fc00d4a34724a2f0cfc2a4ab92f2..e4646459385671e56f259ed0ed760588e204b42b 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -561,6 +561,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -582,6 +582,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public World getWorld(@NotNull UUID uid);
@@ -50,7 +50,7 @@ index 3e77a6a294afa41e3dd0e5288b4a761d77ee18ff..14dc56c8e7702e63875f6d2f8aa804a1
* Gets the map from the given item ID.
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 35d1c5981c679cb3173b72fdfa0cf3af25cd20d6..71adcf2f44cfc75d8c86d41651ac7d3f17313bd5 100644
+index ef960a72bc10d43690c89ff412dc1b3edb7bdd34..750f1ce409ce53d5fc3b2fab835f55f32a8433d8 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -41,7 +41,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/api/0290-More-World-API.patch b/patches/api/0290-More-World-API.patch
index a3ef5f84a..8705695a4 100644
--- a/patches/api/0290-More-World-API.patch
+++ b/patches/api/0290-More-World-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] More World API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index 71adcf2f44cfc75d8c86d41651ac7d3f17313bd5..ae7c7a7c879d56361c7608c00fe20ce9b87e35c1 100644
+index 750f1ce409ce53d5fc3b2fab835f55f32a8433d8..34a9b8248409c0d077049944e40b710d97455723 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
-@@ -3434,6 +3434,114 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+@@ -3498,6 +3498,114 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
@Nullable
public Location locateNearestStructure(@NotNull Location origin, @NotNull StructureType structureType, int radius, boolean findUnexplored);
diff --git a/patches/api/0301-Add-basic-Datapack-API.patch b/patches/api/0301-Add-basic-Datapack-API.patch
index 604250692..96bf13d88 100644
--- a/patches/api/0301-Add-basic-Datapack-API.patch
+++ b/patches/api/0301-Add-basic-Datapack-API.patch
@@ -70,10 +70,10 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7
+
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index fa99f414c2ce515bbdb6d8ca7bb94aa2ad1f640a..76dc042f5fbac39065a97d270666f905ddc59a1c 100644
+index ef0bb0df4457e0bae6370853b9da89eb99f79e7e..5ec72f013c6c94a6590e78e87d2f97e57176c6a1 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2030,6 +2030,14 @@ public final class Bukkit {
+@@ -2071,6 +2071,14 @@ public final class Bukkit {
public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return server.getMobGoals();
}
@@ -89,10 +89,10 @@ index fa99f414c2ce515bbdb6d8ca7bb94aa2ad1f640a..76dc042f5fbac39065a97d270666f905
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 14dc56c8e7702e63875f6d2f8aa804a109107456..83870d54a5ff1017ad7455e9c931fdee54354434 100644
+index e4646459385671e56f259ed0ed760588e204b42b..1db87711dd9b67bcba42e731c8c1a81502abf56c 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1782,5 +1782,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1818,5 +1818,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
diff --git a/patches/api/0313-Add-PlayerKickEvent-causes.patch b/patches/api/0313-Add-PlayerKickEvent-causes.patch
index 6246a0cf1..bb773588d 100644
--- a/patches/api/0313-Add-PlayerKickEvent-causes.patch
+++ b/patches/api/0313-Add-PlayerKickEvent-causes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
-index 782bd1657b487e38ee943857b3d3543ef294c8f3..afa245018192a63e5db8bc568ddea2790bf5b8a2 100644
+index 6503bb08731fb2dcfc4f771e802c41be7f3fd4cb..3e8cd3971ac8256a40d9b85cd7514998c965512c 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -240,6 +240,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
diff --git a/patches/api/0317-Add-more-line-of-sight-methods.patch b/patches/api/0317-Add-more-line-of-sight-methods.patch
index b82141bfd..78592605f 100644
--- a/patches/api/0317-Add-more-line-of-sight-methods.patch
+++ b/patches/api/0317-Add-more-line-of-sight-methods.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add more line of sight methods
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
-index ae7c7a7c879d56361c7608c00fe20ce9b87e35c1..dc497606ebf9903c2d32276ecddda3231457346a 100644
+index 34a9b8248409c0d077049944e40b710d97455723..77577de113b1413ed1474850b4ef8e7fd0c07dd6 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -74,6 +74,14 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
diff --git a/patches/api/0320-Add-Git-information-to-version-command-on-startup.patch b/patches/api/0320-Add-Git-information-to-version-command-on-startup.patch
index 306558165..170e756a4 100644
--- a/patches/api/0320-Add-Git-information-to-version-command-on-startup.patch
+++ b/patches/api/0320-Add-Git-information-to-version-command-on-startup.patch
@@ -104,10 +104,10 @@ index 0000000000000000000000000000000000000000..02ad04c41b9c3ec68b1dcdc22c538340
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 76dc042f5fbac39065a97d270666f905ddc59a1c..d36e4bc3c3713407704b865574cba28662f17315 100644
+index 5ec72f013c6c94a6590e78e87d2f97e57176c6a1..a4fd6f6e51c478efa9b125d3878c246b5f762999 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -50,6 +50,7 @@ import org.bukkit.util.CachedServerIcon;
+@@ -51,6 +51,7 @@ import org.bukkit.util.CachedServerIcon;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -115,7 +115,7 @@ index 76dc042f5fbac39065a97d270666f905ddc59a1c..d36e4bc3c3713407704b865574cba286
/**
* Represents the Bukkit core, for version and Server singleton handling
-@@ -85,7 +86,25 @@ public final class Bukkit {
+@@ -86,7 +87,25 @@ public final class Bukkit {
}
Bukkit.server = server;
diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch
index 10d763001..f848a868f 100644
--- a/patches/server/0002-Remap-fixes.patch
+++ b/patches/server/0002-Remap-fixes.patch
@@ -74,7 +74,7 @@ index 88a8c2bc4aa30f478122a05fd119486a0107db82..ef17f21574ce37b9ce6f72b9585034db
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 6552c7c30d02a99420b5c8c14595c62f2f896ed2..5df9ad398ba173bb0ff4770673f8eb5967325c5a 100644
+index 296d4ab3dace530cab03c787051c9f2c2626228f..7cbb16646c6c83d443deedaf425d18d6de76e314 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -522,7 +522,7 @@ public class Phantom extends FlyingMob implements Enemy {
diff --git a/patches/server/0004-Paper-config-files.patch b/patches/server/0004-Paper-config-files.patch
index 554392dbe..41b820b8e 100644
--- a/patches/server/0004-Paper-config-files.patch
+++ b/patches/server/0004-Paper-config-files.patch
@@ -665,10 +665,10 @@ index 067216078c7b50390957d1fcfbfbaaeb81cfba21..7f3d83d3d071f6b441ad119b1c93be03
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index ae26cf65169fd25520263a3edb93424383fa7bb0..5de52a4c33fd136b43b150b7ed0df7703f4b2817 100644
+index 5e0f455d2efe5f5be6ef3f82b06f024c54b22829..8516eef6ba56bd81710a8ad706f0fac8e49d7a3d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -147,6 +147,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -148,6 +148,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public boolean populating;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@@ -677,7 +677,7 @@ index ae26cf65169fd25520263a3edb93424383fa7bb0..5de52a4c33fd136b43b150b7ed0df770
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
-@@ -167,6 +169,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -168,6 +170,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
@@ -686,10 +686,10 @@ index ae26cf65169fd25520263a3edb93424383fa7bb0..5de52a4c33fd136b43b150b7ed0df770
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 14989d371a04e4b86e1ad3c2f7905c602cf73834..2a4c75cd96626c8a6df844b72056644520008729 100644
+index e49e3643fa01cafdc96260aa01c710c37c6f1ffe..dc52fa7a78e79e0fbe087f89d7250225bb30228f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -823,6 +823,7 @@ public final class CraftServer implements Server {
+@@ -835,6 +835,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
@@ -697,7 +697,7 @@ index 14989d371a04e4b86e1ad3c2f7905c602cf73834..2a4c75cd96626c8a6df844b720566445
for (ServerLevel world : this.console.getAllLevels()) {
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
-@@ -856,12 +857,14 @@ public final class CraftServer implements Server {
+@@ -874,12 +875,14 @@ public final class CraftServer implements Server {
world.ticksPerAmbientSpawns = this.getTicksPerAmbientSpawns();
}
world.spigotConfig.init(); // Spigot
@@ -712,7 +712,7 @@ index 14989d371a04e4b86e1ad3c2f7905c602cf73834..2a4c75cd96626c8a6df844b720566445
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
-@@ -2256,4 +2259,35 @@ public final class CraftServer implements Server {
+@@ -2284,4 +2287,35 @@ public final class CraftServer implements Server {
return this.spigot;
}
// Spigot end
diff --git a/patches/server/0006-MC-Utils.patch b/patches/server/0006-MC-Utils.patch
index 00af3ce35..016eaa6bc 100644
--- a/patches/server/0006-MC-Utils.patch
+++ b/patches/server/0006-MC-Utils.patch
@@ -5208,7 +5208,7 @@ index 6fa6fb852cd5af2009008ac6158251ba5e8cf6fb..bbf2dee8cdd2d8239d9230b1a7fff4f0
if (!playerchunk_state1.isOrAfter(playerchunk_state)) {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index e9d2034f0753670c2ce69cc93c7e98e89af65c87..f6ed7482fd9c3d536fc8956a80a6ad6f315431e2 100644
+index 6df8c7ffd48b18dc0cb0dd9ec826228282e50180..ed21bd46262ac33801c17e6135dd22f99dd78504 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -55,6 +55,7 @@ import net.minecraft.network.protocol.game.ClientboundSetChunkCacheCenterPacket;
@@ -5992,7 +5992,7 @@ index c57bde6b2042c0a68cb02f43c28cae0070f38111..a5f704edf4d8afdb088f3a4ac8e3957f
public Entity(EntityType> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 442cded9bbf61f9388d41e0257728460628ebbc9..7ac8bac2f538616de0c4ef59c9ac2ec86aa62b43 100644
+index 41e5b1a888f2fa5c7fd26095d070898c9e4489eb..fd8c35e896cc03a21c41e846dc5413ce00da47b0 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity {
@@ -6029,7 +6029,7 @@ index d090ffcf08e32a08d4b815b79ed58fc00bc26fd0..920ae9af8985705a0ada7da5b7085a1e
super(type, world);
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java
-index d31c62b612a5a8016ffbfbb9dc85d9a941c08cf4..fc34cfa8bfb3b82a8e1b28d261f0e901d837467e 100644
+index 847a11383322ea67bf80dbcabe7272459392f27c..229490d3857ce9f5bba4e6bb4aedcff50b510ed9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Monster.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java
@@ -25,6 +25,7 @@ import net.minecraft.world.level.LightLayer;
@@ -6179,7 +6179,7 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..c7d499bfc22152e0a49f50a2a8133f31
public BlockState getBlockState(BlockPos pos) {
return Blocks.AIR.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 5de52a4c33fd136b43b150b7ed0df7703f4b2817..03b87448628f41699336245cbf0f882d3fe20f7e 100644
+index 8516eef6ba56bd81710a8ad706f0fac8e49d7a3d..8ff3b141b816599759570ae0c7bee35cca7bef11 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -84,6 +84,7 @@ import org.bukkit.craftbukkit.CraftServer;
@@ -6190,7 +6190,7 @@ index 5de52a4c33fd136b43b150b7ed0df7703f4b2817..03b87448628f41699336245cbf0f882d
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.event.block.BlockPhysicsEvent;
-@@ -229,9 +230,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -231,9 +232,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
Level.this.getCraftServer().getHandle().sendAll(new ClientboundSetBorderWarningDistancePacket(border), border.world);
}
@@ -6204,7 +6204,7 @@ index 5de52a4c33fd136b43b150b7ed0df7703f4b2817..03b87448628f41699336245cbf0f882d
});
// CraftBukkit end
this.timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
-@@ -266,18 +269,50 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -268,18 +271,50 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return y < -20000000 || y >= 20000000;
}
@@ -6259,7 +6259,7 @@ index 5de52a4c33fd136b43b150b7ed0df7703f4b2817..03b87448628f41699336245cbf0f882d
ChunkAccess ichunkaccess = this.getChunkSource().getChunk(chunkX, chunkZ, leastStatus, create);
if (ichunkaccess == null && create) {
-@@ -288,7 +323,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -290,7 +325,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
@Override
@@ -6268,7 +6268,7 @@ index 5de52a4c33fd136b43b150b7ed0df7703f4b2817..03b87448628f41699336245cbf0f882d
return this.setBlock(pos, state, flags, 512);
}
-@@ -593,7 +628,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -595,7 +630,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
if (this.isOutsideBuildHeight(pos)) {
return Blocks.VOID_AIR.defaultBlockState();
} else {
diff --git a/patches/server/0010-Timings-v2.patch b/patches/server/0010-Timings-v2.patch
index a01f85c15..c14792850 100644
--- a/patches/server/0010-Timings-v2.patch
+++ b/patches/server/0010-Timings-v2.patch
@@ -1049,7 +1049,7 @@ index fac993d58bd6e3bb19fd69881092a863c8952c65..2b062beaad39f2e86801fdd5b0cc84b2
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index f6ed7482fd9c3d536fc8956a80a6ad6f315431e2..ce767bab0c85cbfb8476a899f05305d915815288 100644
+index ed21bd46262ac33801c17e6135dd22f99dd78504..d3213114aaaaef575efb79f0c66d5c23baf8614d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,7 +1,9 @@
@@ -1537,7 +1537,7 @@ index 7f3d83d3d071f6b441ad119b1c93be035e911e70..28f1a53a2b9ebe9948509dabbf1a4ae8
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 7ac8bac2f538616de0c4ef59c9ac2ec86aa62b43..9255134d9cdbeeb9529b4f962ea32c230c6c4403 100644
+index fd8c35e896cc03a21c41e846dc5413ce00da47b0..c57aa9226cee48d5ca0928c159a55e1c1fd42c3f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -140,7 +140,7 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -1615,7 +1615,7 @@ index 7ac8bac2f538616de0c4ef59c9ac2ec86aa62b43..9255134d9cdbeeb9529b4f962ea32c23
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
this.hurt(DamageSource.DROWN, 1.0F);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 03b87448628f41699336245cbf0f882d3fe20f7e..64bf654a622e2b5e79c45d288c812e32518769c6 100644
+index 8ff3b141b816599759570ae0c7bee35cca7bef11..71cbc053a23e5404a2472f5e1e56484939c8413a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -82,7 +82,6 @@ import org.bukkit.Bukkit;
@@ -1626,7 +1626,7 @@ index 03b87448628f41699336245cbf0f882d3fe20f7e..64bf654a622e2b5e79c45d288c812e32
import org.bukkit.craftbukkit.block.CapturedBlockState;
import org.bukkit.craftbukkit.block.CraftBlockState;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
-@@ -150,7 +149,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -151,7 +150,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
@@ -1635,7 +1635,7 @@ index 03b87448628f41699336245cbf0f882d3fe20f7e..64bf654a622e2b5e79c45d288c812e32
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
-@@ -237,7 +236,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -239,7 +238,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
});
// CraftBukkit end
@@ -1644,7 +1644,7 @@ index 03b87448628f41699336245cbf0f882d3fe20f7e..64bf654a622e2b5e79c45d288c812e32
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
-@@ -725,15 +724,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -727,15 +726,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
timings.tileEntityTick.stopTiming(); // Spigot
this.tickingBlockEntities = false;
@@ -1662,7 +1662,7 @@ index 03b87448628f41699336245cbf0f882d3fe20f7e..64bf654a622e2b5e79c45d288c812e32
CrashReport crashreport = CrashReport.forThrowable(throwable, "Ticking entity");
CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Entity being ticked");
diff --git a/src/main/java/net/minecraft/world/level/ServerTickList.java b/src/main/java/net/minecraft/world/level/ServerTickList.java
-index 0be0c9a9f29f29e2622df49861d30a7edbaf0515..bcce5f1f8940e6fb8f398afd540bcbe2286ed0c2 100644
+index 6085d76a1774bca258de68cdace02598afd1f154..dfd41db804acde50339de9b18566b845401d7cbe 100644
--- a/src/main/java/net/minecraft/world/level/ServerTickList.java
+++ b/src/main/java/net/minecraft/world/level/ServerTickList.java
@@ -37,7 +37,14 @@ public class ServerTickList implements TickList {
@@ -1795,10 +1795,10 @@ index b645a2fc839dbf922ce73b23b7d53e9a5fe1a2ee..03190535999d30aea0428631ae576b18
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2a4c75cd96626c8a6df844b72056644520008729..323b44d2c8f2e993c96e61d3ecec1ca6754b137e 100644
+index dc52fa7a78e79e0fbe087f89d7250225bb30228f..b6985eec04fb790bd4dd65f836b6e75728810b29 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2228,12 +2228,31 @@ public final class CraftServer implements Server {
+@@ -2256,12 +2256,31 @@ public final class CraftServer implements Server {
private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot()
{
diff --git a/patches/server/0011-Adventure.patch b/patches/server/0011-Adventure.patch
index 77f6cba30..7e70cfe93 100644
--- a/patches/server/0011-Adventure.patch
+++ b/patches/server/0011-Adventure.patch
@@ -1713,10 +1713,10 @@ index 7a0e7961df1e62b311ea2ecc76d7343a8646723b..6859fafa42527d45366018f737c19e6c
}
collection = icons;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78b4beacd3 100644
+index b6985eec04fb790bd4dd65f836b6e75728810b29..c92dd103f4a7f5d122ef5e49ac5582ec8fb156eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -582,8 +582,10 @@ public final class CraftServer implements Server {
+@@ -588,8 +588,10 @@ public final class CraftServer implements Server {
}
@Override
@@ -1727,7 +1727,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
}
@Override
-@@ -1405,7 +1407,15 @@ public final class CraftServer implements Server {
+@@ -1423,7 +1425,15 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.spawn-radius", -1);
}
@@ -1743,7 +1743,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
public String getShutdownMessage() {
return this.configuration.getString("settings.shutdown-message");
}
-@@ -1558,7 +1568,20 @@ public final class CraftServer implements Server {
+@@ -1576,7 +1586,20 @@ public final class CraftServer implements Server {
}
@Override
@@ -1764,7 +1764,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
Set recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
-@@ -1566,14 +1589,14 @@ public final class CraftServer implements Server {
+@@ -1584,14 +1607,14 @@ public final class CraftServer implements Server {
}
}
@@ -1781,7 +1781,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
for (CommandSender recipient : recipients) {
recipient.sendMessage(message);
-@@ -1809,6 +1832,14 @@ public final class CraftServer implements Server {
+@@ -1827,6 +1850,14 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
}
@@ -1796,7 +1796,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
@Override
public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type);
-@@ -1821,13 +1852,28 @@ public final class CraftServer implements Server {
+@@ -1839,13 +1870,28 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
}
@@ -1825,7 +1825,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
public Merchant createMerchant(String title) {
return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
}
-@@ -1871,6 +1917,12 @@ public final class CraftServer implements Server {
+@@ -1894,6 +1940,12 @@ public final class CraftServer implements Server {
return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
}
@@ -1838,7 +1838,7 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
@Override
public String getMotd() {
return this.console.getMotd();
-@@ -2308,5 +2360,15 @@ public final class CraftServer implements Server {
+@@ -2336,5 +2388,15 @@ public final class CraftServer implements Server {
return null;
}
}
@@ -1855,18 +1855,18 @@ index 323b44d2c8f2e993c96e61d3ecec1ca6754b137e..5bc1aa82b825bb41c2dd55836a0cfd78
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 62252343490fb1e96c2ec48113e2e3ce741930b6..8c47fbd10b634daf24eb14949b124ee87d87ff73 100644
+index e0c16ef149a7cdcb703b6f9f061cf47ce38aeefa..0b846204ba0e08ead4ca044505efe91f23c116e4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -130,6 +130,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
- private int waterAnimalSpawn = -1;
+@@ -131,6 +131,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private int waterAmbientSpawn = -1;
+ private int waterUndergroundCreatureSpawn = -1;
private int ambientSpawn = -1;
+ private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
private static final Random rand = new Random();
-@@ -1751,4 +1752,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1776,4 +1777,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.spigot;
}
// Spigot end
diff --git a/patches/server/0013-Configurable-baby-zombie-movement-speed.patch b/patches/server/0013-Configurable-baby-zombie-movement-speed.patch
index 5d03ba69f..30f60666d 100644
--- a/patches/server/0013-Configurable-baby-zombie-movement-speed.patch
+++ b/patches/server/0013-Configurable-baby-zombie-movement-speed.patch
@@ -25,7 +25,7 @@ index a0db9b7ec0a6eb80e44e62eb460d9a8d25d2a8cc..d473f8bb1a6000320b3e774561220f10
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
-index 2846a0e71e3e349319fa6483d547eb676ff5d058..30d89a97a396d0037279489b756c4e1a254b8ef9 100644
+index d42ce43f3ca2e720cb46fffb52e08945727883be..f17a91a654d11aaace39f04b3f4c3e061a374dc9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -79,7 +79,7 @@ import org.bukkit.event.entity.EntityTransformEvent;
diff --git a/patches/server/0017-Allow-for-toggling-of-spawn-chunks.patch b/patches/server/0017-Allow-for-toggling-of-spawn-chunks.patch
index e9e3ca1f5..20314ce8d 100644
--- a/patches/server/0017-Allow-for-toggling-of-spawn-chunks.patch
+++ b/patches/server/0017-Allow-for-toggling-of-spawn-chunks.patch
@@ -20,10 +20,10 @@ index 4634da27cde654e682ac4525df9850ea40afbb87..9eb44bd14a5fd351d1514f4de8bc7ba3
+ }
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 64bf654a622e2b5e79c45d288c812e32518769c6..339601220b91b9b9881ed031c8709d6bc4e32729 100644
+index 71cbc053a23e5404a2472f5e1e56484939c8413a..e8469eaad83932024a6f817674e0a50ae7df75aa 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -237,6 +237,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -239,6 +239,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
});
// CraftBukkit end
timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
diff --git a/patches/server/0019-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0019-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index f34c83793..20fa742fc 100644
--- a/patches/server/0019-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0019-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -32,10 +32,10 @@ index 5de0b15ee206ad01b1b4522b2d375fae08d2486f..daad04711adcaac9dc3868f20f7dc3c4
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 5bc1aa82b825bb41c2dd55836a0cfd78b4beacd3..6d46d4e7061b79cd566d0b3bcac5a59d6ed9584b 100644
+index c92dd103f4a7f5d122ef5e49ac5582ec8fb156eb..55bc67744d41c3416dc7be1ae1acc37e8f798e56 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -245,7 +245,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -247,7 +247,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
public final class CraftServer implements Server {
diff --git a/patches/server/0022-Player-affects-spawning-API.patch b/patches/server/0022-Player-affects-spawning-API.patch
index 6b5dd2634..b69c327a6 100644
--- a/patches/server/0022-Player-affects-spawning-API.patch
+++ b/patches/server/0022-Player-affects-spawning-API.patch
@@ -34,7 +34,7 @@ index c9a9a4c6ba930dedb227c1f1d4ca4bb520983854..5dbc90cf67ee88d2f7043c38eaad4fc5
if (entityhuman != null) {
double d0 = entityhuman.distanceToSqr((Entity) this); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
-index 7d741c2aebbc1c6cf1ff59cca6480325db6ca29c..2459ae800a5f6b234a4f4bb1cd3738e4e9cac67d 100644
+index 5b028cd78fd8584568836cbd7b3ca4b62dce5af8..aec7dd2df77efeaf65d9fe08adc668030dfe08e2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -123,7 +123,7 @@ public class Silverfish extends Monster {
@@ -47,7 +47,7 @@ index 7d741c2aebbc1c6cf1ff59cca6480325db6ca29c..2459ae800a5f6b234a4f4bb1cd3738e4
return false;
}
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 05c292d08ac98fad408b279d2426ff08472a959c..484b1bf43b897c5ffe47baa340957e3293c7bf92 100644
+index 4ba15f9cea1277939807d34b3a947f2b26d25d98..1bdaa8d1a65b11175801f47ddfe15bffee6143bf 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -176,6 +176,9 @@ public abstract class Player extends LivingEntity {
@@ -117,7 +117,7 @@ index 389985e022b82c675fb21f363422471bd15b84b0..849616d9ad140285f7aa4d2ffafd6371
for(Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2f604c883ee1341ad3896b74de01f4dc9537ecfa..a5acdd11ae36f8268623149cbb047dddaf65acec 100644
+index 222b75f733c1ef8b7698264650fe03b4e2b7040a..e24437fbbe76db4ed5892df45b0c211254cbb69d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1784,8 +1784,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0024-Further-improve-server-tick-loop.patch b/patches/server/0024-Further-improve-server-tick-loop.patch
index 1ee2bc9af..4afb27d83 100644
--- a/patches/server/0024-Further-improve-server-tick-loop.patch
+++ b/patches/server/0024-Further-improve-server-tick-loop.patch
@@ -144,10 +144,10 @@ index daad04711adcaac9dc3868f20f7dc3c4a09fbac8..b02306027b5aab96fd5036ec41296c8d
this.startMetricsRecordingTick();
this.profiler.push("tick");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6d46d4e7061b79cd566d0b3bcac5a59d6ed9584b..adcb4244c70ec9acfa0815ec88a148ade095b378 100644
+index 55bc67744d41c3416dc7be1ae1acc37e8f798e56..47b212ca59b1c30b7224cac6a96f527fdfe659f8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2276,6 +2276,17 @@ public final class CraftServer implements Server {
+@@ -2304,6 +2304,17 @@ public final class CraftServer implements Server {
return CraftMagicNumbers.INSTANCE;
}
diff --git a/patches/server/0025-Only-refresh-abilities-if-needed.patch b/patches/server/0025-Only-refresh-abilities-if-needed.patch
index 9e62d9f68..395da4fae 100644
--- a/patches/server/0025-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0025-Only-refresh-abilities-if-needed.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a5acdd11ae36f8268623149cbb047dddaf65acec..014baa5684b05d6fc536ce96c2da604a0f1e3b4b 100644
+index e24437fbbe76db4ed5892df45b0c211254cbb69d..cb91db9a25b96b0ad2b9c6a61ba26cd6d638b8a0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1453,12 +1453,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0026-Entity-Origin-API.patch b/patches/server/0026-Entity-Origin-API.patch
index 8d22c020a..e66b279ea 100644
--- a/patches/server/0026-Entity-Origin-API.patch
+++ b/patches/server/0026-Entity-Origin-API.patch
@@ -132,7 +132,7 @@ index 394164f50256ad9a167e15531a9202875abb6cb6..8ad1b3cb16533d62deda643ce0cdda30
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 6afc76de073301603f0aa84182fe507d34e93283..6749de33dba17c4ded7a4457bc2509495c328495 100644
+index a527e4e04babfaf6f324e4aa3b93a86009664166..5d5c6d1cfaa25f3a05976ee496d14fb32b052785 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1146,4 +1146,21 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0027-Prevent-tile-entity-and-entity-crashes.patch b/patches/server/0027-Prevent-tile-entity-and-entity-crashes.patch
index 401449545..f6652583d 100644
--- a/patches/server/0027-Prevent-tile-entity-and-entity-crashes.patch
+++ b/patches/server/0027-Prevent-tile-entity-and-entity-crashes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity and entity crashes
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 339601220b91b9b9881ed031c8709d6bc4e32729..bbf3135e71a798536641c279eb6b84132e338629 100644
+index e8469eaad83932024a6f817674e0a50ae7df75aa..9745f583f8ba4a654e8ad81e54ad3d95d9849dd7 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -734,11 +734,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -736,11 +736,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
try {
tickConsumer.accept(entity);
} catch (Throwable throwable) {
diff --git a/patches/server/0033-Optimize-explosions.patch b/patches/server/0033-Optimize-explosions.patch
index 05fe68629..1ff36774a 100644
--- a/patches/server/0033-Optimize-explosions.patch
+++ b/patches/server/0033-Optimize-explosions.patch
@@ -25,7 +25,7 @@ index 7dee0219c69c5cf3025f63a9397f15f390ebe1ba..83f869eca8bd1aa65add0a9f286aa094
+ }
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index d9a305f39a4004f28ad5f8c35db1016c1bedea16..770134bd7a74616bf8d22439ff1ad1379fa27f0a 100644
+index b02306027b5aab96fd5036ec41296c8d3d9d99fd..0d58b58537de49ddb7c8c841e9077af4e727ba82 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1422,6 +1422,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop playerView;
public int reloadCount;
@@ -17,7 +17,7 @@ index dd69c7962a90c4ff4b251599f95fa01525855abc..db13ac548b7c250f84df9d5dbfb85021
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 6749de33dba17c4ded7a4457bc2509495c328495..8a50cce54f3271f20f8d01007fdd3a773fb699b1 100644
+index 5d5c6d1cfaa25f3a05976ee496d14fb32b052785..2c638d95b396044841ab0dea8d8ce829077992fe 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -436,10 +436,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0053-Configurable-inter-world-teleportation-safety.patch b/patches/server/0053-Configurable-inter-world-teleportation-safety.patch
index fde469b45..e21dab2e6 100644
--- a/patches/server/0053-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0053-Configurable-inter-world-teleportation-safety.patch
@@ -30,7 +30,7 @@ index d80de8777ae4d21256578c039e3fbe65ca9ade7c..1fc5b40f59a7edb25b0bd95f205a8fdf
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index fdaa6448cf60c9fff6cf058eb6b0bb6e4ed18385..50cce9e9a67dc2e6722f87b06907b37402158700 100644
+index ca8987d38f1fcbc094f0f5f13f12dfbf7dd2718a..903bf3ad7d355013791ba72a6e34acd63bb5489c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -891,7 +891,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0054-Add-exception-reporting-event.patch b/patches/server/0054-Add-exception-reporting-event.patch
index cd8af3979..3af36c42b 100644
--- a/patches/server/0054-Add-exception-reporting-event.patch
+++ b/patches/server/0054-Add-exception-reporting-event.patch
@@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index e0794c0eac5c2d323b10e1f69d9c1875731da125..a1d0bcf16026ca1cf8a0110e6f59498cbebb2969 100644
+index d3213114aaaaef575efb79f0c66d5c23baf8614d..fb3b0693abb6f2f044d39508b727fb3a2ad16823 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -875,6 +875,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -108,7 +108,7 @@ index 08c5f6fd1a307c89cf8365f56314a0c6d3e89e4b..26e0f03f2e736ed6ba86e2510a7962de
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index d7c745b11a484665ebd5f4d2df94689896024b06..a5cf87f9ef0756e9940cdaef7811aa106194aaa5 100644
+index 5f047982b559087ae6eaffbc89ea83d289609de5..dccf23a64bad4fbfcef56eace434884e35919add 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1,5 +1,10 @@
@@ -122,7 +122,7 @@ index d7c745b11a484665ebd5f4d2df94689896024b06..a5cf87f9ef0756e9940cdaef7811aa10
import com.google.common.collect.Lists;
import com.mojang.serialization.Codec;
import java.io.IOException;
-@@ -736,6 +741,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -738,6 +743,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper start - Prevent tile entity and entity crashes
final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level.getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
MinecraftServer.LOGGER.error(msg, throwable);
@@ -131,10 +131,10 @@ index d7c745b11a484665ebd5f4d2df94689896024b06..a5cf87f9ef0756e9940cdaef7811aa10
// Paper end
}
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 808fd30d4b86ca9029c182ffdceaf27f3c204377..4ea02bfe348cec26bbb2c15ddacbbc110033b2d3 100644
+index ac815b900f58f67a2c656fc1dbf8f53ffc15b96e..0432ad7ab00c336e7c566f24c3ec92b399cb6e9d 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-@@ -308,6 +308,7 @@ public final class NaturalSpawner {
+@@ -313,6 +313,7 @@ public final class NaturalSpawner {
}
} catch (Exception exception) {
NaturalSpawner.LOGGER.warn("Failed to create mob", exception);
@@ -142,7 +142,7 @@ index 808fd30d4b86ca9029c182ffdceaf27f3c204377..4ea02bfe348cec26bbb2c15ddacbbc11
return null;
}
}
-@@ -410,6 +411,7 @@ public final class NaturalSpawner {
+@@ -415,6 +416,7 @@ public final class NaturalSpawner {
entity = biomesettingsmobs_c.type.create((Level) world.getLevel());
} catch (Exception exception) {
NaturalSpawner.LOGGER.warn("Failed to create mob", exception);
diff --git a/patches/server/0056-Disable-Scoreboards-for-non-players-by-default.patch b/patches/server/0056-Disable-Scoreboards-for-non-players-by-default.patch
index 350effe3d..864801e8f 100644
--- a/patches/server/0056-Disable-Scoreboards-for-non-players-by-default.patch
+++ b/patches/server/0056-Disable-Scoreboards-for-non-players-by-default.patch
@@ -37,7 +37,7 @@ index e26973d77ba380c91b2f0561f2c6c5886d7b82b8..9fbe3ed59416d773dc5c19d5ea73f95d
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 0f1a9e7561f6df4844545ff4565e996bb21eb9dc..200aca8237dd7fbb0e4959831bda877c58ec37fb 100644
+index 2e8ad50e7bf351ca6df1239303625a899a3a7f63..5335312b9a8c8166590df69a78311652b4b36d7e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -803,6 +803,7 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0058-Complete-resource-pack-API.patch b/patches/server/0058-Complete-resource-pack-API.patch
index d92af8df2..1be81e544 100644
--- a/patches/server/0058-Complete-resource-pack-API.patch
+++ b/patches/server/0058-Complete-resource-pack-API.patch
@@ -23,7 +23,7 @@ index 22c2c121bbcc7b0e15d73d20c9cc83d5fb085e5f..edb66e8c4507597ec8c35883460f88de
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 50cce9e9a67dc2e6722f87b06907b37402158700..d526d80631088ad80b1fb7e5e3e42e9d8d8d8bcf 100644
+index 903bf3ad7d355013791ba72a6e34acd63bb5489c..8c5b710ea9efa78282c45c7d3469a75146f2e36d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -126,6 +126,7 @@ import org.bukkit.metadata.MetadataValue;
diff --git a/patches/server/0059-Chunk-Save-Reattempt.patch b/patches/server/0059-Chunk-Save-Reattempt.patch
index 2c1044ed3..60ea3d5f3 100644
--- a/patches/server/0059-Chunk-Save-Reattempt.patch
+++ b/patches/server/0059-Chunk-Save-Reattempt.patch
@@ -19,7 +19,7 @@ index f514c29e64a9c7a66ff4edd5ba8c2a3dfbba2ad9..84327c8fe1dc62c7b99950261a344042
}
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
-index ef1d64ebdc3150596cbc5efc36d6acc52dddafee..e506fa1153cabfb93c7bece73e6fe0fafbb958c9 100644
+index 344d281f0abc93488e41565efac130108745f861..a0516f72671522a6d7d9ea649506760f120b88bd 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -11,6 +11,7 @@ import java.io.IOException;
diff --git a/patches/server/0060-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0060-Default-loading-permissions.yml-before-plugins.patch
index 30fe227f4..476e32e23 100644
--- a/patches/server/0060-Default-loading-permissions.yml-before-plugins.patch
+++ b/patches/server/0060-Default-loading-permissions.yml-before-plugins.patch
@@ -30,10 +30,10 @@ index f5155d4b48f17c82b7a637418c40ffcdc6cc6271..acdbd21947093ed076c4668d3480a50f
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 65bc692d45e2436f68f569ceecb49d824f4a1af1..62d1a2d2f9bed3f08484b3bf41d8300490dc0d2d 100644
+index cde74a4785e4197f4b39ee28663801726a9e4dca..a929d46ad3a079d68c46246d9321de08f0d6dcaa 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -418,6 +418,7 @@ public final class CraftServer implements Server {
+@@ -424,6 +424,7 @@ public final class CraftServer implements Server {
if (type == PluginLoadOrder.STARTUP) {
this.helpMap.clear();
this.helpMap.initializeGeneralTopics();
@@ -41,7 +41,7 @@ index 65bc692d45e2436f68f569ceecb49d824f4a1af1..62d1a2d2f9bed3f08484b3bf41d83004
}
Plugin[] plugins = this.pluginManager.getPlugins();
-@@ -437,7 +438,7 @@ public final class CraftServer implements Server {
+@@ -443,7 +444,7 @@ public final class CraftServer implements Server {
this.commandMap.registerServerAliases();
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
diff --git a/patches/server/0061-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0061-Allow-Reloading-of-Custom-Permissions.patch
index 85737783b..4b3c5f66c 100644
--- a/patches/server/0061-Allow-Reloading-of-Custom-Permissions.patch
+++ b/patches/server/0061-Allow-Reloading-of-Custom-Permissions.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 62d1a2d2f9bed3f08484b3bf41d8300490dc0d2d..341006df6e2c22c00a2b3ec67fc6038dadef836f 100644
+index a929d46ad3a079d68c46246d9321de08f0d6dcaa..36de0faea986ecbbdc5cab7351d3b51049f9b633 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2406,5 +2406,23 @@ public final class CraftServer implements Server {
+@@ -2434,5 +2434,23 @@ public final class CraftServer implements Server {
}
return this.adventure$audiences;
}
diff --git a/patches/server/0062-Remove-Metadata-on-reload.patch b/patches/server/0062-Remove-Metadata-on-reload.patch
index 93828bf91..f3ec63468 100644
--- a/patches/server/0062-Remove-Metadata-on-reload.patch
+++ b/patches/server/0062-Remove-Metadata-on-reload.patch
@@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
This will remove metadata on reload so it does not crash everything if a plugin uses it.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 341006df6e2c22c00a2b3ec67fc6038dadef836f..91ee302c5b3299fe7c1aa90b10f8ea06c5d23589 100644
+index 36de0faea986ecbbdc5cab7351d3b51049f9b633..9db5f614512d05eb99b4811c71fbc914e50c712e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -886,8 +886,16 @@ public final class CraftServer implements Server {
+@@ -904,8 +904,16 @@ public final class CraftServer implements Server {
world.paperConfig.init(); // Paper
}
diff --git a/patches/server/0065-Add-World-Util-Methods.patch b/patches/server/0065-Add-World-Util-Methods.patch
index 441f85e55..546038f58 100644
--- a/patches/server/0065-Add-World-Util-Methods.patch
+++ b/patches/server/0065-Add-World-Util-Methods.patch
@@ -19,10 +19,10 @@ index c9ee1a12b6fe92db6896cd4abd7e7833b094c9da..41dab560595a6d052c82b4474d824a58
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index a5cf87f9ef0756e9940cdaef7811aa106194aaa5..ef6289d67f54d81497edc0d7e4f3789d5bcb28f9 100644
+index dccf23a64bad4fbfcef56eace434884e35919add..123a34b97fe76bd694214ded6174ecb26b970438 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -310,11 +310,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -312,11 +312,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
@Override
diff --git a/patches/server/0066-Custom-replacement-for-eaten-items.patch b/patches/server/0066-Custom-replacement-for-eaten-items.patch
index d6c052644..0f4d9466b 100644
--- a/patches/server/0066-Custom-replacement-for-eaten-items.patch
+++ b/patches/server/0066-Custom-replacement-for-eaten-items.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Custom replacement for eaten items
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 1ebfd0c77a5337a5ff8665f24655b8f2bc16a229..41fce2aeb130c970702a95f0fb37dcd07e566fa9 100644
+index 5335312b9a8c8166590df69a78311652b4b36d7e..4b41ad3d9feeaf7f75c8459fb8acdab9ac1fce61 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3564,9 +3564,10 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index 0adcb5211..94643ca64 100644
--- a/patches/server/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0067-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 41fce2aeb130c970702a95f0fb37dcd07e566fa9..41b5b04d8609ff7172579313be4ae9933778f81e 100644
+index 4b41ad3d9feeaf7f75c8459fb8acdab9ac1fce61..407292123b29fbc558b6b826878bf739fba05436 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -764,7 +764,13 @@ public abstract class LivingEntity extends Entity {
@@ -44,7 +44,7 @@ index 41fce2aeb130c970702a95f0fb37dcd07e566fa9..41b5b04d8609ff7172579313be4ae993
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 90317fef5ebfb44e0f200a75569edfec7a5d9b1a..fd84e753131806696ad664e61951112545e51270 100644
+index 8c5b710ea9efa78282c45c7d3469a75146f2e36d..4ff2a7ddb99a12a5427526f23882307d5fa337b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1709,6 +1709,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0068-Use-a-Shared-Random-for-Entities.patch b/patches/server/0068-Use-a-Shared-Random-for-Entities.patch
index 59c7e0af1..771b86a79 100644
--- a/patches/server/0068-Use-a-Shared-Random-for-Entities.patch
+++ b/patches/server/0068-Use-a-Shared-Random-for-Entities.patch
@@ -41,7 +41,7 @@ index 9fbe3ed59416d773dc5c19d5ea73f95ddd9b5143..287ee89418e28366866e70bd104cd11b
this.fluidHeight = new Object2DoubleArrayMap(2);
this.firstTick = true;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
-index a24c05706ac8f088f1342ca947c5f1ff0fe80366..3093fc37c47bec1a6e884553809277fff1053d8e 100644
+index 552f758b046e750e1020f309a21d0e475befee10..3ffc1ee8a9ae63c8678c12736fab5d6ba0a21a5b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -50,7 +50,7 @@ public class Squid extends WaterAnimal {
diff --git a/patches/server/0070-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/patches/server/0070-Optimize-isValidLocation-getType-and-getBlockData-fo.patch
index c886f6ada..ec49f1657 100644
--- a/patches/server/0070-Optimize-isValidLocation-getType-and-getBlockData-fo.patch
+++ b/patches/server/0070-Optimize-isValidLocation-getType-and-getBlockData-fo.patch
@@ -13,7 +13,7 @@ Replace all calls to the new place to the unnecessary forward.
Optimize getType and getBlockData to manually inline and optimize the calls
diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java
-index 964bec1d3fecfe43a43bd9968159fca069f00dfd..e188f130e47ef319477050981de53a7410452592 100644
+index f484cf19e1ed6f4e14a6c324c59511e822335ba7..f924f2b20800dfde93eeafea3614203661d35389 100644
--- a/src/main/java/net/minecraft/core/Vec3i.java
+++ b/src/main/java/net/minecraft/core/Vec3i.java
@@ -21,6 +21,15 @@ public class Vec3i implements Comparable {
@@ -33,10 +33,10 @@ index 964bec1d3fecfe43a43bd9968159fca069f00dfd..e188f130e47ef319477050981de53a74
this.x = x;
this.y = y;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index ef6289d67f54d81497edc0d7e4f3789d5bcb28f9..be2b000c899e52cc6a97b87c854f10cec44d8ea1 100644
+index 123a34b97fe76bd694214ded6174ecb26b970438..1f1601f0e7f30bb44c57c771b93e7aa8be3e9725 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -260,7 +260,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -262,7 +262,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
public boolean isInWorldBounds(BlockPos pos) {
diff --git a/patches/server/0071-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0071-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
index dae5cc3a8..5b2a3078c 100644
--- a/patches/server/0071-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
+++ b/patches/server/0071-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 770134bd7a74616bf8d22439ff1ad1379fa27f0a..1faf63b6de560b23e3ca3b8358a4fd1ff9204bd4 100644
+index 0d58b58537de49ddb7c8c841e9077af4e727ba82..46eaa77f33a375da80f8290883f6ed1f321be87e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1383,6 +1383,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
diff --git a/patches/server/0099-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch b/patches/server/0099-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
index 09fec09f0..aeeb3ffa6 100644
--- a/patches/server/0099-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
+++ b/patches/server/0099-Only-send-Dragon-Wither-Death-sounds-to-same-world.patch
@@ -22,7 +22,7 @@ index fb6aef4cdbd2ad4037e20c9302ae5ef07ff0c7ce..e17cf38b791f509447ce2c8ef3841153
double deltaZ = this.getZ() - player.getZ();
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-index c0fffca28b978e36c8d7324f2c4b1cd931da1251..2f849b21e39d04a27ef88f8c76275f10bf55db3b 100644
+index 07b631e074ef91ea51dfecfa0232482d8983a12d..9a89e6ff72d285a941be986300ff5c2a723a80e0 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -260,8 +260,9 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
diff --git a/patches/server/0100-Fix-Old-Sign-Conversion.patch b/patches/server/0100-Fix-Old-Sign-Conversion.patch
index 21eb3aa76..75343aaf1 100644
--- a/patches/server/0100-Fix-Old-Sign-Conversion.patch
+++ b/patches/server/0100-Fix-Old-Sign-Conversion.patch
@@ -34,7 +34,7 @@ index dbb59775422b80fb4b60a8cfd2c0bd81c1646e88..589fbdd5c86655244aa92a42e5f45747
continue;
}
diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java
-index e396c3aede9ca22ec98e1bd25c7da35ed6406f4f..80d3787d9c07f8dd740c2e5979e1cc14891b8829 100644
+index f0795f0cff1314604dc58c19b64467a4c8cd4de9..3cbb764c8afd7f0a6b14aad4a4960a25d82ec9d9 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java
@@ -283,7 +283,9 @@ public class StructureTemplate {
diff --git a/patches/server/0103-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0103-Add-setting-for-proxy-online-mode-status.patch
index 6b1d1d298..dc31e8fa2 100644
--- a/patches/server/0103-Add-setting-for-proxy-online-mode-status.patch
+++ b/patches/server/0103-Add-setting-for-proxy-online-mode-status.patch
@@ -67,10 +67,10 @@ index f6cb864c45f960811acc02829d1f7883b916de29..8703f97dc2f392b136c6851aa09b607c
} else {
String[] astring1 = astring;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 91ee302c5b3299fe7c1aa90b10f8ea06c5d23589..be3eade64dd60fbd9fc28fd1713ab0a96eac863c 100644
+index 9db5f614512d05eb99b4811c71fbc914e50c712e..db8704fb3533d774fbb6146926939151816bc48d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1648,7 +1648,7 @@ public final class CraftServer implements Server {
+@@ -1666,7 +1666,7 @@ public final class CraftServer implements Server {
// Spigot Start
GameProfile profile = null;
// Only fetch an online UUID in online mode
diff --git a/patches/server/0109-Add-EntityZapEvent.patch b/patches/server/0109-Add-EntityZapEvent.patch
index c9c99b8c5..e05e9ddf2 100644
--- a/patches/server/0109-Add-EntityZapEvent.patch
+++ b/patches/server/0109-Add-EntityZapEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityZapEvent
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
-index d414b111386e18dec8992b510b93c19ece8d60dd..2c95b6eddfe46e5d2ad495bfc86ccc24ae75e704 100644
+index e4d811025a000f6d12ab8587de293e929c8fd970..53eaafad559cd6413bb1e10d07374da0ab907ec6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -254,6 +254,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
@@ -21,7 +21,7 @@ index d414b111386e18dec8992b510b93c19ece8d60dd..2c95b6eddfe46e5d2ad495bfc86ccc24
if (CraftEventFactory.callPigZapEvent(this, lightning, entitypigzombie).isCancelled()) {
return;
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
-index c5a8edf426e79b8746c7a5a5a5de3e3df1708740..f030c8d7c28039fde273e6b30c63ea791c8de520 100644
+index e6f1f9794ddd86a1ea0a6adceb9c9dc81997183f..7ddcdafdd9b60e9cab2d6b0a3c5b40694ea59506 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -826,9 +826,17 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
diff --git a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
index cbb27c084..8da9ad6a6 100644
--- a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index be3eade64dd60fbd9fc28fd1713ab0a96eac863c..3e8a1f53cacdb513a8cd8f1d9314618eb75de4eb 100644
+index db8704fb3533d774fbb6146926939151816bc48d..70cbf25466b7b7800c69d72c5f83b733cb83228b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2432,5 +2432,24 @@ public final class CraftServer implements Server {
+@@ -2460,5 +2460,24 @@ public final class CraftServer implements Server {
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
}
diff --git a/patches/server/0114-Don-t-let-fishinghooks-use-portals.patch b/patches/server/0114-Don-t-let-fishinghooks-use-portals.patch
index 09cbca08b..9ce90e316 100644
--- a/patches/server/0114-Don-t-let-fishinghooks-use-portals.patch
+++ b/patches/server/0114-Don-t-let-fishinghooks-use-portals.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't let fishinghooks use portals
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
-index c30b53d07bcd2575d65c323d8170573bbe85f212..d25fe9cb2cf755f3e34a79ce87ed38c1ffada53f 100644
+index b007efe91c0abef3e90179b67dfdaf999ced11d2..3353892ab858db5e0ad2833bf56c6a367248f6fb 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -253,6 +253,11 @@ public class FishingHook extends Projectile {
diff --git a/patches/server/0117-Optimize-World.isLoaded-BlockPosition-Z.patch b/patches/server/0117-Optimize-World.isLoaded-BlockPosition-Z.patch
index 6c5f24211..85cfec76b 100644
--- a/patches/server/0117-Optimize-World.isLoaded-BlockPosition-Z.patch
+++ b/patches/server/0117-Optimize-World.isLoaded-BlockPosition-Z.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z
Reduce method invocations for World.isLoaded(BlockPosition)Z
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index fedadb7d9d216d126da54941be63901b7d171c30..98c205efbe7f31fb35eefedf083b366dd5dbb8f8 100644
+index 3032f52ea3375c62aa13dc1802a85df22a9f3082..3400f8120ee73fe78209e88619ad9acef93cd5b8 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -317,6 +317,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -319,6 +319,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return chunk == null ? null : chunk.getFluidState(blockposition);
}
diff --git a/patches/server/0121-Add-API-methods-to-control-if-armour-stands-can-move.patch b/patches/server/0121-Add-API-methods-to-control-if-armour-stands-can-move.patch
index 21b0ca023..f8389dd8b 100644
--- a/patches/server/0121-Add-API-methods-to-control-if-armour-stands-can-move.patch
+++ b/patches/server/0121-Add-API-methods-to-control-if-armour-stands-can-move.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add API methods to control if armour stands can move
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index bca3388c51917bd7b690c42e63c20f98d38c5baf..de2ec66790b3e86b9e8feff56b28697695b0ab2c 100644
+index 2574fc58386197160d1fa875dd67031406d86356..4d5870f4bfe4bd33333419687a787ab1d1aa3330 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -92,6 +92,7 @@ public class ArmorStand extends LivingEntity {
diff --git a/patches/server/0122-String-based-Action-Bar-API.patch b/patches/server/0122-String-based-Action-Bar-API.patch
index 0a30110f7..26480a909 100644
--- a/patches/server/0122-String-based-Action-Bar-API.patch
+++ b/patches/server/0122-String-based-Action-Bar-API.patch
@@ -26,7 +26,7 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad
// Paper end
buf.writeComponent(this.text);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 90ab0a3967aaa5394e2b09c4c9879b84e82ece76..4b1cd902bef456aac25ea00793c497d2b75bb181 100644
+index d972f7b5faa5d865c0ab550c6605f9839a162c07..4233f5ffa673801c57e3f929cd9ae919d6c7169f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -249,6 +249,26 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0126-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0126-Provide-E-TE-Chunk-count-stat-methods.patch
index 1b81a97e3..b5cafb7a8 100644
--- a/patches/server/0126-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/server/0126-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 98c205efbe7f31fb35eefedf083b366dd5dbb8f8..d6e6b5a29ddf980e179471059372dfda8e0d7b1b 100644
+index 3400f8120ee73fe78209e88619ad9acef93cd5b8..acfa844c87e5814c033cad4318813800f57885fd 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -110,7 +110,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -20,10 +20,10 @@ index 98c205efbe7f31fb35eefedf083b366dd5dbb8f8..d6e6b5a29ddf980e179471059372dfda
private boolean tickingBlockEntities;
public final Thread thread;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 8c47fbd10b634daf24eb14949b124ee87d87ff73..5575bf752c72a947e51f250d5edbadb1d77324c9 100644
+index 0b846204ba0e08ead4ca044505efe91f23c116e4..1f4880cd6abc68731abd5943619a9bf7e7ddb02f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -132,6 +132,57 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -133,6 +133,57 @@ public class CraftWorld extends CraftRegionAccessor implements World {
private int ambientSpawn = -1;
private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
diff --git a/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index d73aa681d..ef93baf58 100644
--- a/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -129,7 +129,7 @@ index 41556294841b2c280ba4eff861405ccb6aee19e5..5220e3ee9fab4c4cbc95e0cf19283923
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 5c227131bad75515fe678a6f32ebddd8d30b8f85..b71b611f3b4506a68ab6c9195c67ba0f52c84ed2 100644
+index f6761a4bfa7a73cdbd1ecd4be1f9e78f61a67ae3..4f915072f9847327ec4fa5b33541f7105bc7fff6 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1704,7 +1704,8 @@ public abstract class LivingEntity extends Entity {
@@ -156,7 +156,7 @@ index c955f34e9c92f3310d2ead4eb887b5fe94180619..43841b5c77beb73169e2ff1645afe123
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
-index 0ebf49f7f1046b0606f3608bcc8e496693fe8553..3d15587a8c36d833283cfea0546c589287e7ed48 100644
+index a493b9998cd08eda1aeb34087736c5646ee2d8d3..7de3d73232d985ab18d7266371d301c490b79b9f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -883,7 +883,7 @@ public class Fox extends Animal {
@@ -169,7 +169,7 @@ index 0ebf49f7f1046b0606f3608bcc8e496693fe8553..3d15587a8c36d833283cfea0546c5892
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
-index bae8340abda9f400450c835946b30aacec261f6d..fa551b1338a21b7b0864bdb9f31cb365c918facf 100644
+index 10e4ed61e20edc4e2203150780d377a0fd8515bb..3ba8fafcd5de584209dd30cadb8e76a46dac4bc8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -455,7 +455,7 @@ public class Turtle extends Animal {
@@ -204,7 +204,7 @@ index e17cf38b791f509447ce2c8ef38411530a0fb09b..3a01ffffcc37a93866b8b6774874959d
if (this.dragonFight != null) {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
-index f030c8d7c28039fde273e6b30c63ea791c8de520..b4a3469d85a388100092cc2a1305cdcae37df9fc 100644
+index 7ddcdafdd9b60e9cab2d6b0a3c5b40694ea59506..3839bacbd5f4d06eb13d0e604651232d9fbd7b6a 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -616,7 +616,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -217,7 +217,7 @@ index f030c8d7c28039fde273e6b30c63ea791c8de520..b4a3469d85a388100092cc2a1305cdca
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
-index 892603dabb17e77ac0b038617f00f2d3d1c728ac..59c4ab697ef0a336ffce19d215952f3a8ff0852b 100644
+index 9001d627060b9691b703b4c0e157124b0cdee6bb..1101989e93758294c1adebbef0ab12a3c046e326 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -187,7 +187,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -230,7 +230,7 @@ index 892603dabb17e77ac0b038617f00f2d3d1c728ac..59c4ab697ef0a336ffce19d215952f3a
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
-index d25fe9cb2cf755f3e34a79ce87ed38c1ffada53f..0258d0699afe7ceec19154c669b10298e6e1bf95 100644
+index 3353892ab858db5e0ad2833bf56c6a367248f6fb..45d007c519e80415e34eaf404c03bf104b6f9dc1 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -516,7 +516,7 @@ public class FishingHook extends Projectile {
diff --git a/patches/server/0130-Cap-Entity-Collisions.patch b/patches/server/0130-Cap-Entity-Collisions.patch
index 05c115b5c..7eaf45811 100644
--- a/patches/server/0130-Cap-Entity-Collisions.patch
+++ b/patches/server/0130-Cap-Entity-Collisions.patch
@@ -39,7 +39,7 @@ index 6211a425e81f9ba9718af6c30e534d35b10bad02..bf52f5f9b13e8b4eb3c7ee19b0e57bb8
// Spigot end
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index b71b611f3b4506a68ab6c9195c67ba0f52c84ed2..290cf1289cdbe344d4009f8012309fc1f7875100 100644
+index 4f915072f9847327ec4fa5b33541f7105bc7fff6..5f24963bd2681cab15d20221154a9a758be53b03 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3228,8 +3228,11 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0132-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch b/patches/server/0132-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
index a76c7c8d2..63623f461 100644
--- a/patches/server/0132-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
+++ b/patches/server/0132-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Make targetSize more aggressive in the chunk unload queue
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index a1d0bcf16026ca1cf8a0110e6f59498cbebb2969..463588bae82ee8448533cfed76ba0e6ac2228cc1 100644
+index fb3b0693abb6f2f044d39508b727fb3a2ad16823..4a2739edb01c97c99524dc96decbdcb12e0b7d4f 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -215,7 +215,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0133-Do-not-let-armorstands-drown.patch b/patches/server/0133-Do-not-let-armorstands-drown.patch
index 6141df4e7..7eb2b35fd 100644
--- a/patches/server/0133-Do-not-let-armorstands-drown.patch
+++ b/patches/server/0133-Do-not-let-armorstands-drown.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Do not let armorstands drown
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index de2ec66790b3e86b9e8feff56b28697695b0ab2c..6d717d3852afb3a3a4bef30c68980c402bdfefff 100644
+index 4d5870f4bfe4bd33333419687a787ab1d1aa3330..04ee36326b16e2aa070fd3318bd4a30bce67e49a 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -936,5 +936,12 @@ public class ArmorStand extends LivingEntity {
diff --git a/patches/server/0134-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0134-Properly-handle-async-calls-to-restart-the-server.patch
index f3eb711fb..f32c77f8d 100644
--- a/patches/server/0134-Properly-handle-async-calls-to-restart-the-server.patch
+++ b/patches/server/0134-Properly-handle-async-calls-to-restart-the-server.patch
@@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result
in corruption/dataloss.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 69f4f8e5fdb7958076671dec0614c401beed9854..e36986a2f6e8548cba011fc2e8e84bb9f3f6e10d 100644
+index 79270b3969c6c05a5a90756a88f3547b64cf5f3b..2e0bd32ebe06e39b3dc889be9b06e2d0047c1068 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -232,6 +232,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop capturedTileEntities = new HashMap<>();
public List captureDrops;
public long ticksPerAnimalSpawns;
-@@ -359,7 +359,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -361,7 +361,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) {
// CraftBukkit start - tree generation
if (this.captureTreeGeneration) {
@@ -39,7 +39,7 @@ index 62d7c9056c0836b53804e84cc1464cd50380d392..f627e328e506cb7985c2cb0cc4046f17
if (blockstate == null) {
blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags);
this.capturedBlockStates.put(pos.immutable(), blockstate);
-@@ -379,7 +379,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -381,7 +381,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// CraftBukkit start - capture blockstates
boolean captured = false;
if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) {
@@ -49,7 +49,7 @@ index 62d7c9056c0836b53804e84cc1464cd50380d392..f627e328e506cb7985c2cb0cc4046f17
this.capturedBlockStates.put(pos.immutable(), blockstate);
captured = true;
}
-@@ -648,7 +649,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -650,7 +651,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public BlockState getBlockState(BlockPos pos) {
// CraftBukkit start - tree generation
if (this.captureTreeGeneration) {
diff --git a/patches/server/0169-AsyncTabCompleteEvent.patch b/patches/server/0169-AsyncTabCompleteEvent.patch
index 6e34372fa..b815fca05 100644
--- a/patches/server/0169-AsyncTabCompleteEvent.patch
+++ b/patches/server/0169-AsyncTabCompleteEvent.patch
@@ -72,10 +72,10 @@ index cf42d59254f2786bfe8785249ad270d35996417a..8c2242d7e443bee26741608c65d314d8
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a761dbe6fd7e2ed1805d080832acda768d0b3c03..54aad60880bd60d303c8b0395e93d74abaaffc2f 100644
+index a337967295f61f4892a2ae7dd65aeaba75a06172..435a68e6c99bffdc8d6ded9deda68d4e970a2d49 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1992,7 +1992,7 @@ public final class CraftServer implements Server {
+@@ -2015,7 +2015,7 @@ public final class CraftServer implements Server {
offers = this.tabCompleteChat(player, message);
}
diff --git a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
index d03b9e79a..6303d7e46 100644
--- a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch
@@ -28,7 +28,7 @@ index 6f25e9f41d93a225acaa6575954967438a6cabbf..d439e8ce87bf7da03683a336941c7673
return true;
});
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index cfe2f379f1b2e33523caeaff927c6fed25dcc58d..da472b9881ab8f3699f75b3dd6a3115df4bb5a53 100644
+index e5e12d1672588138e4f56007fcdd14a1bb8ec1ca..95cee13664b28fabf89ab7ff17f2481b11ff1fe3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -61,11 +61,14 @@ import net.minecraft.server.level.ServerPlayer;
diff --git a/patches/server/0172-Make-max-squid-spawn-height-configurable.patch b/patches/server/0172-Make-max-squid-spawn-height-configurable.patch
index 474cd06b2..8fc0753c0 100644
--- a/patches/server/0172-Make-max-squid-spawn-height-configurable.patch
+++ b/patches/server/0172-Make-max-squid-spawn-height-configurable.patch
@@ -21,7 +21,7 @@ index e6c29e08b20734c3f64e1d596d103a5c1fbb6920..b6e762fbb79d19affb93e10ed0cbe29c
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
-index 3093fc37c47bec1a6e884553809277fff1053d8e..56838c9f214c0f75041e75c45ad1a0c72fcacc66 100644
+index 3ffc1ee8a9ae63c8678c12736fab5d6ba0a21a5b..4da560f6e4da0750bda78b900b2d916d58adfccb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -211,7 +211,8 @@ public class Squid extends WaterAnimal {
diff --git a/patches/server/0173-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0173-PlayerNaturallySpawnCreaturesEvent.patch
index 1a1622273..4df4e523a 100644
--- a/patches/server/0173-PlayerNaturallySpawnCreaturesEvent.patch
+++ b/patches/server/0173-PlayerNaturallySpawnCreaturesEvent.patch
@@ -9,7 +9,7 @@ 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/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 463588bae82ee8448533cfed76ba0e6ac2228cc1..272840d1f463276944cf4aa941f4451895fa8594 100644
+index 4a2739edb01c97c99524dc96decbdcb12e0b7d4f..5e53ef4b71969737f900063ab631f4a1ce74cb90 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1024,11 +1024,21 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0174-PreCreatureSpawnEvent.patch b/patches/server/0174-PreCreatureSpawnEvent.patch
index 5070915ed..d89213680 100644
--- a/patches/server/0174-PreCreatureSpawnEvent.patch
+++ b/patches/server/0174-PreCreatureSpawnEvent.patch
@@ -40,7 +40,7 @@ index 28f1a53a2b9ebe9948509dabbf1a4ae84d8e147c..345ecbc7fc080e8581d285b638db1ee6
if (t0 != null) {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
-index b4a3469d85a388100092cc2a1305cdcae37df9fc..0ba4e6111726a1ca3cc5b6ce21e0500cc57a4aa3 100644
+index 3839bacbd5f4d06eb13d0e604651232d9fbd7b6a..206aee8bf14ffc4ddbb8a7001bc3baae6a2ea849 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -987,6 +987,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -98,10 +98,10 @@ index 12a78685848b7fd945a472902d8200ea1d50b9ec..900cba8c2b04fc1b82a13af76d7079b6
entity1.moveTo(d0, d1, d2, entity1.getYRot(), entity1.getXRot());
return entity1;
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 4ea02bfe348cec26bbb2c15ddacbbc110033b2d3..f208239b69dbd8788b799d8b28e457017edef9d5 100644
+index 0432ad7ab00c336e7c566f24c3ec92b399cb6e9d..ca0fcf46e67deb07a3fdb071b771a7603e0fc3d0 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-@@ -231,7 +231,13 @@ public final class NaturalSpawner {
+@@ -236,7 +236,13 @@ public final class NaturalSpawner {
j1 = biomesettingsmobs_c.minCount + world.random.nextInt(1 + biomesettingsmobs_c.maxCount - biomesettingsmobs_c.minCount);
}
@@ -116,7 +116,7 @@ index 4ea02bfe348cec26bbb2c15ddacbbc110033b2d3..f208239b69dbd8788b799d8b28e45701
Mob entityinsentient = NaturalSpawner.getMobForSpawn(world, biomesettingsmobs_c.type);
if (entityinsentient == null) {
-@@ -278,9 +284,25 @@ public final class NaturalSpawner {
+@@ -283,9 +289,25 @@ public final class NaturalSpawner {
return squaredDistance <= 576.0D ? false : (world.getSharedSpawnPos().closerThan((Position) (new Vec3((double) pos.getX() + 0.5D, (double) pos.getY(), (double) pos.getZ() + 0.5D)), 24.0D) ? false : Objects.equals(new ChunkPos(pos), chunk.getPos()) || world.isPositionEntityTicking((BlockPos) pos));
}
diff --git a/patches/server/0181-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/patches/server/0181-Toggleable-player-crits-helps-mitigate-hacked-client.patch
index d9f95cafe..0e78d6ecc 100644
--- a/patches/server/0181-Toggleable-player-crits-helps-mitigate-hacked-client.patch
+++ b/patches/server/0181-Toggleable-player-crits-helps-mitigate-hacked-client.patch
@@ -21,7 +21,7 @@ index b6e762fbb79d19affb93e10ed0cbe29c2d0b6c22..0f1252ae47df5568b6844e76dceb3e8e
private void allChunksAreSlimeChunks() {
allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 2a8bcee1422805e29512e791c52d0787c05e1e61..3c8de1d70714a021dbd58894f3fd986bf5d6bde7 100644
+index 8c20af91c9298cb36fdb2700d042b1e2fccf5f54..dbab4d28c49d22807dfc582fb83353232396555b 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1189,6 +1189,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0183-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0183-Implement-extended-PaperServerListPingEvent.patch
index 575b063b8..8a0611bfb 100644
--- a/patches/server/0183-Implement-extended-PaperServerListPingEvent.patch
+++ b/patches/server/0183-Implement-extended-PaperServerListPingEvent.patch
@@ -190,7 +190,7 @@ index 67455a5ba75c9b816213e44d6872c5ddf8e27e98..23efad80934930beadf15e65781551d4
public ClientboundStatusResponsePacket(ServerStatus metadata) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index ce5fab6878a65b7ad4fd6aead5b77a9724d3dd63..74e780212773e0d3cce19cb9c33cdcaa4a708f14 100644
+index 9a8779bed2a2fa7dc869d3283c59dbc132df8968..1bffdc632a19318325b60ef737f9e8555ae40230 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2,6 +2,9 @@ package net.minecraft.server;
diff --git a/patches/server/0186-Player.setPlayerProfile-API.patch b/patches/server/0186-Player.setPlayerProfile-API.patch
index 92f89faef..4e875d7a1 100644
--- a/patches/server/0186-Player.setPlayerProfile-API.patch
+++ b/patches/server/0186-Player.setPlayerProfile-API.patch
@@ -26,7 +26,7 @@ index 261ebb134a5ff40406e74237f730aad1c78a8215..39bdda56aaa5503efc15207261634127
uniqueId = gameProfile.getId();
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 3c8de1d70714a021dbd58894f3fd986bf5d6bde7..cc6f1f94c1a01992dfe29399b346c972f114a38d 100644
+index dbab4d28c49d22807dfc582fb83353232396555b..0ef9c95d40cd0cdff0d150121511e6f9efd65f4d 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -173,7 +173,7 @@ public abstract class Player extends LivingEntity {
@@ -39,7 +39,7 @@ index 3c8de1d70714a021dbd58894f3fd986bf5d6bde7..cc6f1f94c1a01992dfe29399b346c972
private ItemStack lastItemInMainHand;
private final ItemCooldowns cooldowns;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index da472b9881ab8f3699f75b3dd6a3115df4bb5a53..3426c1cfac6ad787891185bb1e8fa29edb682dd1 100644
+index 95cee13664b28fabf89ab7ff17f2481b11ff1fe3..b88405f21c09f56b0f94b407e3271e421f7a10c3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -71,6 +71,7 @@ import net.minecraft.world.item.enchantment.EnchantmentHelper;
diff --git a/patches/server/0187-getPlayerUniqueId-API.patch b/patches/server/0187-getPlayerUniqueId-API.patch
index ac2637848..6ce4f8af9 100644
--- a/patches/server/0187-getPlayerUniqueId-API.patch
+++ b/patches/server/0187-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 54aad60880bd60d303c8b0395e93d74abaaffc2f..c6c8f40521e4039406120dbde5c01e5ad28f58d8 100644
+index 435a68e6c99bffdc8d6ded9deda68d4e970a2d49..d10da7acb03a2e4a67cee41a6f6fc6357eb8efd6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1650,6 +1650,25 @@ public final class CraftServer implements Server {
+@@ -1668,6 +1668,25 @@ public final class CraftServer implements Server {
return recipients.size();
}
diff --git a/patches/server/0191-Flag-to-disable-the-channel-limit.patch b/patches/server/0191-Flag-to-disable-the-channel-limit.patch
index c5422ab6e..dd6ca132b 100644
--- a/patches/server/0191-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0191-Flag-to-disable-the-channel-limit.patch
@@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 3426c1cfac6ad787891185bb1e8fa29edb682dd1..d14f4f8a457d62c4fdeaaab4062bc53bdd62d4aa 100644
+index b88405f21c09f56b0f94b407e3271e421f7a10c3..fbb4d97e1f525570ae86d1754af3063899cd88e2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -150,6 +150,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0193-Configurable-sprint-interruption-on-attack.patch b/patches/server/0193-Configurable-sprint-interruption-on-attack.patch
index 8a8f94f90..c2d1d863e 100644
--- a/patches/server/0193-Configurable-sprint-interruption-on-attack.patch
+++ b/patches/server/0193-Configurable-sprint-interruption-on-attack.patch
@@ -20,7 +20,7 @@ index 0f1252ae47df5568b6844e76dceb3e8e4c8394c8..f3ce248c576643ec172ba42c4bea41a5
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index cc6f1f94c1a01992dfe29399b346c972f114a38d..220a1c4ecf9bc95c804a831fb661aa28f00059b1 100644
+index 0ef9c95d40cd0cdff0d150121511e6f9efd65f4d..f7ee9ce075720ed59cf761463bae997a141a7be8 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1238,7 +1238,11 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0195-EndermanEscapeEvent.patch b/patches/server/0195-EndermanEscapeEvent.patch
index 2f5736b77..37bc0c9d9 100644
--- a/patches/server/0195-EndermanEscapeEvent.patch
+++ b/patches/server/0195-EndermanEscapeEvent.patch
@@ -8,7 +8,7 @@ Fires an event anytime an enderman intends to teleport away from the player
You may cancel this, enabling ranged attacks to damage the enderman for example.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-index a18765fe0be5a83ee2da3638aa5107e9345f19b6..8e8eea175e75f2a56a12bf1c23a5d22bf8047bb5 100644
+index 568c3a43a41c6bde521580b3890aa21d28e03036..d2c64a3909e77ed3f9d5fb5d4c47a756eab82eee 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -109,6 +109,12 @@ public class EnderMan extends Monster implements NeutralMob {
diff --git a/patches/server/0196-Enderman.teleportRandomly.patch b/patches/server/0196-Enderman.teleportRandomly.patch
index efba7df07..b2f151678 100644
--- a/patches/server/0196-Enderman.teleportRandomly.patch
+++ b/patches/server/0196-Enderman.teleportRandomly.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Enderman.teleportRandomly()
Ability to trigger the vanilla "teleport randomly" mechanic of an enderman.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-index 8e8eea175e75f2a56a12bf1c23a5d22bf8047bb5..62717899cafaf5452e5bd5e665ecae38f3bd6a2b 100644
+index d2c64a3909e77ed3f9d5fb5d4c47a756eab82eee..02f691a2217bea2df23b7b412eba90ee99c3b8c9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -277,7 +277,7 @@ public class EnderMan extends Monster implements NeutralMob {
diff --git a/patches/server/0197-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0197-Block-Enderpearl-Travel-Exploit.patch
index b7e43c132..42b2d12bf 100644
--- a/patches/server/0197-Block-Enderpearl-Travel-Exploit.patch
+++ b/patches/server/0197-Block-Enderpearl-Travel-Exploit.patch
@@ -27,7 +27,7 @@ index f3ce248c576643ec172ba42c4bea41a59cfe9ec6..10f7437d62bfa774309d6334ca791505
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index e4294219be68c6f99cd0e5ea8330fae6dc03ddde..b09f52330b50879d5594b21302e70ca676b60951 100644
+index 4306db7db2c5b4eb1529dc3e9f0659ead2688fa5..8af1571c614a39c9673e0dc90e3aa9a89a367e34 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -88,6 +88,7 @@ public abstract class Projectile extends Entity {
diff --git a/patches/server/0198-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0198-Expand-World.spawnParticle-API-and-add-Builder.patch
index de81ed118..a7cd52b85 100644
--- a/patches/server/0198-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/server/0198-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -34,10 +34,10 @@ index 26c25b103f08a2e66179d1ed8f450778aa2e539a..86a5a4456be65b94b0c27a0355c3844c
if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5575bf752c72a947e51f250d5edbadb1d77324c9..a6679e40c161ca34b059cd2fe1f27cd23a888a88 100644
+index 1f4880cd6abc68731abd5943619a9bf7e7ddb02f..7fbd068cbf96332b6ea45411f45e9e0910693c57 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1723,11 +1723,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1748,11 +1748,17 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public 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/patches/server/0200-EndermanAttackPlayerEvent.patch b/patches/server/0200-EndermanAttackPlayerEvent.patch
index 7ea466b1f..ca135c669 100644
--- a/patches/server/0200-EndermanAttackPlayerEvent.patch
+++ b/patches/server/0200-EndermanAttackPlayerEvent.patch
@@ -8,7 +8,7 @@ Allow control over whether or not an enderman aggros a player.
This allows you to override/extend the pumpkin/stare logic.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-index 62717899cafaf5452e5bd5e665ecae38f3bd6a2b..72e5e1edaa047d491daeef8ece3638dad30e32ca 100644
+index 02f691a2217bea2df23b7b412eba90ee99c3b8c9..de167655a556a700bdc7d92fa54b802924b2a61a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -220,7 +220,15 @@ public class EnderMan extends Monster implements NeutralMob {
diff --git a/patches/server/0201-WitchConsumePotionEvent.patch b/patches/server/0201-WitchConsumePotionEvent.patch
index 335562998..e1effd06b 100644
--- a/patches/server/0201-WitchConsumePotionEvent.patch
+++ b/patches/server/0201-WitchConsumePotionEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] WitchConsumePotionEvent
Fires when a witch consumes the potion in their hand
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
-index c38161a20ec0f17cdba853b5267625aaa8c96222..01875b3199e193365f5da86023bb83ca819241aa 100644
+index d3cb46250d3f72a3d0f0e42eddee3ea30e8cabcc..fcfa4d3b0cb257804500864847f35650f4cb7602 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -124,7 +124,11 @@ public class Witch extends Raider implements RangedAttackMob {
diff --git a/patches/server/0202-WitchThrowPotionEvent.patch b/patches/server/0202-WitchThrowPotionEvent.patch
index 9816f2cf2..3c46661a4 100644
--- a/patches/server/0202-WitchThrowPotionEvent.patch
+++ b/patches/server/0202-WitchThrowPotionEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] WitchThrowPotionEvent
Fired when a witch throws a potion at a player
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
-index 01875b3199e193365f5da86023bb83ca819241aa..29c4ce6ae511833fd591d3bf8cceac910a429853 100644
+index fcfa4d3b0cb257804500864847f35650f4cb7602..4bb000af5964adec59741de56eb3bbd7b38ad237 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -236,9 +236,16 @@ public class Witch extends Raider implements RangedAttackMob {
diff --git a/patches/server/0204-WitchReadyPotionEvent.patch b/patches/server/0204-WitchReadyPotionEvent.patch
index bcca7dee0..03f3251f9 100644
--- a/patches/server/0204-WitchReadyPotionEvent.patch
+++ b/patches/server/0204-WitchReadyPotionEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] WitchReadyPotionEvent
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
-index 29c4ce6ae511833fd591d3bf8cceac910a429853..e26ce4d8b3a3af8d6347f8c8c36703aeb06da520 100644
+index 4bb000af5964adec59741de56eb3bbd7b38ad237..94bd20db7ffea00579225e6887b8c78a3da3ff1a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -157,7 +157,11 @@ public class Witch extends Raider implements RangedAttackMob {
diff --git a/patches/server/0207-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/server/0207-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
index ce293a68a..bfe771aea 100644
--- a/patches/server/0207-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
+++ b/patches/server/0207-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event
Otherwise the creeper infinite explodes
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
-index ddc48d37f962b6743f3f356745c9ebe6a06f79f1..3bbf6c9bfbb79fd4242cf66d7ace1d8f87404636 100644
+index aa16a81ee447e8bae274668f2240627d060398ba..dc7ad6f2a1ae71c411fb39460b52cd1129c928c4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -272,6 +272,7 @@ public class Creeper extends Monster implements PowerableMob {
diff --git a/patches/server/0208-Fix-CraftEntity-hashCode.patch b/patches/server/0208-Fix-CraftEntity-hashCode.patch
index 457b33062..c6c09ac16 100644
--- a/patches/server/0208-Fix-CraftEntity-hashCode.patch
+++ b/patches/server/0208-Fix-CraftEntity-hashCode.patch
@@ -21,7 +21,7 @@ check is essentially the same as this.getHandle() == other.getHandle()
However, replaced it too to make it clearer of intent.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 26b914638162ce1bdd0f578f06257e51485e268a..95bc2136eaa118f28c7ec2d8b557ed0773f5f9ad 100644
+index 21edae1b8d91341621155897d4da36bc06d2b2e5..473dc5e5ee3458e605ecf5e2b2dadb3573fd685b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -792,14 +792,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0211-Make-shield-blocking-delay-configurable.patch b/patches/server/0211-Make-shield-blocking-delay-configurable.patch
index 12d88ad2f..2c69cdb8d 100644
--- a/patches/server/0211-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0211-Make-shield-blocking-delay-configurable.patch
@@ -19,7 +19,7 @@ index 10f7437d62bfa774309d6334ca791505254bcaf7..6d2d82c24c9f43fab2cddee03960325c
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index ba5003e8ea8c5fd239bf5e430446ad5b813e9829..f7b849548f5d21886898df316114b34fd3033bde 100644
+index 375959ed616596e604dc07d3b30d708b08d7ce57..a7f6127aae3c35d3570cba31cbf7a9be34e303b2 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3669,12 +3669,24 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0212-Improve-EntityShootBowEvent.patch b/patches/server/0212-Improve-EntityShootBowEvent.patch
index 96f7dc144..802e7d64a 100644
--- a/patches/server/0212-Improve-EntityShootBowEvent.patch
+++ b/patches/server/0212-Improve-EntityShootBowEvent.patch
@@ -19,7 +19,7 @@ index d7bca8fa71e325ba1967537d4102ccb207c4d717..3d8f3e22223e4effeaf52cb18c14c602
event.getProjectile().remove();
return;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
-index ff38ad2ac16ff49a290976e392175e96fa986925..c9fa01b910de7ecb494d3000afebea9a2bd1276a 100644
+index 73dbf08002e6b90e6dfc01369de7c53531dae43b..e1b8d9c0acfc248b9a24efc21aefc88e3caeb605 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -196,8 +196,18 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
diff --git a/patches/server/0213-PlayerReadyArrowEvent.patch b/patches/server/0213-PlayerReadyArrowEvent.patch
index 4779d5743..97529695c 100644
--- a/patches/server/0213-PlayerReadyArrowEvent.patch
+++ b/patches/server/0213-PlayerReadyArrowEvent.patch
@@ -7,7 +7,7 @@ Called when a player is firing a bow and the server is choosing an arrow to use.
Plugins can skip selection of certain arrows and control which is used.
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 220a1c4ecf9bc95c804a831fb661aa28f00059b1..157abba796981cf2d1b0b17ccd376de10c782a30 100644
+index f7ee9ce075720ed59cf761463bae997a141a7be8..ea4e8680fc85d6c88078667b96e4412503713a37 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -2184,6 +2184,17 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0214-Implement-EntityKnockbackByEntityEvent.patch b/patches/server/0214-Implement-EntityKnockbackByEntityEvent.patch
index 34727c22b..a7c93e58e 100644
--- a/patches/server/0214-Implement-EntityKnockbackByEntityEvent.patch
+++ b/patches/server/0214-Implement-EntityKnockbackByEntityEvent.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement EntityKnockbackByEntityEvent
This event is called when an entity receives knockback by another entity.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f7b849548f5d21886898df316114b34fd3033bde..96866aaa40a8c20384941b1619faa61f2f71d250 100644
+index a7f6127aae3c35d3570cba31cbf7a9be34e303b2..85aae87d03219a53e5aec2b9983dac2831aff82e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1437,7 +1437,7 @@ public abstract class LivingEntity extends Entity {
@@ -82,7 +82,7 @@ index f6fd39823f04f8071c616d40a838b01e7159c5a1..e1cdf3ce38404d3f40be59e4cd3ad2b9
serverLevel.playSound((Player)null, pathfinderMob, this.getImpactSound.apply(pathfinderMob), SoundSource.HOSTILE, 1.0F, 1.0F);
} else {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 157abba796981cf2d1b0b17ccd376de10c782a30..72b7c6654c68daa2591d55ff62d4a6ba7ae25618 100644
+index ea4e8680fc85d6c88078667b96e4412503713a37..7d09d12fe4d8a01ae5849f967afcef1dcc773a04 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1232,7 +1232,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0215-Expand-Explosions-API.patch b/patches/server/0215-Expand-Explosions-API.patch
index 195da612e..50f7d179c 100644
--- a/patches/server/0215-Expand-Explosions-API.patch
+++ b/patches/server/0215-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 a6679e40c161ca34b059cd2fe1f27cd23a888a88..387d1262212a2ee72286bcdb83ce3599ff0c1425 100644
+index 7fbd068cbf96332b6ea45411f45e9e0910693c57..4f9487ac3535b2609ad57f7c1d9504801e8aa2a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -687,6 +687,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -688,6 +688,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !this.world.explode(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.BlockInteraction.BREAK : Explosion.BlockInteraction.NONE).wasCanceled;
}
diff --git a/patches/server/0219-Implement-World.getEntity-UUID-API.patch b/patches/server/0219-Implement-World.getEntity-UUID-API.patch
index 9dc300dab..4468c3bd8 100644
--- a/patches/server/0219-Implement-World.getEntity-UUID-API.patch
+++ b/patches/server/0219-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 387d1262212a2ee72286bcdb83ce3599ff0c1425..687798fab7d38eccf679727f047ceb6f196ffb5c 100644
+index 4f9487ac3535b2609ad57f7c1d9504801e8aa2a6..375c3adac2dc80f15d06e8acb11c8c451ec579e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1021,6 +1021,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1022,6 +1022,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return list;
}
diff --git a/patches/server/0220-InventoryCloseEvent-Reason-API.patch b/patches/server/0220-InventoryCloseEvent-Reason-API.patch
index f8ed97188..01e1a5a48 100644
--- a/patches/server/0220-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0220-InventoryCloseEvent-Reason-API.patch
@@ -118,7 +118,7 @@ index 1ae11a88b2ab49c13155e2cf41252c8716f30b96..8be7cf4533792315965c4e227b0ef73d
PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, com.destroystokyo.paper.PaperConfig.useDisplayNameInQuit ? entityplayer.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(entityplayer.getScoreboardName())));
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 72b7c6654c68daa2591d55ff62d4a6ba7ae25618..744d8c049e753c0e07cf064597a086ccf6d3f3ea 100644
+index 7d09d12fe4d8a01ae5849f967afcef1dcc773a04..f5bc151aae4f8335994507c89a094177347dfce1 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -264,7 +264,7 @@ public abstract class Player extends LivingEntity {
@@ -174,7 +174,7 @@ index f1b1d1881d0598503a7ec1022ef5e00f848fb247..460828d29583ee21a7c5b716f9687a82
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index fdb4e636f1cfad6cb99753aee02d5734c7607fbf..b77d9477a425691ddad244d2912b9574d640f32a 100644
+index fbb4d97e1f525570ae86d1754af3063899cd88e2..02ba74a1f503a8f48c41754175b8e5ba2a468433 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -928,7 +928,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0224-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0224-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
index 0f5e9b6bc..3b0def6d8 100644
--- a/patches/server/0224-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
+++ b/patches/server/0224-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread
diff --git a/build.gradle.kts b/build.gradle.kts
-index 8738c5bf1de3a145723ba44fd4a41e944113752b..5543c8e30c707d7cee5fd0579dd3d3dd7c26a13e 100644
+index 43ade646a7c69bbc6536ed37eb4c898decc7572c..18a8049394529fae70d25ec3ddb285f85f6a8160 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,7 @@ dependencies {
diff --git a/patches/server/0232-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0232-Option-to-prevent-armor-stands-from-doing-entity-loo.patch
index 7951ae9b8..19605265f 100644
--- a/patches/server/0232-Option-to-prevent-armor-stands-from-doing-entity-loo.patch
+++ b/patches/server/0232-Option-to-prevent-armor-stands-from-doing-entity-loo.patch
@@ -19,7 +19,7 @@ index cd2bf3596e2d1cb5bbffa727976a9bee9319dcf5..0edbd0bf3d7d71b73bcf5cb9da233e8d
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index 6d717d3852afb3a3a4bef30c68980c402bdfefff..b47b1215e685c453c3496439bb350a917d8bde3c 100644
+index 04ee36326b16e2aa070fd3318bd4a30bce67e49a..9a63260b20903eb4600f098c81ae660029f7c345 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -339,6 +339,7 @@ public class ArmorStand extends LivingEntity {
@@ -31,10 +31,10 @@ index 6d717d3852afb3a3a4bef30c68980c402bdfefff..b47b1215e685c453c3496439bb350a91
for (int i = 0; i < list.size(); ++i) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index f627e328e506cb7985c2cb0cc4046f173f39f6fc..d49ce298219dd2144ca1357ab9f158455187c985 100644
+index 233a8fcfae4ac568ad1f73cc61d8ae5b66a01ac2..e8d1a17b8e65e1af03ad36afd98b3e6ebab2592a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -772,6 +772,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -774,6 +774,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end
}
}
diff --git a/patches/server/0233-Vanished-players-don-t-have-rights.patch b/patches/server/0233-Vanished-players-don-t-have-rights.patch
index 8741392e0..827af70ff 100644
--- a/patches/server/0233-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0233-Vanished-players-don-t-have-rights.patch
@@ -38,7 +38,7 @@ index 8cf2dc21bcc2547b5af5501e60be39ca18a0e9f2..d36e73cfab79960bf4d778ea01a684b9
BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index d49ce298219dd2144ca1357ab9f158455187c985..17f596e6059334114ce3ee17fbde1ce3d14c5ca1 100644
+index e8d1a17b8e65e1af03ad36afd98b3e6ebab2592a..b5aa61cecf15e38105cf4bef92b6859aaa450dbd 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -71,6 +71,10 @@ import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
@@ -52,7 +52,7 @@ index d49ce298219dd2144ca1357ab9f158455187c985..17f596e6059334114ce3ee17fbde1ce3
import net.minecraft.world.scores.Scoreboard;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-@@ -249,6 +253,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -251,6 +255,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
diff --git a/patches/server/0234-Allow-disabling-armour-stand-ticking.patch b/patches/server/0234-Allow-disabling-armour-stand-ticking.patch
index 1137fbab9..3b245c527 100644
--- a/patches/server/0234-Allow-disabling-armour-stand-ticking.patch
+++ b/patches/server/0234-Allow-disabling-armour-stand-ticking.patch
@@ -20,7 +20,7 @@ index 0edbd0bf3d7d71b73bcf5cb9da233e8dcfca346f..3c7af3c4dc864c1143451350861e6409
+ }
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index b47b1215e685c453c3496439bb350a917d8bde3c..d545349f659b2a164a28d06e9ff0f9fff8fa8ecf 100644
+index 9a63260b20903eb4600f098c81ae660029f7c345..f9375dbbeda6fdc92406fe5d93df0467e6e70672 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -93,9 +93,16 @@ public class ArmorStand extends LivingEntity {
diff --git a/patches/server/0239-Add-hand-to-bucket-events.patch b/patches/server/0239-Add-hand-to-bucket-events.patch
index f7be8930f..df46ac2b5 100644
--- a/patches/server/0239-Add-hand-to-bucket-events.patch
+++ b/patches/server/0239-Add-hand-to-bucket-events.patch
@@ -36,7 +36,7 @@ index c4aa14e81151ada49e61f4dd25267f7eb10450a6..dd2710f2a093fcca9f80edf41866459d
public float getSharedSpawnAngle() {
return this.levelData.getSpawnAngle();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
-index fe90b59a71b85afd3f4b5f7c4d4ba66ed74a05df..c9dcbc2dcb2736d0f448496c67121db29b7d4deb 100644
+index 0cf990f220fad6e945bda590263b78ea2e5a3b03..a43349c47292154dfc56c72c58ba9f29f6765d83 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -87,7 +87,7 @@ public class Cow extends Animal {
@@ -49,7 +49,7 @@ index fe90b59a71b85afd3f4b5f7c4d4ba66ed74a05df..c9dcbc2dcb2736d0f448496c67121db2
if (event.isCancelled()) {
return InteractionResult.PASS;
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
-index 454e07a47d35b8dc8e5f1fb38da74669b4f7cdc7..15787afad42f9299638a1c9e57d26678805f18ee 100644
+index 68b116697d6cf3dbb1fa25d6e9ca9bbb10f346a3..32d0387b6c66462ca965add78a562dec3c4b95a9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -180,7 +180,7 @@ public class Goat extends Animal {
@@ -117,10 +117,10 @@ index 5870023250ed2dba16b2fa5c6a8be6f36cebc640..650b59b69eb12112bc71e5ff164767e3
int i = blockposition.getX();
int j = blockposition.getY();
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 17f596e6059334114ce3ee17fbde1ce3d14c5ca1..96c685ffbf6058b69f0c573a1255a9e8596365bf 100644
+index b5aa61cecf15e38105cf4bef92b6859aaa450dbd..2647b88ffffa393e744d9e003032468acc92668a 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -292,6 +292,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -294,6 +294,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return true;
}
// Paper end
diff --git a/patches/server/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
index 10683d35b..32c918a5c 100644
--- a/patches/server/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
+++ b/patches/server/0244-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
@@ -8,7 +8,7 @@ Add -Ddebug.entities=true to your JVM flags to gain more information
1.17: Needs to be reworked for new entity storage system
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 272840d1f463276944cf4aa941f4451895fa8594..ab3a6aaa7d9df119af219a0c7cd83a763b8c830c 100644
+index 5e53ef4b71969737f900063ab631f4a1ce74cb90..a85f96c5cb661082962cd768eaf41affb8e2fe15 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1206,6 +1206,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -85,7 +85,7 @@ index 2a6954e3c9ff82d68647bf8f4c4803184fab0bbe..b4f2b969ad30be38c0a9e3f8efd2a57c
if (this.bukkitEntity == null) {
this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 96c685ffbf6058b69f0c573a1255a9e8596365bf..e0458f1340b6f42fecab18d09538414a53708b14 100644
+index 2647b88ffffa393e744d9e003032468acc92668a..76cb42b147e05595e64c4ff6f13881780a1a9be4 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -141,6 +141,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
diff --git a/patches/server/0245-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0245-Add-Early-Warning-Feature-to-WatchDog.patch
index b81dc1b06..6d44129f2 100644
--- a/patches/server/0245-Add-Early-Warning-Feature-to-WatchDog.patch
+++ b/patches/server/0245-Add-Early-Warning-Feature-to-WatchDog.patch
@@ -48,10 +48,10 @@ index 1bffdc632a19318325b60ef737f9e8555ae40230..7b760a65cad1f7dd5adb3a05b8b5ed7d
long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop
lastTick = start - TICK_TIME; // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c6c8f40521e4039406120dbde5c01e5ad28f58d8..c611cd9677e988290c8d2f27fe7ff88d0d826779 100644
+index d10da7acb03a2e4a67cee41a6f6fc6357eb8efd6..d62c4092737b8dc3973a67377a56370f1f27e0cb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -824,6 +824,7 @@ public final class CraftServer implements Server {
+@@ -835,6 +835,7 @@ public final class CraftServer implements Server {
@Override
public void reload() {
@@ -59,7 +59,7 @@ index c6c8f40521e4039406120dbde5c01e5ad28f58d8..c611cd9677e988290c8d2f27fe7ff88d
this.reloadCount++;
this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
-@@ -935,6 +936,7 @@ public final class CraftServer implements Server {
+@@ -953,6 +954,7 @@ public final class CraftServer implements Server {
this.enablePlugins(PluginLoadOrder.STARTUP);
this.enablePlugins(PluginLoadOrder.POSTWORLD);
this.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD));
diff --git a/patches/server/0251-Restore-vanlla-default-mob-spawn-range-and-water-ani.patch b/patches/server/0251-Restore-vanlla-default-mob-spawn-range-and-water-ani.patch
index 077591e0e..22843d43e 100644
--- a/patches/server/0251-Restore-vanlla-default-mob-spawn-range-and-water-ani.patch
+++ b/patches/server/0251-Restore-vanlla-default-mob-spawn-range-and-water-ani.patch
@@ -18,16 +18,3 @@ index c45332fa7b374e7775ca24a7065af3cb5c85d7cf..45be7d1821497f13ab0da3c4bbff7585
this.log( "Mob Spawn Range: " + this.mobSpawnRange );
}
-diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
-index 6474a7fb738e1238cc272afc5ff14b645947e688..6d71bd0db752e6f523364ca5351579b6bcb434c8 100644
---- a/src/main/resources/configurations/bukkit.yml
-+++ b/src/main/resources/configurations/bukkit.yml
-@@ -26,7 +26,7 @@ settings:
- spawn-limits:
- monsters: 70
- animals: 10
-- water-animals: 15
-+ water-animals: 5
- water-ambient: 20
- ambient: 15
- chunk-gc:
diff --git a/patches/server/0252-Slime-Pathfinder-Events.patch b/patches/server/0252-Slime-Pathfinder-Events.patch
index 36c2514c9..c7b7672a7 100644
--- a/patches/server/0252-Slime-Pathfinder-Events.patch
+++ b/patches/server/0252-Slime-Pathfinder-Events.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Slime Pathfinder Events
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
-index f1b0e8f3de0b54837770a49d2c663ebf6915d8be..28e03ed12848cba961aaae1b04b25b1e724a728b 100644
+index 239f3a17ab8cff4e6c97044e4f8e6755abac193d..82747a12d4977ed2d26d203f690ecc9bdbfadfc1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -44,6 +44,12 @@ import net.minecraft.world.level.biome.Biomes;
diff --git a/patches/server/0256-Add-PhantomPreSpawnEvent.patch b/patches/server/0256-Add-PhantomPreSpawnEvent.patch
index 417305d74..a16956ca3 100644
--- a/patches/server/0256-Add-PhantomPreSpawnEvent.patch
+++ b/patches/server/0256-Add-PhantomPreSpawnEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PhantomPreSpawnEvent
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 5df9ad398ba173bb0ff4770673f8eb5967325c5a..877095c93e944293dfb52471eda59a24fad2dbc9 100644
+index 7cbb16646c6c83d443deedaf425d18d6de76e314..080f6d12838faf47ead0958d6bc08f26f78c4671 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -172,6 +172,11 @@ public class Phantom extends FlyingMob implements Enemy {
diff --git a/patches/server/0257-Add-More-Creeper-API.patch b/patches/server/0257-Add-More-Creeper-API.patch
index 81ec9666e..ce701d671 100644
--- a/patches/server/0257-Add-More-Creeper-API.patch
+++ b/patches/server/0257-Add-More-Creeper-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add More Creeper API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
-index 3bbf6c9bfbb79fd4242cf66d7ace1d8f87404636..e8c36e8541f041a0d72a86f49ced2a3ce1549be0 100644
+index dc7ad6f2a1ae71c411fb39460b52cd1129c928c4..bbca035b89c2334e65abc46dd76234c833ac222d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -309,7 +309,18 @@ public class Creeper extends Monster implements PowerableMob {
diff --git a/patches/server/0259-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0259-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index d3ab43ce6..8de0121b8 100644
--- a/patches/server/0259-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/patches/server/0259-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 687798fab7d38eccf679727f047ceb6f196ffb5c..74825cd20ae25bbaa1f69ecb208a1c01c1213083 100644
+index 375c3adac2dc80f15d06e8acb11c8c451ec579e5..bccc66266739954ca5d7208d233884f5270e0064 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -368,7 +368,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -369,7 +369,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
diff --git a/patches/server/0260-Asynchronous-chunk-IO-and-loading.patch b/patches/server/0260-Asynchronous-chunk-IO-and-loading.patch
index e184f8667..7c8f06b23 100644
--- a/patches/server/0260-Asynchronous-chunk-IO-and-loading.patch
+++ b/patches/server/0260-Asynchronous-chunk-IO-and-loading.patch
@@ -3622,10 +3622,10 @@ index e5e138fb23d03eb63e547e74d3e14ec9d96d8107..90f7b06bd2c558be35c4577044fa033e
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 74825cd20ae25bbaa1f69ecb208a1c01c1213083..e43135fc10cb2d024295cbe89daf7127fec4898c 100644
+index bccc66266739954ca5d7208d233884f5270e0064..034c2886b4e29be40fa2e5e213a7457d803c0f55 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1786,6 +1786,34 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1811,6 +1811,34 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public DragonBattle getEnderDragonBattle() {
return (this.getHandle().dragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().dragonFight());
}
diff --git a/patches/server/0261-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0261-Add-ray-tracing-methods-to-LivingEntity.patch
index ce827d508..94507390d 100644
--- a/patches/server/0261-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0261-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -28,7 +28,7 @@ index 49fd3486a6c595749f33bbe1c1bec0454e4725c5..5c290f263fc2b643987c96ea75729bf1
switch (enumDirection) {
case DOWN:
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 96866aaa40a8c20384941b1619faa61f2f71d250..fd92591e563529c5ef8099df934c413218c1a611 100644
+index 85aae87d03219a53e5aec2b9983dac2831aff82e..a44a8856d9f6a71a789a7335501abebfd23635be 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3690,6 +3690,23 @@ public abstract class LivingEntity extends Entity {
diff --git a/patches/server/0262-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0262-Expose-attack-cooldown-methods-for-Player.patch
index 3f2f284ed..1604c4025 100644
--- a/patches/server/0262-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0262-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 6b6c3fbccbf9b4fe2e362c3b2e23920b429a1295..f88921668305085d79edee265a1457cd3d22a338 100644
+index 02ba74a1f503a8f48c41754175b8e5ba2a468433..e9548f8009bdca7e6673cd03e252507c9f8563e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2289,6 +2289,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0263-Improve-death-events.patch b/patches/server/0263-Improve-death-events.patch
index 3bff5e564..bc7550d7a 100644
--- a/patches/server/0263-Improve-death-events.patch
+++ b/patches/server/0263-Improve-death-events.patch
@@ -269,7 +269,7 @@ index f9375dbbeda6fdc92406fe5d93df0467e6e70672..b41e6fb0b7e02b50e5ad05555ed911d0
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index aac0938fab644218fa642faa4f26ca65a0d24941..1ca818e242221d426aa1736c5d24d96651dfd579 100644
+index e9548f8009bdca7e6673cd03e252507c9f8563e9..22d223e8da8ab80baafdad387c058a33e014501f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1869,7 +1869,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -289,7 +289,7 @@ index aac0938fab644218fa642faa4f26ca65a0d24941..1ca818e242221d426aa1736c5d24d966
public void injectScaledMaxHealth(Collection collection, boolean force) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index fb17ab47d45b1cb2aa48ba28c452a683ce8a1568..da7648b816b5f6df54b23829443bb2100921e9b4 100644
+index e094b1b00d5fb73da73abcadb02ffd98b91fb869..3ef52d7705f3c59e19c56aac6250f2e5b5712600 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -807,9 +807,16 @@ public class CraftEventFactory {
diff --git a/patches/server/0269-Prevent-mob-spawning-from-loading-generating-chunks.patch b/patches/server/0269-Prevent-mob-spawning-from-loading-generating-chunks.patch
index 6e4bcaddf..f2712fc3f 100644
--- a/patches/server/0269-Prevent-mob-spawning-from-loading-generating-chunks.patch
+++ b/patches/server/0269-Prevent-mob-spawning-from-loading-generating-chunks.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Prevent mob spawning from loading/generating chunks
also prevents if out of world border bounds
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index f208239b69dbd8788b799d8b28e457017edef9d5..c3fa1e8077f0f6a1f533c644dda9cb29265129a6 100644
+index ca0fcf46e67deb07a3fdb071b771a7603e0fc3d0..c8b9877135aebf1f500ab9b00d94dde0e846d247 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-@@ -188,9 +188,9 @@ public final class NaturalSpawner {
+@@ -193,9 +193,9 @@ public final class NaturalSpawner {
StructureFeatureManager structuremanager = world.structureFeatureManager();
ChunkGenerator chunkgenerator = world.getChunkSource().getGenerator();
int i = pos.getY();
@@ -21,7 +21,7 @@ index f208239b69dbd8788b799d8b28e457017edef9d5..c3fa1e8077f0f6a1f533c644dda9cb29
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
int j = 0;
int k = 0;
-@@ -219,7 +219,7 @@ public final class NaturalSpawner {
+@@ -224,7 +224,7 @@ public final class NaturalSpawner {
if (entityhuman != null) {
double d2 = entityhuman.distanceToSqr(d0, (double) i, d1);
diff --git a/patches/server/0275-Add-sun-related-API.patch b/patches/server/0275-Add-sun-related-API.patch
index 75ed3a863..e7fc1454c 100644
--- a/patches/server/0275-Add-sun-related-API.patch
+++ b/patches/server/0275-Add-sun-related-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index e43135fc10cb2d024295cbe89daf7127fec4898c..eea482e6acdda3b3f84eb49697957f78edac6f20 100644
+index 034c2886b4e29be40fa2e5e213a7457d803c0f55..a6884bde5e6e717c5f37b0b96070b44f1253ce35 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -663,6 +663,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -664,6 +664,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
}
diff --git a/patches/server/0278-MC-50319-Check-other-worlds-for-shooter-of-projectil.patch b/patches/server/0278-MC-50319-Check-other-worlds-for-shooter-of-projectil.patch
index de48da88a..a248ef80d 100644
--- a/patches/server/0278-MC-50319-Check-other-worlds-for-shooter-of-projectil.patch
+++ b/patches/server/0278-MC-50319-Check-other-worlds-for-shooter-of-projectil.patch
@@ -11,7 +11,7 @@ If the projectile fails to find the shooter in the current world, check
other worlds.
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index d7d4aa7ed2f321df8099adb97a3c699ed38ae6fc..21ce4be0d8d0147a92f87e17bb5078a211419984 100644
+index daa55eed9cf385c7e2cdd0a5dceaf0a719652213..458a70f6e76eba707b890c78cbfd4f967eaf8a1b 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -57,6 +57,18 @@ public abstract class Projectile extends Entity {
diff --git a/patches/server/0280-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0280-Add-Velocity-IP-Forwarding-Support.patch
index fd21c1ad5..2b0da6b13 100644
--- a/patches/server/0280-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0280-Add-Velocity-IP-Forwarding-Support.patch
@@ -225,10 +225,10 @@ index 39bdda56aaa5503efc15207261634127b462c3e7..3fd913f3e963cf2da849a52364356e3b
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c611cd9677e988290c8d2f27fe7ff88d0d826779..e4db68be9fa9d275c13360309d3d3ac5dfab07da 100644
+index d62c4092737b8dc3973a67377a56370f1f27e0cb..921128242ba133d73d2ac592a5f4b7515ef2e46c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -697,7 +697,7 @@ public final class CraftServer implements Server {
+@@ -703,7 +703,7 @@ public final class CraftServer implements Server {
@Override
public long getConnectionThrottle() {
// Spigot Start - Automatically set connection throttle for bungee configurations
diff --git a/patches/server/0281-Add-more-Witch-API.patch b/patches/server/0281-Add-more-Witch-API.patch
index e6291b7c0..ce3083628 100644
--- a/patches/server/0281-Add-more-Witch-API.patch
+++ b/patches/server/0281-Add-more-Witch-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add more Witch API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
-index e26ce4d8b3a3af8d6347f8c8c36703aeb06da520..8c3e8c12d7405ad388342e304430834a5fad12a9 100644
+index 94bd20db7ffea00579225e6887b8c78a3da3ff1a..365354910047631b0a4402f29ad156e6447c2606 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -1,5 +1,8 @@
diff --git a/patches/server/0282-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/server/0282-Check-Drowned-for-Villager-Aggression-Config.patch
index 32fbb8a77..10fd039a0 100644
--- a/patches/server/0282-Check-Drowned-for-Villager-Aggression-Config.patch
+++ b/patches/server/0282-Check-Drowned-for-Villager-Aggression-Config.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Check Drowned for Villager Aggression Config
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
-index bacc065a9ce619fb0ac15b61cc5032c6bec00019..50228e59d629e75e97d23bd3ec92088f75480827 100644
+index 58372e9dc3d9ed751feca0cebf2306587f418ebb..8a9a9bfa95db08d063a6409f2e4cf2aa26ec3b0b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -79,7 +79,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
diff --git a/patches/server/0287-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0287-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
index d8652d173..a21cc9744 100644
--- a/patches/server/0287-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
+++ b/patches/server/0287-Improve-Server-Thread-Pool-and-Thread-Priorities.patch
@@ -67,7 +67,7 @@ index 65e0ca442980f273d2fe5f131e174cd92f80da20..81f4f26a6b83079d36acd1fd86dede0e
return executorService;
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 7210ad3c4d83b883590c7659925b8b3f56a057e5..75769e37d803f35e5bd484c713c1bd9437babf4f 100644
+index 00920e574ee1f104781d1f776d88ec9cd45eda93..a9f40f74cbd35533c6a334020c4f3ecd7ced3a43 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -317,6 +317,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop extends Craft
diff --git a/patches/server/0338-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/patches/server/0338-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch
index 62ca85417..0d526cc3f 100644
--- a/patches/server/0338-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch
+++ b/patches/server/0338-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch
@@ -37,7 +37,7 @@ index 3816623fa85db14a89bd165221695de1a39e70c0..9d52060319e6a0403c9979766c761e2f
}
+
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index c3fa1e8077f0f6a1f533c644dda9cb29265129a6..95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b 100644
+index c8b9877135aebf1f500ab9b00d94dde0e846d247..eeefd5b5d1cd4c1b38e706210fd0e56b17969b18 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -85,6 +85,13 @@ public final class NaturalSpawner {
diff --git a/patches/server/0339-Configurable-projectile-relative-velocity.patch b/patches/server/0339-Configurable-projectile-relative-velocity.patch
index 6d022ae59..1b8e852f0 100644
--- a/patches/server/0339-Configurable-projectile-relative-velocity.patch
+++ b/patches/server/0339-Configurable-projectile-relative-velocity.patch
@@ -40,7 +40,7 @@ index 9d52060319e6a0403c9979766c761e2f5324f6aa..de1820a6b0e568bbc13eea7a31e5cd40
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
-index 21ce4be0d8d0147a92f87e17bb5078a211419984..37356b36f0ae12d55150f399318581fa77c30cee 100644
+index 458a70f6e76eba707b890c78cbfd4f967eaf8a1b..6339203bda5e569d5df241dd589eb36e7233704b 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -161,7 +161,7 @@ public abstract class Projectile extends Entity {
diff --git a/patches/server/0341-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch b/patches/server/0341-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch
index 33ad3c0b0..56bd993bd 100644
--- a/patches/server/0341-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch
+++ b/patches/server/0341-Do-less-work-if-we-have-a-custom-Bukkit-generator.patch
@@ -7,7 +7,7 @@ If the Bukkit generator already has a spawn, use it immediately instead
of spending time generating one that we won't use
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index e029064acc58332914eef0524ad991a45d368c93..1fa7e8890987f8f98af51e7e4cc03596f2207678 100644
+index d284ed9d1cc6ea3ee2e7878faf43184507f91186..728719e488444ada53698a4aa7ac66ded324bf67 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -690,12 +690,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 10c56aa51a6dcfec8ef00faeeea4191188f24d36..0b11b136834f57a633f9461c7ad956b3c531f3ea 100644
+index 363d86e4a35b87c3fabf7a0e4b6d9e6c2caaf3de..188b549fc56e1394c7119da99e4732065b256388 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -242,6 +242,7 @@ public class ServerPlayer extends Player {
@@ -545,10 +545,10 @@ index 4ba978af436cb114aa5274df5cd8bd25ff7be2c9..10eb562d2089dc20c9ec33956c3e2f98
while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index d050d60900a6829a9409ef944d7e4fceb5248dc1..a49fdaa7b7a0ed82e4a1ebab0a4fb086e86b8e36 100644
+index 92313e70c30ca5acc0e7b54d55a972f024bad162..7023d83b2c0d36c5a56af47b69ca43f44dd9e47f 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -528,8 +528,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -530,8 +530,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.setBlocksDirty(blockposition, iblockdata1, iblockdata2);
}
@@ -640,10 +640,10 @@ index 515e28eea8cbab261320352ee0db9b877807f3ed..83ed84f89a036d3768b22a36bc8a0bfc
this.postProcessing[i].clear();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 86fb57b2d014e88bc25eae9c30ebb7b40ca60e80..fcf7076c1df858d35d6b69995b7c4768233b8370 100644
+index d580a66dd741b63dd8ed89d7b976b1612cfb4d90..01ac6e7e7b4b6c61d01684c77ecc2238afcaa8f1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1897,10 +1897,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1922,10 +1922,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot start
@Override
public int getViewDistance() {
diff --git a/patches/server/0370-Tracking-Range-Improvements.patch b/patches/server/0370-Tracking-Range-Improvements.patch
index 0e8cfe86e..b2916d203 100644
--- a/patches/server/0370-Tracking-Range-Improvements.patch
+++ b/patches/server/0370-Tracking-Range-Improvements.patch
@@ -8,7 +8,7 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code
Also ignores Enderdragon, defaulting it to Mojang's setting
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index d2080cfe58f7e241c9612ad0e500240dcb341878..48ca60925b15d7e320cf07467bd0cf9ddee2a036 100644
+index 72471db48a9c67ced8b1ef1ebb3381be4f773e06..e6ae3405995c4e472a731311695de7ef9b2d704b 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1885,6 +1885,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
diff --git a/patches/server/0372-implement-optional-per-player-mob-spawns.patch b/patches/server/0372-implement-optional-per-player-mob-spawns.patch
index 1964e45a2..c97fc0ae4 100644
--- a/patches/server/0372-implement-optional-per-player-mob-spawns.patch
+++ b/patches/server/0372-implement-optional-per-player-mob-spawns.patch
@@ -548,7 +548,7 @@ index 0000000000000000000000000000000000000000..11de56afaf059b00fa5bec293516bcdc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 48ca60925b15d7e320cf07467bd0cf9ddee2a036..46b23a1e543c55b71a7837af41df8cf89d72c22b 100644
+index e6ae3405995c4e472a731311695de7ef9b2d704b..f604fd1a4eb9ac5b7f43962a583183441a680319 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -145,6 +145,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -589,7 +589,7 @@ index 48ca60925b15d7e320cf07467bd0cf9ddee2a036..46b23a1e543c55b71a7837af41df8cf8
double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8);
double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8);
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index ddd535ad7d2b051e0d05320e4491bad46df8ffbe..cb273030b70f1d41110b90effe3d542ab930fe39 100644
+index 5d920d7df52c12f5f1d1d8111340800cbddaac78..9f71dc37b0cef2284d6abc051b379cfa1b7e1eb5 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -912,7 +912,22 @@ public class ServerChunkCache extends ChunkSource {
@@ -617,7 +617,7 @@ index ddd535ad7d2b051e0d05320e4491bad46df8ffbe..cb273030b70f1d41110b90effe3d542a
this.lastSpawnState = spawnercreature_d;
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0b11b136834f57a633f9461c7ad956b3c531f3ea..61202cc8610b9becb5e44e1897ff372bc1e5a2ac 100644
+index 188b549fc56e1394c7119da99e4732065b256388..7adb5ba76810d39c61e25beeb781f384ce96396a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -224,6 +224,11 @@ public class ServerPlayer extends Player {
@@ -641,7 +641,7 @@ index 0b11b136834f57a633f9461c7ad956b3c531f3ea..61202cc8610b9becb5e44e1897ff372b
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecdf55e268c 100644
+index eeefd5b5d1cd4c1b38e706210fd0e56b17969b18..d69abf154f056883dcd6dc4d9d97d2b772b62368 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -17,6 +17,7 @@ import net.minecraft.core.Registry;
@@ -677,7 +677,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
});
}
}
-@@ -161,13 +172,31 @@ public final class NaturalSpawner {
+@@ -166,13 +177,31 @@ public final class NaturalSpawner {
continue;
}
@@ -711,7 +711,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
}
}
-@@ -175,12 +204,18 @@ public final class NaturalSpawner {
+@@ -180,12 +209,18 @@ public final class NaturalSpawner {
world.getProfiler().pop();
}
@@ -731,7 +731,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
}
@VisibleForDebug
-@@ -191,15 +226,21 @@ public final class NaturalSpawner {
+@@ -196,15 +231,21 @@ public final class NaturalSpawner {
});
}
@@ -754,7 +754,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
int k = 0;
while (k < 3) {
-@@ -241,14 +282,14 @@ public final class NaturalSpawner {
+@@ -246,14 +287,14 @@ public final class NaturalSpawner {
// Paper start
Boolean doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2);
if (doSpawning == null) {
@@ -771,7 +771,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
}
entityinsentient.moveTo(d0, (double) i, d1, world.random.nextFloat() * 360.0F, 0.0F);
-@@ -260,10 +301,15 @@ public final class NaturalSpawner {
+@@ -265,10 +306,15 @@ public final class NaturalSpawner {
++j;
++k1;
runner.run(entityinsentient, chunk);
@@ -789,7 +789,7 @@ index 95e5660e6cb1afb5ebdb3dbbe59a07c879bddb4b..88145f04989c71a686aae1b486087ecd
}
if (entityinsentient.isMaxGroupSizeReached(k1)) {
-@@ -285,6 +331,7 @@ public final class NaturalSpawner {
+@@ -290,6 +336,7 @@ public final class NaturalSpawner {
}
}
diff --git a/patches/server/0373-Avoid-hopper-searches-if-there-are-no-items.patch b/patches/server/0373-Avoid-hopper-searches-if-there-are-no-items.patch
index b5caa444b..6833e121e 100644
--- a/patches/server/0373-Avoid-hopper-searches-if-there-are-no-items.patch
+++ b/patches/server/0373-Avoid-hopper-searches-if-there-are-no-items.patch
@@ -14,10 +14,10 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear
Combined, this adds up a lot.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index a49fdaa7b7a0ed82e4a1ebab0a4fb086e86b8e36..4104a793bda81ab26f86b5e1eef6e6722b74731a 100644
+index 7023d83b2c0d36c5a56af47b69ca43f44dd9e47f..0e70bce9f030b0bc058b52301860dbb2f0b1b7ed 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -994,7 +994,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -996,7 +996,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
}
diff --git a/patches/server/0374-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0374-Bees-get-gravity-in-void.-Fixes-MC-167279.patch
index 54eaba16b..ca3aaf364 100644
--- a/patches/server/0374-Bees-get-gravity-in-void.-Fixes-MC-167279.patch
+++ b/patches/server/0374-Bees-get-gravity-in-void.-Fixes-MC-167279.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Bees get gravity in void. Fixes MC-167279
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
-index 51a1d061e539418cfd169e806ee0b51adccaf21a..8e2ebb2ba724d94c5723d82affc01ccb264c95c5 100644
+index 47be3e33f89bdd633aba381c8c3052cfebf64d48..2487d636338cb968496166c68c3155d2913d6c41 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -143,7 +143,22 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
diff --git a/patches/server/0375-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0375-Optimise-getChunkAt-calls-for-loaded-chunks.patch
index 4b23b4095..28d4d369d 100644
--- a/patches/server/0375-Optimise-getChunkAt-calls-for-loaded-chunks.patch
+++ b/patches/server/0375-Optimise-getChunkAt-calls-for-loaded-chunks.patch
@@ -7,7 +7,7 @@ bypass the need to get a player chunk, then get the either,
then unwrap it...
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index cb273030b70f1d41110b90effe3d542ab930fe39..374678fbcdedc9845e45ecbc91723540392d3d22 100644
+index 9f71dc37b0cef2284d6abc051b379cfa1b7e1eb5..9b69e1fe5432b25f0908dc977188d283ae9feac4 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -609,6 +609,12 @@ public class ServerChunkCache extends ChunkSource {
diff --git a/patches/server/0376-Add-debug-for-sync-chunk-loads.patch b/patches/server/0376-Add-debug-for-sync-chunk-loads.patch
index 19ad0ed13..121bed55e 100644
--- a/patches/server/0376-Add-debug-for-sync-chunk-loads.patch
+++ b/patches/server/0376-Add-debug-for-sync-chunk-loads.patch
@@ -305,7 +305,7 @@ index 0000000000000000000000000000000000000000..0bb4aaa546939b67a5d22865190f3047
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 374678fbcdedc9845e45ecbc91723540392d3d22..472146bea17f323397df1d3ed1aa31fc91a8741c 100644
+index 9b69e1fe5432b25f0908dc977188d283ae9feac4..c6213a7dfcf9aeccdb546eaf74fa8eb119a6a32c 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -641,6 +641,7 @@ public class ServerChunkCache extends ChunkSource {
diff --git a/patches/server/0382-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0382-add-hand-to-BlockMultiPlaceEvent.patch
index 14ab529e6..ca7db3b7f 100644
--- a/patches/server/0382-add-hand-to-BlockMultiPlaceEvent.patch
+++ b/patches/server/0382-add-hand-to-BlockMultiPlaceEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ce67bbe8d29abe61d6e7db7b0a5c8f695ed2a1a1..1ae46f54e88b5e0eb218689d39ddadafd4f98d57 100644
+index 3ef52d7705f3c59e19c56aac6250f2e5b5712600..4c2ebb2eb93c1f8a805dbe0919f9726ccb4fff1f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -344,13 +344,18 @@ public class CraftEventFactory {
diff --git a/patches/server/0385-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0385-Add-option-to-allow-iron-golems-to-spawn-in-air.patch
index cbe11cfe2..0b5280bda 100644
--- a/patches/server/0385-Add-option-to-allow-iron-golems-to-spawn-in-air.patch
+++ b/patches/server/0385-Add-option-to-allow-iron-golems-to-spawn-in-air.patch
@@ -21,7 +21,7 @@ index 6316597c52cb23f3cea81c95c0f7a7a289028537..7dbd6fad3824bfe62c6c2a59804fb872
private void armorStandEntityLookups() {
armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
-index b5481299f551b7150425a4a1b1c21b43d8a1d382..ec00c2dd8f969eb99ec6a014e3bcd09c7484b237 100644
+index cc02d6324c61ce5e6387577fd08c6dfb549001bc..bf731a227944875320857e5838d50f15af13b0c1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -322,7 +322,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
diff --git a/patches/server/0386-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0386-Configurable-chance-of-villager-zombie-infection.patch
index 06d1d76cc..ea110d3d3 100644
--- a/patches/server/0386-Configurable-chance-of-villager-zombie-infection.patch
+++ b/patches/server/0386-Configurable-chance-of-villager-zombie-infection.patch
@@ -24,7 +24,7 @@ index 7dbd6fad3824bfe62c6c2a59804fb8723f8745d1..1218411afe1e2e3c2ee54aec6287ff33
private void lightQueueSize() {
lightQueueSize = getInt("light-queue-size", lightQueueSize);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
-index 328fe2062c00d83b35f731a07f7c0d99230a3a6c..46227aa96dce27570031d5390ececfdb91ec70d6 100644
+index 4f328c3281663a55eef879604d713ff38d797298..26200a9680d5fc95b04ba0c70ea20e145c4c220b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -452,10 +452,13 @@ public class Zombie extends Monster {
diff --git a/patches/server/0389-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0389-Pillager-patrol-spawn-settings-and-per-player-option.patch
index 6095f709a..29e03ac93 100644
--- a/patches/server/0389-Pillager-patrol-spawn-settings-and-per-player-option.patch
+++ b/patches/server/0389-Pillager-patrol-spawn-settings-and-per-player-option.patch
@@ -36,7 +36,7 @@ index 1218411afe1e2e3c2ee54aec6287ff33b59afd01..03c45d4fa891e9f00d4b6b24cfc14408
private void entitiesTargetWithFollowRange() {
entitiesTargetWithFollowRange = getBoolean("entities-target-with-follow-range", entitiesTargetWithFollowRange);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 61202cc8610b9becb5e44e1897ff372bc1e5a2ac..7ef6f889ed4b94559bf270f097ee4cc49e9f4df6 100644
+index 7adb5ba76810d39c61e25beeb781f384ce96396a..bbc8f7909b6ae8452a8f3c697bfba92d0170dbe1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -220,6 +220,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0391-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0391-Do-not-allow-bees-to-load-chunks-for-beehives.patch
index aa2b091de..d2ab46a55 100644
--- a/patches/server/0391-Do-not-allow-bees-to-load-chunks-for-beehives.patch
+++ b/patches/server/0391-Do-not-allow-bees-to-load-chunks-for-beehives.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Do not allow bees to load chunks for beehives
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
-index 8e2ebb2ba724d94c5723d82affc01ccb264c95c5..2639f64f1a50faddc0284fb26b73b563b3e9eba9 100644
+index 2487d636338cb968496166c68c3155d2913d6c41..083640b7e4aee75db9b884aebd640c9410e669ca 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -409,6 +409,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
diff --git a/patches/server/0392-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0392-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch
index c7f9abbe1..7e32292cc 100644
--- a/patches/server/0392-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch
+++ b/patches/server/0392-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch
@@ -7,7 +7,7 @@ Suspected case would be around the technique used in .stopRiding
Stack will identify any causer of this and warn instead of crashing.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 46b23a1e543c55b71a7837af41df8cf89d72c22b..147ee80242758417464a7cdf02e746758b54f6d7 100644
+index f604fd1a4eb9ac5b7f43962a583183441a680319..bc08adcbb681aef3d5f3fa52def018d085a129dc 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1557,6 +1557,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0394-Don-t-tick-dead-players.patch b/patches/server/0394-Don-t-tick-dead-players.patch
index 029b1777b..85b1f297a 100644
--- a/patches/server/0394-Don-t-tick-dead-players.patch
+++ b/patches/server/0394-Don-t-tick-dead-players.patch
@@ -7,7 +7,7 @@ Causes sync chunk loads and who knows what all else.
This is safe because Spectators are skipped in unloaded chunks too in vanilla.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 7ef6f889ed4b94559bf270f097ee4cc49e9f4df6..f158f77e4a397673b18827883a2eda99c9aaf028 100644
+index bbc8f7909b6ae8452a8f3c697bfba92d0170dbe1..ce5efb4bf439005d8a25aff1607238389e856cd8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -638,7 +638,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0395-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0395-Dead-Player-s-shouldn-t-be-able-to-move.patch
index 4fe2bc871..7a4bf27b8 100644
--- a/patches/server/0395-Dead-Player-s-shouldn-t-be-able-to-move.patch
+++ b/patches/server/0395-Dead-Player-s-shouldn-t-be-able-to-move.patch
@@ -7,7 +7,7 @@ This fixes a lot of game state issues where packets were delayed for processing
due to 1.15's new queue but processed while dead.
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 22ca888f0ec650616c098c8ffedfde5ea32ea4cb..4a49c06bdae9f2dd684743f434d96817d472de06 100644
+index 19b5538e54f1c6073c3478393c1388ffca33291e..e9db4d972abfd7807137e32abc8b1096be4776b5 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1104,7 +1104,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0396-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0396-Don-t-move-existing-players-to-world-spawn.patch
index af3fa0652..b66c23f30 100644
--- a/patches/server/0396-Don-t-move-existing-players-to-world-spawn.patch
+++ b/patches/server/0396-Don-t-move-existing-players-to-world-spawn.patch
@@ -10,7 +10,7 @@ larger than the keep loaded range.
By skipping this, we avoid potential for a large spike on server start.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f158f77e4a397673b18827883a2eda99c9aaf028..3f57c10472c8add423f1d237ad03e525113e444c 100644
+index ce5efb4bf439005d8a25aff1607238389e856cd8..642ef5b0b6660f4fbee91c46c016125960bb9e9d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -310,7 +310,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0397-Add-tick-times-API-and-mspt-command.patch b/patches/server/0397-Add-tick-times-API-and-mspt-command.patch
index b33fb824f..cf8568ad3 100644
--- a/patches/server/0397-Add-tick-times-API-and-mspt-command.patch
+++ b/patches/server/0397-Add-tick-times-API-and-mspt-command.patch
@@ -146,10 +146,10 @@ index 026397cbedd2d1cd08ec8a82a3468f35cd8e4765..74051c9b620516dc2f302b1595e74faf
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7289ebb6ae2c38964acc362d911b3f6c9f08f5b9..d141e1edc81c1f3af8104541e571a1d34c392e76 100644
+index 8242d6d7471c78cc298d5c385f075e368ab80edf..c81230560a729492557bce00aeecb683ade1b072 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2352,6 +2352,16 @@ public final class CraftServer implements Server {
+@@ -2380,6 +2380,16 @@ public final class CraftServer implements Server {
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
};
}
diff --git a/patches/server/0398-Expose-MinecraftServer-isRunning.patch b/patches/server/0398-Expose-MinecraftServer-isRunning.patch
index 09dcb06f9..15d49d0c6 100644
--- a/patches/server/0398-Expose-MinecraftServer-isRunning.patch
+++ b/patches/server/0398-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index d141e1edc81c1f3af8104541e571a1d34c392e76..8831a73ee723bd510d48b577f3d765beb09d45d6 100644
+index c81230560a729492557bce00aeecb683ade1b072..6de0c6aa40b2962237584156c6270489fdbaa45a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2529,5 +2529,10 @@ public final class CraftServer implements Server {
+@@ -2557,5 +2557,10 @@ public final class CraftServer implements Server {
public int getCurrentTick() {
return net.minecraft.server.MinecraftServer.currentTick;
}
diff --git a/patches/server/0402-Improved-Watchdog-Support.patch b/patches/server/0402-Improved-Watchdog-Support.patch
index 22285a24a..834852d39 100644
--- a/patches/server/0402-Improved-Watchdog-Support.patch
+++ b/patches/server/0402-Improved-Watchdog-Support.patch
@@ -262,7 +262,7 @@ index b6ccc8cacb615a35a60c73f145b7bd1cf0b891ee..a335d48467d1730bfed25eb5fd9046e1
@Override
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 0f87595cb58d1ea0162b5eda81490c584a82aaf7..ced402efc036ae6111867c4c1872390b720659f3 100644
+index bc08adcbb681aef3d5f3fa52def018d085a129dc..41f8afe938ea4fc9ceb4e57867bde5ae9aa6530e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -581,6 +581,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -299,10 +299,10 @@ index 7bf4bf5cb2c1b54a7e2733091f48f3a824336d36..dcce05d2f4ab16424db4ab103a12188e
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 4104a793bda81ab26f86b5e1eef6e6722b74731a..f7fc4a9d3c0132df6024b33e4f893d3b7ebc6ec3 100644
+index 0e70bce9f030b0bc058b52301860dbb2f0b1b7ed..b2b433218d280b2abac40c90397633ef78bc9510 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -848,6 +848,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -850,6 +850,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
try {
tickConsumer.accept(entity);
} catch (Throwable throwable) {
@@ -323,10 +323,10 @@ index 016c2302d8bcf121eafd1be7eb4f3b206dbdbeec..1de1566b76c73ddfaf7e022296068db0
final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ());
net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8831a73ee723bd510d48b577f3d765beb09d45d6..92dc9b6829b591b20664306af1a8147cc8171734 100644
+index 6de0c6aa40b2962237584156c6270489fdbaa45a..6b1bc025d0072aa5d0c7609d1da355b9eae7df2d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1981,7 +1981,7 @@ public final class CraftServer implements Server {
+@@ -2004,7 +2004,7 @@ public final class CraftServer implements Server {
@Override
public boolean isPrimaryThread() {
diff --git a/patches/server/0407-Prevent-opening-inventories-when-frozen.patch b/patches/server/0407-Prevent-opening-inventories-when-frozen.patch
index bef14359f..e9c771ae8 100644
--- a/patches/server/0407-Prevent-opening-inventories-when-frozen.patch
+++ b/patches/server/0407-Prevent-opening-inventories-when-frozen.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 8b0e58618a78ea5dfe57ee67ed63b0b408e97d8c..1f62b23c69053e30c8a0d2989eb4a1d5976f0f13 100644
+index 642ef5b0b6660f4fbee91c46c016125960bb9e9d..004b5f1e280304312f820eaeaa7ac6a3e89980ca 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -609,7 +609,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0411-Implement-Player-Client-Options-API.patch b/patches/server/0411-Implement-Player-Client-Options-API.patch
index 1ab030db2..38a6ef177 100644
--- a/patches/server/0411-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0411-Implement-Player-Client-Options-API.patch
@@ -85,7 +85,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 1f62b23c69053e30c8a0d2989eb4a1d5976f0f13..4ab83e544dbe2b4fdd351ac30359089df847dc81 100644
+index 004b5f1e280304312f820eaeaa7ac6a3e89980ca..2f102c6160a01177820c3b82dce138c71a492526 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1807,6 +1807,7 @@ public class ServerPlayer extends Player {
@@ -97,7 +97,7 @@ index 1f62b23c69053e30c8a0d2989eb4a1d5976f0f13..4ab83e544dbe2b4fdd351ac30359089d
if (getMainArm() != packet.getMainHand()) {
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a30010595f98de56c59d54a97e5a5d0f0ab28d2d..80914eed36523b120e4d056497cb2ccb1cb5110d 100644
+index c52101f871ca6ba45027964281516056775c4290..991e9afd16de706ddc62ab2c121a87bc775142db 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -521,6 +521,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0412-Fix-Chunk-Post-Processing-deadlock-risk.patch b/patches/server/0412-Fix-Chunk-Post-Processing-deadlock-risk.patch
index bc363f5f8..36601a92d 100644
--- a/patches/server/0412-Fix-Chunk-Post-Processing-deadlock-risk.patch
+++ b/patches/server/0412-Fix-Chunk-Post-Processing-deadlock-risk.patch
@@ -25,7 +25,7 @@ This successfully fixed a reoccurring and highly reproduceable crash
for heightmaps.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index a586623ed0f7003905e053c238d9b62632b87bc6..205d6b9d822d3d28c9e8c3f5a511384ce82adc99 100644
+index 41f8afe938ea4fc9ceb4e57867bde5ae9aa6530e..291b7bd1c7951293d76b8bab399450628cd51d39 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -168,6 +168,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -46,7 +46,7 @@ index a586623ed0f7003905e053c238d9b62632b87bc6..205d6b9d822d3d28c9e8c3f5a511384c
completablefuture1.thenAcceptAsync((either) -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index c7ecb8fb1cbc1433986fbd03c68b4dbe5a2835c7..abd814f397a90fcaaf98a76ed83b5f9f76f2948e 100644
+index ec0d8e58a518a20634b902769251d6d04750433e..fe9711daa67151187906128c9d07ad967b72e677 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -1136,6 +1136,7 @@ public class ServerChunkCache extends ChunkSource {
diff --git a/patches/server/0415-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0415-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
index d7c82fe39..07a151d23 100644
--- a/patches/server/0415-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
+++ b/patches/server/0415-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch
@@ -28,7 +28,7 @@ receives a deterministic result, and should no longer require 1 tick
delays anymore.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 205d6b9d822d3d28c9e8c3f5a511384ce82adc99..22c691f3bfbfc5f8e7420c14de36a353b31fc123 100644
+index 291b7bd1c7951293d76b8bab399450628cd51d39..3a546b879d093702e36118231020cf41fe972410 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1566,6 +1566,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -40,7 +40,7 @@ index 205d6b9d822d3d28c9e8c3f5a511384ce82adc99..22c691f3bfbfc5f8e7420c14de36a353
if (!(entity instanceof EnderDragonPart)) {
EntityType> entitytypes = entity.getType();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 18945fe987f7464f9bc1a55145b3456c76859603..35bd140c7026a5d3f9e73c67716e983c1464ed8c 100644
+index 2f102c6160a01177820c3b82dce138c71a492526..4433734f070cecbec058648a619b10567e44eeab 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -243,6 +243,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0416-Load-Chunks-for-Login-Asynchronously.patch b/patches/server/0416-Load-Chunks-for-Login-Asynchronously.patch
index 24eb86da0..524bed692 100644
--- a/patches/server/0416-Load-Chunks-for-Login-Asynchronously.patch
+++ b/patches/server/0416-Load-Chunks-for-Login-Asynchronously.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Load Chunks for Login Asynchronously
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 35bd140c7026a5d3f9e73c67716e983c1464ed8c..2a5e811bd552ca3583cfa9cd57e68e7a7050bf8b 100644
+index 4433734f070cecbec058648a619b10567e44eeab..40692f3559eec910a653e89d3bc199fb9f17db27 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -178,6 +178,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch
index ef6624617..f537bf4e8 100644
--- a/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch
+++ b/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch
@@ -35,7 +35,7 @@ index d17b75ad13bbc8a38cdc2f2d77ee5d88438cec31..8fb89326395a7e70982c0d757b506565
private EntitySelector() {}
// Paper start
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
-index 877095c93e944293dfb52471eda59a24fad2dbc9..460a848bd2a417d05a0bbb084371c98b661a427f 100644
+index 080f6d12838faf47ead0958d6bc08f26f78c4671..53cb932d5af963c51b026440da49bdc402cae9fd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -547,6 +547,7 @@ public class Phantom extends FlyingMob implements Enemy {
diff --git a/patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch
index d6e8876fd..9dd3452ca 100644
--- a/patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch
+++ b/patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch
@@ -80,7 +80,7 @@ index 5802b1721a0d8e1c40d87be099d4f1b1c8a921d7..fbcbe0443f843d04738938f10b433bfe
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
-index bbde9b758643c087733064a126d90689d71830cf..069cdfce085909991a69ebec3004d407526d469d 100644
+index b41e6fb0b7e02b50e5ad05555ed911d09055d694..c5e9273055ff7302941b7475d8175be53eaece1f 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -611,7 +611,7 @@ public class ArmorStand extends LivingEntity {
@@ -102,7 +102,7 @@ index bbde9b758643c087733064a126d90689d71830cf..069cdfce085909991a69ebec3004d407
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 1ae46f54e88b5e0eb218689d39ddadafd4f98d57..00dc51a50e34240380411f7ebee23ece32f48d00 100644
+index 4c2ebb2eb93c1f8a805dbe0919f9726ccb4fff1f..54aa3a95118176e7f91f4d669253790167fcd958 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -827,7 +827,8 @@ public class CraftEventFactory {
diff --git a/patches/server/0422-Implement-Brigadier-Mojang-API.patch b/patches/server/0422-Implement-Brigadier-Mojang-API.patch
index 4116c6739..1beda688b 100644
--- a/patches/server/0422-Implement-Brigadier-Mojang-API.patch
+++ b/patches/server/0422-Implement-Brigadier-Mojang-API.patch
@@ -10,7 +10,7 @@ Adds CommandRegisteredEvent
- Allows manipulating the CommandNode to add more children/metadata for the client
diff --git a/build.gradle.kts b/build.gradle.kts
-index 5543c8e30c707d7cee5fd0579dd3d3dd7c26a13e..eea412347cef390555166a988058ae877afdfa4a 100644
+index 18a8049394529fae70d25ec3ddb285f85f6a8160..fd037da8b655b329ef016356519a69ca2621fd4f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -17,6 +17,7 @@ repositories {
diff --git a/patches/server/0425-Expose-game-version.patch b/patches/server/0425-Expose-game-version.patch
index a47a16845..3edddb010 100644
--- a/patches/server/0425-Expose-game-version.patch
+++ b/patches/server/0425-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 92dc9b6829b591b20664306af1a8147cc8171734..4a326f928f81442c02e2cec94a8e84abff497c96 100644
+index 6b1bc025d0072aa5d0c7609d1da355b9eae7df2d..9a6d9f2a4bb1efad247f70e7639da9540409a327 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -535,6 +535,13 @@ public final class CraftServer implements Server {
+@@ -541,6 +541,13 @@ public final class CraftServer implements Server {
return this.bukkitVersion;
}
diff --git a/patches/server/0428-misc-debugging-dumps.patch b/patches/server/0428-misc-debugging-dumps.patch
index 22ec5234d..b23d75e68 100644
--- a/patches/server/0428-misc-debugging-dumps.patch
+++ b/patches/server/0428-misc-debugging-dumps.patch
@@ -74,10 +74,10 @@ index bd1203a5b58bac7cccf1f81337fa2967a0e9eb40..6468a675862ee2956308b760012fe25c
this.connection.send(new ClientboundDisconnectPacket(chatmessage));
this.connection.disconnect(chatmessage);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4a326f928f81442c02e2cec94a8e84abff497c96..bc152fea503bfb43eb39b2c18c15a7c557bb08b7 100644
+index 9a6d9f2a4bb1efad247f70e7639da9540409a327..1e34f8d2c3b14ed6a42930099d3130c4d589d48c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -938,6 +938,7 @@ public final class CraftServer implements Server {
+@@ -956,6 +956,7 @@ public final class CraftServer implements Server {
plugin.getDescription().getFullName(),
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
diff --git a/patches/server/0430-Implement-Mob-Goal-API.patch b/patches/server/0430-Implement-Mob-Goal-API.patch
index cd6c37788..2e33b52d7 100644
--- a/patches/server/0430-Implement-Mob-Goal-API.patch
+++ b/patches/server/0430-Implement-Mob-Goal-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API
diff --git a/build.gradle.kts b/build.gradle.kts
-index b35e54380cb23758a813fa24d13b888f36906c23..12c2681e0abef8ea4981deec431a9269df6cea54 100644
+index 03c9f894a2eaa065c456843eef4d3ab1a25565c3..e666319d8472bd860442acacc16f595e3bb195f2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -62,6 +62,7 @@ dependencies {
@@ -798,10 +798,10 @@ index fabd20265863751ad980ee4a697f3f0d47df101f..3a4da2bb86a742985d309eb325dc843a
LOOK,
JUMP,
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index bc152fea503bfb43eb39b2c18c15a7c557bb08b7..a6068abb1fa7b2f2d6aba1df0cd8b2799c9d6226 100644
+index 1e34f8d2c3b14ed6a42930099d3130c4d589d48c..df5a9d6b1b8117080ede57f443dc79b875145461 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2542,5 +2542,11 @@ public final class CraftServer implements Server {
+@@ -2570,5 +2570,11 @@ public final class CraftServer implements Server {
public boolean isStopping() {
return net.minecraft.server.MinecraftServer.getServer().hasStopped();
}
diff --git a/patches/server/0431-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0431-Use-distance-map-to-optimise-entity-tracker.patch
index 49ad40274..d7150647b 100644
--- a/patches/server/0431-Use-distance-map-to-optimise-entity-tracker.patch
+++ b/patches/server/0431-Use-distance-map-to-optimise-entity-tracker.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker
Use the distance map to find candidate players for tracking.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 22c691f3bfbfc5f8e7420c14de36a353b31fc123..136b832c1a04042457817b2bf2a4a5d057d1b6ca 100644
+index 3a546b879d093702e36118231020cf41fe972410..1a2e2f629840b3311b51f3810ab3a8c7257d103a 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -63,6 +63,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEntityLinkPacket;
diff --git a/patches/server/0432-Optimize-isOutsideRange-to-use-distance-maps.patch b/patches/server/0432-Optimize-isOutsideRange-to-use-distance-maps.patch
index 06736b056..66bffb1df 100644
--- a/patches/server/0432-Optimize-isOutsideRange-to-use-distance-maps.patch
+++ b/patches/server/0432-Optimize-isOutsideRange-to-use-distance-maps.patch
@@ -37,7 +37,7 @@ index a3ba56f437fe9e4dac59370463052341eb9b7524..c6c4d2fd3205dfcaff9e0f1a6b92b749
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 389d6c519ed8091c1d0bf5437d5499b34460da08..d6bd16aa2df0c086449b607428c5ae4324bddb6c 100644
+index 1a2e2f629840b3311b51f3810ab3a8c7257d103a..790761848d0ea0934b07c852675e8f746edac211 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -205,6 +205,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -362,7 +362,7 @@ index fe9711daa67151187906128c9d07ad967b72e677..0ce86c72cb829b816ec7bfb8f0d19396
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 2a5e811bd552ca3583cfa9cd57e68e7a7050bf8b..eb392fd936f0951c12d9ecfc3c557de14d112e8e 100644
+index 40692f3559eec910a653e89d3bc199fb9f17db27..0f4f07513f4fe43c059a50257fcad5c30d1cc81d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -250,6 +250,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0434-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0434-Option-for-maximum-exp-value-when-merging-orbs.patch
index b51640237..267cf5e6c 100644
--- a/patches/server/0434-Option-for-maximum-exp-value-when-merging-orbs.patch
+++ b/patches/server/0434-Option-for-maximum-exp-value-when-merging-orbs.patch
@@ -22,7 +22,7 @@ index e146dad0d90fee216630eb3df6a34e2a0f6441a6..eb30ec087b90835aba281580b0563d02
private void squidMaxSpawnHeight() {
squidMaxSpawnHeight = getDouble("squid-spawn-height.maximum", 0.0D);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 00dc51a50e34240380411f7ebee23ece32f48d00..d2039090446834ad57d09d441ee412715d6cecc3 100644
+index 54aa3a95118176e7f91f4d669253790167fcd958..b07247dda5f7be1186c47ce5cb490ca0a46cc56c 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -630,16 +630,30 @@ public class CraftEventFactory {
diff --git a/patches/server/0435-ExperienceOrbMergeEvent.patch b/patches/server/0435-ExperienceOrbMergeEvent.patch
index b04811e0f..254b5ba23 100644
--- a/patches/server/0435-ExperienceOrbMergeEvent.patch
+++ b/patches/server/0435-ExperienceOrbMergeEvent.patch
@@ -9,7 +9,7 @@ Plugins can cancel this if they want to ensure experience orbs do not lose impor
metadata such as spawn reason, or conditionally move data from source to target.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index d2039090446834ad57d09d441ee412715d6cecc3..bbc7f21bfdf5c8f413866fc24ebb2fefb2166096 100644
+index b07247dda5f7be1186c47ce5cb490ca0a46cc56c..ff2149572a82d6605a0b28f2fdd0dadb86af25a1 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -640,7 +640,7 @@ public class CraftEventFactory {
diff --git a/patches/server/0439-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0439-Wait-for-Async-Tasks-during-shutdown.patch
index 5fa3859f2..4da4742e1 100644
--- a/patches/server/0439-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/patches/server/0439-Wait-for-Async-Tasks-during-shutdown.patch
@@ -22,10 +22,10 @@ index 02158eee02ca4735015e768f7bd03c36fc9942f0..324ebb1bec9c25fe11b39b637c089836
// CraftBukkit end
if (this.getConnection() != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a6068abb1fa7b2f2d6aba1df0cd8b2799c9d6226..746234b93587ab3aa45e53ae4684314606453dc7 100644
+index df5a9d6b1b8117080ede57f443dc79b875145461..acae4ffc1e97ba54056b7b30679404de6ff54fca 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -947,6 +947,35 @@ public final class CraftServer implements Server {
+@@ -965,6 +965,35 @@ public final class CraftServer implements Server {
org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload
}
diff --git a/patches/server/0441-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0441-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 02334f635..2412a9304 100644
--- a/patches/server/0441-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/patches/server/0441-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
@@ -54,10 +54,10 @@ index a861b4b55862b1c5583101fe7f28a3a43c547468..1575fb0bbad6e11f25fb9ce51fd1f15a
this.level.getProfiler().push("explosion_blocks");
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index f7fc4a9d3c0132df6024b33e4f893d3b7ebc6ec3..970a67d82219fa642080c78a814c12ca8d9a5ee9 100644
+index b2b433218d280b2abac40c90397633ef78bc9510..1dd4ee6cf037dcc6a8683d79b623165d1be62d57 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -425,6 +425,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -427,6 +427,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) {
// CraftBukkit start - tree generation
if (this.captureTreeGeneration) {
diff --git a/patches/server/0443-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0443-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
index 3fac0fc5b..760558e61 100644
--- a/patches/server/0443-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
+++ b/patches/server/0443-Reduce-allocation-of-Vec3D-by-entity-tracker.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reduce allocation of Vec3D by entity tracker
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 035061a3cb18566c296875a250ff6e2aeea0bf8e..446f8f2faecaef70b446f15a8a987b26b389b55d 100644
+index 790761848d0ea0934b07c852675e8f746edac211..cec1906adc4d2953b50d262abb1c2cb61cb3ba41 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -2102,9 +2102,14 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
diff --git a/patches/server/0444-Ensure-safe-gateway-teleport.patch b/patches/server/0444-Ensure-safe-gateway-teleport.patch
index 3b939b047..1b95afaf3 100644
--- a/patches/server/0444-Ensure-safe-gateway-teleport.patch
+++ b/patches/server/0444-Ensure-safe-gateway-teleport.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure safe gateway teleport
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
-index 370ec4cd08a50ad0b8154db9afcaa76ec741dcb2..782becb96b6300f14deee360b653dc99c57fdc12 100644
+index f41dfe8bff59d17000f3eb17670c524102adb276..0b238666a506816b8948d1db7397c26ca50b89d3 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -105,7 +105,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
diff --git a/patches/server/0454-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0454-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index ad320ed91..d05a7239b 100644
--- a/patches/server/0454-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/patches/server/0454-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -22,10 +22,10 @@ wants it to collect even faster, they can restore that setting back to 1 instead
Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 746234b93587ab3aa45e53ae4684314606453dc7..fa11223ea8a1ecb1bafcca63855dc9930ec18a34 100644
+index acae4ffc1e97ba54056b7b30679404de6ff54fca..cb08173bdfe52c8a0d5de70f0421cabaa476647a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -363,7 +363,7 @@ public final class CraftServer implements Server {
+@@ -369,7 +369,7 @@ public final class CraftServer implements Server {
this.ambientSpawn = this.configuration.getInt("spawn-limits.ambient");
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -34,8 +34,8 @@ index 746234b93587ab3aa45e53ae4684314606453dc7..fa11223ea8a1ecb1bafcca63855dc993
this.minimumAPI = this.configuration.getString("settings.minimum-api");
this.loadIcon();
}
-@@ -848,7 +848,7 @@ public final class CraftServer implements Server {
- this.waterAmbientSpawn = this.configuration.getInt("spawn-limits.water-ambient");
+@@ -860,7 +860,7 @@ public final class CraftServer implements Server {
+ this.waterUndergroundCreatureSpawn = this.configuration.getInt("spawn-limits.water-underground-creature");
this.ambientSpawn = this.configuration.getInt("spawn-limits.ambient");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
- TicketType.PLUGIN.timeout = this.configuration.getInt("chunk-gc.period-in-ticks");
@@ -44,10 +44,10 @@ index 746234b93587ab3aa45e53ae4684314606453dc7..fa11223ea8a1ecb1bafcca63855dc993
this.printSaveWarning = false;
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932cc5684f1 100644
+index 01ac6e7e7b4b6c61d01684c77ecc2238afcaa8f1..20d956c9a4e3b598ffebbe481a190158566343d9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -263,8 +263,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -264,8 +264,21 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk getChunkAt(int x, int z) {
@@ -70,7 +70,7 @@ index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932
@Override
public Chunk getChunkAt(Block block) {
-@@ -331,7 +344,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -332,7 +345,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean unloadChunkRequest(int x, int z) {
org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
if (this.isChunkLoaded(x, z)) {
@@ -79,7 +79,7 @@ index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932
}
return true;
-@@ -408,9 +421,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -409,9 +422,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
// Paper start - Optimize this method
ChunkPos chunkPos = new ChunkPos(x, z);
@@ -93,7 +93,7 @@ index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932
if (immediate == null) {
immediate = world.getChunkSource().chunkMap.getUnloadingChunk(x, z);
}
-@@ -418,7 +434,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -419,7 +435,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!(immediate instanceof ImposterProtoChunk) && !(immediate instanceof net.minecraft.world.level.chunk.LevelChunk)) {
return false; // not full status
}
@@ -102,7 +102,7 @@ index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932
world.getChunk(x, z); // make sure we're at ticket level 32 or lower
return true;
}
-@@ -444,7 +460,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -445,7 +461,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// we do this so we do not re-read the chunk data on disk
}
@@ -111,7 +111,7 @@ index fcf7076c1df858d35d6b69995b7c4768233b8370..ea6cb4873e72cf6be81c1a6bf48e5932
world.getChunkSource().getChunk(x, z, ChunkStatus.FULL, true);
return true;
// Paper end
-@@ -1889,6 +1905,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1914,6 +1930,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.world.getChunkSource().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> {
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk) either.left().orElse(null);
diff --git a/patches/server/0455-incremental-chunk-saving.patch b/patches/server/0455-incremental-chunk-saving.patch
index fb6d1da54..58e27b873 100644
--- a/patches/server/0455-incremental-chunk-saving.patch
+++ b/patches/server/0455-incremental-chunk-saving.patch
@@ -31,7 +31,7 @@ index 3984d85f1e1833ec199fde1ba64d9c83376b1819..144a8d424cd4f953b1471f20d1521ed1
config.addDefault("world-settings.default." + path, def);
return config.getBoolean("world-settings." + worldName + "." + path, config.getBoolean("world-settings.default." + path));
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index f5ef6219b20d5b7af81537dab8d9815d74d1560a..f3a1af9299f3c0b03309b838b00d3eca7caf5966 100644
+index 324ebb1bec9c25fe11b39b637c089836b303d766..b4ca88f9285fb5a55ed5b03355a77fd564ebaa80 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -298,6 +298,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> completablefuture = (CompletableFuture) this.futures.get(i);
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 446f8f2faecaef70b446f15a8a987b26b389b55d..daa13434cf4ba47f77b4f47c4d2ecb3d9d672031 100644
+index cec1906adc4d2953b50d262abb1c2cb61cb3ba41..c3b927e612806b3de4ec57bd6f926af35ad1146a 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -97,6 +97,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureMana
diff --git a/patches/server/0468-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0468-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 03d275949..c9b0de9b9 100644
--- a/patches/server/0468-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0468-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -94,10 +94,10 @@ index 7bd2a88de8eaf9d72d9424a39d5df2600bed7e58..c0ae236619bbdf9293fbf1c4a1764a78
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fa11223ea8a1ecb1bafcca63855dc9930ec18a34..eda4a886caf1070090e862029f61775b4cd0fd84 100644
+index cb08173bdfe52c8a0d5de70f0421cabaa476647a..da9fc8a99576f13a52ab4830cb09b69b1e406fae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -868,8 +868,8 @@ public final class CraftServer implements Server {
+@@ -880,8 +880,8 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
for (ServerLevel world : this.console.getAllLevels()) {
diff --git a/patches/server/0481-Add-entity-liquid-API.patch b/patches/server/0481-Add-entity-liquid-API.patch
index a34292481..7ad6c6e8c 100644
--- a/patches/server/0481-Add-entity-liquid-API.patch
+++ b/patches/server/0481-Add-entity-liquid-API.patch
@@ -17,7 +17,7 @@ index 19a6b2c686e6421624282d0536dfdd3320da4ec6..3e1f34ed8c3b4bd4f6c3624332a5f2be
return this.isInWater() || this.isInRain() || this.isInBubbleColumn();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 15d29a56d1597310aa73b9faa07216eac1a1f533..17bed708187e1fd58c0c245bfcabddbf52a79548 100644
+index c9e716900d88d025be1f09b6fe0156cf0dac2d33..f28f857d6218db1634348e8a57e7b275b9115bfc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1235,5 +1235,29 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0484-Add-PrepareResultEvent.patch b/patches/server/0484-Add-PrepareResultEvent.patch
index 4de706fb4..ba54754ac 100644
--- a/patches/server/0484-Add-PrepareResultEvent.patch
+++ b/patches/server/0484-Add-PrepareResultEvent.patch
@@ -94,7 +94,7 @@ index 3df5031ec2c50dc6eb2533318cf8a98f21b03d2a..c971a534ded962e3be92c71059c75cc1
private void setupRecipeList(Container input, ItemStack stack) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index bbc7f21bfdf5c8f413866fc24ebb2fefb2166096..0fcfa522d16386edca72450975ce9f90140240ed 100644
+index ff2149572a82d6605a0b28f2fdd0dadb86af25a1..869990c181403a025d219dbd0e1201005973ffe9 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1556,19 +1556,44 @@ public class CraftEventFactory {
diff --git a/patches/server/0485-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0485-Allow-delegation-to-vanilla-chunk-gen.patch
index 5e3e311d3..e21ced551 100644
--- a/patches/server/0485-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0485-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index fa11223ea8a1ecb1bafcca63855dc9930ec18a34..a145fbfcd0905660b37e44489ee0ecf2ae27d87f 100644
+index da9fc8a99576f13a52ab4830cb09b69b1e406fae..81effb4bc34d3cb4325510c1b0de39956961c427 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2175,6 +2175,32 @@ public final class CraftServer implements Server {
+@@ -2198,6 +2198,32 @@ public final class CraftServer implements Server {
return new OldCraftChunkData(world);
}
diff --git a/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
index 72cb98496..a613fe95d 100644
--- a/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
+++ b/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch
@@ -361,7 +361,7 @@ index fe8e6d66665dc8c38e74c0b264cf507f99f83091..e317c73b430105052cbf28502916adc3
}
}).exceptionally((throwable) -> {
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 48b704bfb25e6f96235ca8743bd007654c58e948..0303a48729e087afbb51817de64d7f99fc487ec8 100644
+index c3b927e612806b3de4ec57bd6f926af35ad1146a..f43e8bb6b1c6c204b35ea64b47f6d6f558d0f7a5 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -122,6 +122,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1077,7 +1077,7 @@ index e5317a994cb9b30293ad54b8fc537f703ef994dc..eb6a802ea12a19a058fb7e23b7418b8b
boolean flag1 = this.chunkMap.promoteChunkMap();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index eb392fd936f0951c12d9ecfc3c557de14d112e8e..f1cd338942d709e3d2d8de40241fe6e14bcba062 100644
+index 0f4f07513f4fe43c059a50257fcad5c30d1cc81d..74b68679d311017246d49c37f3cd17f938f3b57f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -189,6 +189,14 @@ public class ServerPlayer extends Player {
@@ -1509,10 +1509,10 @@ index a84b75a53a0324fab9aeb9b80bf74eb0a84ecd2e..d580f0375cce5e995c024f1b0cd4843b
org.bukkit.event.world.ChunkUnloadEvent unloadEvent = new org.bukkit.event.world.ChunkUnloadEvent(this.bukkitChunk, this.isUnsaved());
server.getPluginManager().callEvent(unloadEvent);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index ea6cb4873e72cf6be81c1a6bf48e5932cc5684f1..24198751b911b3a7d7ca4be4a76734ed448b4bf1 100644
+index 20d956c9a4e3b598ffebbe481a190158566343d9..228406d41c2e4d1615329752bbc9e609acbe2d36 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1903,6 +1903,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1928,6 +1928,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return future;
}
@@ -1526,7 +1526,7 @@ index ea6cb4873e72cf6be81c1a6bf48e5932cc5684f1..24198751b911b3a7d7ca4be4a76734ed
net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk) either.left().orElse(null);
if (chunk != null) addTicket(x, z); // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 656c69f261a042542e57ca4f92927594138affa1..80b1ef3c886fe592586ba61db58da0c2e2800d8e 100644
+index 991e9afd16de706ddc62ab2c121a87bc775142db..046a60f6fa85803418eea2690b997ccdcab100fc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -896,6 +896,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0488-Improve-Chunk-Status-Transition-Speed.patch b/patches/server/0488-Improve-Chunk-Status-Transition-Speed.patch
index 36f01768f..bf1e35568 100644
--- a/patches/server/0488-Improve-Chunk-Status-Transition-Speed.patch
+++ b/patches/server/0488-Improve-Chunk-Status-Transition-Speed.patch
@@ -54,7 +54,7 @@ index e317c73b430105052cbf28502916adc3bd60846b..96759f349e10c8ef634a11a6b48f9aff
public ChunkHolder(ChunkPos pos, int level, LevelHeightAccessor world, LevelLightEngine lightingProvider, ChunkHolder.LevelChangeListener levelUpdateListener, ChunkHolder.PlayerProvider playersWatchingChunkProvider) {
this.futures = new AtomicReferenceArray(ChunkHolder.CHUNK_STATUSES.size());
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index ac848504fd7105506d6d733709ad05dc8b37c9d9..2a85deeab49f32a897b53707d453d1a5f2972902 100644
+index f43e8bb6b1c6c204b35ea64b47f6d6f558d0f7a5..047f1772c8f9346ba4541d46af8e144141865cfb 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -786,7 +786,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0492-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0492-Thread-Safe-Vanilla-Command-permission-checking.patch
index 1506252fa..b219e7748 100644
--- a/patches/server/0492-Thread-Safe-Vanilla-Command-permission-checking.patch
+++ b/patches/server/0492-Thread-Safe-Vanilla-Command-permission-checking.patch
@@ -9,7 +9,7 @@ to race conditions.
Plus, .canUse we want to be safe for async anyways.
diff --git a/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/src/main/java/com/mojang/brigadier/tree/CommandNode.java
-index 74af1b6158394d66fe470f9b7db741871f2bb534..30274979d8dafc7c0a374c3e6b1d1b5dbd6cfe4c 100644
+index 2b87c6eb28d4db634dd6d8ee42ff3aa78ed7cb68..f64aa22ed6fcb4af67317b99f459ee5296392548 100644
--- a/src/main/java/com/mojang/brigadier/tree/CommandNode.java
+++ b/src/main/java/com/mojang/brigadier/tree/CommandNode.java
@@ -74,10 +74,10 @@ public abstract class CommandNode implements Comparable> {
diff --git a/patches/server/0498-Add-missing-strikeLighting-call-to-World-spigot-stri.patch b/patches/server/0498-Add-missing-strikeLighting-call-to-World-spigot-stri.patch
index 3d67bbb77..4f3e56f28 100644
--- a/patches/server/0498-Add-missing-strikeLighting-call-to-World-spigot-stri.patch
+++ b/patches/server/0498-Add-missing-strikeLighting-call-to-World-spigot-stri.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add missing strikeLighting call to
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 24198751b911b3a7d7ca4be4a76734ed448b4bf1..3ceff62c394a456932e93e5a21ec7697ab6881f4 100644
+index 228406d41c2e4d1615329752bbc9e609acbe2d36..35414a944fdbff16005185a22ea845cc2f7163e7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1974,6 +1974,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1999,6 +1999,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() );
lightning.visualOnly = true;
lightning.isSilent = isSilent;
diff --git a/patches/server/0499-Incremental-player-saving.patch b/patches/server/0499-Incremental-player-saving.patch
index 2c49fb779..d872290e0 100644
--- a/patches/server/0499-Incremental-player-saving.patch
+++ b/patches/server/0499-Incremental-player-saving.patch
@@ -24,7 +24,7 @@ index 0ff0a71fe5dc53fa5fb81edffabc69790e3bcd1e..d74f0bdabd64976bf8608f2a5d8f2dc6
+ }
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 186193d1d652876e9ad7cdf5223ec2c6f5c65779..5595fc75df984b3d21f78759cb76f5b4018ff550 100644
+index 58652325de8c3978359a9864bb68da9347990774..4af56ca699d456eb23794673861323ab06cf6de8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -981,7 +981,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop) new CraftEntityTag(EntityTypeTags.getAllTags(), key);
diff --git a/patches/server/0607-added-Wither-API.patch b/patches/server/0607-added-Wither-API.patch
index 816b507d6..1995967f8 100644
--- a/patches/server/0607-added-Wither-API.patch
+++ b/patches/server/0607-added-Wither-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] added Wither API
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-index 2f849b21e39d04a27ef88f8c76275f10bf55db3b..40b7f71c1aa561462f7551ae6f7c36b18b41b93a 100644
+index 9a89e6ff72d285a941be986300ff5c2a723a80e0..c4b075fffae1e535b887740d48bd26da223d6798 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -83,6 +83,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
diff --git a/patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch
index 4bf5b7dc4..a44fd00d4 100644
--- a/patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch
+++ b/patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch
@@ -122,7 +122,7 @@ index b9b67134f02fd7484ed19905c9ae1f9b8a26ce26..c05f173b7642380900fdd77ce5d2c020
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e78064303898e00d6438c4262676cbdc1afdd3ac..28b3206df48335b27360bf4e2343cfcb550ae9e8 100644
+index db6b057eb6b0f08f7fcb998f8b646b757a98d3f6..33a8e174c4e3b3b5164157c90c8f5b5f9c6d8263 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1489,8 +1489,10 @@ public class CraftEventFactory {
diff --git a/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch
index ca91cf94d..5883da964 100644
--- a/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch
+++ b/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Reset shield blocking on dimension change
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9bbdcd6115d926e3957bad127c70c65bc6c23e63..02874e0a596e17a3b7098de40f7b77c6686b2614 100644
+index 8608464c1d229625a10fd459427d8cc5e217789a..e1296bbc1f31f270053a47c21887efbad8718b72 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1142,6 +1142,11 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0615-EntityMoveEvent.patch b/patches/server/0615-EntityMoveEvent.patch
index 833a0cffa..c05381b9b 100644
--- a/patches/server/0615-EntityMoveEvent.patch
+++ b/patches/server/0615-EntityMoveEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] EntityMoveEvent
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 70fbb12857644e3d915583a358ec772eb22d91ea..71fe8191a47079731e830d0a4bf6221e720596cf 100644
+index 1a3158738bf4c506f3868a43cadc30c854532238..c8b68b5a996491dcd668f929badf294386832388 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1526,6 +1526,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop playerView;
public int reloadCount;
@@ -103,7 +103,7 @@ index a65a9597fbb838b7bc939768220166e4242918c7..18f2a7bd9e7c3aa2f72a63280e9285d6
public static Exception excessiveVelEx; // Paper - Velocity warnings
static {
-@@ -366,6 +367,7 @@ public final class CraftServer implements Server {
+@@ -372,6 +373,7 @@ public final class CraftServer implements Server {
TicketType.PLUGIN.timeout = Math.min(20, this.configuration.getInt("chunk-gc.period-in-ticks")); // Paper - cap plugin loads to 1 second
this.minimumAPI = this.configuration.getString("settings.minimum-api");
this.loadIcon();
@@ -111,7 +111,7 @@ index a65a9597fbb838b7bc939768220166e4242918c7..18f2a7bd9e7c3aa2f72a63280e9285d6
}
public boolean getCommandBlockOverride(String command) {
-@@ -2646,5 +2648,11 @@ public final class CraftServer implements Server {
+@@ -2674,5 +2676,11 @@ public final class CraftServer implements Server {
public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return mobGoals;
}
diff --git a/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch
index 42c82db92..cdc998181 100644
--- a/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch
@@ -45,7 +45,7 @@ index d75f78d2e3fb1376e8f6a8668c98a04a693c99e1..79f6089b934124c3309c6bee2e48b36b
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 75f545f735928fdd9d41b06a4fc68eb4ecca1d48..25f2d8306acaf4df36e6f0d2b3a3bfc1f838bb0b 100644
+index 0eb2df75889bcfcadd5e2b81617cb8b3abd4df50..d309e2c460654c2fa7a6668e9f31d330e8e35967 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1790,8 +1790,15 @@ public class ServerPlayer extends Player {
@@ -139,7 +139,7 @@ index b2925d150a98ffb25cbf3c72f6df2abd862dae44..b4e11d39cf1d9791a8fe4ccd297f6afd
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 719358b5b8dea1cdcbb79f2d21873f5a0fef2242..56ba161666f895a7fd366f8186b0c55597b16d42 100644
+index 301f10414118e2e79fa4f87c75be83411dfd2e39..7150db24248b72c5ce2006ecff949315c71821d0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1256,7 +1256,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index 1d8765c65..d4c446601 100644
--- a/patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 18f2a7bd9e7c3aa2f72a63280e9285d6d5cad305..e74259d55ca89f504f947380726321ca9e0680e9 100644
+index ea902f8d525684e0e8f82bc5017bcf748f106e40..b80930a5e3812c1b02f11ff9c592ee8a39b08456 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -403,8 +403,13 @@ public final class CraftServer implements Server {
+@@ -409,8 +409,13 @@ public final class CraftServer implements Server {
File pluginFolder = (File) console.options.valueOf("plugins");
@@ -26,7 +26,7 @@ index 18f2a7bd9e7c3aa2f72a63280e9285d6d5cad305..e74259d55ca89f504f947380726321ca
for (Plugin plugin : plugins) {
try {
String message = String.format("Loading %s", plugin.getDescription().getFullName());
-@@ -419,6 +424,18 @@ public final class CraftServer implements Server {
+@@ -425,6 +430,18 @@ public final class CraftServer implements Server {
}
}
diff --git a/patches/server/0683-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0683-Fix-and-optimise-world-force-upgrading.patch
index 9b56cc275..f35b27863 100644
--- a/patches/server/0683-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/0683-Fix-and-optimise-world-force-upgrading.patch
@@ -265,7 +265,7 @@ index cf0a74b8a1c31d4bc493eb09a69ee2bd94cb6485..cfd43069ee2b6f79afb12e10d223f6bf
Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit
WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, worlds, eraseCache);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 3e90aa894b026278c61580791cb9fcd72d1e158f..22edac5278efc495885a5fc34677f26ea67ae9ca 100644
+index 33dcb39428c3bd24daa600c2b486954466d81eef..1f6d59d1a95fcc8f93685a9ed6bb1d9419aafb95 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -563,13 +563,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here
@@ -352,10 +352,10 @@ index 43510774d489bfdd30f10d521e424fa1363b8919..6496108953effae82391b5c1ea6fdec8
return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ()));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e74259d55ca89f504f947380726321ca9e0680e9..28300c6cd9cd2a55a5c1b179d9b44aa754cf346d 100644
+index b80930a5e3812c1b02f11ff9c592ee8a39b08456..f4a7b1b45d8284a5552dce67979282ce09e71a36 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1157,14 +1157,7 @@ public final class CraftServer implements Server {
+@@ -1175,14 +1175,7 @@ public final class CraftServer implements Server {
}
worlddata.checkName(name);
worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().isPresent());
@@ -371,7 +371,7 @@ index e74259d55ca89f504f947380726321ca9e0680e9..28300c6cd9cd2a55a5c1b179d9b44aa7
long j = BiomeManager.obfuscateSeed(creator.seed());
List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
-@@ -1193,6 +1186,14 @@ public final class CraftServer implements Server {
+@@ -1211,6 +1204,14 @@ public final class CraftServer implements Server {
}
}
diff --git a/patches/server/0688-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0688-Add-cause-to-Weather-ThunderChangeEvents.patch
index bf0c06657..f4e6d5680 100644
--- a/patches/server/0688-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0688-Add-cause-to-Weather-ThunderChangeEvents.patch
@@ -104,10 +104,10 @@ index cd840dc4a8ca432868fb3e9c912ea928e5303e0d..4d0af984490b556a9911c3b8fdca1e16
if (weather.isCancelled()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 25810416f04d3a6fd41e4e21feb4c81402eb3e8b..2fccbe6e58a2e5a29c0cfe78b135854fbf402238 100644
+index 8d8b1b881878200b0bf9c320c72b71b8c3b839d2..483ca752016c0d5e669b462396e50e83b66d3ef1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1169,7 +1169,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1170,7 +1170,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setStorm(boolean hasStorm) {
@@ -116,7 +116,7 @@ index 25810416f04d3a6fd41e4e21feb4c81402eb3e8b..2fccbe6e58a2e5a29c0cfe78b135854f
this.setWeatherDuration(0); // Reset weather duration (legacy behaviour)
this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands)
}
-@@ -1191,7 +1191,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1192,7 +1192,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setThundering(boolean thundering) {
diff --git a/patches/server/0691-Add-PufferFishStateChangeEvent.patch b/patches/server/0691-Add-PufferFishStateChangeEvent.patch
index c37200505..14a8a3070 100644
--- a/patches/server/0691-Add-PufferFishStateChangeEvent.patch
+++ b/patches/server/0691-Add-PufferFishStateChangeEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PufferFishStateChangeEvent
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
-index 284b7c456bf1130359e139f47754357807e7feb0..1b76e267cd36010a57d31852086dec0585d4bce5 100644
+index 76fc6bdc67a1bd4d0f9f654b9b912f6bc59ac1da..f576e602f2fce87cdebc194b474dced64952178b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
@@ -95,25 +95,39 @@ public class Pufferfish extends AbstractFish {
diff --git a/patches/server/0692-Add-PlayerKickEvent-causes.patch b/patches/server/0692-Add-PlayerKickEvent-causes.patch
index 898f4d019..3fa996017 100644
--- a/patches/server/0692-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0692-Add-PlayerKickEvent-causes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 22edac5278efc495885a5fc34677f26ea67ae9ca..b7beb5c778c010d37e737f09cc9f0e7af3b47cef 100644
+index 1f6d59d1a95fcc8f93685a9ed6bb1d9419aafb95..ecb167f6a114a7e3bfac05db2e87631ec88a0ba2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2125,7 +2125,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getTypeKey() {
return this.typeKey;
}
-@@ -1371,7 +1378,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -1373,7 +1380,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
for (int l1 = j; l1 <= l; ++l1) {
for (int i2 = k; i2 <= i1; ++i2) {
diff --git a/patches/server/0714-Adds-PlayerArmSwingEvent.patch b/patches/server/0714-Adds-PlayerArmSwingEvent.patch
index 187cfaa6e..6c29c118d 100644
--- a/patches/server/0714-Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/0714-Adds-PlayerArmSwingEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Adds PlayerArmSwingEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index faa32056399e93e729c6313dc15e7315e34b8eb0..e20f272cc4892e5527e60861b9d12f276e877d7f 100644
+index e639cbdf9cf070e749da4c90ff475b250ab8e2c9..cdfdad5932f0e03a41cddd8cb7acb0ede43a6a3d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2225,7 +2225,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0715-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0715-Fixes-kick-event-leave-message-not-being-sent.patch
index e8a43c556..d4134e70b 100644
--- a/patches/server/0715-Fixes-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0715-Fixes-kick-event-leave-message-not-being-sent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fixes kick event leave message not being sent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e20f272cc4892e5527e60861b9d12f276e877d7f..93b801fec4d8f5c42d391f3c4784b8abe0fea6d6 100644
+index cdfdad5932f0e03a41cddd8cb7acb0ede43a6a3d..5edb274101f92c442b876cae5749b85c81978bc8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -457,7 +457,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0716-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0716-Add-config-for-mobs-immune-to-default-effects.patch
index 5dcafad48..797372017 100644
--- a/patches/server/0716-Add-config-for-mobs-immune-to-default-effects.patch
+++ b/patches/server/0716-Add-config-for-mobs-immune-to-default-effects.patch
@@ -31,7 +31,7 @@ index 04b27d96d7a6396989c6a9d67b92af259dc0cc26..2bfadd245b5d08c1b77805ee049456cc
private void nerfNetherPortalPigmen() {
nerfNetherPortalPigmen = getBoolean("game-mechanics.nerf-pigmen-from-nether-portals", nerfNetherPortalPigmen);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 928fe7bb4ef959b7c8ab1f7d421612b98b1db038..57a6c61a979f72f1270041bcf72e83bd8f0c2504 100644
+index a60d289f3cf3826ac5368f3de77584fb63bf5e64..38e8d8c7d37fc824323dac372c56550480360515 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1133,7 +1133,7 @@ public abstract class LivingEntity extends Entity {
@@ -44,7 +44,7 @@ index 928fe7bb4ef959b7c8ab1f7d421612b98b1db038..57a6c61a979f72f1270041bcf72e83bd
}
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-index 6e3bd5146c687922e7b4680d59a1ae2d1480ad40..bb329e9c1a2295e6433d3728692a1e716c89dcc0 100644
+index 9a5294596eb50cf4f6cf0729f6b94faaa63a5871..8c17caf00bd24adca5794774171638f298921ee7 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -602,7 +602,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -57,7 +57,7 @@ index 6e3bd5146c687922e7b4680d59a1ae2d1480ad40..bb329e9c1a2295e6433d3728692a1e71
private class WitherDoNothingGoal extends Goal {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
-index e5679823786f2579f93a93a5ae08ab7ae42b390c..a8162116eb888106e6f48ee836d0cc5d33b72399 100644
+index 968907f6aae3f58cddac1967bcfd82cea8800912..64f0ce2981700532cb0d11fbc086bfbd08f2384d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -133,7 +133,7 @@ public class Spider extends Monster {
@@ -70,7 +70,7 @@ index e5679823786f2579f93a93a5ae08ab7ae42b390c..a8162116eb888106e6f48ee836d0cc5d
public boolean isClimbing() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
-index 033d6389e4b7d986fc63abd67e325b68a6132824..f9bc07be70fae9aced51a69bccb5eda309187a47 100644
+index c727bbf7de71213fba410625c4a7ad90315b608a..6acc46c3a6fe7648d2cc4d0aaef063633c74c20d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -122,6 +122,6 @@ public class WitherSkeleton extends AbstractSkeleton {
diff --git a/patches/server/0719-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0719-Don-t-apply-cramming-damage-to-players.patch
index 906ee353e..8e80cecd0 100644
--- a/patches/server/0719-Don-t-apply-cramming-damage-to-players.patch
+++ b/patches/server/0719-Don-t-apply-cramming-damage-to-players.patch
@@ -26,7 +26,7 @@ index 2bfadd245b5d08c1b77805ee049456cc786c093e..88abb1dfd994e5bc51aa181121407f3d
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 04021879aafb1da727358b08cc5a0bf6ee9820d5..85bbafdc19b6fc17eb4815c05ed0e78e256e9aad 100644
+index 3833c0c863c49c2ff5552030e7a0799cf2ec0614..822c38033e9134d631b031e3571b05951a4625b1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1419,7 +1419,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0721-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0721-Add-a-bunch-of-missing-forceDrop-toggles.patch
index 67701991b..946acb8cc 100644
--- a/patches/server/0721-Add-a-bunch-of-missing-forceDrop-toggles.patch
+++ b/patches/server/0721-Add-a-bunch-of-missing-forceDrop-toggles.patch
@@ -33,7 +33,7 @@ index 89c53df5a745a5712c3c74030ed942c3102f3725..aba1b220826c7680892a93c1733ad32d
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
-index 851ee58e52c6003d6ae7b58c9b6b9a9a9795fa85..12ed864bedf2201fad68e2aeba249c3c18a12444 100644
+index dadc202da2d5568dce051b9cb4aadf20cfdd2c4f..8a2c49b7ded2165e383cd9b8744f752754aabdf4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -521,7 +521,9 @@ public class Panda extends Animal {
@@ -47,7 +47,7 @@ index 851ee58e52c6003d6ae7b58c9b6b9a9a9795fa85..12ed864bedf2201fad68e2aeba249c3c
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
-index adc2feafd0c1a38d1b6b65b8aee59d21725b84fe..c7ad0e317c0c74e5ad3e08278c5e7b31c894413e 100644
+index d4efcf08148933902d726cad05fc5d1bcb41ae8f..37712fe8585ede00569026bba5377ab61ad08ff5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -306,7 +306,9 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
diff --git a/patches/server/0724-Add-System.out-err-catcher.patch b/patches/server/0724-Add-System.out-err-catcher.patch
index ff2067f5e..4753e9648 100644
--- a/patches/server/0724-Add-System.out-err-catcher.patch
+++ b/patches/server/0724-Add-System.out-err-catcher.patch
@@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..76d0d00cd6742991e3f3ec827a75ee87
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 28300c6cd9cd2a55a5c1b179d9b44aa754cf346d..1d2378e3b338bf759e3d5d7e6496bc3968fded6c 100644
+index f4a7b1b45d8284a5552dce67979282ce09e71a36..0adb686d690e1be0c5540625efbecc46bac5d045 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -18,6 +18,7 @@ import com.mojang.serialization.Lifecycle;
@@ -116,7 +116,7 @@ index 28300c6cd9cd2a55a5c1b179d9b44aa754cf346d..1d2378e3b338bf759e3d5d7e6496bc39
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap;
import java.awt.image.BufferedImage;
import java.io.File;
-@@ -286,6 +287,7 @@ public final class CraftServer implements Server {
+@@ -290,6 +291,7 @@ public final class CraftServer implements Server {
public int reloadCount;
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
diff --git a/patches/server/0728-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0728-Prevent-AFK-kick-while-watching-end-credits.patch
index 3a01510e5..513a5b76a 100644
--- a/patches/server/0728-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0728-Prevent-AFK-kick-while-watching-end-credits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 93b801fec4d8f5c42d391f3c4784b8abe0fea6d6..0cf2b24b7f97efeec17218684baa72b2f6ea17f4 100644
+index 5edb274101f92c442b876cae5749b85c81978bc8..efa7c4b1e8c2e4297f89eb62aab76c43d2947e16 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -389,7 +389,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0730-Add-PlayerSetSpawnEvent.patch b/patches/server/0730-Add-PlayerSetSpawnEvent.patch
index 1bda0e6c2..f4ba5c6ee 100644
--- a/patches/server/0730-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0730-Add-PlayerSetSpawnEvent.patch
@@ -18,7 +18,7 @@ index e95f2222814e104bf9194a96385737dffe2cb2b5..249ab7357aa19d87179fa4c3ae89d9d3
String string = resourceKey.location().toString();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 85bbafdc19b6fc17eb4815c05ed0e78e256e9aad..f508695f622f5ac76c0a3c037ebde393234fab54 100644
+index 822c38033e9134d631b031e3571b05951a4625b1..9b02f054493ad69c7a595374e6fd600c3d64e61e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1260,7 +1260,7 @@ public class ServerPlayer extends Player {
@@ -93,7 +93,7 @@ index af4eb4a8814491afef449a2874521636957d7557..0a5d563700c9f806139001181f01fa9d
return InteractionResult.SUCCESS;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d3dfa6c27fe1e069866ebd6709057ddb267e238c..194d095eccbad692bcee1d365fa3fae093204b38 100644
+index c775014177caf0d1138bde1cc5726dc657176325..9da0bf8cf59fd37837ba4febf93c022fb4f08278 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1076,9 +1076,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0746-Make-CallbackExecutor-strict-again.patch b/patches/server/0746-Make-CallbackExecutor-strict-again.patch
index 63ac429e7..92205e8c6 100644
--- a/patches/server/0746-Make-CallbackExecutor-strict-again.patch
+++ b/patches/server/0746-Make-CallbackExecutor-strict-again.patch
@@ -10,7 +10,7 @@ schedules. Effectively, use the callback executor as a tool of
finding issues rather than hiding these issues.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 38f84e37510dd51a8b9b37a670ae649e8f3d4abd..00e79197d59bcbca0785ff0d651220756cb57c9b 100644
+index 047f1772c8f9346ba4541d46af8e144141865cfb..173c9d06b28db3e776c762903a0409234c08b13c 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -154,17 +154,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
index fef47c21f..437118869 100644
--- a/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
+++ b/patches/server/0748-Do-not-allow-ticket-level-changes-while-unloading-pl.patch
@@ -8,7 +8,7 @@ Sync loading the chunk at this stage would cause it to load
older data, as well as screwing our region state.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 00e79197d59bcbca0785ff0d651220756cb57c9b..fb647b770ffd7bc7609c98232e74a0bc9b98522b 100644
+index 173c9d06b28db3e776c762903a0409234c08b13c..dcb5b1022eb72c50dc1df3654b0c9db7c782517c 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -341,6 +341,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index 485d85d61..3ccfde3cd 100644
--- a/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0750-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -28,7 +28,7 @@ index f8c0574137cab33d0b5efe5d532efb132dcb914a..80f59abeb0081fe4784f3c0d027e8dfc
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f508695f622f5ac76c0a3c037ebde393234fab54..c5ce1bd8317801d0cfe0ef4f7ed40573f61e4a16 100644
+index 9b02f054493ad69c7a595374e6fd600c3d64e61e..e40587b9c13d9170ef5dd0811e96b02ecaccebb2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1562,6 +1562,18 @@ public class ServerPlayer extends Player {
@@ -51,7 +51,7 @@ index f508695f622f5ac76c0a3c037ebde393234fab54..c5ce1bd8317801d0cfe0ef4f7ed40573
public void doCloseContainer() {
this.containerMenu.removed((Player) this);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index d8780f06efc261a42389e466573a0bcf10c333f6..cea92f1dc663bf0648b2bd877d86ca380a517bc9 100644
+index fb66da46d2b3a46fe4b8d43f99a1a60f768f5f19..ce713e1857121ca52467ad561c4fbb30ae054d87 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -498,6 +498,11 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch b/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch
index 89cbf8bf9..2f37de0d7 100644
--- a/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch
+++ b/patches/server/0753-Fix-chunks-refusing-to-unload-at-low-TPS.patch
@@ -10,7 +10,7 @@ chunk future to complete. We can simply schedule to the immediate
executor to get this effect, rather than the main mailbox.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index fb647b770ffd7bc7609c98232e74a0bc9b98522b..fc170e5e477dec16515ceb0c27828c0199fefe43 100644
+index dcb5b1022eb72c50dc1df3654b0c9db7c782517c..efaab00b73f48e267a033a4ef466dcbaf2af2044 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1451,9 +1451,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0762-Rewrite-the-light-engine.patch b/patches/server/0762-Rewrite-the-light-engine.patch
index 70cede435..793952b3b 100644
--- a/patches/server/0762-Rewrite-the-light-engine.patch
+++ b/patches/server/0762-Rewrite-the-light-engine.patch
@@ -3856,7 +3856,7 @@ index b0a6eb7846580489e0476e69565676e77fd224cd..54822e418e319db551bfea3218d00faf
private final DebugBuffer chunkToSaveHistory;
public int oldTicketLevel;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index fc170e5e477dec16515ceb0c27828c0199fefe43..82dbeb5a10104ed3599a007186f61b0c92bea2b1 100644
+index efaab00b73f48e267a033a4ef466dcbaf2af2044..aae8dca773686bec3f867b79aa11d668032b9244 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -121,7 +121,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch b/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch
index cfef26c75..3cdccba3d 100644
--- a/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch
+++ b/patches/server/0763-Rewrite-entity-bounding-box-lookup-calls.patch
@@ -1077,10 +1077,10 @@ index 325e244c46ec208a2e7e18d71ccbbfcc25fc1bce..94130509e3a7980c378cc95c46821cf0
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index a7485746417e0dddb392c89a5a1d467c0bc83fbe..82da0f2226f71a5081e24c17a8a39be22e3c5316 100644
+index 59703eb6610c21df22f25c22cc884c4450f0316c..bdd50c28a76576be7950e3ccf8e00b622f3860d1 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -203,6 +203,50 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -204,6 +204,50 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return this.typeKey;
}
@@ -1131,7 +1131,7 @@ index a7485746417e0dddb392c89a5a1d467c0bc83fbe..82da0f2226f71a5081e24c17a8a39be2
protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper - Anti-Xray - Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
-@@ -279,6 +323,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -281,6 +325,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.chunkPacketBlockController = this.paperConfig.antiXray ?
new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor)
: com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
@@ -1139,7 +1139,7 @@ index a7485746417e0dddb392c89a5a1d467c0bc83fbe..82da0f2226f71a5081e24c17a8a39be2
}
// Paper start
-@@ -996,26 +1041,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -998,26 +1043,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public List getEntities(@Nullable Entity except, AABB box, Predicate super Entity> predicate) {
this.getProfiler().incrementCounter("getEntities");
List list = Lists.newArrayList();
@@ -1167,7 +1167,7 @@ index a7485746417e0dddb392c89a5a1d467c0bc83fbe..82da0f2226f71a5081e24c17a8a39be2
return list;
}
-@@ -1024,26 +1050,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -1026,26 +1052,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.getProfiler().incrementCounter("getEntities");
List list = Lists.newArrayList();
diff --git a/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
index c15f2bd1a..ee26b9d1c 100644
--- a/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
+++ b/patches/server/0764-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch
@@ -926,7 +926,7 @@ index 0000000000000000000000000000000000000000..d67a40e7be030142443680c89e1763fc
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index afad4f6069fc546f98f688715d0ae914bdd3e317..f563e52c94735648670acd80169c0f7c4d6ad36a 100644
+index e40587b9c13d9170ef5dd0811e96b02ecaccebb2..52ffc39715def70a8ad3a99356be19bea5ef892b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -419,7 +419,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0766-Execute-chunk-tasks-mid-tick.patch b/patches/server/0766-Execute-chunk-tasks-mid-tick.patch
index bf1c347f8..ee13c36c5 100644
--- a/patches/server/0766-Execute-chunk-tasks-mid-tick.patch
+++ b/patches/server/0766-Execute-chunk-tasks-mid-tick.patch
@@ -31,7 +31,7 @@ index 5fdaefc128956581be4bb9b34199fd6410563991..b7edc1121797bc1c57e25f540ed0124f
// start copy from TickListServer // TODO check on update
CrashReport crashreport = CrashReport.forThrowable(thr, "Exception while ticking");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index b7beb5c778c010d37e737f09cc9f0e7af3b47cef..1d7c26354eee1dff5e66b6234d408ed8f800415c 100644
+index ecb167f6a114a7e3bfac05db2e87631ec88a0ba2..fe6d5051b139cd6079e288ffdf20e30fdd46fdda 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -330,6 +330,76 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop void guardEntityTick(Consumer tickConsumer, T entity) {
try {
tickConsumer.accept(entity);
diff --git a/patches/server/0768-Do-not-copy-visible-chunks.patch b/patches/server/0768-Do-not-copy-visible-chunks.patch
index 430230216..e6ed0b44c 100644
--- a/patches/server/0768-Do-not-copy-visible-chunks.patch
+++ b/patches/server/0768-Do-not-copy-visible-chunks.patch
@@ -35,7 +35,7 @@ index 379ba589b0423284d63782d951c64770b160cf2d..ee668b989d661e1db1bdfe05b94d7cda
List allChunks = new ArrayList<>(visibleChunks.values());
List players = world.players;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 82dbeb5a10104ed3599a007186f61b0c92bea2b1..58cf34b714ba98f35bdbe3895078ae4f87a0360e 100644
+index aae8dca773686bec3f867b79aa11d668032b9244..2f5ab00d26dcf027ec0e152a8bf17686a280ae50 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -114,9 +114,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -156,10 +156,10 @@ index 82dbeb5a10104ed3599a007186f61b0c92bea2b1..58cf34b714ba98f35bdbe3895078ae4f
while (objectbidirectionaliterator.hasNext()) {
Entry 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 00522af9b6c4938e9b0b169178243be53aab98d8..5af560b0466ec5ba80489e8f3d65aa2ee298786c 100644
+index a1f26413e30c80162738595427837c7177357a1b..072c2bbd8dd94bf3b687cee2eb7c09c79190231c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -148,7 +148,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -149,7 +149,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getTileEntityCount() {
// We don't use the full world tile entity list, so we must iterate chunks
@@ -168,7 +168,7 @@ index 00522af9b6c4938e9b0b169178243be53aab98d8..5af560b0466ec5ba80489e8f3d65aa2e
int size = 0;
for (ChunkHolder playerchunk : chunks.values()) {
net.minecraft.world.level.chunk.LevelChunk chunk = playerchunk.getTickingChunk();
-@@ -169,7 +169,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -170,7 +170,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getChunkCount() {
int ret = 0;
@@ -177,7 +177,7 @@ index 00522af9b6c4938e9b0b169178243be53aab98d8..5af560b0466ec5ba80489e8f3d65aa2e
if (chunkHolder.getTickingChunk() != null) {
++ret;
}
-@@ -342,7 +342,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -343,7 +343,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Chunk[] getLoadedChunks() {
diff --git a/patches/server/0769-Replace-player-chunk-loader-system.patch b/patches/server/0769-Replace-player-chunk-loader-system.patch
index 1d199ecca..12194359f 100644
--- a/patches/server/0769-Replace-player-chunk-loader-system.patch
+++ b/patches/server/0769-Replace-player-chunk-loader-system.patch
@@ -1202,7 +1202,7 @@ index 54822e418e319db551bfea3218d00faf0e043f43..de0c6316c9b75a2ecc7d6abf7bcca24e
}
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 58cf34b714ba98f35bdbe3895078ae4f87a0360e..e343c0ad21da97c4b830c626b3d59e03fa60e494 100644
+index 2f5ab00d26dcf027ec0e152a8bf17686a280ae50..9b4d689c04c59056f0a2ec39cf26e173cb722641 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -187,22 +187,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1548,7 +1548,7 @@ index 108f2212f8bd00247bf73ff4f3ba42830abad459..0d8a47770435c27519af4ebd78835ec7
return true;
} else {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f563e52c94735648670acd80169c0f7c4d6ad36a..6d2d2ba4a83d887f4d52188305a4a28c2ee2f014 100644
+index 52ffc39715def70a8ad3a99356be19bea5ef892b..4dfd185e47849c18c552e28370d93b48799d2eb9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -261,7 +261,7 @@ public class ServerPlayer extends Player {
@@ -1608,10 +1608,10 @@ index 7ccfe737fdf7f07b731ea0ff82e897564350705c..fe709bee0e657ff9bfc6deb6d4bd8ce4
double deltaZ = soundPos.getZ() - player.getZ();
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 6ca0134c76adc335bb5125831e332fd709f09de7..83062654f7a3b05ba0ddb97645d615988bbe511b 100644
+index 6818de8db716a3d4bcf8a6ee4dc6acccf441cddb..01b8fc343d3a7dd68b6e54168de520b61e00da1f 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -597,7 +597,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -599,7 +599,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.sendBlockUpdated(blockposition, iblockdata1, iblockdata, i);
// Paper start - per player view distance - allow block updates for non-ticking chunks in player view distance
// if copied from above
@@ -1692,10 +1692,10 @@ index f0c43f9f636a5dd1f0dfbae604dfa1f4ff9ebd4e..9e75ee7f43722f05dd5df4ef00f7d3e2
/*
* If it's a new world, the first few chunks are generated inside
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5af560b0466ec5ba80489e8f3d65aa2ee298786c..883b2070fcf99cf10d44aef6dece0f7f84bfeeed 100644
+index 072c2bbd8dd94bf3b687cee2eb7c09c79190231c..8c238a445b327e24d8152b36ebc2b1b57e73d0e1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2041,14 +2041,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2066,14 +2066,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]");
}
net.minecraft.server.level.ChunkMap chunkMap = getHandle().getChunkSource().chunkMap;
@@ -1712,7 +1712,7 @@ index 5af560b0466ec5ba80489e8f3d65aa2ee298786c..883b2070fcf99cf10d44aef6dece0f7f
}
@Override
-@@ -2057,11 +2057,22 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2082,11 +2082,22 @@ public class CraftWorld extends CraftRegionAccessor implements World {
throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]");
}
net.minecraft.server.level.ChunkMap chunkMap = getHandle().getChunkSource().chunkMap;
@@ -1737,7 +1737,7 @@ index 5af560b0466ec5ba80489e8f3d65aa2ee298786c..883b2070fcf99cf10d44aef6dece0f7f
// Spigot start
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index aa9775083aa804d72965a7af4988b14551293571..2f943a5f5135d4bb7c516e09277ddf15b8732fca 100644
+index 9da0bf8cf59fd37837ba4febf93c022fb4f08278..c64911651f3d736c83cc83996de04920b091cc57 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -517,15 +517,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch
index 82baaada8..b99cdf62e 100644
--- a/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/0774-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling
Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0cf2b24b7f97efeec17218684baa72b2f6ea17f4..86ff3ee13ac571570965966fc5b2392bb928ffb0 100644
+index efa7c4b1e8c2e4297f89eb62aab76c43d2947e16..5d7c47b0a302f7db95a0b2bb811c5656c6b02beb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -582,12 +582,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
diff --git a/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index eab8c3f0e..dc74c4859 100644
--- a/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0778-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
@@ -13,10 +13,10 @@ Paper recently reverted this optimisation, so it's been reintroduced
here.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 83062654f7a3b05ba0ddb97645d615988bbe511b..921aba3463b9f86a9e3c7d59aaa48b9760693eab 100644
+index 01b8fc343d3a7dd68b6e54168de520b61e00da1f..a6891e051b3b2863fa8ca108af418892515d7295 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -409,6 +409,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -411,6 +411,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline
diff --git a/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch
index 40df34a36..62ec327fe 100644
--- a/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0787-Oprimise-map-impl-for-tracked-players.patch
@@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have
better lookups than HashMap.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index e343c0ad21da97c4b830c626b3d59e03fa60e494..5cd766b25e63f05aa728da8dd109f0d5b91bc944 100644
+index 9b4d689c04c59056f0a2ec39cf26e173cb722641..87172ee94f5796a23c22c58bbb591dede2b2dc3c 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -103,6 +103,7 @@ import org.apache.logging.log4j.LogManager;
diff --git a/patches/server/0790-Optimise-random-block-ticking.patch b/patches/server/0790-Optimise-random-block-ticking.patch
index a2a31f354..c7bdbe0f8 100644
--- a/patches/server/0790-Optimise-random-block-ticking.patch
+++ b/patches/server/0790-Optimise-random-block-ticking.patch
@@ -261,10 +261,10 @@ index 00dbe5046c3b93e402218a6903ea2f087410388b..7d001f42c448fd328b6384d133dcc4b7
public BlockPos getHomePos() {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 921aba3463b9f86a9e3c7d59aaa48b9760693eab..5efafcadda2bfc5cab8ce5d3ede83a0467fe696f 100644
+index a6891e051b3b2863fa8ca108af418892515d7295..64d5e71a8a26116385cee195d86fce1ef1574a8c 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -1363,10 +1363,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -1365,10 +1365,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public abstract TagContainer getTagManager();
public BlockPos getBlockRandomPos(int x, int y, int z, int l) {
diff --git a/patches/server/0792-Optimise-nearby-player-lookups.patch b/patches/server/0792-Optimise-nearby-player-lookups.patch
index fa33ff50d..ebf0282c0 100644
--- a/patches/server/0792-Optimise-nearby-player-lookups.patch
+++ b/patches/server/0792-Optimise-nearby-player-lookups.patch
@@ -26,7 +26,7 @@ index 4588ae8037407b81c99135863eb0c4e97c564c24..2a33071c4b69cb7b5a7e296e8fd903e3
// Paper end - optimise isOutsideOfRange
long lastAutoSaveTime; // Paper - incremental autosave
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 5cd766b25e63f05aa728da8dd109f0d5b91bc944..741609db2c8dfff24999b26f6fb98d1f27b9525e 100644
+index 87172ee94f5796a23c22c58bbb591dede2b2dc3c..955c42be5c5ed5c3a1a76e868da2087ced436e49 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -217,6 +217,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -235,10 +235,10 @@ index bada11542390b7575466f0e7062470665b8266c4..8a864238e154e2131834d013652746b7
if (entityhuman != null) {
double d0 = entityhuman.distanceToSqr((Entity) this); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index 5efafcadda2bfc5cab8ce5d3ede83a0467fe696f..b93056b91e7ebd49e6ddb53ccb6c05c056088df9 100644
+index 64d5e71a8a26116385cee195d86fce1ef1574a8c..f936e9f9a9fa655fa997d6862b5ed54c04169d35 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -246,6 +246,69 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -247,6 +247,69 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return ret;
}
// Paper end
@@ -309,10 +309,10 @@ index 5efafcadda2bfc5cab8ce5d3ede83a0467fe696f..b93056b91e7ebd49e6ddb53ccb6c05c0
protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper - Anti-Xray - Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 75fc88e7def31a133e7d2a493507eacff2e7342d..bad8f0d2934218296954e9758810a68e1fedcacc 100644
+index d69abf154f056883dcd6dc4d9d97d2b772b62368..e588ac628ac855ec13004ae4a212e01637e524fa 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-@@ -262,7 +262,7 @@ public final class NaturalSpawner {
+@@ -267,7 +267,7 @@ public final class NaturalSpawner {
blockposition_mutableblockposition.set(l, i, i1);
double d0 = (double) l + 0.5D;
double d1 = (double) i1 + 0.5D;
@@ -321,7 +321,7 @@ index 75fc88e7def31a133e7d2a493507eacff2e7342d..bad8f0d2934218296954e9758810a68e
if (entityhuman != null) {
double d2 = entityhuman.distanceToSqr(d0, (double) i, d1);
-@@ -335,7 +335,7 @@ public final class NaturalSpawner {
+@@ -340,7 +340,7 @@ public final class NaturalSpawner {
}
private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel world, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double squaredDistance) {
diff --git a/patches/server/0794-Optimise-WorldServer-notify.patch b/patches/server/0794-Optimise-WorldServer-notify.patch
index e20ee5da3..044366def 100644
--- a/patches/server/0794-Optimise-WorldServer-notify.patch
+++ b/patches/server/0794-Optimise-WorldServer-notify.patch
@@ -8,7 +8,7 @@ Instead, only iterate over navigators in the current region that are
eligible for repathing.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 741609db2c8dfff24999b26f6fb98d1f27b9525e..4045b7999948710517259edf1cda7028a96cc4c9 100644
+index 955c42be5c5ed5c3a1a76e868da2087ced436e49..b3c99c1678c3ee159861c8aac38e765d664c4d1d 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -290,15 +290,81 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
diff --git a/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch
index 6bc0af58c..f03462a6f 100644
--- a/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/0797-Use-Velocity-compression-and-cipher-natives.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives
diff --git a/build.gradle.kts b/build.gradle.kts
-index 1876481a830228fd15fcd2a4be5f2c28bd7e51fe..b3687f632bbf06c933a6ef04dc2236ccf3c030b8 100644
+index e9cdebd25bec965a52916ee09e358564d42777d0..d80cfcb94db51440b5d0aa589a9a3d8a4189a9aa 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -25,6 +25,7 @@ repositories {
diff --git a/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch
index bbbfdbc9a..42e617cf5 100644
--- a/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0802-Prevent-softlocked-end-exit-portal-generation.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent softlocked end exit portal generation
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
-index 93dd5a2d0b550b0373cbf59376a04e9fd6146e92..53001f490f374c75e0d44ec75387f4bee6ab8952 100644
+index dec99c9d40705a89c395437d0d050f3ab36bc17b..44551fc6fc5888206c1a2da3ece5baa486faa1d5 100644
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
@@ -409,6 +409,12 @@ public class EndDragonFight {
diff --git a/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 4273626dd..7a00e3678 100644
--- a/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0803-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -270,10 +270,10 @@ index 2ef4b4c2ff81d0fa33d4630593266066d8e6a6f3..34bc24403a83ae578d2fc3956b488389
List worlds;
if (args.length < 2 || args[1].equals("*")) {
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index bad8f0d2934218296954e9758810a68e1fedcacc..0b228b8bcae5ed2840ab244b6de35732f737504d 100644
+index e588ac628ac855ec13004ae4a212e01637e524fa..0c857fce997d918d1552f7d1e8695e7908df8b3c 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-@@ -144,28 +144,15 @@ public final class NaturalSpawner {
+@@ -145,32 +145,16 @@ public final class NaturalSpawner {
MobCategory enumcreaturetype = aenumcreaturetype[j];
// CraftBukkit start - Use per-world spawn limits
boolean spawnThisTick = true;
@@ -292,6 +292,10 @@ index bad8f0d2934218296954e9758810a68e1fedcacc..0b228b8bcae5ed2840ab244b6de35732
- spawnThisTick = spawnWaterThisTick;
- limit = world.getWorld().getWaterAnimalSpawnLimit();
- break;
+- case UNDERGROUND_WATER_CREATURE:
+- spawnThisTick = spawnWaterUndergroundCreatureThisTick;
+- limit = world.getWorld().getWaterUndergroundCreatureSpawnLimit();
+- break;
- case AMBIENT:
- spawnThisTick = spawnAmbientThisTick;
- limit = world.getWorld().getAmbientSpawnLimit();
@@ -304,13 +308,14 @@ index bad8f0d2934218296954e9758810a68e1fedcacc..0b228b8bcae5ed2840ab244b6de35732
+ case MONSTER -> spawnThisTick = spawnMonsterThisTick;
+ case CREATURE -> spawnThisTick = spawnAnimalThisTick;
+ case WATER_CREATURE -> spawnThisTick = spawnWaterThisTick;
++ case UNDERGROUND_WATER_CREATURE -> spawnThisTick = spawnWaterUndergroundCreatureThisTick;
+ case AMBIENT -> spawnThisTick = spawnAmbientThisTick;
+ case WATER_AMBIENT -> spawnThisTick = spawnWaterAmbientThisTick;
+ // Paper end
}
if (!spawnThisTick || limit == 0) {
-@@ -204,6 +191,27 @@ public final class NaturalSpawner {
+@@ -209,6 +193,28 @@ public final class NaturalSpawner {
world.getProfiler().pop();
}
@@ -320,6 +325,7 @@ index bad8f0d2934218296954e9758810a68e1fedcacc..0b228b8bcae5ed2840ab244b6de35732
+ case MONSTER -> world.getWorld().getMonsterSpawnLimit();
+ case CREATURE -> world.getWorld().getAnimalSpawnLimit();
+ case WATER_CREATURE -> world.getWorld().getWaterAnimalSpawnLimit();
++ case UNDERGROUND_WATER_CREATURE -> world.getWorld().getWaterUndergroundCreatureSpawnLimit();
+ case AMBIENT -> world.getWorld().getAmbientSpawnLimit();
+ case WATER_AMBIENT -> world.getWorld().getWaterAmbientSpawnLimit();
+ default -> enumcreaturetype.getMaxInstancesPerChunk();
diff --git a/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch b/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
index e0e5c74ad..ee3bb34c3 100644
--- a/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
+++ b/patches/server/0806-Mark-fish-and-axolotls-from-buckets-as-persistent.patch
@@ -18,7 +18,7 @@ index fc0cd86397b12e42756273a0317164d79ac51937..0701adf77a04a82df4fe1dceee196fee
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
-index fa365420a4593bc7d652b0d92f4750602fcb334b..0c616bd9309d304727a29ff5cb1c60d9f031b34c 100644
+index f75333190f8b824e0b52ad2d74739f420644f469..2b8725087fd3bfeca7162bda2783fdacd13a8390 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -236,7 +236,7 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
diff --git a/patches/server/0808-Ensure-valid-vehicle-status.patch b/patches/server/0808-Ensure-valid-vehicle-status.patch
index 7cf8d3d6c..cb45c347b 100644
--- a/patches/server/0808-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0808-Ensure-valid-vehicle-status.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9e6342ac61bdccfde371674249a5d43c692358eb..cd4ccb208baebd74780443fc575f0ce5b745fdc8 100644
+index 4dfd185e47849c18c552e28370d93b48799d2eb9..11f46c1b8f4c8414e0667d1873542c17d6e01f2a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -509,7 +509,7 @@ public class ServerPlayer extends Player {
diff --git a/patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch b/patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
similarity index 93%
rename from patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
rename to patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
index 351633a78..69b618359 100644
--- a/patches/server/0814-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
+++ b/patches/server/0815-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Dont count named piglins and hoglins towards mob cap
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
-index 0b228b8bcae5ed2840ab244b6de35732f737504d..f316585ccf6baf5e7e514ba3a68b4344e781a82d 100644
+index 0c857fce997d918d1552f7d1e8695e7908df8b3c..bacd75f67f783f49208a74501cc7e6e7485010a4 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -83,7 +83,7 @@ public final class NaturalSpawner {
diff --git a/patches/server/0815-Register-spawn-egg-meta-for-1.17-mobs.patch b/patches/server/0816-Register-spawn-egg-meta-for-1.17-mobs.patch
similarity index 100%
rename from patches/server/0815-Register-spawn-egg-meta-for-1.17-mobs.patch
rename to patches/server/0816-Register-spawn-egg-meta-for-1.17-mobs.patch
diff --git a/work/Bukkit b/work/Bukkit
index 19e985eca..6be36d363 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 19e985ecaf424e77845a8e136b7e17b94e8a65ee
+Subproject commit 6be36d3638f97e6e0dc053f3e0fd0e68e8ec93f0
diff --git a/work/CraftBukkit b/work/CraftBukkit
index dc764e7a2..1df303e70 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit dc764e7a2f9272e72a3f37c6770c9c0f7ea83d43
+Subproject commit 1df303e70742418fd30760a750a9545f3dea5b9b
diff --git a/work/Spigot b/work/Spigot
index 6c1c1b265..8e907441b 160000
--- a/work/Spigot
+++ b/work/Spigot
@@ -1 +1 @@
-Subproject commit 6c1c1b2650e2f166fbba2f670ab37af8ce20156d
+Subproject commit 8e907441bde900ddc564d3a5fac831287a1a8b75