From 9e1255cff99dbbf43077985b3884cb2be4b878d6 Mon Sep 17 00:00:00 2001 From: KennyTV Date: Wed, 16 Jun 2021 12:14:53 +0200 Subject: [PATCH] Port chunk priority urgency patch --- build-data/paper.at | 3 + ...ze-NibbleArray-to-use-pooled-buffers.patch | 2 - ...-Priority-Urgency-System-for-Chunks.patch} | 694 +++++++----------- ...e-NetworkManager-Exception-Handling.patch} | 0 ...ncement-data-player-iteration-to-be.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 4 +- ...-5989.patch => 0493-Fix-SPIGOT-5989.patch} | 10 +- ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...eLighting-call-to-World-spigot-stri.patch} | 4 +- ...ix-some-rails-connecting-improperly.patch} | 0 ...Fix-MC-187716-Use-configured-height.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...support.patch => 0502-Brand-support.patch} | 12 +- ...patch => 0503-Add-setMaxPlayers-API.patch} | 2 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0505-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 4 +- ...PI.patch => 0507-Add-moon-phase-API.patch} | 2 +- ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0509-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0511-Buffer-joins-to-world.patch} | 0 ...=> 0512-Optimize-redstone-algorithm.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...ch => 0515-Fix-CraftTeam-null-check.patch} | 0 ...I.patch => 0516-Add-more-Evoker-API.patch} | 0 ...translation-keys-for-blocks-entitie.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0519-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 6 +- ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 2 +- ...ty-in-invalid-locations-SPIGOT-6086.patch} | 4 +- ...-Counter-to-allow-plugins-to-use-va.patch} | 2 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0527-Entity-isTicking.patch} | 2 +- ...non-whitelisted-player-when-white-l.patch} | 0 ...g-a-passenger-in-CreatureSpawnEvent.patch} | 2 +- ...x-Concurrency-issue-in-WeightedList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 2 +- ...atch => 0533-Optimise-getType-calls.patch} | 0 ....patch => 0534-Villager-resetOffers.patch} | 0 ...nig-for-some-hot-IBlockData-methods.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 0 ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...tch => 0539-Player-elytra-boost-API.patch} | 2 +- ...40-Fixed-TileEntityBell-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0543-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0546-Item-no-age-no-player-pickup.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...548-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0549-Add-API-for-quit-reason.patch} | 8 +- ...h => 0550-Seed-based-feature-search.patch} | 0 ...ng-Trader-spawn-rate-config-options.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...ch => 0553-Expose-world-spawn-angle.patch} | 6 +- ...patch => 0554-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 4 +- ...56-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0557-Add-PlayerItemCooldownEvent.patch} | 0 ...PI.patch => 0558-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 2 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0561-Add-PlayerShearBlockEvent.patch} | 0 ...rbose-world-setting-to-false-by-def.patch} | 0 ...ng-zombie-villager-discount-exploit.patch} | 0 ....patch => 0564-Limit-recipe-packets.patch} | 4 +- ...-CraftSound-backwards-compatibility.patch} | 0 ... 0566-MC-4-Fix-item-position-desync.patch} | 2 +- ...567-Player-Chunk-Load-Unload-Events.patch} | 4 +- ...8-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...-invalid-ingredient-lists-in-Villag.patch} | 0 ...atch => 0572-added-PlayerTradeEvent.patch} | 0 ...ch => 0573-Implement-TargetHitEvent.patch} | 0 ...574-Additional-Block-Material-API-s.patch} | 0 ...tch => 0575-Fix-harming-potion-dupe.patch} | 0 ...get-Material-from-Boats-and-Minecar.patch} | 0 ....patch => 0577-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...ment-PlayerFlowerPotManipulateEvent.patch} | 0 ...event-not-being-called-in-adventure.patch} | 6 +- ...h => 0582-Zombie-API-breaking-doors.patch} | 0 ...583-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0584-Add-EntityLoadCrossbowEvent.patch} | 0 ...ch => 0585-Guardian-beam-workaround.patch} | 0 ...0586-Added-WorldGameRuleChangeEvent.patch} | 2 +- ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...mplemented-BlockFailedDispenseEvent.patch} | 0 ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...I-to-expose-exact-interaction-point.patch} | 0 ...OIs.patch => 0595-Remove-stale-POIs.patch} | 2 +- ...h => 0596-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0597-Add-sendOpLevel-API.patch} | 6 +- ...ch => 0598-Add-StructureLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 2 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...602-Make-schedule-command-per-world.patch} | 0 ...603-Configurable-max-leash-distance.patch} | 0 ...604-Implement-BlockPreDispenseEvent.patch} | 0 ...h => 0605-Added-Vanilla-Entity-Tags.patch} | 0 ...-API.patch => 0606-added-Wither-API.patch} | 0 ...ng-of-PlayerChangeBeaconEffectEvent.patch} | 0 ...-spam-when-removing-chests-in-water.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 0 ...e-map-update-when-spawning-disabled.patch} | 4 +- ...shield-blocking-on-dimension-change.patch} | 4 +- ...atch => 0614-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0615-EntityMoveEvent.patch} | 2 +- ...isable-pathfinding-updates-on-block.patch} | 2 +- ... 0617-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ....patch => 0623-misc-debugging-dumps.patch} | 0 ...port-for-hex-color-codes-in-console.patch} | 0 ...atch => 0625-Expose-Tracked-Players.patch} | 4 +- ...6-Remove-streams-from-SensorNearest.patch} | 0 ...ix-Wither-hostility-towards-players.patch} | 0 ...er-exception-on-empty-JsonList-file.patch} | 0 ...GUI.patch => 0629-Improve-ServerGUI.patch} | 0 ...ure-plate-EntityInteractEvent-for-i.patch} | 0 ...631-fix-converting-txt-to-json-file.patch} | 2 +- ...atch => 0632-Add-worldborder-events.patch} | 0 ...=> 0633-added-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0635-Add-recipe-to-cook-events.patch} | 0 ...patch => 0636-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 4 +- ...ch => 0638-Implement-Keyed-on-World.patch} | 4 +- ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0640-Item-Rarity-API.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...py-TESign-isEditable-from-snapshots.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 2 +- ...block-falling-causing-client-desync.patch} | 2 +- ...tch => 0647-Expose-protocol-version.patch} | 0 ...nt-suggestion-tooltips-in-AsyncTabC.patch} | 2 +- ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0651-Add-bypass-host-check.patch} | 0 ...0652-Set-area-affect-cloud-rotation.patch} | 2 +- ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...ting-give-items-on-item-drop-cancel.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...-checkReach-check-for-Shulker-boxes.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 4 +- ... => 0660-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0661-More-World-API.patch} | 2 +- ... 0662-Added-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...n-acting-as-a-bed-respawn-from-the-.patch} | 8 +- ...acon-activation-deactivation-events.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 10 +- ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0669-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...address-to-AsyncPlayerPreLoginEvent.patch} | 0 ...close.patch => 0673-Inventory-close.patch} | 0 ...reateEvent-players-and-end-platform.patch} | 4 +- ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...=> 0676-Fix-CraftPotionBrewer-cache.patch} | 0 ...atch => 0677-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 16 +- ...fo.patch => 0680-Clear-SyncLoadInfo.patch} | 0 ... => 0681-ItemStack-repair-check-API.patch} | 0 ....patch => 0682-More-Enchantment-API.patch} | 0 ...option-to-load-extra-plugin-jars-no.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...PI.patch => 0685-Add-Mob-lookAt-API.patch} | 0 ...0686-Add-Unix-domain-socket-support.patch} | 0 ... => 0687-Add-EntityInsideBlockEvent.patch} | 0 ...88-Attributes-API-for-item-defaults.patch} | 0 ...hantCustom-emit-PlayerPurchaseEvent.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 4 +- ...patch => 0691-More-Lidded-Block-API.patch} | 0 ...92-Limit-item-frame-cursors-on-maps.patch} | 0 ...0693-Add-PufferFishStateChangeEvent.patch} | 0 ... => 0694-Add-PlayerKickEvent-causes.patch} | 34 +- ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ReentrantLo.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0698-Add-BellRevealRaiderEvent.patch} | 0 ... 0699-Fix-invulnerable-end-crystals.patch} | 0 ...00-Add-ElderGuardianAppearanceEvent.patch} | 0 ...inventory-on-cancelled-pickup-event.patch} | 0 ...0702-Fix-dangerous-end-portal-logic.patch} | 2 +- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...0705-Add-more-line-of-sight-methods.patch} | 2 +- ... => 0706-add-per-world-spawn-limits.patch} | 2 +- ...plashEvent-for-water-splash-potions.patch} | 0 ...tus-dataconverter-for-pre-1.13-chun.patch} | 0 224 files changed, 388 insertions(+), 545 deletions(-) rename patches/{removed/1.17/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch => server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch} (67%) rename patches/server/{0487-Optimize-NetworkManager-Exception-Handling.patch => 0488-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0488-Optimize-the-advancement-data-player-iteration-to-be.patch => 0489-Optimize-the-advancement-data-player-iteration-to-be.patch} (100%) rename patches/server/{0489-Fix-arrows-never-despawning-MC-125757.patch => 0490-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0490-Thread-Safe-Vanilla-Command-permission-checking.patch => 0491-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0491-Move-range-check-for-block-placing-up.patch => 0492-Move-range-check-for-block-placing-up.patch} (94%) rename patches/server/{0492-Fix-SPIGOT-5989.patch => 0493-Fix-SPIGOT-5989.patch} (91%) rename patches/server/{0493-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0494-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0494-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0495-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0495-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0496-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0496-Add-missing-strikeLighting-call-to-World-spigot-stri.patch => 0497-Add-missing-strikeLighting-call-to-World-spigot-stri.patch} (82%) rename patches/server/{0497-Fix-some-rails-connecting-improperly.patch => 0498-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0498-Fix-MC-187716-Use-configured-height.patch => 0499-Fix-MC-187716-Use-configured-height.patch} (100%) rename patches/server/{0499-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0500-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0500-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0501-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0501-Brand-support.patch => 0502-Brand-support.patch} (90%) rename patches/server/{0502-Add-setMaxPlayers-API.patch => 0503-Add-setMaxPlayers-API.patch} (94%) rename patches/server/{0503-Add-playPickupItemAnimation-to-LivingEntity.patch => 0504-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0504-Don-t-require-FACING-data.patch => 0505-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0505-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0506-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (93%) rename patches/server/{0506-Add-moon-phase-API.patch => 0507-Add-moon-phase-API.patch} (89%) rename patches/server/{0507-Prevent-headless-pistons-from-being-created.patch => 0508-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0508-Add-BellRingEvent.patch => 0509-Add-BellRingEvent.patch} (100%) rename patches/server/{0509-Add-zombie-targets-turtle-egg-config.patch => 0510-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0510-Buffer-joins-to-world.patch => 0511-Buffer-joins-to-world.patch} (100%) rename patches/server/{0511-Optimize-redstone-algorithm.patch => 0512-Optimize-redstone-algorithm.patch} (100%) rename patches/server/{0512-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0513-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0513-PortalCreateEvent-needs-to-know-its-entity.patch => 0514-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0514-Fix-CraftTeam-null-check.patch => 0515-Fix-CraftTeam-null-check.patch} (100%) rename patches/server/{0515-Add-more-Evoker-API.patch => 0516-Add-more-Evoker-API.patch} (100%) rename patches/server/{0516-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch => 0517-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch} (100%) rename patches/server/{0517-Create-HoverEvent-from-ItemStack-Entity.patch => 0518-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0518-Cache-block-data-strings.patch => 0519-Cache-block-data-strings.patch} (100%) rename patches/server/{0519-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0520-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (95%) rename patches/server/{0520-Add-additional-open-container-api-to-HumanEntity.patch => 0521-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0521-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0522-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0522-Extend-block-drop-capture-to-capture-all-items-added.patch => 0523-Extend-block-drop-capture-to-capture-all-items-added.patch} (96%) rename patches/server/{0523-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch => 0524-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch} (84%) rename patches/server/{0524-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0525-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (94%) rename patches/server/{0525-Lazily-track-plugin-scoreboards-by-default.patch => 0526-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0526-Entity-isTicking.patch => 0527-Entity-isTicking.patch} (95%) rename patches/server/{0527-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0528-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0528-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch => 0529-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch} (89%) rename patches/server/{0529-Fix-Concurrency-issue-in-WeightedList.patch => 0530-Fix-Concurrency-issue-in-WeightedList.patch} (100%) rename patches/server/{0530-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0531-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0531-Fix-for-large-move-vectors-crashing-server.patch => 0532-Fix-for-large-move-vectors-crashing-server.patch} (97%) rename patches/server/{0532-Optimise-getType-calls.patch => 0533-Optimise-getType-calls.patch} (100%) rename patches/server/{0533-Villager-resetOffers.patch => 0534-Villager-resetOffers.patch} (100%) rename patches/server/{0534-Improve-inlinig-for-some-hot-IBlockData-methods.patch => 0535-Improve-inlinig-for-some-hot-IBlockData-methods.patch} (100%) rename patches/server/{0535-Retain-block-place-order-when-capturing-blockstates.patch => 0536-Retain-block-place-order-when-capturing-blockstates.patch} (100%) rename patches/server/{0536-Reduce-blockpos-allocation-from-pathfinding.patch => 0537-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0537-Fix-item-locations-dropped-from-campfires.patch => 0538-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0538-Player-elytra-boost-API.patch => 0539-Player-elytra-boost-API.patch} (94%) rename patches/server/{0539-Fixed-TileEntityBell-memory-leak.patch => 0540-Fixed-TileEntityBell-memory-leak.patch} (100%) rename patches/server/{0540-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0541-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0541-Add-getOfflinePlayerIfCached-String.patch => 0542-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0542-Add-ignore-discounts-API.patch => 0543-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0543-Toggle-for-removing-existing-dragon.patch => 0544-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0544-Fix-client-lag-on-advancement-loading.patch => 0545-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0545-Item-no-age-no-player-pickup.patch => 0546-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0546-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 0547-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{0547-Beacon-API-custom-effect-ranges.patch => 0548-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0548-Add-API-for-quit-reason.patch => 0549-Add-API-for-quit-reason.patch} (93%) rename patches/server/{0549-Seed-based-feature-search.patch => 0550-Seed-based-feature-search.patch} (100%) rename patches/server/{0550-Add-Wandering-Trader-spawn-rate-config-options.patch => 0551-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0551-Significantly-improve-performance-of-the-end-generat.patch => 0552-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0552-Expose-world-spawn-angle.patch => 0553-Expose-world-spawn-angle.patch} (88%) rename patches/server/{0553-Add-Destroy-Speed-API.patch => 0554-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0554-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0555-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (89%) rename patches/server/{0555-Add-LivingEntity-clearActiveItem.patch => 0556-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0556-Add-PlayerItemCooldownEvent.patch => 0557-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0557-More-lightning-API.patch => 0558-More-lightning-API.patch} (100%) rename patches/server/{0558-Climbing-should-not-bypass-cramming-gamerule.patch => 0559-Climbing-should-not-bypass-cramming-gamerule.patch} (98%) rename patches/server/{0559-Added-missing-default-perms-for-commands.patch => 0560-Added-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0560-Add-PlayerShearBlockEvent.patch => 0561-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0561-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0562-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/server/{0562-Fix-curing-zombie-villager-discount-exploit.patch => 0563-Fix-curing-zombie-villager-discount-exploit.patch} (100%) rename patches/server/{0563-Limit-recipe-packets.patch => 0564-Limit-recipe-packets.patch} (95%) rename patches/server/{0564-Fix-CraftSound-backwards-compatibility.patch => 0565-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0565-MC-4-Fix-item-position-desync.patch => 0566-MC-4-Fix-item-position-desync.patch} (97%) rename patches/server/{0566-Player-Chunk-Load-Unload-Events.patch => 0567-Player-Chunk-Load-Unload-Events.patch} (90%) rename patches/server/{0567-Optimize-Dynamic-get-Missing-Keys.patch => 0568-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0568-Expose-LivingEntity-hurt-direction.patch => 0569-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0569-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0570-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0570-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch => 0571-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch} (100%) rename patches/server/{0571-added-PlayerTradeEvent.patch => 0572-added-PlayerTradeEvent.patch} (100%) rename patches/server/{0572-Implement-TargetHitEvent.patch => 0573-Implement-TargetHitEvent.patch} (100%) rename patches/server/{0573-Additional-Block-Material-API-s.patch => 0574-Additional-Block-Material-API-s.patch} (100%) rename patches/server/{0574-Fix-harming-potion-dupe.patch => 0575-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0575-Implement-API-to-get-Material-from-Boats-and-Minecar.patch => 0576-Implement-API-to-get-Material-from-Boats-and-Minecar.patch} (100%) rename patches/server/{0576-Cache-burn-durations.patch => 0577-Cache-burn-durations.patch} (100%) rename patches/server/{0577-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0578-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0578-Fix-Not-a-string-Map-Conversion-spam.patch => 0579-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0579-Implement-PlayerFlowerPotManipulateEvent.patch => 0580-Implement-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0580-Fix-interact-event-not-being-called-in-adventure.patch => 0581-Fix-interact-event-not-being-called-in-adventure.patch} (90%) rename patches/server/{0581-Zombie-API-breaking-doors.patch => 0582-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0582-Fix-nerfed-slime-when-splitting.patch => 0583-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0583-Add-EntityLoadCrossbowEvent.patch => 0584-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0584-Guardian-beam-workaround.patch => 0585-Guardian-beam-workaround.patch} (100%) rename patches/server/{0585-Added-WorldGameRuleChangeEvent.patch => 0586-Added-WorldGameRuleChangeEvent.patch} (98%) rename patches/server/{0586-Added-ServerResourcesReloadedEvent.patch => 0587-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0587-Added-world-settings-for-mobs-picking-up-loot.patch => 0588-Added-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0588-Implemented-BlockFailedDispenseEvent.patch => 0589-Implemented-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0589-Added-PlayerLecternPageChangeEvent.patch => 0590-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0590-Added-PlayerLoomPatternSelectEvent.patch => 0591-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0591-Configurable-door-breaking-difficulty.patch => 0592-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0592-Empty-commands-shall-not-be-dispatched.patch => 0593-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0593-Implement-API-to-expose-exact-interaction-point.patch => 0594-Implement-API-to-expose-exact-interaction-point.patch} (100%) rename patches/server/{0594-Remove-stale-POIs.patch => 0595-Remove-stale-POIs.patch} (92%) rename patches/server/{0595-Fix-villager-boat-exploit.patch => 0596-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0596-Add-sendOpLevel-API.patch => 0597-Add-sendOpLevel-API.patch} (91%) rename patches/server/{0597-Add-StructureLocateEvent.patch => 0598-Add-StructureLocateEvent.patch} (100%) rename patches/server/{0598-Collision-option-for-requiring-a-player-participant.patch => 0599-Collision-option-for-requiring-a-player-participant.patch} (98%) rename patches/server/{0599-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0600-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0600-Return-chat-component-with-empty-text-instead-of-thr.patch => 0601-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0601-Make-schedule-command-per-world.patch => 0602-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0602-Configurable-max-leash-distance.patch => 0603-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0603-Implement-BlockPreDispenseEvent.patch => 0604-Implement-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0604-Added-Vanilla-Entity-Tags.patch => 0605-Added-Vanilla-Entity-Tags.patch} (100%) rename patches/server/{0605-added-Wither-API.patch => 0606-added-Wither-API.patch} (100%) rename patches/server/{0606-Added-firing-of-PlayerChangeBeaconEffectEvent.patch => 0607-Added-firing-of-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0607-Fix-console-spam-when-removing-chests-in-water.patch => 0608-Fix-console-spam-when-removing-chests-in-water.patch} (100%) rename patches/server/{0608-Add-toggle-for-always-placing-the-dragon-egg.patch => 0609-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0609-Added-PlayerStonecutterRecipeSelectEvent.patch => 0610-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0610-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (100%) rename patches/server/{0611-Skip-distance-map-update-when-spawning-disabled.patch => 0612-Skip-distance-map-update-when-spawning-disabled.patch} (87%) rename patches/server/{0612-Reset-shield-blocking-on-dimension-change.patch => 0613-Reset-shield-blocking-on-dimension-change.patch} (83%) rename patches/server/{0613-add-DragonEggFormEvent.patch => 0614-add-DragonEggFormEvent.patch} (100%) rename patches/server/{0614-EntityMoveEvent.patch => 0615-EntityMoveEvent.patch} (97%) rename patches/server/{0615-added-option-to-disable-pathfinding-updates-on-block.patch => 0616-added-option-to-disable-pathfinding-updates-on-block.patch} (95%) rename patches/server/{0616-Inline-shift-direction-fields.patch => 0617-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0617-Allow-adding-items-to-BlockDropItemEvent.patch => 0618-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0618-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0619-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0619-living-entity-allow-attribute-registration.patch => 0620-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0620-fix-dead-slime-setSize-invincibility.patch => 0621-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0621-Merchant-getRecipes-should-return-an-immutable-list.patch => 0622-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0622-misc-debugging-dumps.patch => 0623-misc-debugging-dumps.patch} (100%) rename patches/server/{0623-Add-support-for-hex-color-codes-in-console.patch => 0624-Add-support-for-hex-color-codes-in-console.patch} (100%) rename patches/server/{0624-Expose-Tracked-Players.patch => 0625-Expose-Tracked-Players.patch} (87%) rename patches/server/{0625-Remove-streams-from-SensorNearest.patch => 0626-Remove-streams-from-SensorNearest.patch} (100%) rename patches/server/{0626-MC-29274-Fix-Wither-hostility-towards-players.patch => 0627-MC-29274-Fix-Wither-hostility-towards-players.patch} (100%) rename patches/server/{0627-Throw-proper-exception-on-empty-JsonList-file.patch => 0628-Throw-proper-exception-on-empty-JsonList-file.patch} (100%) rename patches/server/{0628-Improve-ServerGUI.patch => 0629-Improve-ServerGUI.patch} (100%) rename patches/server/{0629-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch => 0630-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch} (100%) rename patches/server/{0630-fix-converting-txt-to-json-file.patch => 0631-fix-converting-txt-to-json-file.patch} (97%) rename patches/server/{0631-Add-worldborder-events.patch => 0632-Add-worldborder-events.patch} (100%) rename patches/server/{0632-added-PlayerNameEntityEvent.patch => 0633-added-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0633-Prevent-grindstones-from-overstacking-items.patch => 0634-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0634-Add-recipe-to-cook-events.patch => 0635-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0635-Add-Block-isValidTool.patch => 0636-Add-Block-isValidTool.patch} (100%) rename patches/server/{0636-Allow-using-signs-inside-spawn-protection.patch => 0637-Allow-using-signs-inside-spawn-protection.patch} (94%) rename patches/server/{0637-Implement-Keyed-on-World.patch => 0638-Implement-Keyed-on-World.patch} (94%) rename patches/server/{0638-Add-fast-alternative-constructor-for-Rotations.patch => 0639-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0639-Item-Rarity-API.patch => 0640-Item-Rarity-API.patch} (100%) rename patches/server/{0640-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0641-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0641-copy-TESign-isEditable-from-snapshots.patch => 0642-copy-TESign-isEditable-from-snapshots.patch} (100%) rename patches/server/{0642-Drop-carried-item-when-player-has-disconnected.patch => 0643-Drop-carried-item-when-player-has-disconnected.patch} (92%) rename patches/server/{0643-forced-whitelist-use-configurable-kick-message.patch => 0644-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0644-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0645-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (91%) rename patches/server/{0645-fix-cancelling-block-falling-causing-client-desync.patch => 0646-fix-cancelling-block-falling-causing-client-desync.patch} (95%) rename patches/server/{0646-Expose-protocol-version.patch => 0647-Expose-protocol-version.patch} (100%) rename patches/server/{0647-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch => 0648-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch} (98%) rename patches/server/{0648-Enhance-console-tab-completions-for-brigadier-comman.patch => 0649-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0649-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0650-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0650-Add-bypass-host-check.patch => 0651-Add-bypass-host-check.patch} (100%) rename patches/server/{0651-Set-area-affect-cloud-rotation.patch => 0652-Set-area-affect-cloud-rotation.patch} (92%) rename patches/server/{0652-add-isDeeplySleeping-to-HumanEntity.patch => 0653-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0653-Fix-duplicating-give-items-on-item-drop-cancel.patch => 0654-Fix-duplicating-give-items-on-item-drop-cancel.patch} (100%) rename patches/server/{0654-add-consumeFuel-to-FurnaceBurnEvent.patch => 0655-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0655-add-get-set-drop-chance-to-EntityEquipment.patch => 0656-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0656-fix-PigZombieAngerEvent-cancellation.patch => 0657-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0657-Fix-checkReach-check-for-Shulker-boxes.patch => 0658-Fix-checkReach-check-for-Shulker-boxes.patch} (100%) rename patches/server/{0658-fix-PlayerItemHeldEvent-firing-twice.patch => 0659-fix-PlayerItemHeldEvent-firing-twice.patch} (88%) rename patches/server/{0659-Added-PlayerDeepSleepEvent.patch => 0660-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0660-More-World-API.patch => 0661-More-World-API.patch} (96%) rename patches/server/{0661-Added-PlayerBedFailEnterEvent.patch => 0662-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0662-Implement-methods-to-convert-between-Component-and-B.patch => 0663-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0663-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch => 0664-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch} (87%) rename patches/server/{0664-Introduce-beacon-activation-deactivation-events.patch => 0665-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0665-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0666-add-RespawnFlags-to-PlayerRespawnEvent.patch} (89%) rename patches/server/{0666-Add-Channel-initialization-listeners.patch => 0667-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0667-Send-empty-commands-if-tab-completion-is-disabled.patch => 0668-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0668-Add-more-WanderingTrader-API.patch => 0669-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0669-Add-EntityBlockStorage-clearEntities.patch => 0670-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0670-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0671-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0671-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch => 0672-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch} (100%) rename patches/server/{0672-Inventory-close.patch => 0673-Inventory-close.patch} (100%) rename patches/server/{0673-call-PortalCreateEvent-players-and-end-platform.patch => 0674-call-PortalCreateEvent-players-and-end-platform.patch} (94%) rename patches/server/{0674-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0675-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0675-Fix-CraftPotionBrewer-cache.patch => 0676-Fix-CraftPotionBrewer-cache.patch} (100%) rename patches/server/{0676-Add-basic-Datapack-API.patch => 0677-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0677-Add-environment-variable-to-disable-server-gui.patch => 0678-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0678-additions-to-PlayerGameModeChangeEvent.patch => 0679-additions-to-PlayerGameModeChangeEvent.patch} (93%) rename patches/server/{0679-Clear-SyncLoadInfo.patch => 0680-Clear-SyncLoadInfo.patch} (100%) rename patches/server/{0680-ItemStack-repair-check-API.patch => 0681-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0681-More-Enchantment-API.patch => 0682-More-Enchantment-API.patch} (100%) rename patches/server/{0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch => 0683-Add-command-line-option-to-load-extra-plugin-jars-no.patch} (100%) rename patches/server/{0683-Fix-and-optimise-world-force-upgrading.patch => 0684-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/server/{0684-Add-Mob-lookAt-API.patch => 0685-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0685-Add-Unix-domain-socket-support.patch => 0686-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0686-Add-EntityInsideBlockEvent.patch => 0687-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0687-Attributes-API-for-item-defaults.patch => 0688-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0688-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch => 0689-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch} (100%) rename patches/server/{0689-Add-cause-to-Weather-ThunderChangeEvents.patch => 0690-Add-cause-to-Weather-ThunderChangeEvents.patch} (97%) rename patches/server/{0690-More-Lidded-Block-API.patch => 0691-More-Lidded-Block-API.patch} (100%) rename patches/server/{0691-Limit-item-frame-cursors-on-maps.patch => 0692-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0692-Add-PufferFishStateChangeEvent.patch => 0693-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0693-Add-PlayerKickEvent-causes.patch => 0694-Add-PlayerKickEvent-causes.patch} (95%) rename patches/server/{0694-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0695-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0695-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch => 0696-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch} (100%) rename patches/server/{0696-Add-option-to-fix-items-merging-through-walls.patch => 0697-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0697-Add-BellRevealRaiderEvent.patch => 0698-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0698-Fix-invulnerable-end-crystals.patch => 0699-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0699-Add-ElderGuardianAppearanceEvent.patch => 0700-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0700-Reset-villager-inventory-on-cancelled-pickup-event.patch => 0701-Reset-villager-inventory-on-cancelled-pickup-event.patch} (100%) rename patches/server/{0701-Fix-dangerous-end-portal-logic.patch => 0702-Fix-dangerous-end-portal-logic.patch} (97%) rename patches/server/{0702-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0703-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0703-Make-item-validations-configurable.patch => 0704-Make-item-validations-configurable.patch} (100%) rename patches/server/{0704-Add-more-line-of-sight-methods.patch => 0705-Add-more-line-of-sight-methods.patch} (97%) rename patches/server/{0705-add-per-world-spawn-limits.patch => 0706-add-per-world-spawn-limits.patch} (96%) rename patches/server/{0706-Fix-PotionSplashEvent-for-water-splash-potions.patch => 0707-Fix-PotionSplashEvent-for-water-splash-potions.patch} (100%) rename patches/server/{0707-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch => 0708-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch} (100%) diff --git a/build-data/paper.at b/build-data/paper.at index 850c04ac8..c521dc49d 100644 --- a/build-data/paper.at +++ b/build-data/paper.at @@ -180,3 +180,6 @@ public net.minecraft.server.level.ServerLevel players # Improve block entity unload performance public net.minecraft.Util$IdentityStrategy + +# Chunk priority urgency system +public net.minecraft.server.level.ChunkMap$ChunkDistanceManager diff --git a/patches/server/0478-Optimize-NibbleArray-to-use-pooled-buffers.patch b/patches/server/0478-Optimize-NibbleArray-to-use-pooled-buffers.patch index 0509e6569..75dd1872b 100644 --- a/patches/server/0478-Optimize-NibbleArray-to-use-pooled-buffers.patch +++ b/patches/server/0478-Optimize-NibbleArray-to-use-pooled-buffers.patch @@ -8,8 +8,6 @@ an object pool for these. Uses lots of advanced new capabilities of the Paper codebase :) -1.17 update note: ClientboundLightUpdatePacket has has made changes which necessitate updating this patch - diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLightUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLightUpdatePacket.java index 24d5a44cb81ec5f10bfcce002a193f4566de88fc..d8be2ad889f46491e50404916fb4ae0de5f42098 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLightUpdatePacket.java diff --git a/patches/removed/1.17/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch similarity index 67% rename from patches/removed/1.17/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch rename to patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index 2ebcfe75f..6982db25b 100644 --- a/patches/removed/1.17/0486-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/patches/server/0487-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -22,10 +22,8 @@ view distance holds on you. Chunks in front of the player have higher priority, to help with fast traveling players keep up with their movement. -1.17 update note: very big diff skipping for now, still needs to be updated - diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java -index 499aff1f1e1ffc01ba8f9de43ca17899525a306f..97b85587525ddb62af9bfc8785b48727a6135599 100644 +index 18ae2e2b339d357fbe0f6f2b18bc14c0dfe4c222..3b7ba9c755c82a6f086d5542d32b3567c0f98b99 100644 --- a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java +++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java @@ -108,7 +108,7 @@ public final class ChunkTaskManager { @@ -33,15 +31,16 @@ index 499aff1f1e1ffc01ba8f9de43ca17899525a306f..97b85587525ddb62af9bfc8785b48727 static void dumpChunkInfo(Set seenChunks, ChunkHolder chunkHolder, int x, int z) { - dumpChunkInfo(seenChunks, chunkHolder, x, z, 0, 1); -+ dumpChunkInfo(seenChunks, chunkHolder, x, z, 0, 4); ++ dumpChunkInfo(seenChunks, chunkHolder, x, z, 0, 4); // Paper - 1->4 } static void dumpChunkInfo(Set seenChunks, ChunkHolder chunkHolder, int x, int z, int indent, int maxDepth) { -@@ -129,6 +129,30 @@ public final class ChunkTaskManager { +@@ -129,6 +129,31 @@ public final class ChunkTaskManager { PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Status - " + ((chunk == null) ? "null chunk" : chunk.getStatus().toString())); PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Ticket Status - " + ChunkHolder.getStatus(chunkHolder.getTicketLevel())); PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Holder Status - " + ((holderStatus == null) ? "null" : holderStatus.toString())); -+ PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Holder Priority - " + chunkHolder.getCurrentPriority()); ++ // Paper start ++ PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Holder Priority - " + chunkHolder.queueLevel); + + if (!chunkHolder.neighbors.isEmpty()) { + if (indent >= maxDepth) { @@ -51,7 +50,7 @@ index 499aff1f1e1ffc01ba8f9de43ca17899525a306f..97b85587525ddb62af9bfc8785b48727 + PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Neighbors: "); + for (ChunkHolder neighbor : chunkHolder.neighbors.keySet()) { + ChunkStatus status = neighbor.getChunkHolderStatus(); -+ if (status != null && status.isAtLeastStatus(ChunkHolder.getStatus(neighbor.getTicketLevel()))) { ++ if (status != null && status.isOrAfter(ChunkHolder.getStatus(neighbor.getTicketLevel()))) { + continue; + } + int nx = neighbor.pos.x; @@ -64,96 +63,52 @@ index 499aff1f1e1ffc01ba8f9de43ca17899525a306f..97b85587525ddb62af9bfc8785b48727 + dumpChunkInfo(seenChunks, neighbor, nx, nz, indent + 1, maxDepth); + } + } -+ ++ // Paper end } } diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index d18497a33dc53f6b465e659967bf8c98731c46c0..9a5737caf250dd2cc7f244248226f69117b27bad 100644 +index 87c9a5c1b43f6010898d72136b5eb9973299b723..d517ae863e9cba4505d4c698c2edbd1457e877e9 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java -@@ -631,10 +631,10 @@ public final class MCUtil { - - // sorting by coordinate makes the log easier to read - allChunks.sort((ChunkHolder v1, ChunkHolder v2) -> { -- if (v1.location.x != v2.location.x) { -- return Integer.compare(v1.location.x, v2.location.x); -+ if (v1.pos.x != v2.pos.x) { -+ return Integer.compare(v1.pos.x, v2.pos.x); - } -- return Integer.compare(v1.location.z, v2.location.z); -+ return Integer.compare(v1.pos.z, v2.pos.z); - }); - - worldData.addProperty("name", world.getWorld().getName()); -@@ -667,14 +667,15 @@ public final class MCUtil { - for (ChunkHolder playerChunk : allChunks) { - JsonObject chunkData = new JsonObject(); - -- Set> tickets = chunkMapDistance.tickets.get(playerChunk.pos.pair()); -+ Set> tickets = chunkMapDistance.tickets.get(playerChunk.pos.toLong()); - ChunkStatus status = getChunkStatus(playerChunk); - -- chunkData.addProperty("x", playerChunk.location.x); -- chunkData.addProperty("z", playerChunk.location.z); -+ chunkData.addProperty("x", playerChunk.pos.x); -+ chunkData.addProperty("z", playerChunk.pos.z); +@@ -671,6 +671,7 @@ public final class MCUtil { + chunkData.addProperty("x", playerChunk.pos.x); + chunkData.addProperty("z", playerChunk.pos.z); chunkData.addProperty("ticket-level", playerChunk.getTicketLevel()); -+ chunkData.addProperty("priority", playerChunk.getCurrentPriority()); ++ chunkData.addProperty("priority", playerChunk.queueLevel); // Paper - priority chunkData.addProperty("state", ChunkHolder.getFullChunkStatus(playerChunk.getTicketLevel()).toString()); -- chunkData.addProperty("queued-for-unload", chunkMap.toDrop.contains(playerChunk.pos.pair())); -+ chunkData.addProperty("queued-for-unload", chunkMap.toDrop.contains(playerChunk.pos.toLong())); + chunkData.addProperty("queued-for-unload", chunkMap.toDrop.contains(playerChunk.pos.longKey)); chunkData.addProperty("status", status == null ? "unloaded" : status.toString()); - - JsonArray ticketsData = new JsonArray(); diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java -index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6ac3bab56 100644 +index c2401b2ff0547335ddbbeb05c07b74552c246fc9..377993f325400a9bc77f5fbc77d9ec50f5d76638 100644 --- a/src/main/java/net/minecraft/server/level/ChunkHolder.java +++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java -@@ -1,6 +1,7 @@ - package net.minecraft.server.level; - - import com.mojang.datafixers.util.Either; -+import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; // Paper - import it.unimi.dsi.fastutil.shorts.ShortArraySet; - import it.unimi.dsi.fastutil.shorts.ShortSet; - import java.util.List; -@@ -19,6 +20,7 @@ import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; - import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; - import net.minecraft.network.protocol.game.ClientboundLightUpdatePacket; - import net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket; -+import net.minecraft.server.MCUtil; - import net.minecraft.world.level.ChunkPos; - import net.minecraft.world.level.Level; - import net.minecraft.world.level.LightLayer; -@@ -52,8 +54,8 @@ public class ChunkHolder { - private CompletableFuture chunkToSave; +@@ -60,7 +60,7 @@ public class ChunkHolder { + private final DebugBuffer chunkToSaveHistory; public int oldTicketLevel; private int ticketLevel; - private int queueLevel; -- final ChunkPos pos; // Paper - private -> package -+ volatile int queueLevel; public final int getCurrentPriority() { return queueLevel; } // Paper - OBFHELPER - make volatile since this is concurrently accessed -+ public final ChunkPos pos; // Paper - private -> public ++ public volatile int queueLevel; // Paper - private->public, make volatile since this is concurrently accessed + public final ChunkPos pos; // Paper - package->public private boolean hasChangedSections; private final ShortSet[] changedBlocksPerSection; - private int blockChangedLightSectionFilter; -@@ -65,6 +67,7 @@ public class ChunkHolder { - private boolean resendLight; +@@ -75,6 +75,7 @@ public class ChunkHolder { + boolean isUpdateQueued = false; // Paper private final ChunkMap chunkMap; // Paper + public ServerLevel getWorld() { return chunkMap.level; } // Paper - - long lastAutoSaveTime; // Paper - incremental autosave - long inactiveTimeStart; // Paper - incremental autosave -@@ -92,6 +95,120 @@ public class ChunkHolder { - return null; + // Paper start - no-tick view distance + public final LevelChunk getSendingChunk() { + // it's important that we use getChunkAtIfLoadedImmediately to mirror the chunk sending logic used +@@ -100,6 +101,134 @@ public class ChunkHolder { } - // Paper end - no-tick view distance + // Paper end + + // Paper start - Chunk gen/load priority system + volatile int neighborPriority = -1; + volatile int priorityBoost = 0; + public final java.util.concurrent.ConcurrentHashMap neighbors = new java.util.concurrent.ConcurrentHashMap<>(); -+ public final Long2ObjectOpenHashMap neighborPriorities = new Long2ObjectOpenHashMap<>(); ++ public final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap neighborPriorities = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(); + + private int getDemandedPriority() { + int priority = neighborPriority; // if we have a neighbor priority, use it @@ -180,7 +135,7 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + public void onNeighborRequest(ChunkHolder neighbor, ChunkStatus status) { + neighbor.setNeighborPriority(this, getNeighborsPriority()); + this.neighbors.compute(neighbor, (playerChunk, currentWantedStatus) -> { -+ if (currentWantedStatus == null || !currentWantedStatus.isAtLeastStatus(status)) { ++ if (currentWantedStatus == null || !currentWantedStatus.isOrAfter(status)) { + //System.out.println(this + " request " + neighbor + " at " + status + " currently " + currentWantedStatus); + return status; + } else { @@ -193,7 +148,7 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + + public void onNeighborDone(ChunkHolder neighbor, ChunkStatus chunkstatus, ChunkAccess chunk) { + this.neighbors.compute(neighbor, (playerChunk, wantedStatus) -> { -+ if (wantedStatus != null && chunkstatus.isAtLeastStatus(wantedStatus)) { ++ if (wantedStatus != null && chunkstatus.isOrAfter(wantedStatus)) { + //System.out.println(this + " neighbor done at " + neighbor + " for status " + chunkstatus + " wanted " + wantedStatus); + neighbor.removeNeighborPriority(this); + return null; @@ -234,15 +189,15 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + } + } + private void checkPriority() { -+ if (getCurrentPriority() != getDemandedPriority()) this.chunkMap.queueHolderUpdate(this); ++ if (queueLevel != getDemandedPriority()) this.chunkMap.queueHolderUpdate(this); + } + + public final double getDistance(ServerPlayer player) { + return getDistance(player.getX(), player.getZ()); + } + public final double getDistance(double blockX, double blockZ) { -+ int cx = MCUtil.fastFloor(blockX) >> 4; -+ int cz = MCUtil.fastFloor(blockZ) >> 4; ++ int cx = net.minecraft.server.MCUtil.fastFloor(blockX) >> 4; ++ int cz = net.minecraft.server.MCUtil.fastFloor(blockZ) >> 4; + final double x = pos.x - cx; + final double z = pos.z - cz; + return (x * x) + (z * z); @@ -252,29 +207,11 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + return getDistance(pos.getX(), pos.getZ()); + } + -+ @Override -+ public String toString() { -+ return "PlayerChunk{" + -+ "location=" + pos + -+ ", ticketLevel=" + ticketLevel + "/" + getStatus(this.ticketLevel) + -+ ", chunkHolderStatus=" + getChunkHolderStatus() + -+ ", neighborPriority=" + getNeighborsPriority() + -+ ", priority=(" + ticketLevel + " - " + priorityBoost +" vs N " + neighborPriority + ") = " + getDemandedPriority() + " A " + getCurrentPriority() + -+ '}'; -+ } -+ // Paper end - - public ChunkHolder(ChunkPos pos, int level, LevelLightEngine lightingProvider, ChunkHolder.LevelChangeListener levelUpdateListener, ChunkHolder.PlayerProvider playersWatchingChunkProvider) { - this.futures = new AtomicReferenceArray(ChunkHolder.CHUNK_STATUSES.size()); -@@ -194,6 +311,18 @@ public class ChunkHolder { - } - return null; - } + public static ChunkStatus getNextStatus(ChunkStatus status) { + if (status == ChunkStatus.FULL) { + return status; + } -+ return CHUNK_STATUSES.get(status.getStatusIndex() + 1); ++ return CHUNK_STATUSES.get(status.getIndex() + 1); + } + public CompletableFuture> getStatusFutureUncheckedMain(ChunkStatus chunkstatus) { + return ensureMain(getFutureIfPresentUnchecked(chunkstatus)); @@ -282,18 +219,23 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + public CompletableFuture ensureMain(CompletableFuture future) { + return future.thenApplyAsync(r -> r, chunkMap.mainInvokingExecutor); + } - // Paper end - - public CompletableFuture> getFutureIfPresentUnchecked(ChunkStatus leastStatus) { -@@ -440,6 +569,7 @@ public class ChunkHolder { - return this.queueLevel; - } - -+ private void setPriority(int i) { setQueueLevel(i); } // Paper - OBFHELPER - private void setQueueLevel(int level) { - this.queueLevel = level; - } -@@ -458,7 +588,7 @@ public class ChunkHolder { ++ ++ @Override ++ public String toString() { ++ return "PlayerChunk{" + ++ "location=" + pos + ++ ", ticketLevel=" + ticketLevel + "/" + getStatus(this.ticketLevel) + ++ ", chunkHolderStatus=" + getChunkHolderStatus() + ++ ", neighborPriority=" + getNeighborsPriority() + ++ ", priority=(" + ticketLevel + " - " + priorityBoost +" vs N " + neighborPriority + ") = " + getDemandedPriority() + " A " + queueLevel + ++ '}'; ++ } ++ // Paper end ++ + // Paper start - optimise isOutsideOfRange + // cached here to avoid a map lookup + com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet playersInMobSpawnRange; +@@ -486,7 +615,7 @@ public class ChunkHolder { // CraftBukkit start // ChunkUnloadEvent: Called before the chunk is unloaded: isChunkLoaded is still true and chunk can still be modified by plugins. if (playerchunk_state.isOrAfter(ChunkHolder.FullChunkStatus.BORDER) && !playerchunk_state1.isOrAfter(ChunkHolder.FullChunkStatus.BORDER)) { @@ -302,48 +244,50 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 LevelChunk chunk = (LevelChunk)either.left().orElse(null); if (chunk != null) { chunkStorage.callbackExecutor.execute(() -> { -@@ -523,12 +653,13 @@ public class ChunkHolder { - if (!flag2 && flag3) { +@@ -539,13 +668,14 @@ public class ChunkHolder { + this.fullChunkFuture = chunkStorage.prepareAccessibleChunk(this); + this.scheduleFullChunkPromotion(chunkStorage, this.fullChunkFuture, executor, ChunkHolder.FullChunkStatus.BORDER); // Paper start - cache ticking ready status - int expectCreateCount = ++this.fullChunkCreateCount; -- this.fullChunkFuture = chunkStorage.unpackTicks(this); this.fullChunkFuture.thenAccept((either) -> { -+ this.fullChunkFuture = chunkStorage.unpackTicks(this); ensureMain(this.fullChunkFuture).thenAccept((either) -> { // Paper - ensure main - if (either.left().isPresent() && ChunkHolder.this.fullChunkCreateCount == expectCreateCount) { +- this.fullChunkFuture.thenAccept(either -> { ++ ensureMain(this.fullChunkFuture).thenAccept(either -> { // Paper - ensure main + final Optional left = either.left(); + if (left.isPresent() && ChunkHolder.this.fullChunkCreateCount == expectCreateCount) { // note: Here is a very good place to add callbacks to logic waiting on this. LevelChunk fullChunk = either.left().get(); ChunkHolder.this.isFullChunkReady = true; fullChunk.playerChunk = ChunkHolder.this; + this.chunkMap.distanceManager.clearPriorityTickets(pos); - - } -@@ -553,7 +684,7 @@ public class ChunkHolder { - - if (!flag4 && flag5) { + }); + this.updateChunkToSave(this.fullChunkFuture, "full"); +@@ -569,7 +699,7 @@ public class ChunkHolder { + this.tickingChunkFuture = chunkStorage.prepareTickingChunk(this); + this.scheduleFullChunkPromotion(chunkStorage, this.tickingChunkFuture, executor, ChunkHolder.FullChunkStatus.TICKING); // Paper start - cache ticking ready status -- this.tickingChunkFuture = chunkStorage.postProcess(this); this.tickingChunkFuture.thenAccept((either) -> { -+ this.tickingChunkFuture = chunkStorage.postProcess(this); ensureMain(this.tickingChunkFuture).thenAccept((either) -> { // Paper - ensure main - if (either.left().isPresent()) { +- this.tickingChunkFuture.thenAccept(either -> { ++ ensureMain(this.tickingChunkFuture).thenAccept(either -> { // Paper - ensure main + either.ifLeft(chunk -> { // note: Here is a very good place to add callbacks to logic waiting on this. - LevelChunk tickingChunk = either.left().get(); -@@ -584,7 +715,7 @@ public class ChunkHolder { - } - + ChunkHolder.this.isTickingReady = true; +@@ -599,7 +729,7 @@ public class ChunkHolder { + this.entityTickingChunkFuture = chunkStorage.prepareEntityTickingChunk(this.pos); + this.scheduleFullChunkPromotion(chunkStorage, this.entityTickingChunkFuture, executor, ChunkHolder.FullChunkStatus.ENTITY_TICKING); // Paper start - cache ticking ready status -- this.entityTickingChunkFuture = chunkStorage.getEntityTickingRangeFuture(this.pos); this.entityTickingChunkFuture.thenAccept((either) -> { -+ this.entityTickingChunkFuture = chunkStorage.getEntityTickingRangeFuture(this.pos); ensureMain(this.entityTickingChunkFuture).thenAccept((either) -> { // Paper ensureMain - if (either.left().isPresent()) { - // note: Here is a very good place to add callbacks to logic waiting on this. - LevelChunk entityTickingChunk = either.left().get(); -@@ -604,12 +735,29 @@ public class ChunkHolder { - this.entityTickingChunkFuture = ChunkHolder.UNLOADED_LEVEL_CHUNK_FUTURE; +- this.entityTickingChunkFuture.thenAccept(either -> { ++ ensureMain(this.entityTickingChunkFuture).thenAccept(either -> { // Paper ensureMain + either.ifLeft(chunk -> { + ChunkHolder.this.isEntityTickingReady = true; + }); +@@ -617,12 +747,30 @@ public class ChunkHolder { + this.demoteFullChunk(chunkStorage, playerchunk_state1); } - this.onLevelChange.onLevelChange(this.pos, this::getQueueLevel, this.ticketLevel, this::setQueueLevel); ++ //this.onLevelChange.onLevelChange(this.pos, this::getQueueLevel, this.ticketLevel, this::setQueueLevel); + // Paper start - raise IO/load priority if priority changes, use our preferred priority + priorityBoost = chunkMap.distanceManager.getChunkPriority(pos); + int priority = getDemandedPriority(); -+ if (getCurrentPriority() > priority) { ++ if (this.queueLevel > priority) { + int ioPriority = com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY; + if (priority <= 10) { + ioPriority = com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY; @@ -352,8 +296,8 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 + } + chunkMap.level.asyncChunkTaskManager.raisePriority(pos.x, pos.z, ioPriority); + } -+ if (getCurrentPriority() != priority) { -+ this.onLevelChange.onLevelChange(this.pos, this::getCurrentPriority, priority, this::setPriority); // use preferred priority ++ if (this.queueLevel != priority) { ++ this.onLevelChange.onLevelChange(this.pos, () -> this.queueLevel, priority, p -> this.queueLevel = p); // use preferred priority + int neighborsPriority = getNeighborsPriority(); + this.neighbors.forEach((neighbor, neighborDesired) -> neighbor.setNeighborPriority(this, neighborsPriority)); + } @@ -367,43 +311,11 @@ index d907872d80f840b343419f49a6708082da6f921b..ce320672d7602c94dd75ad857435dca6 LevelChunk chunk = (LevelChunk)either.left().orElse(null); if (chunk != null) { chunkStorage.callbackExecutor.execute(() -> { -@@ -691,6 +839,7 @@ public class ChunkHolder { - - public interface LevelChangeListener { - -+ default void changePriority(ChunkPos chunkcoordintpair, IntSupplier intsupplier, int i, IntConsumer intconsumer) { onLevelChange(chunkcoordintpair, intsupplier, i, intconsumer); } // Paper - OBFHELPER - void onLevelChange(ChunkPos pos, IntSupplier levelGetter, int targetLevel, IntConsumer levelSetter); - } - diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c06720820 100644 +index ee37c952a91cac91145d3c2418a817633e04f573..c544529908dd5af63a829f54985eefc236e290db 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -14,6 +14,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; - import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; - import it.unimi.dsi.fastutil.longs.Long2ByteMap; - import it.unimi.dsi.fastutil.longs.Long2ByteOpenHashMap; -+import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; // Paper - import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; - import it.unimi.dsi.fastutil.longs.Long2ObjectMap.Entry; - import it.unimi.dsi.fastutil.longs.LongIterator; -@@ -51,6 +52,7 @@ import net.minecraft.CrashReport; - import net.minecraft.CrashReportCategory; - import net.minecraft.ReportedException; - import net.minecraft.Util; -+import net.minecraft.core.BlockPos; - import net.minecraft.core.SectionPos; - import net.minecraft.nbt.CompoundTag; - import net.minecraft.network.protocol.Packet; -@@ -102,6 +104,7 @@ import org.apache.logging.log4j.LogManager; - import org.apache.logging.log4j.Logger; - - import org.bukkit.entity.Player; // CraftBukkit -+import org.spigotmc.AsyncCatcher; - - public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider { - -@@ -139,6 +142,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -148,6 +148,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public final ServerLevel level; private final ThreadedLevelLightEngine lightEngine; private final BlockableEventLoop mainThreadExecutor; @@ -411,24 +323,24 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c public final ChunkGenerator generator; private final Supplier overworldDataStorage; public final Supplier getWorldPersistentDataSupplier() { return this.overworldDataStorage; } // Paper - OBFHELPER private final PoiManager poiManager; -@@ -176,6 +180,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -186,6 +187,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Override public void execute(Runnable runnable) { -+ AsyncCatcher.catchOp("Callback Executor execute"); - if (queued == null) { - queued = new java.util.ArrayDeque<>(); ++ org.spigotmc.AsyncCatcher.catchOp("Callback Executor execute"); + if (this.queue == null) { + this.queue = new java.util.ArrayDeque<>(); } -@@ -184,6 +189,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -194,6 +196,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Override public void run() { -+ AsyncCatcher.catchOp("Callback Executor run"); - if (queued == null) { ++ org.spigotmc.AsyncCatcher.catchOp("Callback Executor run"); + if (this.queue == null) { return; } -@@ -338,6 +344,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - this.level = worldserver; +@@ -350,6 +353,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + this.level = world; this.generator = chunkGenerator; this.mainThreadExecutor = mainThreadExecutor; + // Paper start @@ -440,10 +352,10 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c + } + }; + // Paper end - ProcessorMailbox threadedmailbox = ProcessorMailbox.create(workerExecutor, "worldgen"); + ProcessorMailbox threadedmailbox = ProcessorMailbox.create(executor, "worldgen"); - mainThreadExecutor.getClass(); -@@ -432,6 +447,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + Objects.requireNonNull(mainThreadExecutor); +@@ -445,6 +457,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.playerViewDistanceTickMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, (ServerPlayer player, int rangeX, int rangeZ, int currPosX, int currPosZ, int prevPosX, int prevPosZ, com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet newState) -> { @@ -451,23 +363,26 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c if (newState.size() != 1) { return; } -@@ -450,7 +466,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -463,7 +476,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } ChunkPos chunkPos = new ChunkPos(rangeX, rangeZ); ChunkMap.this.level.getChunkSource().removeTicketAtLevel(TicketType.PLAYER, chunkPos, 31, chunkPos); // entity ticking level, TODO check on update - }); ++ // Paper start + ChunkMap.this.level.getChunkSource().clearPriorityTickets(chunkPos); -+ }, (player, prevPos, newPos) -> { ++ }, ++ (player, prevPos, newPos) -> { + player.lastHighPriorityChecked = -1; // reset and recheck + checkHighPriorityChunks(player); + }); ++ // Paper end this.playerViewDistanceNoTickMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets); this.playerViewDistanceBroadcastMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, (ServerPlayer player, int rangeX, int rangeZ, int currPosX, int currPosZ, int prevPosX, int prevPosZ, -@@ -467,6 +487,115 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - }); +@@ -481,6 +501,116 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - no-tick view distance } + + // Paper start - Chunk Prioritization + public void queueHolderUpdate(ChunkHolder playerchunk) { + Runnable runnable = () -> { @@ -491,7 +406,7 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c + return playerchunk == null || toDrop.contains(playerchunk.pos.toLong()); + } + -+ private void updateChunkPriorityMap(Long2IntOpenHashMap map, long chunk, int level) { ++ private void updateChunkPriorityMap(it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap map, long chunk, int level) { + int prev = map.getOrDefault(chunk, -1); + if (level > prev) { + map.put(chunk, level); @@ -504,10 +419,10 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c + return; + } + player.lastHighPriorityChecked = currentTick; -+ Long2IntOpenHashMap priorities = new Long2IntOpenHashMap(); ++ it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap priorities = new it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap(); + + int viewDistance = getEffectiveNoTickViewDistance(); -+ BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); ++ net.minecraft.core.BlockPos.MutableBlockPos pos = new net.minecraft.core.BlockPos.MutableBlockPos(); + + // Prioritize circular near + double playerChunkX = Mth.floor(player.getX()) >> 4; @@ -577,10 +492,11 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c + return chunk != null && (chunk.isFullChunkReady()); + } + // Paper end - ++ + // Paper start public void updatePlayerMobTypeMap(Entity entity) { if (!this.level.paperConfig.perPlayerMobSpawns) { -@@ -596,6 +725,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -639,6 +769,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List>> list = Lists.newArrayList(); int j = centerChunk.x; int k = centerChunk.z; @@ -588,7 +504,7 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c for (int l = -margin; l <= margin; ++l) { for (int i1 = -margin; i1 <= margin; ++i1) { -@@ -614,6 +744,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -657,6 +788,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkStatus chunkstatus = (ChunkStatus) distanceToStatus.apply(j1); CompletableFuture> completablefuture = playerchunk.getOrScheduleFuture(chunkstatus, this); @@ -603,12 +519,13 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c list.add(completablefuture); } -@@ -1081,14 +1219,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1043,14 +1182,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; CompletableFuture chunkSaveFuture = this.level.asyncChunkTaskManager.getChunkSaveFuture(pos.x, pos.z); ++ // Paper start + ChunkHolder playerChunk = getUpdatingChunkIfPresent(pos.toLong()); -+ int chunkPriority = playerChunk != null ? playerChunk.getCurrentPriority() : 33; ++ int chunkPriority = playerChunk != null ? playerChunk.queueLevel : 33; + int priority = com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY; + + if (chunkPriority <= 10) { @@ -617,127 +534,104 @@ index 8070acde38c47c364c1d26ec3b7d65da037554a5..7a1f6d1807757a43a7aa471db651404c + priority = com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGH_PRIORITY; + } + boolean isHighestPriority = priority == com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY; ++ // Paper end if (chunkSaveFuture != null) { - this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, - com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGH_PRIORITY, chunkHolderConsumer, false, chunkSaveFuture); - this.level.asyncChunkTaskManager.raisePriority(pos.x, pos.z, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGH_PRIORITY); -+ this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, priority, chunkHolderConsumer, isHighestPriority, chunkSaveFuture); ++ this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, priority, chunkHolderConsumer, isHighestPriority, chunkSaveFuture); // Paper } else { - this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, - com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY, chunkHolderConsumer, false); -+ this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, priority, chunkHolderConsumer, isHighestPriority); ++ this.level.asyncChunkTaskManager.scheduleChunkLoad(pos.x, pos.z, priority, chunkHolderConsumer, isHighestPriority); // Paper } -+ this.level.asyncChunkTaskManager.raisePriority(pos.x, pos.z, priority); ++ this.level.asyncChunkTaskManager.raisePriority(pos.x, pos.z, priority); // Paper return ret; // Paper end } -@@ -1233,7 +1379,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1182,7 +1331,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider long i = playerchunk.getPos().toLong(); - playerchunk.getClass(); + Objects.requireNonNull(playerchunk); - mailbox.tell(ChunkTaskPriorityQueueSorter.message(runnable, i, playerchunk::getTicketLevel)); + mailbox.tell(ChunkTaskPriorityQueueSorter.message(runnable, i, () -> 1)); // Paper - final loads are always urgent! }); } diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java -index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a906f07e97 100644 +index d94241bcca4f2fd5e464a860bd356af504dc68b7..e82dcc43ae03c31e9e3ec31dbcfecfde64bd407a 100644 --- a/src/main/java/net/minecraft/server/level/DistanceManager.java +++ b/src/main/java/net/minecraft/server/level/DistanceManager.java -@@ -21,7 +21,10 @@ import java.util.Set; - import java.util.concurrent.CompletableFuture; - import java.util.concurrent.Executor; - import javax.annotation.Nullable; -+import net.minecraft.core.BlockPos; - import net.minecraft.core.SectionPos; -+import net.minecraft.server.MCUtil; -+import net.minecraft.server.MinecraftServer; - import net.minecraft.util.SortedArraySet; - import net.minecraft.util.thread.ProcessorHandle; - import net.minecraft.world.level.ChunkPos; -@@ -29,6 +32,7 @@ import net.minecraft.world.level.chunk.ChunkStatus; - import net.minecraft.world.level.chunk.LevelChunk; - import org.apache.logging.log4j.LogManager; - import org.apache.logging.log4j.Logger; -+import org.spigotmc.AsyncCatcher; // Paper - - public abstract class DistanceManager { - -@@ -52,7 +56,7 @@ public abstract class DistanceManager { - private final ChunkTaskPriorityQueueSorter ticketThrottler; - private final ProcessorHandle> ticketThrottlerInput; - private final ProcessorHandle ticketThrottlerReleaser; -- private final LongSet ticketsToRelease = new LongOpenHashSet(); -+ private final LongSet ticketsToRelease = new LongOpenHashSet(); public final LongSet getOnPlayerTicketAddQueue() { return ticketsToRelease; } // Paper - OBFHELPER - private final Executor mainThreadExecutor; - private long ticketTickCounter; - -@@ -90,6 +94,7 @@ public abstract class DistanceManager { +@@ -98,6 +98,7 @@ public abstract class DistanceManager { } private static int getTicketLevelAt(SortedArraySet> arraysetsorted) { -+ AsyncCatcher.catchOp("ChunkMapDistance::getLowestTicketLevel"); // Paper ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::getLowestTicketLevel"); // Paper return !arraysetsorted.isEmpty() ? ((Ticket) arraysetsorted.first()).getTicketLevel() : ChunkMap.MAX_CHUNK_DISTANCE + 1; } -@@ -103,6 +108,7 @@ public abstract class DistanceManager { +@@ -111,6 +112,7 @@ public abstract class DistanceManager { - public boolean runAllUpdates(ChunkMap chunkStorage) { + public boolean runAllUpdates(ChunkMap playerchunkmap) { //this.f.a(); // Paper - no longer used -+ AsyncCatcher.catchOp("DistanceManagerTick"); // Paper ++ org.spigotmc.AsyncCatcher.catchOp("DistanceManagerTick"); // Paper this.playerTicketManager.runAllUpdates(); int i = Integer.MAX_VALUE - this.ticketTracker.runDistanceUpdates(Integer.MAX_VALUE); boolean flag = i != 0; -@@ -113,11 +119,13 @@ public abstract class DistanceManager { +@@ -121,11 +123,13 @@ public abstract class DistanceManager { // Paper start if (!this.pendingChunkUpdates.isEmpty()) { -+ this.pollingPendingChunkUpdates = true; try { ++ this.pollingPendingChunkUpdates = true; try { // Paper - Chunk priority while(!this.pendingChunkUpdates.isEmpty()) { ChunkHolder remove = this.pendingChunkUpdates.remove(); remove.isUpdateQueued = false; - remove.updateFutures(chunkStorage); + remove.updateFutures(playerchunkmap, this.mainThreadExecutor); } -+ } finally { this.pollingPendingChunkUpdates = false; } ++ } finally { this.pollingPendingChunkUpdates = false; } // Paper - Chunk priority // Paper end return true; } else { -@@ -153,8 +161,10 @@ public abstract class DistanceManager { +@@ -161,8 +165,10 @@ public abstract class DistanceManager { return flag; } } -+ boolean pollingPendingChunkUpdates = false; // Paper ++ boolean pollingPendingChunkUpdates = false; // Paper - Chunk priority - private boolean addTicket(long i, Ticket ticket) { // CraftBukkit - void -> boolean -+ AsyncCatcher.catchOp("ChunkMapDistance::addTicket"); // Paper + boolean addTicket(long i, Ticket ticket) { // CraftBukkit - void -> boolean ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::addTicket"); // Paper SortedArraySet> arraysetsorted = this.getTickets(i); - int j = getTicketLevelAt(arraysetsorted); + int j = DistanceManager.getTicketLevelAt(arraysetsorted); Ticket ticket1 = (Ticket) arraysetsorted.addOrGet(ticket); // CraftBukkit - decompile error -@@ -168,7 +178,9 @@ public abstract class DistanceManager { +@@ -176,7 +182,9 @@ public abstract class DistanceManager { } - private boolean removeTicket(long i, Ticket ticket) { // CraftBukkit - void -> boolean -+ AsyncCatcher.catchOp("ChunkMapDistance::removeTicket"); // Paper + boolean removeTicket(long i, Ticket ticket) { // CraftBukkit - void -> boolean ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::removeTicket"); // Paper SortedArraySet> arraysetsorted = this.getTickets(i); + int oldLevel = getTicketLevelAt(arraysetsorted); // Paper boolean removed = false; // CraftBukkit if (arraysetsorted.remove(ticket)) { -@@ -179,7 +191,8 @@ public abstract class DistanceManager { +@@ -208,7 +216,12 @@ public abstract class DistanceManager { this.tickets.remove(i); } -- this.ticketTracker.update(i, getTicketLevelAt(arraysetsorted), false); -+ int newLevel = getTicketLevelAt(arraysetsorted); // Paper -+ if (newLevel > oldLevel) this.ticketTracker.update(i, newLevel, false); // Paper +- this.ticketTracker.update(i, DistanceManager.getTicketLevelAt(arraysetsorted), false); ++ // Paper start - Chunk priority ++ int newLevel = getTicketLevelAt(arraysetsorted); ++ if (newLevel > oldLevel) { ++ this.ticketTracker.update(i, newLevel, false); ++ } ++ // Paper end return removed; // CraftBukkit } -@@ -188,6 +201,135 @@ public abstract class DistanceManager { - this.addTicketAtLevel(type, pos, level, argument); +@@ -250,6 +263,136 @@ public abstract class DistanceManager { + }); } -+ // Paper start ++ // Paper start - Chunk priority + public static final int PRIORITY_TICKET_LEVEL = ChunkMap.MAX_CHUNK_DISTANCE; + public static final int URGENT_PRIORITY = 29; + public boolean delayDistanceManagerTick = false; @@ -753,7 +647,7 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + delayDistanceManagerTick = true; + priority = Math.min(URGENT_PRIORITY - 1, Math.max(1, priority)); + int finalPriority = priority; -+ MCUtil.getSpiralOutChunks(center.asPosition(), radius).forEach(coords -> { ++ net.minecraft.server.MCUtil.getSpiralOutChunks(center.getWorldPosition(), radius).forEach(coords -> { + addPriorityTicket(coords, TicketType.PRIORITY, finalPriority); + }); + delayDistanceManagerTick = false; @@ -762,7 +656,7 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + + public void clearAreaPriorityTickets(ChunkPos center, int radius) { + delayDistanceManagerTick = true; -+ MCUtil.getSpiralOutChunks(center.asPosition(), radius).forEach(coords -> { ++ net.minecraft.server.MCUtil.getSpiralOutChunks(center.getWorldPosition(), radius).forEach(coords -> { + this.removeTicket(coords.toLong(), new Ticket(TicketType.PRIORITY, PRIORITY_TICKET_LEVEL, coords)); + }); + delayDistanceManagerTick = false; @@ -784,14 +678,14 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + } + + private boolean addPriorityTicket(ChunkPos coords, TicketType ticketType, int priority) { -+ AsyncCatcher.catchOp("ChunkMapDistance::addPriorityTicket"); ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::addPriorityTicket"); + long pair = coords.toLong(); + ChunkHolder chunk = chunkMap.getUpdatingChunkIfPresent(pair); + boolean needsTicket = chunkMap.playerViewDistanceNoTickMap.getObjectsInRange(pair) != null && !hasPlayerTicket(coords, 33); + + if (needsTicket) { + Ticket ticket = new Ticket<>(TicketType.PLAYER, 33, coords); -+ getOnPlayerTicketAddQueue().add(pair); ++ this.ticketsToRelease.add(pair); + addTicket(pair, ticket); + } + if ((chunk != null && chunk.isFullChunkReady())) { @@ -828,7 +722,7 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + for (Ticket ticket : tickets) { + if (ticket.getType() == type) { + // We only support increasing, not decreasing, too complicated -+ ticket.setCurrentTick(this.ticketTickCounter); ++ ticket.setCreatedTick(this.ticketTickCounter); + ticket.priority = Math.max(ticket.priority, priority); + return true; + } @@ -838,7 +732,7 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + } + + public int getChunkPriority(ChunkPos coords) { -+ AsyncCatcher.catchOp("ChunkMapDistance::getChunkPriority"); ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::getChunkPriority"); + SortedArraySet> tickets = this.tickets.get(coords.toLong()); + if (tickets == null) { + return 0; @@ -857,38 +751,30 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + } + + public void clearPriorityTickets(ChunkPos coords) { -+ AsyncCatcher.catchOp("ChunkMapDistance::clearPriority"); ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::clearPriority"); + this.removeTicket(coords.toLong(), new Ticket(TicketType.PRIORITY, PRIORITY_TICKET_LEVEL, coords)); + } + + public void clearUrgent(ChunkPos coords) { -+ AsyncCatcher.catchOp("ChunkMapDistance::clearUrgent"); ++ org.spigotmc.AsyncCatcher.catchOp("ChunkMapDistance::clearUrgent"); + this.removeTicket(coords.toLong(), new Ticket(TicketType.URGENT, PRIORITY_TICKET_LEVEL, coords)); + } + // Paper end - public boolean addTicketAtLevel(TicketType ticketType, ChunkPos chunkcoordintpair, int level, T identifier) { - return this.addTicket(chunkcoordintpair.toLong(), new Ticket<>(ticketType, level, identifier)); - // CraftBukkit end -@@ -358,7 +500,7 @@ public abstract class DistanceManager { ++ + protected void updateChunkForced(ChunkPos pos, boolean forced) { + Ticket ticket = new Ticket<>(TicketType.FORCED, 31, pos); - class PlayerTicketTracker extends DistanceManager.FixedPlayerDistanceChunkTracker { - -- private int viewDistance = 0; -+ private int viewDistance = 0; private int getViewDistance() { return viewDistance; } private void setViewDistance(int value) { this.viewDistance = value; } // Paper - OBFHELPER - private final Long2IntMap queueLevels = Long2IntMaps.synchronize(new Long2IntOpenHashMap()); - private final LongSet toUpdate = new LongOpenHashSet(); - -@@ -374,41 +516,68 @@ public abstract class DistanceManager { +@@ -516,41 +659,68 @@ public abstract class DistanceManager { public void updateViewDistance(int watchDistance) { ObjectIterator objectiterator = this.chunks.long2ByteEntrySet().iterator(); + // Paper start - set the view distance before scheduling chunk loads/unloads -+ int lastViewDistance = getViewDistance(); -+ setViewDistance(watchDistance); ++ int lastViewDistance = this.viewDistance; ++ this.viewDistance = watchDistance; + // Paper end while (objectiterator.hasNext()) { - Long2ByteMap.Entry it_unimi_dsi_fastutil_longs_long2bytemap_entry = (Long2ByteMap.Entry) objectiterator.next(); // Paper - decompile fix + it.unimi.dsi.fastutil.longs.Long2ByteMap.Entry it_unimi_dsi_fastutil_longs_long2bytemap_entry = (it.unimi.dsi.fastutil.longs.Long2ByteMap.Entry) objectiterator.next(); byte b0 = it_unimi_dsi_fastutil_longs_long2bytemap_entry.getByteValue(); long j = it_unimi_dsi_fastutil_longs_long2bytemap_entry.getLongKey(); @@ -897,18 +783,17 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 } - this.viewDistance = watchDistance; -+ //this.e = i; // Paper - view distance is now set further up ++ // this.viewDistance = watchDistance; // Paper - view distance is now set further up } private void onLevelChange(long pos, int distance, boolean oldWithinViewDistance, boolean withinViewDistance) { if (oldWithinViewDistance != withinViewDistance) { - Ticket ticket = new Ticket<>(TicketType.PLAYER, 33, new ChunkPos(pos)); // Paper - no-tick view distance -+ ChunkPos coords = new ChunkPos(pos); // Paper ++ ChunkPos coords = new ChunkPos(pos); // Paper - reuse variable + Ticket ticket = new Ticket<>(TicketType.PLAYER, 33, coords); // Paper - no-tick view distance if (withinViewDistance) { -- DistanceManager.this.ticketThrottlerInput.tell(ChunkTaskPriorityQueueSorter.message(() -> { -+ scheduleChunkLoad(pos, MinecraftServer.currentTick, distance, (priority) -> { // Paper - smarter ticket delay based on frustum and distance ++ scheduleChunkLoad(pos, net.minecraft.server.MinecraftServer.currentTick, distance, (priority) -> { // Paper - smarter ticket delay based on frustum and distance + // Paper start - recheck its still valid if not cancel + if (!isChunkInRange(pos)) { + DistanceManager.this.ticketThrottlerReleaser.tell(ChunkTaskPriorityQueueSorter.release(() -> { @@ -928,43 +813,43 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + return; + } + // Paper end -+ DistanceManager.this.ticketThrottlerInput.tell(ChunkTaskPriorityQueueSorter.message(() -> { // CraftBukkit - decompile error + DistanceManager.this.ticketThrottlerInput.tell(ChunkTaskPriorityQueueSorter.message(() -> { DistanceManager.this.mainThreadExecutor.execute(() -> { - if (this.haveTicketFor(this.getLevel(pos))) { + if (isChunkInRange(pos)) { if (!hasPlayerTicket(coords, 33)) { // Paper - high priority might of already added it DistanceManager.this.addTicket(pos, ticket); DistanceManager.this.ticketsToRelease.add(pos); - } else { -- DistanceManager.this.ticketThrottlerReleaser.tell(ChunkTaskPriorityQueueSorter.release(() -> { + }} else { // Paper -+ DistanceManager.this.ticketThrottlerReleaser.tell(ChunkTaskPriorityQueueSorter.release(() -> { // CraftBukkit - decompile error + DistanceManager.this.ticketThrottlerReleaser.tell(ChunkTaskPriorityQueueSorter.release(() -> { }, pos, false)); } }); }, pos, () -> { - return distance; -+ return Math.min(ChunkMap.MAX_CHUNK_DISTANCE, priority); // Paper ++ return Math.min(ChunkMap.MAX_CHUNK_DISTANCE, priority); // Paper - Chunk priority })); + }); // Paper } else { DistanceManager.this.ticketThrottlerReleaser.tell(ChunkTaskPriorityQueueSorter.release(() -> { DistanceManager.this.mainThreadExecutor.execute(() -> { DistanceManager.this.removeTicket(pos, ticket); -+ DistanceManager.this.clearPriorityTickets(coords); // Paper ++ DistanceManager.this.clearPriorityTickets(coords); // Paper - Chunk priority }); }, pos, true)); } -@@ -416,6 +585,101 @@ public abstract class DistanceManager { - +@@ -592,5 +762,100 @@ public abstract class DistanceManager { + private boolean haveTicketFor(int distance) { + return distance <= this.viewDistance - 2; } - ++ + // Paper start - smart scheduling of player tickets + private boolean isChunkInRange(long i) { -+ return this.isLoadedChunkLevel(this.getChunkLevel(i)); ++ return this.haveTicketFor(this.getLevel(i)); + } + public void scheduleChunkLoad(long i, long startTick, int initialDistance, java.util.function.Consumer task) { -+ long elapsed = MinecraftServer.currentTick - startTick; ++ long elapsed = net.minecraft.server.MinecraftServer.currentTick - startTick; + ChunkPos chunkPos = new ChunkPos(i); + ChunkHolder updatingChunk = chunkMap.getUpdatingChunkIfPresent(i); + if ((updatingChunk != null && updatingChunk.isFullChunkReady()) || !isChunkInRange(i) || getChunkPriority(chunkPos) > 0) { // Copied from above @@ -982,10 +867,10 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + } else if (players != null) { + Object[] backingSet = players.getBackingSet(); + -+ BlockPos blockPos = chunkPos.asPosition(); ++ net.minecraft.core.BlockPos blockPos = chunkPos.getWorldPosition(); + + boolean isFront = false; -+ BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); ++ net.minecraft.core.BlockPos.MutableBlockPos pos = new net.minecraft.core.BlockPos.MutableBlockPos(); + for (int index = 0, len = backingSet.length; index < len; ++index) { + if (!(backingSet[index] instanceof ServerPlayer)) { + continue; @@ -994,16 +879,16 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + + ChunkPos pointInFront = player.getChunkInFront(5); + pos.setValues(pointInFront.x << 4, 0, pointInFront.z << 4); -+ double frontDist = MCUtil.distanceSq(pos, blockPos); ++ double frontDist = net.minecraft.server.MCUtil.distanceSq(pos, blockPos); + + pos.setValues(player.getX(), 0, player.getZ()); -+ double center = MCUtil.distanceSq(pos, blockPos); ++ double center = net.minecraft.server.MCUtil.distanceSq(pos, blockPos); + + double dist = Math.min(frontDist, center); + if (!isFront) { + ChunkPos pointInBack = player.getChunkInFront(-7); + pos.setValues(pointInBack.x << 4, 0, pointInBack.z << 4); -+ double backDist = MCUtil.distanceSq(pos, blockPos); ++ double backDist = net.minecraft.server.MCUtil.distanceSq(pos, blockPos); + if (frontDist < backDist) { + isFront = true; + } @@ -1036,7 +921,7 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + long pair = ChunkPos.asLong(chunkPos.x + x, chunkPos.z + z); + ChunkHolder neighbor = chunkMap.getUpdatingChunkIfPresent(pair); + ChunkStatus current = neighbor != null ? neighbor.getChunkHolderStatus() : null; -+ if (current != null && current.isAtLeastStatus(ChunkStatus.LIGHT)) { ++ if (current != null && current.isOrAfter(ChunkStatus.LIGHT)) { + hasAnyNeighbor = true; + } + } @@ -1049,35 +934,17 @@ index c9b4025f6c3d1be7bca2ff7337dd86e37d21b53e..e41f388e8350010a471410436adf15a9 + task.accept((int) minDist); + } else { + int taskDelay = (int) Math.min(delay, minDist >= 10 ? 40 : (minDist < 6 ? 5 : 20)); -+ MCUtil.scheduleTask(taskDelay, () -> scheduleChunkLoad(i, startTick, initialDistance, task), "Player Ticket Delayer"); ++ net.minecraft.server.MCUtil.scheduleTask(taskDelay, () -> scheduleChunkLoad(i, startTick, initialDistance, task), "Player Ticket Delayer"); + } + } + // Paper end -+ - @Override - public void runAllUpdates() { - super.runAllUpdates(); -@@ -447,6 +711,7 @@ public abstract class DistanceManager { - - } - -+ private boolean isLoadedChunkLevel(int i) { return haveTicketFor(i); } // Paper - OBFHELPER - private boolean haveTicketFor(int distance) { - return distance <= this.viewDistance - 2; - } -@@ -463,6 +728,7 @@ public abstract class DistanceManager { - this.chunks.defaultReturnValue((byte) (i + 2)); - } - -+ protected final int getChunkLevel(long i) { return getLevel(i); } // Paper - OBFHELPER - @Override - protected int getLevel(long id) { - return this.chunks.get(id); + } + } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 52c2e81f2e2bcd74d4e9aac3ecb5ab618e289abd..f36badcafbad7fb4537ffdf54d9e266ae3d72459 100644 +index e46ccbca0cfa63dd5143080375193a95a9249d60..80cda453dc9dd8267eff8a6445d5cd63a13a64c3 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -467,6 +467,26 @@ public class ServerChunkCache extends ChunkSource { +@@ -446,6 +446,26 @@ public class ServerChunkCache extends ChunkSource { public void removeTicketAtLevel(TicketType ticketType, ChunkPos chunkPos, int ticketLevel, T identifier) { this.distanceManager.removeTicketAtLevel(ticketType, chunkPos, ticketLevel, identifier); } @@ -1101,47 +968,47 @@ index 52c2e81f2e2bcd74d4e9aac3ecb5ab618e289abd..f36badcafbad7fb4537ffdf54d9e266a + public void clearPriorityTickets(ChunkPos coords) { + this.distanceManager.clearPriorityTickets(coords); + } - // Paper end + // Paper end - async chunk io @Nullable -@@ -505,6 +525,8 @@ public class ServerChunkCache extends ChunkSource { - +@@ -486,6 +506,8 @@ public class ServerChunkCache extends ChunkSource { + Objects.requireNonNull(completablefuture); if (!completablefuture.isDone()) { // Paper // Paper start - async chunk io/loading -+ ChunkPos pair = new ChunkPos(x1, z1); -+ this.distanceManager.markUrgent(pair); ++ ChunkPos pair = new ChunkPos(x1, z1); // Paper - Chunk priority ++ this.distanceManager.markUrgent(pair); // Paper - Chunk priority this.level.asyncChunkTaskManager.raisePriority(x1, z1, com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY); com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.level, x1, z1); // Paper end -@@ -513,6 +535,8 @@ public class ServerChunkCache extends ChunkSource { - this.mainThreadProcessor.managedBlock(completablefuture::isDone); +@@ -494,6 +516,8 @@ public class ServerChunkCache extends ChunkSource { + chunkproviderserver_a.managedBlock(completablefuture::isDone); com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug this.level.timings.syncChunkLoad.stopTiming(); // Paper -+ this.distanceManager.clearPriorityTickets(pair); // Paper -+ this.distanceManager.clearUrgent(pair); // Paper ++ this.distanceManager.clearPriorityTickets(pair); // Paper - Chunk priority ++ this.distanceManager.clearUrgent(pair); // Paper - Chunk priority } // Paper ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> { return ichunkaccess1; -@@ -565,10 +589,12 @@ public class ServerChunkCache extends ChunkSource { +@@ -567,10 +591,12 @@ public class ServerChunkCache extends ChunkSource { if (flag && !currentlyUnloading) { // CraftBukkit end this.distanceManager.addTicket(TicketType.UNKNOWN, chunkcoordintpair, l, chunkcoordintpair); -+ if (isUrgent) this.distanceManager.markUrgent(chunkcoordintpair); // Paper ++ if (isUrgent) this.distanceManager.markUrgent(chunkcoordintpair); // Paper - Chunk priority if (this.chunkAbsent(playerchunk, l)) { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); gameprofilerfiller.push("chunkLoad"); -+ distanceManager.delayDistanceManagerTick = false; // Paper - ensure this is never false ++ distanceManager.delayDistanceManagerTick = false; // Paper - Chunk priority - ensure this is never false this.runDistanceManagerUpdates(); playerchunk = this.getVisibleChunkIfPresent(k); gameprofilerfiller.pop(); -@@ -577,8 +603,13 @@ public class ServerChunkCache extends ChunkSource { +@@ -579,8 +605,13 @@ public class ServerChunkCache extends ChunkSource { } } } - - return this.chunkAbsent(playerchunk, l) ? ChunkHolder.UNLOADED_CHUNK_FUTURE : playerchunk.getOrScheduleFuture(chunkstatus, this.chunkMap); -+ // Paper start ++ // Paper start - Chunk priority + CompletableFuture> future = this.chunkAbsent(playerchunk, l) ? ChunkHolder.UNLOADED_CHUNK_FUTURE : playerchunk.getOrScheduleFuture(chunkstatus, this.chunkMap); + if (isUrgent) { + future.thenAccept(either -> this.distanceManager.clearUrgent(chunkcoordintpair)); @@ -1151,53 +1018,47 @@ index 52c2e81f2e2bcd74d4e9aac3ecb5ab618e289abd..f36badcafbad7fb4537ffdf54d9e266a } private boolean chunkAbsent(@Nullable ChunkHolder holder, int maxLevel) { -@@ -630,6 +661,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -632,6 +663,7 @@ public class ServerChunkCache extends ChunkSource { } - public boolean runDistanceManagerUpdates() { // Paper - private -> public -+ if (distanceManager.delayDistanceManagerTick) return false; // Paper + public boolean runDistanceManagerUpdates() { ++ if (distanceManager.delayDistanceManagerTick) return false; // Paper - Chunk priority boolean flag = this.distanceManager.runAllUpdates(this.chunkMap); 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 8e4cef60b760be385df81a74834d026f856a78c5..c5717f45a0110492aad41f21cc06fb8cbeb1f791 100644 +index d59e707f28a5f04545208ad33d122fc433b85933..1dd21dc364eef75667d56db33c5df8e006453a08 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -73,6 +73,7 @@ import net.minecraft.network.protocol.game.ClientboundUpdateMobEffectPacket; - import net.minecraft.network.protocol.game.ServerboundClientInformationPacket; - import net.minecraft.resources.ResourceKey; - import net.minecraft.resources.ResourceLocation; -+import net.minecraft.server.MCUtil; - import net.minecraft.server.MinecraftServer; - import net.minecraft.server.PlayerAdvancements; - import net.minecraft.server.network.ServerGamePacketListenerImpl; -@@ -185,6 +186,12 @@ public class ServerPlayer extends Player implements ContainerListener { +@@ -183,6 +183,14 @@ public class ServerPlayer extends Player { private int lastRecordedArmor = Integer.MIN_VALUE; private int lastRecordedLevel = Integer.MIN_VALUE; private int lastRecordedExperience = Integer.MIN_VALUE; -+ public long lastHighPriorityChecked; // Paper ++ // Paper start - Chunk priority ++ public long lastHighPriorityChecked; + public void forceCheckHighPriority() { + lastHighPriorityChecked = -1; + getLevel().getChunkSource().chunkMap.checkHighPriorityChunks(this); + } -+ public boolean isRealPlayer; // Paper ++ public boolean isRealPlayer; ++ // Paper end private float lastSentHealth = -1.0E8F; private int lastSentFood = -99999999; private boolean lastFoodSaturationZero = true; -@@ -272,6 +279,21 @@ public class ServerPlayer extends Player implements ContainerListener { +@@ -324,6 +332,21 @@ public class ServerPlayer extends Player { this.maxHealthCache = this.getMaxHealth(); this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper } -+ // Paper start ++ // Paper start - Chunk priority + public BlockPos getPointInFront(double inFront) { -+ double rads = Math.toRadians(MCUtil.normalizeYaw(this.yRot+90)); // MC rotates yaw 90 for some odd reason ++ double rads = Math.toRadians(net.minecraft.server.MCUtil.normalizeYaw(this.yRot + 90)); // MC rotates yaw 90 for some odd reason + final double x = getX() + inFront * Math.cos(rads); + final double z = getZ() + inFront * Math.sin(rads); + return new BlockPos(x, getY(), z); + } + + public ChunkPos getChunkInFront(double inFront) { -+ double rads = Math.toRadians(MCUtil.normalizeYaw(this.yRot+90)); // MC rotates yaw 90 for some odd reason ++ double rads = Math.toRadians(net.minecraft.server.MCUtil.normalizeYaw(this.yRot + 90)); // MC rotates yaw 90 for some odd reason + final double x = getX() + (inFront * 16) * Math.cos(rads); + final double z = getZ() + (inFront * 16) * Math.sin(rads); + return new ChunkPos(Mth.floor(x) >> 4, Mth.floor(z) >> 4); @@ -1206,145 +1067,126 @@ index 8e4cef60b760be385df81a74834d026f856a78c5..c5717f45a0110492aad41f21cc06fb8c // Yes, this doesn't match Vanilla, but it's the best we can do for now. // If this is an issue, PRs are welcome -@@ -619,6 +641,7 @@ public class ServerPlayer extends Player implements ContainerListener { - if (valid && !this.isSpectator() || this.level.hasChunkAt(this.blockPosition())) { // Paper - don't tick dead players that are not in the world currently (pending respawn) +@@ -645,6 +668,7 @@ public class ServerPlayer extends Player { + if (valid && !this.isSpectator() || !this.touchingUnloadedChunk()) { // Paper - don't tick dead players that are not in the world currently (pending respawn) super.tick(); } -+ if (valid && isAlive() && connection != null) ((ServerLevel)level).getChunkSource().chunkMap.checkHighPriorityChunks(this); // Paper ++ if (valid && isAlive() && connection != null) ((ServerLevel)level).getChunkSource().chunkMap.checkHighPriorityChunks(this); // Paper - Chunk priority - for (int i = 0; i < this.inventory.getContainerSize(); ++i) { - ItemStack itemstack = this.inventory.getItem(i); + for (int i = 0; i < this.getInventory().getContainerSize(); ++i) { + ItemStack itemstack = this.getInventory().getItem(i); diff --git a/src/main/java/net/minecraft/server/level/Ticket.java b/src/main/java/net/minecraft/server/level/Ticket.java -index c6b5f32153b63ac92df9c4b31b8de168481f79f2..c0bfe136ccb9ad4fc0f8ccdd703254205213ec8e 100644 +index a7aa7a9038d4812a9d1e4e72c4dbbbe10df15820..df06e9b3e082fc94213dc1769d6cb1a1f756f62d 100644 --- a/src/main/java/net/minecraft/server/level/Ticket.java +++ b/src/main/java/net/minecraft/server/level/Ticket.java @@ -8,6 +8,7 @@ public final class Ticket implements Comparable> { - private final int ticketLevel; public final T key; public final T getObjectReason() { return this.key; } // Paper - OBFHELPER private long createdTick; public final long getCreationTick() { return this.createdTick; } // Paper - OBFHELPER -+ public int priority = 0; // Paper + public long delayUnloadBy; // Paper ++ public int priority; // Paper - Chunk priority protected Ticket(TicketType type, int level, T argument) { this.type = type; -@@ -56,6 +57,7 @@ public final class Ticket implements Comparable> { - return this.ticketLevel; - } - -+ public final void setCurrentTick(long i) { this.setCreatedTick(i); } // Paper - OBFHELPER - protected void setCreatedTick(long tickCreated) { - this.createdTick = tickCreated; - } diff --git a/src/main/java/net/minecraft/server/level/TicketType.java b/src/main/java/net/minecraft/server/level/TicketType.java -index 583587457790df826a8a3239a4bd1d0f1dcab1da..2444f6f676db543509b14e8c882491dc3f41b264 100644 +index 8770fe0db46b01e8b608637df4f1a669a3f4cdde..3c1698ba0d3bc412ab957777d9b5211dbc555208 100644 --- a/src/main/java/net/minecraft/server/level/TicketType.java +++ b/src/main/java/net/minecraft/server/level/TicketType.java -@@ -28,6 +28,8 @@ public class TicketType { - public static final TicketType PLUGIN_TICKET = create("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit +@@ -9,6 +9,8 @@ import net.minecraft.world.level.ChunkPos; + public class TicketType { public static final TicketType FUTURE_AWAIT = create("future_await", Long::compareTo); // Paper public static final TicketType ASYNC_LOAD = create("async_load", Long::compareTo); // Paper + public static final TicketType PRIORITY = create("priority", Comparator.comparingLong(ChunkPos::toLong), 300); // Paper + public static final TicketType URGENT = create("urgent", Comparator.comparingLong(ChunkPos::toLong), 300); // Paper - public static TicketType create(String name, Comparator comparator) { - return new TicketType<>(name, comparator, 0L); + private final String name; + private final Comparator comparator; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3f416479e23c60ec5b4b779cce9ab62c74865ac8..0625bc7ffd07b66b27176fe62ae3061aa7c67df2 100644 +index fecb2a6b8674ca110d6af539396873e9dcdc0edb..6476d2a478b85116061a13f7ef2a5fec2ade4a04 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1528,6 +1528,7 @@ public class ServerGamePacketListenerImpl implements ServerGamePacketListener { +@@ -1566,6 +1566,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.awaitingTeleportTime = this.tickCount; this.player.absMoveTo(d0, d1, d2, f, f1); + this.player.forceCheckHighPriority(); // Paper - this.player.connection.send(new ClientboundPlayerPositionPacket(d0 - d3, d1 - d4, d2 - d5, f - f2, f1 - f3, set, this.awaitingTeleport)); + this.player.connection.send(new ClientboundPlayerPositionPacket(d0 - d3, d1 - d4, d2 - d5, f - f2, f1 - f3, set, this.awaitingTeleport, flag)); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8e00747c1a717836d12a43aa48d667bf801167b0..168895dab31a0d5356eb96f2642399a1c99fccab 100644 +index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..8ebbbecaebea8435232a2ccd9ad1062eb1dbbd6c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -271,8 +271,8 @@ public abstract class PlayerList { - final ChunkPos pos = new ChunkPos(chunkX, chunkZ); - ChunkMap playerChunkMap = worldserver1.getChunkSource().chunkMap; - playerChunkMap.getChunkDistanceManager().addTicketAtLevel(TicketType.LOGIN, pos, 31, pos.toLong()); +@@ -283,8 +283,8 @@ public abstract class PlayerList { + net.minecraft.server.level.ChunkMap playerChunkMap = worldserver1.getChunkSource().chunkMap; + net.minecraft.server.level.DistanceManager distanceManager = playerChunkMap.distanceManager; + distanceManager.addTicketAtLevel(net.minecraft.server.level.TicketType.LOGIN, pos, 31, pos.toLong()); - worldserver1.getChunkSource().runDistanceManagerUpdates(); - worldserver1.getChunkSource().getChunkAtAsynchronously(chunkX, chunkZ, true, true).thenApply(chunk -> { -+ worldserver1.getChunkSource().markAreaHighPriority(pos, 28, 3); -+ worldserver1.getChunkSource().getChunkAtAsynchronously(chunkX, chunkZ, true, false).thenApply(chunk -> { - ChunkHolder updatingChunk = playerChunkMap.getUpdatingChunkIfPresent(pos.toLong()); ++ worldserver1.getChunkSource().markAreaHighPriority(pos, 28, 3); // Paper - Chunk priority ++ worldserver1.getChunkSource().getChunkAtAsynchronously(chunkX, chunkZ, true, false).thenApply(chunk -> { // Paper - Chunk priority + net.minecraft.server.level.ChunkHolder updatingChunk = playerChunkMap.getUpdatingChunkIfPresent(pos.toLong()); if (updatingChunk != null) { return updatingChunk.getEntityTickingFuture(); -@@ -692,6 +692,7 @@ public abstract class PlayerList { +@@ -697,6 +697,7 @@ public abstract class PlayerList { SocketAddress socketaddress = loginlistener.connection.getRemoteAddress(); - ServerPlayer entity = new ServerPlayer(this.server, this.server.getLevel(Level.OVERWORLD), gameprofile, new ServerPlayerGameMode(this.server.getLevel(Level.OVERWORLD))); -+ entity.isRealPlayer = true; // Paper + ServerPlayer entity = new ServerPlayer(this.server, this.server.getLevel(Level.OVERWORLD), gameprofile); ++ entity.isRealPlayer = true; // Paper - Chunk priority Player player = entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.getRawAddress()).getAddress()); -@@ -898,6 +899,7 @@ public abstract class PlayerList { +@@ -885,6 +886,7 @@ public abstract class PlayerList { // CraftBukkit end - worldserver1.getChunkSource().addRegionTicket(TicketType.POST_TELEPORT, new ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper -+ entityplayer1.forceCheckHighPriority(); // Player - while (avoidSuffocation && !worldserver1.noCollision(entityplayer1) && entityplayer1.getY() < 256.0D) { + worldserver1.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper ++ entityplayer1.forceCheckHighPriority(); // Player - Chunk priority + while (avoidSuffocation && !worldserver1.noCollision(entityplayer1) && entityplayer1.getY() < (double) worldserver1.getMaxBuildHeight()) { entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } -diff --git a/src/main/java/net/minecraft/world/level/ChunkPos.java b/src/main/java/net/minecraft/world/level/ChunkPos.java -index 7ccf830146c252cff8e22553d293e02d4b53dad8..4a5f318adf5bc2ca1c3fab5d173a99cddd77ab85 100644 ---- a/src/main/java/net/minecraft/world/level/ChunkPos.java -+++ b/src/main/java/net/minecraft/world/level/ChunkPos.java -@@ -104,6 +104,7 @@ public class ChunkPos { - return "[" + this.x + ", " + this.z + "]"; - } - -+ public final BlockPos asPosition() { return getWorldPosition(); } // Paper - OBFHELPER - public BlockPos getWorldPosition() { - return new BlockPos(this.getMinBlockX(), 0, this.getMinBlockZ()); - } +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index b410001403e4a984e1ea7f5fdb3adc866631e80f..3eaf72f49d8e520c6f3d2fea2818864018b41732 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -223,7 +223,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n + private Vec3 position; + private BlockPos blockPosition; + private Vec3 deltaMovement; +- private float yRot; ++ public float yRot; // Paper - private->public + private float xRot; + public float yRotO; + public float xRotO; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4fc44390f432ef13c9952aa22bbb29bc8bf47975..7261e22a71d219efe0949a08c5d3f10747759469 100644 +index f72471ac82907a0d5112598b3289689495285944..6e1f8323d028790d1f55d51edb3214d0161a0072 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2523,6 +2523,10 @@ public class CraftWorld implements World { +@@ -2558,6 +2558,12 @@ public class CraftWorld implements World { return future; } ++ // Paper start - Chunk priority + if (!urgent) { -+ // if not urgent, at least use a slightly boosted priority ++ // If not urgent, at least use a slightly boosted priority + world.getChunkSource().markHighPriority(new ChunkPos(x, z), 1); + } ++ // Paper end 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); - return CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk()); + 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 eb366396820c9b6731469df4198e0884a431a77c..610eabd2e93f9efccee810c3b5a314bc3cc649d8 100644 +index 5bab49aa7f4a99dc6387fcf57bc39b16f912e6ab..443dcc97f8056df408b8abab6e71a6f5467c6aaf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -60,6 +60,7 @@ import net.minecraft.server.level.ServerLevel; - import net.minecraft.server.level.ServerPlayer; - import net.minecraft.server.network.ServerGamePacketListenerImpl; - import net.minecraft.server.players.UserWhiteListEntry; -+import net.minecraft.util.Mth; - import net.minecraft.world.entity.Entity; - import net.minecraft.world.entity.ExperienceOrb; - import net.minecraft.world.entity.LivingEntity; -@@ -69,6 +70,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes; - import net.minecraft.world.inventory.AbstractContainerMenu; - import net.minecraft.world.item.enchantment.EnchantmentHelper; - import net.minecraft.world.item.enchantment.Enchantments; -+import net.minecraft.world.level.ChunkPos; - import net.minecraft.world.level.GameType; - import net.minecraft.world.level.biome.BiomeManager; - import net.minecraft.world.level.block.entity.SignBlockEntity; -@@ -848,6 +850,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -889,6 +889,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { throw new UnsupportedOperationException("Cannot set rotation of players. Consider teleporting instead."); } -+ // Paper start ++ // Paper start - Chunk priority + @Override + public java.util.concurrent.CompletableFuture teleportAsync(Location loc, @javax.annotation.Nonnull PlayerTeleportEvent.TeleportCause cause) { -+ ((CraftWorld)loc.getWorld()).getHandle().getChunkSource().markAreaHighPriority(new ChunkPos(Mth.floor(loc.getX()) >> 4, Mth.floor(loc.getZ()) >> 4), 28, 3); // Paper - load area high priority ++ ((CraftWorld)loc.getWorld()).getHandle().getChunkSource().markAreaHighPriority( ++ new net.minecraft.world.level.ChunkPos(net.minecraft.util.Mth.floor(loc.getX()) >> 4, ++ net.minecraft.util.Mth.floor(loc.getZ()) >> 4), 28, 3); // Load area high priority + return super.teleportAsync(loc, cause); + } + // Paper end diff --git a/patches/server/0487-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0488-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0487-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0488-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0488-Optimize-the-advancement-data-player-iteration-to-be.patch b/patches/server/0489-Optimize-the-advancement-data-player-iteration-to-be.patch similarity index 100% rename from patches/server/0488-Optimize-the-advancement-data-player-iteration-to-be.patch rename to patches/server/0489-Optimize-the-advancement-data-player-iteration-to-be.patch diff --git a/patches/server/0489-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0490-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0489-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0490-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0490-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0491-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0490-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0491-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0491-Move-range-check-for-block-placing-up.patch b/patches/server/0492-Move-range-check-for-block-placing-up.patch similarity index 94% rename from patches/server/0491-Move-range-check-for-block-placing-up.patch rename to patches/server/0492-Move-range-check-for-block-placing-up.patch index 31ad88805..38e707701 100644 --- a/patches/server/0491-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0492-Move-range-check-for-block-placing-up.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fecb2a6b8674ca110d6af539396873e9dcdc0edb..74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2 100644 +index 6476d2a478b85116061a13f7ef2a5fec2ade4a04..003cd8a304420671d487c9e55622d9578aa75b3a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1693,17 +1693,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1694,17 +1694,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser BlockPos blockposition = movingobjectpositionblock.getBlockPos(); Direction enumdirection = movingobjectpositionblock.getDirection(); diff --git a/patches/server/0492-Fix-SPIGOT-5989.patch b/patches/server/0493-Fix-SPIGOT-5989.patch similarity index 91% rename from patches/server/0492-Fix-SPIGOT-5989.patch rename to patches/server/0493-Fix-SPIGOT-5989.patch index a31cd6ebb..9a4a10f31 100644 --- a/patches/server/0492-Fix-SPIGOT-5989.patch +++ b/patches/server/0493-Fix-SPIGOT-5989.patch @@ -10,7 +10,7 @@ This fixes that by checking if the modified spawn location is still at a respawn anchor. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..9c594c0f142ca10b7c1df50faf45ccb3f7468ba9 100644 +index 8ebbbecaebea8435232a2ccd9ad1062eb1dbbd6c..371ecab3f90be690b66db3992239bf5625eb1f6e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -77,6 +77,7 @@ import net.minecraft.world.level.GameRules; @@ -21,7 +21,7 @@ index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..9c594c0f142ca10b7c1df50faf45ccb3 import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.border.BorderChangeListener; import net.minecraft.world.level.border.WorldBorder; -@@ -821,6 +822,7 @@ public abstract class PlayerList { +@@ -822,6 +823,7 @@ public abstract class PlayerList { // Paper start boolean isBedSpawn = false; boolean isRespawn = false; @@ -29,7 +29,7 @@ index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..9c594c0f142ca10b7c1df50faf45ccb3 // Paper end // CraftBukkit start - fire PlayerRespawnEvent -@@ -831,7 +833,7 @@ public abstract class PlayerList { +@@ -832,7 +834,7 @@ public abstract class PlayerList { Optional optional; if (blockposition != null) { @@ -38,7 +38,7 @@ index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..9c594c0f142ca10b7c1df50faf45ccb3 } else { optional = Optional.empty(); } -@@ -874,7 +876,12 @@ public abstract class PlayerList { +@@ -875,7 +877,12 @@ public abstract class PlayerList { } // Spigot End @@ -52,7 +52,7 @@ index 66735bbc2528c5812c9df14ef7cd91cb69d903b2..9c594c0f142ca10b7c1df50faf45ccb3 if (!flag) entityplayer.reset(); // SPIGOT-4785 isRespawn = true; // Paper } else { -@@ -911,8 +918,12 @@ public abstract class PlayerList { +@@ -913,8 +920,12 @@ public abstract class PlayerList { } // entityplayer1.syncInventory(); entityplayer1.setHealth(entityplayer1.getHealth()); diff --git a/patches/server/0493-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0494-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0493-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0494-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0494-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0495-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0494-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0495-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0495-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0496-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0495-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0496-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0496-Add-missing-strikeLighting-call-to-World-spigot-stri.patch b/patches/server/0497-Add-missing-strikeLighting-call-to-World-spigot-stri.patch similarity index 82% rename from patches/server/0496-Add-missing-strikeLighting-call-to-World-spigot-stri.patch rename to patches/server/0497-Add-missing-strikeLighting-call-to-World-spigot-stri.patch index 9449b0ade..625bb73cc 100644 --- a/patches/server/0496-Add-missing-strikeLighting-call-to-World-spigot-stri.patch +++ b/patches/server/0497-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 f72471ac82907a0d5112598b3289689495285944..d79a711d4080ad8acb2c240870be9d99a0b84cea 100644 +index 6e1f8323d028790d1f55d51edb3214d0161a0072..6c5b6a5f1b9ee3fb5a6bae4d57c70cfcaba75624 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2623,6 +2623,7 @@ public class CraftWorld implements World { +@@ -2629,6 +2629,7 @@ public class CraftWorld implements World { lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() ); lightning.visualOnly = true; lightning.isSilent = isSilent; diff --git a/patches/server/0497-Fix-some-rails-connecting-improperly.patch b/patches/server/0498-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0497-Fix-some-rails-connecting-improperly.patch rename to patches/server/0498-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0498-Fix-MC-187716-Use-configured-height.patch b/patches/server/0499-Fix-MC-187716-Use-configured-height.patch similarity index 100% rename from patches/server/0498-Fix-MC-187716-Use-configured-height.patch rename to patches/server/0499-Fix-MC-187716-Use-configured-height.patch diff --git a/patches/server/0499-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0500-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0499-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0500-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0500-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0501-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0500-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0501-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0501-Brand-support.patch b/patches/server/0502-Brand-support.patch similarity index 90% rename from patches/server/0501-Brand-support.patch rename to patches/server/0502-Brand-support.patch index ba59775a0..359f9d54c 100644 --- a/patches/server/0501-Brand-support.patch +++ b/patches/server/0502-Brand-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2..ffc64bd05428f147c03e242d9f9a134cd560c452 100644 +index 003cd8a304420671d487c9e55622d9578aa75b3a..6caae980ab043b8d48479e0849e1e297a78eb97a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; @@ -33,7 +33,7 @@ index 74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2..ffc64bd05428f147c03e242d9f9a134c public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { this.server = server; this.connection = connection; -@@ -3000,6 +3004,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3001,6 +3005,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private static final ResourceLocation CUSTOM_REGISTER = new ResourceLocation("register"); private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); @@ -42,7 +42,7 @@ index 74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2..ffc64bd05428f147c03e242d9f9a134c @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); -@@ -3027,6 +3033,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3028,6 +3034,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser try { byte[] data = new byte[packet.data.readableBytes()]; packet.data.readBytes(data); @@ -58,7 +58,7 @@ index 74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2..ffc64bd05428f147c03e242d9f9a134c this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); -@@ -3036,6 +3051,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3037,6 +3052,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } @@ -72,10 +72,10 @@ index 74cdbe26b1453a3a54cff4a4698f58eba5a9cdf2..ffc64bd05428f147c03e242d9f9a134c return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5bab49aa7f4a99dc6387fcf57bc39b16f912e6ab..e4475535dadc39bc15b46d2c5b1f548dc8f8332c 100644 +index 443dcc97f8056df408b8abab6e71a6f5467c6aaf..a9e3687d145c15f218d83a2d10b151fd9e993868 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2390,6 +2390,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2400,6 +2400,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end }; diff --git a/patches/server/0502-Add-setMaxPlayers-API.patch b/patches/server/0503-Add-setMaxPlayers-API.patch similarity index 94% rename from patches/server/0502-Add-setMaxPlayers-API.patch rename to patches/server/0503-Add-setMaxPlayers-API.patch index d7c4ed33c..34833d8f4 100644 --- a/patches/server/0502-Add-setMaxPlayers-API.patch +++ b/patches/server/0503-Add-setMaxPlayers-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add #setMaxPlayers API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9c594c0f142ca10b7c1df50faf45ccb3f7468ba9..31dd2c4a41e172c7eeb835ae61a45c954d0e647a 100644 +index 371ecab3f90be690b66db3992239bf5625eb1f6e..4b8f1a9e4d9654443e695ef0f18299ebb2507465 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -142,7 +142,7 @@ public abstract class PlayerList { diff --git a/patches/server/0503-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0504-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0503-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0504-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0504-Don-t-require-FACING-data.patch b/patches/server/0505-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0504-Don-t-require-FACING-data.patch rename to patches/server/0505-Don-t-require-FACING-data.patch diff --git a/patches/server/0505-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0506-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 93% rename from patches/server/0505-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0506-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 7c8f97ccd..356421a5b 100644 --- a/patches/server/0505-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0506-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2188666675192cb02e0bccf845cf7863486a305b..4821c64761fd136b4d27ad4bb190e0aa8950db26 100644 +index 0d553955460bf54181b8e3674c783c0febc30ce9..6a2b683ee5ec38da8b87a0f9eb09e9ad8431a56f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1649,12 +1649,14 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -24,7 +24,7 @@ index 2188666675192cb02e0bccf845cf7863486a305b..4821c64761fd136b4d27ad4bb190e0aa // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig.keepLoadedRange, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d79a711d4080ad8acb2c240870be9d99a0b84cea..4ca674fac0e1ed354a0c49284c21ca2b117dd852 100644 +index 6c5b6a5f1b9ee3fb5a6bae4d57c70cfcaba75624..d1c7d5a0918bf4d11c453fe31b3dfda9e146474c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -386,11 +386,13 @@ public class CraftWorld implements World { diff --git a/patches/server/0506-Add-moon-phase-API.patch b/patches/server/0507-Add-moon-phase-API.patch similarity index 89% rename from patches/server/0506-Add-moon-phase-API.patch rename to patches/server/0507-Add-moon-phase-API.patch index e6c06c4be..752b3c449 100644 --- a/patches/server/0506-Add-moon-phase-API.patch +++ b/patches/server/0507-Add-moon-phase-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add moon phase API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4ca674fac0e1ed354a0c49284c21ca2b117dd852..d0b2de0f0a37554eb812aa8c7c20f1067807dc40 100644 +index d1c7d5a0918bf4d11c453fe31b3dfda9e146474c..99e0413cad2bca77e80ea67aaeb78ebb25e6f896 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -325,6 +325,11 @@ public class CraftWorld implements World { diff --git a/patches/server/0507-Prevent-headless-pistons-from-being-created.patch b/patches/server/0508-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0507-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0508-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0508-Add-BellRingEvent.patch b/patches/server/0509-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0508-Add-BellRingEvent.patch rename to patches/server/0509-Add-BellRingEvent.patch diff --git a/patches/server/0509-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0510-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0509-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0510-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0510-Buffer-joins-to-world.patch b/patches/server/0511-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0510-Buffer-joins-to-world.patch rename to patches/server/0511-Buffer-joins-to-world.patch diff --git a/patches/server/0511-Optimize-redstone-algorithm.patch b/patches/server/0512-Optimize-redstone-algorithm.patch similarity index 100% rename from patches/server/0511-Optimize-redstone-algorithm.patch rename to patches/server/0512-Optimize-redstone-algorithm.patch diff --git a/patches/server/0512-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0513-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0512-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0513-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0513-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0514-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0513-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0514-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0514-Fix-CraftTeam-null-check.patch b/patches/server/0515-Fix-CraftTeam-null-check.patch similarity index 100% rename from patches/server/0514-Fix-CraftTeam-null-check.patch rename to patches/server/0515-Fix-CraftTeam-null-check.patch diff --git a/patches/server/0515-Add-more-Evoker-API.patch b/patches/server/0516-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0515-Add-more-Evoker-API.patch rename to patches/server/0516-Add-more-Evoker-API.patch diff --git a/patches/server/0516-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch b/patches/server/0517-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch similarity index 100% rename from patches/server/0516-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch rename to patches/server/0517-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch diff --git a/patches/server/0517-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0518-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0517-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0518-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0518-Cache-block-data-strings.patch b/patches/server/0519-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0518-Cache-block-data-strings.patch rename to patches/server/0519-Cache-block-data-strings.patch diff --git a/patches/server/0519-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0520-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 95% rename from patches/server/0519-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0520-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 95f19d31a..8ecfb822c 100644 --- a/patches/server/0519-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0520-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -9,7 +9,7 @@ as this is how Vanilla teleports entities. Cancel any pending motion when teleported. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ffc64bd05428f147c03e242d9f9a134cd560c452..93fc13fa6f631f779227262fb9aeebe40d451a25 100644 +index 6caae980ab043b8d48479e0849e1e297a78eb97a..b5b5f36cbdaac7791426ed721ff7db523edbda95 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -682,7 +682,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -27,11 +27,11 @@ index ffc64bd05428f147c03e242d9f9a134cd560c452..93fc13fa6f631f779227262fb9aeebe4 this.awaitingTeleportTime = this.tickCount; - this.player.absMoveTo(d0, d1, d2, f, f1); + this.player.moveTo(d0, d1, d2, f, f1); // Paper - use proper setPositionRotation for teleportation + this.player.forceCheckHighPriority(); // Paper this.player.connection.send(new ClientboundPlayerPositionPacket(d0 - d3, d1 - d4, d2 - d5, f - f2, f1 - f3, set, this.awaitingTeleport, flag)); } - diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 831290b1f2a6fd0e683085b0cbaee68ee7d1cf5e..5369ef871c7a8c2d84629ad06906d46dc5d54861 100644 +index 3eaf72f49d8e520c6f3d2fea2818864018b41732..2177e7aaf80ac715052e678fd77c1b9578a5b2e8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -152,6 +152,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0520-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0521-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0520-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0521-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0521-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0522-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0521-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0522-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0522-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0523-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 96% rename from patches/server/0522-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0523-Extend-block-drop-capture-to-capture-all-items-added.patch index 4f78b3eb9..abeb9c286 100644 --- a/patches/server/0522-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0523-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4821c64761fd136b4d27ad4bb190e0aa8950db26..30824d000fce6c74288d9c5e656e668fad746e26 100644 +index 6a2b683ee5ec38da8b87a0f9eb09e9ad8431a56f..898a2549900b1af70a0bed94a9c9c1f5fbb3c15d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1194,6 +1194,13 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0523-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch b/patches/server/0524-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch similarity index 84% rename from patches/server/0523-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch rename to patches/server/0524-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch index 697ac1609..b3714943b 100644 --- a/patches/server/0523-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch +++ b/patches/server/0524-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't mark dirty in invalid locations (SPIGOT-6086) diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java -index c2401b2ff0547335ddbbeb05c07b74552c246fc9..3f4506eb99e7b11416a48386c4185380e4680611 100644 +index 377993f325400a9bc77f5fbc77d9ec50f5d76638..6be677e618ca5b5d5a969a02e77457dd6e3d2e11 100644 --- a/src/main/java/net/minecraft/server/level/ChunkHolder.java +++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java -@@ -244,6 +244,7 @@ public class ChunkHolder { +@@ -373,6 +373,7 @@ public class ChunkHolder { } public void blockChanged(BlockPos pos) { diff --git a/patches/server/0524-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0525-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 94% rename from patches/server/0524-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0525-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 43e92bb1e..7dcfece97 100644 --- a/patches/server/0524-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0525-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5369ef871c7a8c2d84629ad06906d46dc5d54861..3dcbd9f3e17a52441100b2b89e83dc5a91a7031e 100644 +index 2177e7aaf80ac715052e678fd77c1b9578a5b2e8..550130ff6ab386bc7b45758d637f20b17cbee2eb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3925,4 +3925,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0525-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0526-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0525-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0526-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0526-Entity-isTicking.patch b/patches/server/0527-Entity-isTicking.patch similarity index 95% rename from patches/server/0526-Entity-isTicking.patch rename to patches/server/0527-Entity-isTicking.patch index 72bab4c3e..edec90ed4 100644 --- a/patches/server/0526-Entity-isTicking.patch +++ b/patches/server/0527-Entity-isTicking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3dcbd9f3e17a52441100b2b89e83dc5a91a7031e..24d955c436b4ecf95a0bd0b0ff30b3794df9798e 100644 +index 550130ff6ab386bc7b45758d637f20b17cbee2eb..d698fefd5d492bc6fe8b9e7d07108d6ba77d8576 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -52,6 +52,7 @@ import net.minecraft.resources.ResourceKey; diff --git a/patches/server/0527-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0528-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0527-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0528-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0528-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch b/patches/server/0529-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch similarity index 89% rename from patches/server/0528-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch rename to patches/server/0529-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch index 5e954ab9d..fd6164915 100644 --- a/patches/server/0528-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch +++ b/patches/server/0529-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CME on adding a passenger in CreatureSpawnEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 24d955c436b4ecf95a0bd0b0ff30b3794df9798e..e0d98ed993414f5834dcbd4c4b482209a5cb4188 100644 +index d698fefd5d492bc6fe8b9e7d07108d6ba77d8576..f562f29193f30ac38112a1e9db45da4efe10eeb0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3434,7 +3434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0529-Fix-Concurrency-issue-in-WeightedList.patch b/patches/server/0530-Fix-Concurrency-issue-in-WeightedList.patch similarity index 100% rename from patches/server/0529-Fix-Concurrency-issue-in-WeightedList.patch rename to patches/server/0530-Fix-Concurrency-issue-in-WeightedList.patch diff --git a/patches/server/0530-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0531-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0530-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0531-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0531-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0532-Fix-for-large-move-vectors-crashing-server.patch similarity index 97% rename from patches/server/0531-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0532-Fix-for-large-move-vectors-crashing-server.patch index 18319e2a0..4eff17681 100644 --- a/patches/server/0531-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0532-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 93fc13fa6f631f779227262fb9aeebe40d451a25..f3b7a9203bca8246789b293f0d043a4f253ce57f 100644 +index b5b5f36cbdaac7791426ed721ff7db523edbda95..36dccc209afb838cd3dbdfd26893cf5481d6653f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -507,19 +507,24 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0532-Optimise-getType-calls.patch b/patches/server/0533-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0532-Optimise-getType-calls.patch rename to patches/server/0533-Optimise-getType-calls.patch diff --git a/patches/server/0533-Villager-resetOffers.patch b/patches/server/0534-Villager-resetOffers.patch similarity index 100% rename from patches/server/0533-Villager-resetOffers.patch rename to patches/server/0534-Villager-resetOffers.patch diff --git a/patches/server/0534-Improve-inlinig-for-some-hot-IBlockData-methods.patch b/patches/server/0535-Improve-inlinig-for-some-hot-IBlockData-methods.patch similarity index 100% rename from patches/server/0534-Improve-inlinig-for-some-hot-IBlockData-methods.patch rename to patches/server/0535-Improve-inlinig-for-some-hot-IBlockData-methods.patch diff --git a/patches/server/0535-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0536-Retain-block-place-order-when-capturing-blockstates.patch similarity index 100% rename from patches/server/0535-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0536-Retain-block-place-order-when-capturing-blockstates.patch diff --git a/patches/server/0536-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0537-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0536-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0537-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0537-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0538-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0537-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0538-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0538-Player-elytra-boost-API.patch b/patches/server/0539-Player-elytra-boost-API.patch similarity index 94% rename from patches/server/0538-Player-elytra-boost-API.patch rename to patches/server/0539-Player-elytra-boost-API.patch index 366704d57..f397e6956 100644 --- a/patches/server/0538-Player-elytra-boost-API.patch +++ b/patches/server/0539-Player-elytra-boost-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e4475535dadc39bc15b46d2c5b1f548dc8f8332c..b04fef0c559241295443659d08df366fc56c00e6 100644 +index a9e3687d145c15f218d83a2d10b151fd9e993868..5a2c999f95684e02131daf7a9582cdf48feb6290 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -538,6 +538,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0539-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0540-Fixed-TileEntityBell-memory-leak.patch similarity index 100% rename from patches/server/0539-Fixed-TileEntityBell-memory-leak.patch rename to patches/server/0540-Fixed-TileEntityBell-memory-leak.patch diff --git a/patches/server/0540-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0541-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0540-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0541-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0541-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0542-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0541-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0542-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0542-Add-ignore-discounts-API.patch b/patches/server/0543-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0542-Add-ignore-discounts-API.patch rename to patches/server/0543-Add-ignore-discounts-API.patch diff --git a/patches/server/0543-Toggle-for-removing-existing-dragon.patch b/patches/server/0544-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0543-Toggle-for-removing-existing-dragon.patch rename to patches/server/0544-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0544-Fix-client-lag-on-advancement-loading.patch b/patches/server/0545-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0544-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0545-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0545-Item-no-age-no-player-pickup.patch b/patches/server/0546-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0545-Item-no-age-no-player-pickup.patch rename to patches/server/0546-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0546-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0547-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/0546-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/0547-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/0547-Beacon-API-custom-effect-ranges.patch b/patches/server/0548-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0547-Beacon-API-custom-effect-ranges.patch rename to patches/server/0548-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0548-Add-API-for-quit-reason.patch b/patches/server/0549-Add-API-for-quit-reason.patch similarity index 93% rename from patches/server/0548-Add-API-for-quit-reason.patch rename to patches/server/0549-Add-API-for-quit-reason.patch index e1ce9d113..bd8278423 100644 --- a/patches/server/0548-Add-API-for-quit-reason.patch +++ b/patches/server/0549-Add-API-for-quit-reason.patch @@ -25,10 +25,10 @@ index d32b96a5f51d745869cfc40c01c54de58e1eb843..759e563d1ed13249fada8a8eab6b6a10 Connection.LOGGER.debug("Failed to sent packet", throwable); ConnectionProtocol enumprotocol = this.getCurrentProtocol(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d59e707f28a5f04545208ad33d122fc433b85933..a361701e3be790ca7477d178a8fd73f932efe797 100644 +index 1dd21dc364eef75667d56db33c5df8e006453a08..4444e1235fdd5a3630e71848e1269b5d05bf1c55 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -247,6 +247,7 @@ public class ServerPlayer extends Player { +@@ -255,6 +255,7 @@ public class ServerPlayer extends Player { public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper boolean needsChunkCenterUpdate; // Paper - no-tick view distance @@ -37,7 +37,7 @@ index d59e707f28a5f04545208ad33d122fc433b85933..a361701e3be790ca7477d178a8fd73f9 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f3b7a9203bca8246789b293f0d043a4f253ce57f..52a23465cbb76a164bf2163045d09bdee249002d 100644 +index 36dccc209afb838cd3dbdfd26893cf5481d6653f..c49d9eb34883342e685c5363a4d33bf4519b2b3b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -444,6 +444,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -49,7 +49,7 @@ index f3b7a9203bca8246789b293f0d043a4f253ce57f..52a23465cbb76a164bf2163045d09bde this.connection.disconnect(ichatbasecomponent); }); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 31dd2c4a41e172c7eeb835ae61a45c954d0e647a..b7e3ed5a6298774a315300daef771f278aa20af7 100644 +index 4b8f1a9e4d9654443e695ef0f18299ebb2507465..f3e59b028d05c2d65ed2dab6717df68b68405fe5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -587,7 +587,7 @@ public abstract class PlayerList { diff --git a/patches/server/0549-Seed-based-feature-search.patch b/patches/server/0550-Seed-based-feature-search.patch similarity index 100% rename from patches/server/0549-Seed-based-feature-search.patch rename to patches/server/0550-Seed-based-feature-search.patch diff --git a/patches/server/0550-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0551-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0550-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0551-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0551-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0552-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0551-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0552-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0552-Expose-world-spawn-angle.patch b/patches/server/0553-Expose-world-spawn-angle.patch similarity index 88% rename from patches/server/0552-Expose-world-spawn-angle.patch rename to patches/server/0553-Expose-world-spawn-angle.patch index 30ed2166d..55ea06f16 100644 --- a/patches/server/0552-Expose-world-spawn-angle.patch +++ b/patches/server/0553-Expose-world-spawn-angle.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b7e3ed5a6298774a315300daef771f278aa20af7..d8278190323d00c186d81f578f77fa335529baad 100644 +index f3e59b028d05c2d65ed2dab6717df68b68405fe5..acead204b21b58af3c4f35963a5699e2a75beead 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -864,7 +864,7 @@ public abstract class PlayerList { +@@ -865,7 +865,7 @@ public abstract class PlayerList { if (location == null) { worldserver1 = this.server.getLevel(Level.OVERWORLD); blockposition = entityplayer1.getSpawnPoint(worldserver1); @@ -18,7 +18,7 @@ index b7e3ed5a6298774a315300daef771f278aa20af7..d8278190323d00c186d81f578f77fa33 Player respawnPlayer = this.cserver.getPlayer(entityplayer1); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d0b2de0f0a37554eb812aa8c7c20f1067807dc40..ed8c8b7ff07a58dfaf7bbb1e630a1e68cc0c29f3 100644 +index 99e0413cad2bca77e80ea67aaeb78ebb25e6f896..612f707bfc8179c143cb9c1c70b305464598b815 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -377,7 +377,7 @@ public class CraftWorld implements World { diff --git a/patches/server/0553-Add-Destroy-Speed-API.patch b/patches/server/0554-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0553-Add-Destroy-Speed-API.patch rename to patches/server/0554-Add-Destroy-Speed-API.patch diff --git a/patches/server/0554-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0555-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 89% rename from patches/server/0554-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0555-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index adb4393d4..0853879b5 100644 --- a/patches/server/0554-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0555-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b04fef0c559241295443659d08df366fc56c00e6..049bfec8e8e078f335d34a96707320bf48f336c2 100644 +index 5a2c999f95684e02131daf7a9582cdf48feb6290..9fe60810f0184ad4c65228457eb3adb86ac22c29 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2051,7 +2051,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2061,7 +2061,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (data != null && !particle.getDataType().isInstance(data)) { throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass()); } diff --git a/patches/server/0555-Add-LivingEntity-clearActiveItem.patch b/patches/server/0556-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0555-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0556-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0556-Add-PlayerItemCooldownEvent.patch b/patches/server/0557-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0556-Add-PlayerItemCooldownEvent.patch rename to patches/server/0557-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0557-More-lightning-API.patch b/patches/server/0558-More-lightning-API.patch similarity index 100% rename from patches/server/0557-More-lightning-API.patch rename to patches/server/0558-More-lightning-API.patch diff --git a/patches/server/0558-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0559-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 98% rename from patches/server/0558-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0559-Climbing-should-not-bypass-cramming-gamerule.patch index fd798ae2c..45ec21ca3 100644 --- a/patches/server/0558-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0559-Climbing-should-not-bypass-cramming-gamerule.patch @@ -21,7 +21,7 @@ index f4b533b8e8b6c4bb59d032e91a94353f4b201b69..5344d25e7bef34954aa058ec019b4ba8 private void keepLoadedRange() { keepLoadedRange = (short) (getInt("keep-spawn-loaded-range", Math.min(spigotConfig.viewDistance, 10)) * 16); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e0d98ed993414f5834dcbd4c4b482209a5cb4188..143f4b9e7247d0d715a69aff69d5652bc9343fa0 100644 +index f562f29193f30ac38112a1e9db45da4efe10eeb0..bb6ee8e9c7665ab5c88b71dc68269c79997dc024 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1724,6 +1724,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0559-Added-missing-default-perms-for-commands.patch b/patches/server/0560-Added-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0559-Added-missing-default-perms-for-commands.patch rename to patches/server/0560-Added-missing-default-perms-for-commands.patch diff --git a/patches/server/0560-Add-PlayerShearBlockEvent.patch b/patches/server/0561-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0560-Add-PlayerShearBlockEvent.patch rename to patches/server/0561-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0561-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0562-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/server/0561-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/server/0562-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/server/0562-Fix-curing-zombie-villager-discount-exploit.patch b/patches/server/0563-Fix-curing-zombie-villager-discount-exploit.patch similarity index 100% rename from patches/server/0562-Fix-curing-zombie-villager-discount-exploit.patch rename to patches/server/0563-Fix-curing-zombie-villager-discount-exploit.patch diff --git a/patches/server/0563-Limit-recipe-packets.patch b/patches/server/0564-Limit-recipe-packets.patch similarity index 95% rename from patches/server/0563-Limit-recipe-packets.patch rename to patches/server/0564-Limit-recipe-packets.patch index 208f8aafb..3df1e152a 100644 --- a/patches/server/0563-Limit-recipe-packets.patch +++ b/patches/server/0564-Limit-recipe-packets.patch @@ -23,7 +23,7 @@ index 649e46115260259820a9d2255ad669b926319a3f..f9d438325aed9d488d8aa60e0ae68a37 public static boolean velocityOnlineMode; public static byte[] velocitySecretKey; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 52a23465cbb76a164bf2163045d09bdee249002d..c4734bcb26558a6524d4463aff28c4d2776ba22d 100644 +index c49d9eb34883342e685c5363a4d33bf4519b2b3b..4d4b0c1fd4021367f16a292e6059de7f61a8ca8a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -232,6 +232,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -42,7 +42,7 @@ index 52a23465cbb76a164bf2163045d09bdee249002d..c4734bcb26558a6524d4463aff28c4d2 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -2794,6 +2796,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2795,6 +2797,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { diff --git a/patches/server/0564-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0565-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0564-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0565-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0565-MC-4-Fix-item-position-desync.patch b/patches/server/0566-MC-4-Fix-item-position-desync.patch similarity index 97% rename from patches/server/0565-MC-4-Fix-item-position-desync.patch rename to patches/server/0566-MC-4-Fix-item-position-desync.patch index 4ce43af0e..5ae216c7d 100644 --- a/patches/server/0565-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0566-MC-4-Fix-item-position-desync.patch @@ -41,7 +41,7 @@ index b30c08bfb8c55161543a4ef09f2e462e0a1fe4ae..ec93f5300cc7d423ec0d292f0f8443f9 public Vec3 updateEntityPosition(Vec3 orig) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 143f4b9e7247d0d715a69aff69d5652bc9343fa0..5e9fd6e501df6a84e508cde01e456323d6707b3e 100644 +index bb6ee8e9c7665ab5c88b71dc68269c79997dc024..7194e2b51ab8aca929eb970e0a6ff31a07a4c09f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3752,6 +3752,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0566-Player-Chunk-Load-Unload-Events.patch b/patches/server/0567-Player-Chunk-Load-Unload-Events.patch similarity index 90% rename from patches/server/0566-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0567-Player-Chunk-Load-Unload-Events.patch index 31fb97f96..dc229c0cf 100644 --- a/patches/server/0566-Player-Chunk-Load-Unload-Events.patch +++ b/patches/server/0567-Player-Chunk-Load-Unload-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Chunk Load/Unload Events diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a361701e3be790ca7477d178a8fd73f932efe797..28eb1f6e323d50fe8dc0587724ae73c6939f6721 100644 +index 4444e1235fdd5a3630e71848e1269b5d05bf1c55..b6daeb86db4f066429888bc9e442961f062f993a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2064,11 +2064,21 @@ public class ServerPlayer extends Player { +@@ -2088,11 +2088,21 @@ public class ServerPlayer extends Player { public void trackChunk(ChunkPos chunkcoordintpair, Packet packet, Packet packet1) { this.connection.send(packet1); this.connection.send(packet); diff --git a/patches/server/0567-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0568-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0567-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0568-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0568-Expose-LivingEntity-hurt-direction.patch b/patches/server/0569-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0568-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0569-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0569-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0570-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0569-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0570-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0570-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0571-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch similarity index 100% rename from patches/server/0570-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch rename to patches/server/0571-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch diff --git a/patches/server/0571-added-PlayerTradeEvent.patch b/patches/server/0572-added-PlayerTradeEvent.patch similarity index 100% rename from patches/server/0571-added-PlayerTradeEvent.patch rename to patches/server/0572-added-PlayerTradeEvent.patch diff --git a/patches/server/0572-Implement-TargetHitEvent.patch b/patches/server/0573-Implement-TargetHitEvent.patch similarity index 100% rename from patches/server/0572-Implement-TargetHitEvent.patch rename to patches/server/0573-Implement-TargetHitEvent.patch diff --git a/patches/server/0573-Additional-Block-Material-API-s.patch b/patches/server/0574-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/server/0573-Additional-Block-Material-API-s.patch rename to patches/server/0574-Additional-Block-Material-API-s.patch diff --git a/patches/server/0574-Fix-harming-potion-dupe.patch b/patches/server/0575-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0574-Fix-harming-potion-dupe.patch rename to patches/server/0575-Fix-harming-potion-dupe.patch diff --git a/patches/server/0575-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0576-Implement-API-to-get-Material-from-Boats-and-Minecar.patch similarity index 100% rename from patches/server/0575-Implement-API-to-get-Material-from-Boats-and-Minecar.patch rename to patches/server/0576-Implement-API-to-get-Material-from-Boats-and-Minecar.patch diff --git a/patches/server/0576-Cache-burn-durations.patch b/patches/server/0577-Cache-burn-durations.patch similarity index 100% rename from patches/server/0576-Cache-burn-durations.patch rename to patches/server/0577-Cache-burn-durations.patch diff --git a/patches/server/0577-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0578-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0577-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0578-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0578-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0579-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0578-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0579-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0579-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0580-Implement-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0579-Implement-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0580-Implement-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0580-Fix-interact-event-not-being-called-in-adventure.patch b/patches/server/0581-Fix-interact-event-not-being-called-in-adventure.patch similarity index 90% rename from patches/server/0580-Fix-interact-event-not-being-called-in-adventure.patch rename to patches/server/0581-Fix-interact-event-not-being-called-in-adventure.patch index 6b62719ee..f93d83580 100644 --- a/patches/server/0580-Fix-interact-event-not-being-called-in-adventure.patch +++ b/patches/server/0581-Fix-interact-event-not-being-called-in-adventure.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix interact event not being called in adventure Call PlayerInteractEvent when left-clicking on a block in adventure mode diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c4734bcb26558a6524d4463aff28c4d2776ba22d..f6f8b7e18a5ebee5a5599b0cb314eab6bef0fbc3 100644 +index 4d4b0c1fd4021367f16a292e6059de7f61a8ca8a..703c5de24d2be2462cffe597f3a05d766075b128 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1733,7 +1733,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1734,7 +1734,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser MutableComponent ichatmutablecomponent = (new TranslatableComponent("build.tooHigh", new Object[]{i - 1})).withStyle(ChatFormatting.RED); this.player.sendMessage((Component) ichatmutablecomponent, ChatType.GAME_INFO, Util.NIL_UUID); @@ -18,7 +18,7 @@ index c4734bcb26558a6524d4463aff28c4d2776ba22d..f6f8b7e18a5ebee5a5599b0cb314eab6 this.player.swing(enumhand, true); } } -@@ -2205,7 +2205,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2206,7 +2206,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser Vec3 vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); HitResult movingobjectposition = this.player.level.clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, this.player)); diff --git a/patches/server/0581-Zombie-API-breaking-doors.patch b/patches/server/0582-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0581-Zombie-API-breaking-doors.patch rename to patches/server/0582-Zombie-API-breaking-doors.patch diff --git a/patches/server/0582-Fix-nerfed-slime-when-splitting.patch b/patches/server/0583-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0582-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0583-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0583-Add-EntityLoadCrossbowEvent.patch b/patches/server/0584-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0583-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0584-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0584-Guardian-beam-workaround.patch b/patches/server/0585-Guardian-beam-workaround.patch similarity index 100% rename from patches/server/0584-Guardian-beam-workaround.patch rename to patches/server/0585-Guardian-beam-workaround.patch diff --git a/patches/server/0585-Added-WorldGameRuleChangeEvent.patch b/patches/server/0586-Added-WorldGameRuleChangeEvent.patch similarity index 98% rename from patches/server/0585-Added-WorldGameRuleChangeEvent.patch rename to patches/server/0586-Added-WorldGameRuleChangeEvent.patch index ba4487104..791fc1f27 100644 --- a/patches/server/0585-Added-WorldGameRuleChangeEvent.patch +++ b/patches/server/0586-Added-WorldGameRuleChangeEvent.patch @@ -64,7 +64,7 @@ index 888d812118c15c212284687ae5842a94f5715d52..e7ca5d6fb8922e7e8065864f736b0605 public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ed8c8b7ff07a58dfaf7bbb1e630a1e68cc0c29f3..fd01fc9708a62df9483c88ffeec6a0304f3708ca 100644 +index 612f707bfc8179c143cb9c1c70b305464598b815..e9ef6fbd174ca36b98f2d72bd9be4fdc2b033ca5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2363,8 +2363,13 @@ public class CraftWorld implements World { diff --git a/patches/server/0586-Added-ServerResourcesReloadedEvent.patch b/patches/server/0587-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0586-Added-ServerResourcesReloadedEvent.patch rename to patches/server/0587-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0587-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0588-Added-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0587-Added-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0588-Added-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0588-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0589-Implemented-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0588-Implemented-BlockFailedDispenseEvent.patch rename to patches/server/0589-Implemented-BlockFailedDispenseEvent.patch diff --git a/patches/server/0589-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0590-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0589-Added-PlayerLecternPageChangeEvent.patch rename to patches/server/0590-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0590-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0591-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0590-Added-PlayerLoomPatternSelectEvent.patch rename to patches/server/0591-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0591-Configurable-door-breaking-difficulty.patch b/patches/server/0592-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0591-Configurable-door-breaking-difficulty.patch rename to patches/server/0592-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0592-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0593-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0592-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0593-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0593-Implement-API-to-expose-exact-interaction-point.patch b/patches/server/0594-Implement-API-to-expose-exact-interaction-point.patch similarity index 100% rename from patches/server/0593-Implement-API-to-expose-exact-interaction-point.patch rename to patches/server/0594-Implement-API-to-expose-exact-interaction-point.patch diff --git a/patches/server/0594-Remove-stale-POIs.patch b/patches/server/0595-Remove-stale-POIs.patch similarity index 92% rename from patches/server/0594-Remove-stale-POIs.patch rename to patches/server/0595-Remove-stale-POIs.patch index f430ef818..bb517555d 100644 --- a/patches/server/0594-Remove-stale-POIs.patch +++ b/patches/server/0595-Remove-stale-POIs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 30824d000fce6c74288d9c5e656e668fad746e26..520db20a1589a2f82c7fa5aa65b3b040af270c0b 100644 +index 898a2549900b1af70a0bed94a9c9c1f5fbb3c15d..be7d1046bc759d494c7fcfc30d762b42fd659992 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1738,6 +1738,11 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0595-Fix-villager-boat-exploit.patch b/patches/server/0596-Fix-villager-boat-exploit.patch similarity index 93% rename from patches/server/0595-Fix-villager-boat-exploit.patch rename to patches/server/0596-Fix-villager-boat-exploit.patch index fb232b2f7..cd44bc81c 100644 --- a/patches/server/0595-Fix-villager-boat-exploit.patch +++ b/patches/server/0596-Fix-villager-boat-exploit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d8278190323d00c186d81f578f77fa335529baad..eed8b1055c4c5026ebe3ebf1541ac94beda3112e 100644 +index acead204b21b58af3c4f35963a5699e2a75beead..12e305d87fc4cbf22891adb1e4bf7e9e734f7285 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -612,6 +612,15 @@ public abstract class PlayerList { diff --git a/patches/server/0596-Add-sendOpLevel-API.patch b/patches/server/0597-Add-sendOpLevel-API.patch similarity index 91% rename from patches/server/0596-Add-sendOpLevel-API.patch rename to patches/server/0597-Add-sendOpLevel-API.patch index e113220db..f1c0a29e7 100644 --- a/patches/server/0596-Add-sendOpLevel-API.patch +++ b/patches/server/0597-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index eed8b1055c4c5026ebe3ebf1541ac94beda3112e..235c9aef7615948be74b336fd922b80f6b4e6fac 100644 +index 12e305d87fc4cbf22891adb1e4bf7e9e734f7285..b7bdfdcbd5fc4330ca6eea31c2b86e3edc535a07 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1112,22 +1112,29 @@ public abstract class PlayerList { +@@ -1114,22 +1114,29 @@ public abstract class PlayerList { } private void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel) { @@ -46,7 +46,7 @@ index eed8b1055c4c5026ebe3ebf1541ac94beda3112e..235c9aef7615948be74b336fd922b80f // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 049bfec8e8e078f335d34a96707320bf48f336c2..8d48f45d695b15eb136bc7609315f5dc88104e7c 100644 +index 9fe60810f0184ad4c65228457eb3adb86ac22c29..bb79f5aedf79f42e4ae6c45faa9373a0e8c94159 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -552,6 +552,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0597-Add-StructureLocateEvent.patch b/patches/server/0598-Add-StructureLocateEvent.patch similarity index 100% rename from patches/server/0597-Add-StructureLocateEvent.patch rename to patches/server/0598-Add-StructureLocateEvent.patch diff --git a/patches/server/0598-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0599-Collision-option-for-requiring-a-player-participant.patch similarity index 98% rename from patches/server/0598-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0599-Collision-option-for-requiring-a-player-participant.patch index 87cb714ff..9b6faa8e2 100644 --- a/patches/server/0598-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0599-Collision-option-for-requiring-a-player-participant.patch @@ -28,7 +28,7 @@ index aefc43e5fdcecb268a83a31cb6d4e4c4facebe4d..cc15735a8a63952724facf3e053c6776 public int wanderingTraderSpawnDayTicks = 24000; public int wanderingTraderSpawnChanceFailureIncrement = 25; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5e9fd6e501df6a84e508cde01e456323d6707b3e..b3bb5bfa00a74240496cfb2df212a92582802fa6 100644 +index 7194e2b51ab8aca929eb970e0a6ff31a07a4c09f..8c5bf69b89822c8211d472ba3b4b809fa436948a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1607,6 +1607,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0599-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0600-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0599-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0600-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0600-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0601-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0600-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0601-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0601-Make-schedule-command-per-world.patch b/patches/server/0602-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0601-Make-schedule-command-per-world.patch rename to patches/server/0602-Make-schedule-command-per-world.patch diff --git a/patches/server/0602-Configurable-max-leash-distance.patch b/patches/server/0603-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0602-Configurable-max-leash-distance.patch rename to patches/server/0603-Configurable-max-leash-distance.patch diff --git a/patches/server/0603-Implement-BlockPreDispenseEvent.patch b/patches/server/0604-Implement-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0603-Implement-BlockPreDispenseEvent.patch rename to patches/server/0604-Implement-BlockPreDispenseEvent.patch diff --git a/patches/server/0604-Added-Vanilla-Entity-Tags.patch b/patches/server/0605-Added-Vanilla-Entity-Tags.patch similarity index 100% rename from patches/server/0604-Added-Vanilla-Entity-Tags.patch rename to patches/server/0605-Added-Vanilla-Entity-Tags.patch diff --git a/patches/server/0605-added-Wither-API.patch b/patches/server/0606-added-Wither-API.patch similarity index 100% rename from patches/server/0605-added-Wither-API.patch rename to patches/server/0606-added-Wither-API.patch diff --git a/patches/server/0606-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0607-Added-firing-of-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0606-Added-firing-of-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0607-Added-firing-of-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0607-Fix-console-spam-when-removing-chests-in-water.patch b/patches/server/0608-Fix-console-spam-when-removing-chests-in-water.patch similarity index 100% rename from patches/server/0607-Fix-console-spam-when-removing-chests-in-water.patch rename to patches/server/0608-Fix-console-spam-when-removing-chests-in-water.patch diff --git a/patches/server/0608-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0609-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0608-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0609-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0609-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0610-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0609-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0610-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0610-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0610-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/server/0611-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/server/0611-Skip-distance-map-update-when-spawning-disabled.patch b/patches/server/0612-Skip-distance-map-update-when-spawning-disabled.patch similarity index 87% rename from patches/server/0611-Skip-distance-map-update-when-spawning-disabled.patch rename to patches/server/0612-Skip-distance-map-update-when-spawning-disabled.patch index 2df4e684e..6c369ceb6 100644 --- a/patches/server/0611-Skip-distance-map-update-when-spawning-disabled.patch +++ b/patches/server/0612-Skip-distance-map-update-when-spawning-disabled.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Skip distance map update when spawning disabled. diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index e46ccbca0cfa63dd5143080375193a95a9249d60..71b90decb77dbc5a5e0b491db72ca7a239deff2a 100644 +index 80cda453dc9dd8267eff8a6445d5cd63a13a64c3..1ac3ca6b7968a4217339b5a284981cd578773e0f 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -770,7 +770,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -802,7 +802,7 @@ public class ServerChunkCache extends ChunkSource { int l = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning NaturalSpawner.SpawnState spawnercreature_d; // moved down diff --git a/patches/server/0612-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch similarity index 83% rename from patches/server/0612-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0613-Reset-shield-blocking-on-dimension-change.patch index 43310e720..2cb7b490d 100644 --- a/patches/server/0612-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0613-Reset-shield-blocking-on-dimension-change.patch @@ -5,10 +5,10 @@ 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 28eb1f6e323d50fe8dc0587724ae73c6939f6721..547f4fe601d5846e339aba23fb20f6684c0e901f 100644 +index b6daeb86db4f066429888bc9e442961f062f993a..2fa2ba45fa1d79d9c78d80cca2aeebedad5a9ba0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1116,6 +1116,11 @@ public class ServerPlayer extends Player { +@@ -1140,6 +1140,11 @@ public class ServerPlayer extends Player { this.level.getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end } diff --git a/patches/server/0613-add-DragonEggFormEvent.patch b/patches/server/0614-add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0613-add-DragonEggFormEvent.patch rename to patches/server/0614-add-DragonEggFormEvent.patch diff --git a/patches/server/0614-EntityMoveEvent.patch b/patches/server/0615-EntityMoveEvent.patch similarity index 97% rename from patches/server/0614-EntityMoveEvent.patch rename to patches/server/0615-EntityMoveEvent.patch index 53cd1898a..992da64f2 100644 --- a/patches/server/0614-EntityMoveEvent.patch +++ b/patches/server/0615-EntityMoveEvent.patch @@ -17,7 +17,7 @@ index e73c211627f7aa5d6aa5525dba7e9601fbbc6794..d66d93c0eb5a26b61821029f9c470a73 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 520db20a1589a2f82c7fa5aa65b3b040af270c0b..6e510a168316d615122aa12b1453bed6e185c041 100644 +index be7d1046bc759d494c7fcfc30d762b42fd659992..3d79984d15ee36107522b65f5dcfb4d2fa3538ab 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -200,6 +200,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0615-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0616-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 95% rename from patches/server/0615-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0616-added-option-to-disable-pathfinding-updates-on-block.patch index 27344cdd5..ad3fa67b6 100644 --- a/patches/server/0615-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0616-added-option-to-disable-pathfinding-updates-on-block.patch @@ -20,7 +20,7 @@ index 5e24a7eb6108dbec54192874e9d8fb292d73fbb6..25a284491e5029ecf8d574ca821d18a6 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6e510a168316d615122aa12b1453bed6e185c041..344c6d6dd99819ac1103c065b0410bafb3537581 100644 +index 3d79984d15ee36107522b65f5dcfb4d2fa3538ab..15f92317cfff94eb0d6c585a69f7d3f65c550f21 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1334,6 +1334,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0616-Inline-shift-direction-fields.patch b/patches/server/0617-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0616-Inline-shift-direction-fields.patch rename to patches/server/0617-Inline-shift-direction-fields.patch diff --git a/patches/server/0617-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0618-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0617-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0618-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0618-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0619-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0618-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0619-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0619-living-entity-allow-attribute-registration.patch b/patches/server/0620-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0619-living-entity-allow-attribute-registration.patch rename to patches/server/0620-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0620-fix-dead-slime-setSize-invincibility.patch b/patches/server/0621-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0620-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0621-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0621-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0622-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0621-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0622-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0622-misc-debugging-dumps.patch b/patches/server/0623-misc-debugging-dumps.patch similarity index 100% rename from patches/server/0622-misc-debugging-dumps.patch rename to patches/server/0623-misc-debugging-dumps.patch diff --git a/patches/server/0623-Add-support-for-hex-color-codes-in-console.patch b/patches/server/0624-Add-support-for-hex-color-codes-in-console.patch similarity index 100% rename from patches/server/0623-Add-support-for-hex-color-codes-in-console.patch rename to patches/server/0624-Add-support-for-hex-color-codes-in-console.patch diff --git a/patches/server/0624-Expose-Tracked-Players.patch b/patches/server/0625-Expose-Tracked-Players.patch similarity index 87% rename from patches/server/0624-Expose-Tracked-Players.patch rename to patches/server/0625-Expose-Tracked-Players.patch index 61565810c..0e3b2f4fb 100644 --- a/patches/server/0624-Expose-Tracked-Players.patch +++ b/patches/server/0625-Expose-Tracked-Players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose Tracked Players diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8d48f45d695b15eb136bc7609315f5dc88104e7c..5e12cfce9d61221651c88a8323a4f099adcf3fa2 100644 +index bb79f5aedf79f42e4ae6c45faa9373a0e8c94159..ee40e03704bb8c6b3aa990542fc852058d00f081 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2309,6 +2309,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2319,6 +2319,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0625-Remove-streams-from-SensorNearest.patch b/patches/server/0626-Remove-streams-from-SensorNearest.patch similarity index 100% rename from patches/server/0625-Remove-streams-from-SensorNearest.patch rename to patches/server/0626-Remove-streams-from-SensorNearest.patch diff --git a/patches/server/0626-MC-29274-Fix-Wither-hostility-towards-players.patch b/patches/server/0627-MC-29274-Fix-Wither-hostility-towards-players.patch similarity index 100% rename from patches/server/0626-MC-29274-Fix-Wither-hostility-towards-players.patch rename to patches/server/0627-MC-29274-Fix-Wither-hostility-towards-players.patch diff --git a/patches/server/0627-Throw-proper-exception-on-empty-JsonList-file.patch b/patches/server/0628-Throw-proper-exception-on-empty-JsonList-file.patch similarity index 100% rename from patches/server/0627-Throw-proper-exception-on-empty-JsonList-file.patch rename to patches/server/0628-Throw-proper-exception-on-empty-JsonList-file.patch diff --git a/patches/server/0628-Improve-ServerGUI.patch b/patches/server/0629-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0628-Improve-ServerGUI.patch rename to patches/server/0629-Improve-ServerGUI.patch diff --git a/patches/server/0629-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch b/patches/server/0630-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch similarity index 100% rename from patches/server/0629-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch rename to patches/server/0630-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch diff --git a/patches/server/0630-fix-converting-txt-to-json-file.patch b/patches/server/0631-fix-converting-txt-to-json-file.patch similarity index 97% rename from patches/server/0630-fix-converting-txt-to-json-file.patch rename to patches/server/0631-fix-converting-txt-to-json-file.patch index 132893b5c..30ad601f2 100644 --- a/patches/server/0630-fix-converting-txt-to-json-file.patch +++ b/patches/server/0631-fix-converting-txt-to-json-file.patch @@ -48,7 +48,7 @@ index a5c1114f9b323e8a49c84d0e68461e473bbcd690..eadacfa8449336c024f6154f46bb514d if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 235c9aef7615948be74b336fd922b80f6b4e6fac..6250d3d06eba0d982bfd0c755c43be1d14f0ac09 100644 +index b7bdfdcbd5fc4330ca6eea31c2b86e3edc535a07..9bfc77aaf71385f7a029b937a0551d1fb7e7cb5a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -171,6 +171,7 @@ public abstract class PlayerList { diff --git a/patches/server/0631-Add-worldborder-events.patch b/patches/server/0632-Add-worldborder-events.patch similarity index 100% rename from patches/server/0631-Add-worldborder-events.patch rename to patches/server/0632-Add-worldborder-events.patch diff --git a/patches/server/0632-added-PlayerNameEntityEvent.patch b/patches/server/0633-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0632-added-PlayerNameEntityEvent.patch rename to patches/server/0633-added-PlayerNameEntityEvent.patch diff --git a/patches/server/0633-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0634-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0633-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0634-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0634-Add-recipe-to-cook-events.patch b/patches/server/0635-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0634-Add-recipe-to-cook-events.patch rename to patches/server/0635-Add-recipe-to-cook-events.patch diff --git a/patches/server/0635-Add-Block-isValidTool.patch b/patches/server/0636-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0635-Add-Block-isValidTool.patch rename to patches/server/0636-Add-Block-isValidTool.patch diff --git a/patches/server/0636-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0637-Allow-using-signs-inside-spawn-protection.patch similarity index 94% rename from patches/server/0636-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0637-Allow-using-signs-inside-spawn-protection.patch index 30acf3cb9..4bb8479f2 100644 --- a/patches/server/0636-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0637-Allow-using-signs-inside-spawn-protection.patch @@ -20,10 +20,10 @@ index 371110b6668794bd49777122a6a11fd89f74bccf..3b5e6d95349d51e335835b30f5a748d7 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f6f8b7e18a5ebee5a5599b0cb314eab6bef0fbc3..71cdf7cec0f490df2868e3b9cb3d81f424e1d80f 100644 +index 703c5de24d2be2462cffe597f3a05d766075b128..f6cd3c60f1d07b48ce953b1e2eb71121b3790730 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1722,7 +1722,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1723,7 +1723,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser int i = this.player.level.getMaxBuildHeight(); if (blockposition.getY() < i) { diff --git a/patches/server/0637-Implement-Keyed-on-World.patch b/patches/server/0638-Implement-Keyed-on-World.patch similarity index 94% rename from patches/server/0637-Implement-Keyed-on-World.patch rename to patches/server/0638-Implement-Keyed-on-World.patch index 7a6d5affe..a9b82a6aa 100644 --- a/patches/server/0637-Implement-Keyed-on-World.patch +++ b/patches/server/0638-Implement-Keyed-on-World.patch @@ -34,10 +34,10 @@ index 989b6b91dc046e20332f0cef35105b290fdb2e43..fb18b1f0bbc5b87f6895086f6d6a7495 // Check if a World already exists with the UID. if (this.getWorld(world.getUID()) != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index fd01fc9708a62df9483c88ffeec6a0304f3708ca..7519154bbd42245bddc6653349aba294890462a3 100644 +index e9ef6fbd174ca36b98f2d72bd9be4fdc2b033ca5..a1f0e15ac54a640dd5883288c0baa1d64fca239c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2580,6 +2580,11 @@ public class CraftWorld implements World { +@@ -2586,6 +2586,11 @@ public class CraftWorld implements World { return java.util.concurrent.CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk()); }, net.minecraft.server.MinecraftServer.getServer()); } diff --git a/patches/server/0638-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0639-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0638-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0639-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0639-Item-Rarity-API.patch b/patches/server/0640-Item-Rarity-API.patch similarity index 100% rename from patches/server/0639-Item-Rarity-API.patch rename to patches/server/0640-Item-Rarity-API.patch diff --git a/patches/server/0640-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0641-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0640-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0641-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0641-copy-TESign-isEditable-from-snapshots.patch b/patches/server/0642-copy-TESign-isEditable-from-snapshots.patch similarity index 100% rename from patches/server/0641-copy-TESign-isEditable-from-snapshots.patch rename to patches/server/0642-copy-TESign-isEditable-from-snapshots.patch diff --git a/patches/server/0642-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0643-Drop-carried-item-when-player-has-disconnected.patch similarity index 92% rename from patches/server/0642-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0643-Drop-carried-item-when-player-has-disconnected.patch index 1a55403d9..b74237143 100644 --- a/patches/server/0642-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0643-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6250d3d06eba0d982bfd0c755c43be1d14f0ac09..854bb87e876c0f0b5e0d1b9e1c969784ad9d2428 100644 +index 9bfc77aaf71385f7a029b937a0551d1fb7e7cb5a..cff9bf6fd164bda0f57221312a7b5270fa620ad1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -605,6 +605,14 @@ public abstract class PlayerList { diff --git a/patches/server/0643-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0644-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0643-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0644-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0644-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0645-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 91% rename from patches/server/0644-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0645-Don-t-ignore-result-of-PlayerEditBookEvent.patch index 30e456e22..c4ee13479 100644 --- a/patches/server/0644-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0645-Don-t-ignore-result-of-PlayerEditBookEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 71cdf7cec0f490df2868e3b9cb3d81f424e1d80f..bb77f12a305a69e456d11f51a6048058cac05f22 100644 +index f6cd3c60f1d07b48ce953b1e2eb71121b3790730..435669e88d5b366531cef42df835e4d6e243f3c8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1191,7 +1191,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0645-fix-cancelling-block-falling-causing-client-desync.patch b/patches/server/0646-fix-cancelling-block-falling-causing-client-desync.patch similarity index 95% rename from patches/server/0645-fix-cancelling-block-falling-causing-client-desync.patch rename to patches/server/0646-fix-cancelling-block-falling-causing-client-desync.patch index b3b4cf1fc..df9575038 100644 --- a/patches/server/0645-fix-cancelling-block-falling-causing-client-desync.patch +++ b/patches/server/0646-fix-cancelling-block-falling-causing-client-desync.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix cancelling block falling causing client desync diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 2fad050547242028d4ff2deb613e074190f51341..3989ed1bd5c666aa7759ebc2c57a0d5f70d85838 100644 +index 5d89acffe7df54b79733bebba342ea694339ac4b..970c53ff78ed82bb7ec1f981d0fd5cbd72de7bf8 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -119,8 +119,18 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0646-Expose-protocol-version.patch b/patches/server/0647-Expose-protocol-version.patch similarity index 100% rename from patches/server/0646-Expose-protocol-version.patch rename to patches/server/0647-Expose-protocol-version.patch diff --git a/patches/server/0647-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch b/patches/server/0648-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch similarity index 98% rename from patches/server/0647-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch rename to patches/server/0648-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch index 254450c27..8c460a53c 100644 --- a/patches/server/0647-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch +++ b/patches/server/0648-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow for Component suggestion tooltips in diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bb77f12a305a69e456d11f51a6048058cac05f22..f5dbbbb7a302a78d1f729acac2f7d09b19469faa 100644 +index 435669e88d5b366531cef42df835e4d6e243f3c8..1f7ac37a1640d5fa4c93929e21bf8b84af136eea 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -758,12 +758,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0648-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0649-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0648-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0649-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0649-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0650-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0649-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0650-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0650-Add-bypass-host-check.patch b/patches/server/0651-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0650-Add-bypass-host-check.patch rename to patches/server/0651-Add-bypass-host-check.patch diff --git a/patches/server/0651-Set-area-affect-cloud-rotation.patch b/patches/server/0652-Set-area-affect-cloud-rotation.patch similarity index 92% rename from patches/server/0651-Set-area-affect-cloud-rotation.patch rename to patches/server/0652-Set-area-affect-cloud-rotation.patch index e4efb41b8..886ca40da 100644 --- a/patches/server/0651-Set-area-affect-cloud-rotation.patch +++ b/patches/server/0652-Set-area-affect-cloud-rotation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Set area affect cloud rotation diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7519154bbd42245bddc6653349aba294890462a3..3e6975ba325b49f6dcfc9766a406616168df4ce4 100644 +index a1f0e15ac54a640dd5883288c0baa1d64fca239c..644d9fba74f394d71164b5c18835d08c7c30c305 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 implements World { diff --git a/patches/server/0652-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0653-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0652-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0653-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0653-Fix-duplicating-give-items-on-item-drop-cancel.patch b/patches/server/0654-Fix-duplicating-give-items-on-item-drop-cancel.patch similarity index 100% rename from patches/server/0653-Fix-duplicating-give-items-on-item-drop-cancel.patch rename to patches/server/0654-Fix-duplicating-give-items-on-item-drop-cancel.patch diff --git a/patches/server/0654-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0655-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0654-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0655-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0655-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0656-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0655-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0656-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0656-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0657-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0656-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0657-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0657-Fix-checkReach-check-for-Shulker-boxes.patch b/patches/server/0658-Fix-checkReach-check-for-Shulker-boxes.patch similarity index 100% rename from patches/server/0657-Fix-checkReach-check-for-Shulker-boxes.patch rename to patches/server/0658-Fix-checkReach-check-for-Shulker-boxes.patch diff --git a/patches/server/0658-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0659-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 88% rename from patches/server/0658-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0659-fix-PlayerItemHeldEvent-firing-twice.patch index 4f16f55a5..5070149b9 100644 --- a/patches/server/0658-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0659-fix-PlayerItemHeldEvent-firing-twice.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f5dbbbb7a302a78d1f729acac2f7d09b19469faa..1fe63bc4e596b22d1f539a1ea541a6e096c0a6af 100644 +index 1f7ac37a1640d5fa4c93929e21bf8b84af136eea..924a2e7fbc9afbda52dda50ddf68fd408462246e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1926,6 +1926,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1927,6 +1927,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (this.player.isImmobile()) return; // CraftBukkit if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) { diff --git a/patches/server/0659-Added-PlayerDeepSleepEvent.patch b/patches/server/0660-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0659-Added-PlayerDeepSleepEvent.patch rename to patches/server/0660-Added-PlayerDeepSleepEvent.patch diff --git a/patches/server/0660-More-World-API.patch b/patches/server/0661-More-World-API.patch similarity index 96% rename from patches/server/0660-More-World-API.patch rename to patches/server/0661-More-World-API.patch index 37091fe24..dea21047f 100644 --- a/patches/server/0660-More-World-API.patch +++ b/patches/server/0661-More-World-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More World API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3e6975ba325b49f6dcfc9766a406616168df4ce4..17d25f5f0d82d9c6b13408caccdce1986971f6f6 100644 +index 644d9fba74f394d71164b5c18835d08c7c30c305..ba4d672da1cbd00c2653eed02b4854a7fddde2e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2533,6 +2533,75 @@ public class CraftWorld implements World { diff --git a/patches/server/0661-Added-PlayerBedFailEnterEvent.patch b/patches/server/0662-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0661-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0662-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0662-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0663-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0662-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0663-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0663-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0664-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch similarity index 87% rename from patches/server/0663-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename to patches/server/0664-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch index d3a374449..37792addb 100644 --- a/patches/server/0663-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ b/patches/server/0664-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 854bb87e876c0f0b5e0d1b9e1c969784ad9d2428..2f07e0b17ac1593473e64212889170f50e7845d5 100644 +index cff9bf6fd164bda0f57221312a7b5270fa620ad1..9b97c8060321ba48f87e743d9ef5c55d9c9239b2 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -839,6 +839,7 @@ public abstract class PlayerList { +@@ -840,6 +840,7 @@ public abstract class PlayerList { // Paper start boolean isBedSpawn = false; @@ -17,7 +17,7 @@ index 854bb87e876c0f0b5e0d1b9e1c969784ad9d2428..2f07e0b17ac1593473e64212889170f5 boolean isRespawn = false; boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 // Paper end -@@ -859,6 +860,7 @@ public abstract class PlayerList { +@@ -860,6 +861,7 @@ public abstract class PlayerList { if (optional.isPresent()) { BlockState iblockdata = worldserver1.getBlockState(blockposition); boolean flag3 = iblockdata.is(Blocks.RESPAWN_ANCHOR); @@ -25,7 +25,7 @@ index 854bb87e876c0f0b5e0d1b9e1c969784ad9d2428..2f07e0b17ac1593473e64212889170f5 Vec3 vec3d = (Vec3) optional.get(); float f1; -@@ -886,7 +888,7 @@ public abstract class PlayerList { +@@ -887,7 +889,7 @@ public abstract class PlayerList { } Player respawnPlayer = this.cserver.getPlayer(entityplayer1); diff --git a/patches/server/0664-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0665-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0664-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0665-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0665-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0666-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 89% rename from patches/server/0665-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0666-add-RespawnFlags-to-PlayerRespawnEvent.patch index 80302bb91..412f1e6d8 100644 --- a/patches/server/0665-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0666-add-RespawnFlags-to-PlayerRespawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1fe63bc4e596b22d1f539a1ea541a6e096c0a6af..b8a924d11c146c42ffbc71b584e6438834c59f70 100644 +index 924a2e7fbc9afbda52dda50ddf68fd408462246e..0b2cb820b912ddb6366f7ffb79c71047d03f2001 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2460,7 +2460,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2461,7 +2461,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser case PERFORM_RESPAWN: if (this.player.wonGame) { this.player.wonGame = false; @@ -18,10 +18,10 @@ index 1fe63bc4e596b22d1f539a1ea541a6e096c0a6af..b8a924d11c146c42ffbc71b584e64388 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2f07e0b17ac1593473e64212889170f50e7845d5..accd579a4122760b84dec48ec165ce113fb9de57 100644 +index 9b97c8060321ba48f87e743d9ef5c55d9c9239b2..a9d6154cb9cd347306f745e752cabdf94ed61744 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -798,6 +798,12 @@ public abstract class PlayerList { +@@ -799,6 +799,12 @@ public abstract class PlayerList { } public ServerPlayer moveToWorld(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation) { @@ -34,7 +34,7 @@ index 2f07e0b17ac1593473e64212889170f50e7845d5..accd579a4122760b84dec48ec165ce11 entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot -@@ -888,7 +894,7 @@ public abstract class PlayerList { +@@ -889,7 +895,7 @@ public abstract class PlayerList { } Player respawnPlayer = this.cserver.getPlayer(entityplayer1); diff --git a/patches/server/0666-Add-Channel-initialization-listeners.patch b/patches/server/0667-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0666-Add-Channel-initialization-listeners.patch rename to patches/server/0667-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0667-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0668-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0667-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0668-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0668-Add-more-WanderingTrader-API.patch b/patches/server/0669-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0668-Add-more-WanderingTrader-API.patch rename to patches/server/0669-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0669-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0670-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0669-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0670-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0670-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0671-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0670-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0671-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0671-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0672-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/server/0671-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/0672-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/server/0672-Inventory-close.patch b/patches/server/0673-Inventory-close.patch similarity index 100% rename from patches/server/0672-Inventory-close.patch rename to patches/server/0673-Inventory-close.patch diff --git a/patches/server/0673-call-PortalCreateEvent-players-and-end-platform.patch b/patches/server/0674-call-PortalCreateEvent-players-and-end-platform.patch similarity index 94% rename from patches/server/0673-call-PortalCreateEvent-players-and-end-platform.patch rename to patches/server/0674-call-PortalCreateEvent-players-and-end-platform.patch index 4f809295f..eb541c0ee 100644 --- a/patches/server/0673-call-PortalCreateEvent-players-and-end-platform.patch +++ b/patches/server/0674-call-PortalCreateEvent-players-and-end-platform.patch @@ -17,10 +17,10 @@ index 8f0cf4297015f3cbe709e2eb82280cac72489925..22ea0da3836b61bb018ae974d2b8c754 return this.set(this.getX() + dx, this.getY() + dy, this.getZ() + dz); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 547f4fe601d5846e339aba23fb20f6684c0e901f..9a776f228891f256876dc0acba403dedddbbd5df 100644 +index 2fa2ba45fa1d79d9c78d80cca2aeebedad5a9ba0..b131e307056f04be14917ab92b1688b4fa2832cd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1143,15 +1143,21 @@ public class ServerPlayer extends Player { +@@ -1167,15 +1167,21 @@ public class ServerPlayer extends Player { private void createEndPlatform(ServerLevel world, BlockPos centerPos) { BlockPos.MutableBlockPos blockposition_mutableblockposition = centerPos.mutable(); diff --git a/patches/server/0674-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0675-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0674-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0675-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0675-Fix-CraftPotionBrewer-cache.patch b/patches/server/0676-Fix-CraftPotionBrewer-cache.patch similarity index 100% rename from patches/server/0675-Fix-CraftPotionBrewer-cache.patch rename to patches/server/0676-Fix-CraftPotionBrewer-cache.patch diff --git a/patches/server/0676-Add-basic-Datapack-API.patch b/patches/server/0677-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0676-Add-basic-Datapack-API.patch rename to patches/server/0677-Add-basic-Datapack-API.patch diff --git a/patches/server/0677-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0678-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0677-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0678-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0678-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch similarity index 93% rename from patches/server/0678-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch index ba82d8351..ace243298 100644 --- a/patches/server/0678-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0679-additions-to-PlayerGameModeChangeEvent.patch @@ -45,10 +45,10 @@ 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 9a776f228891f256876dc0acba403dedddbbd5df..d23a86e6896cefea9eba0e354b25eaaffa09fa8c 100644 +index b131e307056f04be14917ab92b1688b4fa2832cd..b4055c6de62c22ba8ee8384884f9b3fd62eddeb8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1760,8 +1760,15 @@ public class ServerPlayer extends Player { +@@ -1784,8 +1784,15 @@ public class ServerPlayer extends Player { } public boolean setGameMode(GameType gameMode) { @@ -66,7 +66,7 @@ index 9a776f228891f256876dc0acba403dedddbbd5df..d23a86e6896cefea9eba0e354b25eaaf } else { this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { -@@ -1773,7 +1780,7 @@ public class ServerPlayer extends Player { +@@ -1797,7 +1804,7 @@ public class ServerPlayer extends Player { this.onUpdateAbilities(); this.updateEffectVisibility(); @@ -75,7 +75,7 @@ index 9a776f228891f256876dc0acba403dedddbbd5df..d23a86e6896cefea9eba0e354b25eaaf } } -@@ -2155,6 +2162,14 @@ public class ServerPlayer extends Player { +@@ -2179,6 +2186,14 @@ public class ServerPlayer extends Player { } public void loadGameTypes(@Nullable CompoundTag nbt) { @@ -123,10 +123,10 @@ index b096384cdc7596166e010e06272534b8001693c9..4b756c0a4b607faa03b00ab81761335b } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b8a924d11c146c42ffbc71b584e6438834c59f70..ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb 100644 +index 0b2cb820b912ddb6366f7ffb79c71047d03f2001..52294f5cfce86faf301c835bf1a9c2a5f4f5d721 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2469,7 +2469,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2470,7 +2470,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.player = this.server.getPlayerList().respawn(this.player, false); if (this.server.isHardcore()) { @@ -136,10 +136,10 @@ index b8a924d11c146c42ffbc71b584e6438834c59f70..ace86fbfe5fff1ae5a6de2582ee1bcf9 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5e12cfce9d61221651c88a8323a4f099adcf3fa2..2f93e06eb9d115424cf50be0ce2eb0391f00533a 100644 +index ee40e03704bb8c6b3aa990542fc852058d00f081..0329a727b71e56195a55c69edfd3502fb322e572 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1239,7 +1239,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1249,7 +1249,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { throw new IllegalArgumentException("Mode cannot be null"); } diff --git a/patches/server/0679-Clear-SyncLoadInfo.patch b/patches/server/0680-Clear-SyncLoadInfo.patch similarity index 100% rename from patches/server/0679-Clear-SyncLoadInfo.patch rename to patches/server/0680-Clear-SyncLoadInfo.patch diff --git a/patches/server/0680-ItemStack-repair-check-API.patch b/patches/server/0681-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0680-ItemStack-repair-check-API.patch rename to patches/server/0681-ItemStack-repair-check-API.patch diff --git a/patches/server/0681-More-Enchantment-API.patch b/patches/server/0682-More-Enchantment-API.patch similarity index 100% rename from patches/server/0681-More-Enchantment-API.patch rename to patches/server/0682-More-Enchantment-API.patch diff --git a/patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0683-Add-command-line-option-to-load-extra-plugin-jars-no.patch similarity index 100% rename from patches/server/0682-Add-command-line-option-to-load-extra-plugin-jars-no.patch rename to patches/server/0683-Add-command-line-option-to-load-extra-plugin-jars-no.patch diff --git a/patches/server/0683-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0684-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/server/0683-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0684-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/server/0684-Add-Mob-lookAt-API.patch b/patches/server/0685-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0684-Add-Mob-lookAt-API.patch rename to patches/server/0685-Add-Mob-lookAt-API.patch diff --git a/patches/server/0685-Add-Unix-domain-socket-support.patch b/patches/server/0686-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0685-Add-Unix-domain-socket-support.patch rename to patches/server/0686-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0686-Add-EntityInsideBlockEvent.patch b/patches/server/0687-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0686-Add-EntityInsideBlockEvent.patch rename to patches/server/0687-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0687-Attributes-API-for-item-defaults.patch b/patches/server/0688-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0687-Attributes-API-for-item-defaults.patch rename to patches/server/0688-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0688-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch b/patches/server/0689-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/0688-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch rename to patches/server/0689-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch diff --git a/patches/server/0689-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0690-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 97% rename from patches/server/0689-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0690-Add-cause-to-Weather-ThunderChangeEvents.patch index a19905687..b5f3bbda9 100644 --- a/patches/server/0689-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0690-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 344c6d6dd99819ac1103c065b0410bafb3537581..445b4647151f56790a9f9c099e4757657dc896c7 100644 +index 15f92317cfff94eb0d6c585a69f7d3f65c550f21..ace160125bed7ee7fcc715a52436b12f4849b774 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -425,8 +425,8 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -104,7 +104,7 @@ 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 17d25f5f0d82d9c6b13408caccdce1986971f6f6..e09bf29cff4097b4319db6715662a6bc6a362598 100644 +index ba4d672da1cbd00c2653eed02b4854a7fddde2e2..9549f82a19da6e9b01407405801148d775ea69fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1456,7 +1456,7 @@ public class CraftWorld implements World { diff --git a/patches/server/0690-More-Lidded-Block-API.patch b/patches/server/0691-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0690-More-Lidded-Block-API.patch rename to patches/server/0691-More-Lidded-Block-API.patch diff --git a/patches/server/0691-Limit-item-frame-cursors-on-maps.patch b/patches/server/0692-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0691-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0692-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0692-Add-PufferFishStateChangeEvent.patch b/patches/server/0693-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0692-Add-PufferFishStateChangeEvent.patch rename to patches/server/0693-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0693-Add-PlayerKickEvent-causes.patch b/patches/server/0694-Add-PlayerKickEvent-causes.patch similarity index 95% rename from patches/server/0693-Add-PlayerKickEvent-causes.patch rename to patches/server/0694-Add-PlayerKickEvent-causes.patch index 68b7f1696..33c1fca82 100644 --- a/patches/server/0693-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0694-Add-PlayerKickEvent-causes.patch @@ -57,7 +57,7 @@ index 708ac03d5a849bf09c49547306e4a8c5a5ef8d91..5a8df368a4a25839cd4ac9be6972da2e } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd74115573 100644 +index 52294f5cfce86faf301c835bf1a9c2a5f4f5d721..40d0dac02bb1922483d68f3cdd09a228f66d09f6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -321,7 +321,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -209,7 +209,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } else { ServerLevel worldserver = this.player.getLevel(); -@@ -1640,7 +1648,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1641,7 +1649,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); @@ -218,7 +218,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd return; } } -@@ -1838,7 +1846,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1839,7 +1847,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) { ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName()); @@ -227,7 +227,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]; -@@ -1943,7 +1951,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1944,7 +1952,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -236,7 +236,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } } -@@ -1959,7 +1967,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1960,7 +1968,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser for (int i = 0; i < s.length(); ++i) { if (!SharedConstants.isAllowedChatCharacter(s.charAt(i))) { @@ -245,7 +245,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd return; } } -@@ -2032,7 +2040,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2033,7 +2041,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser Waitable waitable = new Waitable() { @Override protected Object evaluate() { @@ -254,7 +254,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd return null; } }; -@@ -2047,7 +2055,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2048,7 +2056,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser throw new RuntimeException(e); } } else { @@ -263,7 +263,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } // CraftBukkit end } -@@ -2320,7 +2328,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2321,7 +2329,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { @@ -272,7 +272,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd return; } // Spigot End -@@ -2411,7 +2419,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2412,7 +2420,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // CraftBukkit end } else { @@ -281,7 +281,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } } -@@ -2805,7 +2813,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2806,7 +2814,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(com.destroystokyo.paper.PaperConfig.autoRecipeIncrement) > com.destroystokyo.paper.PaperConfig.autoRecipeLimit) { @@ -290,7 +290,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd return; } } -@@ -2998,7 +3006,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2999,7 +3007,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } else if (!this.isSingleplayerOwner()) { // Paper start - This needs to be handled on the main thread for plugins server.submit(() -> { @@ -299,7 +299,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd }); // Paper end } -@@ -3044,7 +3052,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3045,7 +3053,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); @@ -308,7 +308,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } } else if (packet.identifier.equals(CUSTOM_UNREGISTER)) { try { -@@ -3054,7 +3062,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3055,7 +3063,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); @@ -317,7 +317,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } } else { try { -@@ -3072,7 +3080,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3073,7 +3081,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); @@ -327,7 +327,7 @@ index ace86fbfe5fff1ae5a6de2582ee1bcf962386dfb..3e5970979d6db8e07fc44a4c0bd2d2fd } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index accd579a4122760b84dec48ec165ce113fb9de57..b0b4c6a3c6a8ffda142efd13596349f99a8e9daf 100644 +index a9d6154cb9cd347306f745e752cabdf94ed61744..d6ecf7671663957b27ee0cadbfc57ce3a7be161c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -707,7 +707,7 @@ public abstract class PlayerList { @@ -339,7 +339,7 @@ index accd579a4122760b84dec48ec165ce113fb9de57..b0b4c6a3c6a8ffda142efd13596349f9 } // Instead of kicking then returning, we need to store the kick reason -@@ -1346,8 +1346,8 @@ public abstract class PlayerList { +@@ -1348,8 +1348,8 @@ public abstract class PlayerList { // Paper end // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { @@ -351,7 +351,7 @@ index accd579a4122760b84dec48ec165ce113fb9de57..b0b4c6a3c6a8ffda142efd13596349f9 // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2f93e06eb9d115424cf50be0ce2eb0391f00533a..c82a43f295e11a2f7f475ad1037e66dab145f57e 100644 +index 0329a727b71e56195a55c69edfd3502fb322e572..05007190441117fe8b2f8b54fc37e589ffc213dc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -498,16 +498,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0694-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0695-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0694-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0695-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0695-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch b/patches/server/0696-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch similarity index 100% rename from patches/server/0695-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch rename to patches/server/0696-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch diff --git a/patches/server/0696-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0697-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0696-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0697-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0697-Add-BellRevealRaiderEvent.patch b/patches/server/0698-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0697-Add-BellRevealRaiderEvent.patch rename to patches/server/0698-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0698-Fix-invulnerable-end-crystals.patch b/patches/server/0699-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0698-Fix-invulnerable-end-crystals.patch rename to patches/server/0699-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0699-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0700-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0699-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0700-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0700-Reset-villager-inventory-on-cancelled-pickup-event.patch b/patches/server/0701-Reset-villager-inventory-on-cancelled-pickup-event.patch similarity index 100% rename from patches/server/0700-Reset-villager-inventory-on-cancelled-pickup-event.patch rename to patches/server/0701-Reset-villager-inventory-on-cancelled-pickup-event.patch diff --git a/patches/server/0701-Fix-dangerous-end-portal-logic.patch b/patches/server/0702-Fix-dangerous-end-portal-logic.patch similarity index 97% rename from patches/server/0701-Fix-dangerous-end-portal-logic.patch rename to patches/server/0702-Fix-dangerous-end-portal-logic.patch index 9bfb93498..3bdefebaf 100644 --- a/patches/server/0701-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0702-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b3bb5bfa00a74240496cfb2df212a92582802fa6..3747b90d76c3a3aed3421c680d196a9caf9c3602 100644 +index 8c5bf69b89822c8211d472ba3b4b809fa436948a..aaaf5d49972ab608473637dc884dd0c802deaae0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -361,6 +361,37 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n diff --git a/patches/server/0702-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0703-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0702-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0703-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0703-Make-item-validations-configurable.patch b/patches/server/0704-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0703-Make-item-validations-configurable.patch rename to patches/server/0704-Make-item-validations-configurable.patch diff --git a/patches/server/0704-Add-more-line-of-sight-methods.patch b/patches/server/0705-Add-more-line-of-sight-methods.patch similarity index 97% rename from patches/server/0704-Add-more-line-of-sight-methods.patch rename to patches/server/0705-Add-more-line-of-sight-methods.patch index 5e7f7db5d..0d4f4041a 100644 --- a/patches/server/0704-Add-more-line-of-sight-methods.patch +++ b/patches/server/0705-Add-more-line-of-sight-methods.patch @@ -17,7 +17,7 @@ index cceba2e3dd2570962efd20d0cbbf238ccc726702..46bf9aaa8406228e74f007e153afc9bc } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e09bf29cff4097b4319db6715662a6bc6a362598..ca87875470f11284912e9f8b6a3cb6ba6d818300 100644 +index 9549f82a19da6e9b01407405801148d775ea69fc..9031f4423bb59b8f41968a58924d967a915d2446 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -330,6 +330,18 @@ public class CraftWorld implements World { diff --git a/patches/server/0705-add-per-world-spawn-limits.patch b/patches/server/0706-add-per-world-spawn-limits.patch similarity index 96% rename from patches/server/0705-add-per-world-spawn-limits.patch rename to patches/server/0706-add-per-world-spawn-limits.patch index 09319de40..b6996ad35 100644 --- a/patches/server/0705-add-per-world-spawn-limits.patch +++ b/patches/server/0706-add-per-world-spawn-limits.patch @@ -30,7 +30,7 @@ index d55bebc250a6d43a292477811a938575c2a65452..e36b13dedcdb60cbd014a4c3b450442f private void lightQueueSize() { lightQueueSize = getInt("light-queue-size", lightQueueSize); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ca87875470f11284912e9f8b6a3cb6ba6d818300..7b433047d6201e44bff6ee6d3579b10be90116a4 100644 +index 9031f4423bb59b8f41968a58924d967a915d2446..6a425d8d082b34475c90703f854a7ca49dda367c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -351,6 +351,13 @@ public class CraftWorld implements World { diff --git a/patches/server/0706-Fix-PotionSplashEvent-for-water-splash-potions.patch b/patches/server/0707-Fix-PotionSplashEvent-for-water-splash-potions.patch similarity index 100% rename from patches/server/0706-Fix-PotionSplashEvent-for-water-splash-potions.patch rename to patches/server/0707-Fix-PotionSplashEvent-for-water-splash-potions.patch diff --git a/patches/server/0707-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch b/patches/server/0708-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch similarity index 100% rename from patches/server/0707-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch rename to patches/server/0708-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch