From 68caddbb73ff2b0b643da4d8cc45a8aa635c3fb7 Mon Sep 17 00:00:00 2001 From: KennyTV <jahnke.nassim@gmail.com> Date: Tue, 15 Jun 2021 15:20:52 +0200 Subject: [PATCH] Port anti x-ray patch --- .../1.17 => server}/0364-Anti-Xray.patch | 670 +++++++----------- ...o-Tick-view-distance-implementation.patch} | 23 +- ...ement-alternative-item-despawn-rate.patch} | 45 +- ...=> 0367-Tracking-Range-Improvements.patch} | 2 +- ...-items-vanishing-through-end-portal.patch} | 0 ...ment-optional-per-player-mob-spawns.patch} | 24 +- ...pper-searches-if-there-are-no-items.patch} | 4 +- ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 0 ...w-overriding-the-java-version-check.patch} | 0 ...tch => 0374-Add-ThrownEggHatchEvent.patch} | 0 ... 0375-Optimise-random-block-ticking.patch} | 24 +- ...p-API.patch => 0376-Entity-Jump-API.patch} | 0 ...-to-nerf-pigmen-from-nether-portals.patch} | 4 +- ... => 0378-Make-the-GUI-graph-fancier.patch} | 0 ...79-add-hand-to-BlockMultiPlaceEvent.patch} | 0 ...0-Prevent-teleporting-dead-entities.patch} | 0 ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 4 +- ...chance-of-villager-zombie-infection.patch} | 4 +- ...tch => 0384-Optimise-Chunk-getFluid.patch} | 6 +- ...mise-TickListServer-by-rewriting-it.patch} | 2 +- ...pawn-settings-and-per-player-option.patch} | 4 +- ...nections-shouldn-t-hold-up-shutdown.patch} | 0 ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 6 +- ...timize-Collision-to-not-load-chunks.patch} | 0 ...tch => 0391-Don-t-tick-dead-players.patch} | 0 ...-Player-s-shouldn-t-be-able-to-move.patch} | 0 ...unkMap-memory-use-for-visibleChunks.patch} | 16 +- ...sks-Speed-up-processing-of-chunk-lo.patch} | 2 +- ...ove-existing-players-to-world-spawn.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 0 ...97-Expose-MinecraftServer-isRunning.patch} | 0 ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...9-Remove-streams-from-Mob-AI-System.patch} | 0 ... => 0400-Async-command-map-building.patch} | 0 ...h => 0401-Improved-Watchdog-Support.patch} | 10 +- ....patch => 0402-Optimize-Pathfinding.patch} | 0 ...3-Reduce-Either-Optional-allocation.patch} | 0 ...404-Remove-streams-from-PairedQueue.patch} | 0 ...-memory-footprint-of-NBTTagCompound.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 0 ...07-Optimise-ArraySetSorted-removeIf.patch} | 0 ...entity-collision-code-if-not-needed.patch} | 0 ...teleport-command-to-valid-locations.patch} | 0 ...Implement-Player-Client-Options-API.patch} | 0 ...Chunk-Post-Processing-deadlock-risk.patch} | 6 +- ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...3-Broadcast-join-message-to-console.patch} | 0 ...-Broken-behavior-of-PlayerJoinEvent.patch} | 6 +- ...oad-Chunks-for-Login-Asynchronously.patch} | 0 ...awn-point-if-spawn-in-unloaded-worl.patch} | 0 ...layerAttackEntityCooldownResetEvent.patch} | 0 ...llbacks-to-schedule-for-Callback-Ex.patch} | 4 +- ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 4 +- ...-duplication-issues-and-teleport-is.patch} | 0 ...0422-Implement-Brigadier-Mojang-API.patch} | 0 ...patch => 0423-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 0 ...n.patch => 0425-Expose-game-version.patch} | 2 +- ...> 0426-Optimize-Voxel-Shape-Merging.patch} | 0 ...per-thread-native-byte-buffer-cache.patch} | 0 ...atch => 0428-Implement-Mob-Goal-API.patch} | 0 ...ance-map-to-optimise-entity-tracker.patch} | 22 +- ...isOutsideRange-to-use-distance-maps.patch} | 18 +- ...=> 0431-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 4 +- ...tch => 0433-ExperienceOrbMergeEvent.patch} | 0 ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...brigadier-child-sorting-performance.patch} | 0 ...API.patch => 0436-Potential-bed-API.patch} | 0 ...ait-for-Async-Tasks-during-shutdown.patch} | 0 ...er-respects-game-and-entity-rules-f.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 4 +- ...leInt-allocations-from-light-engine.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 4 +- ...> 0442-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...n-Full-Status-Chunk-NBT-Memory-Leak.patch} | 2 +- ...packets-to-nearby-locations-sounds-.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0447-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...nk-Unloads-based-on-Player-Movement.patch} | 6 +- ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...ch => 0451-incremental-chunk-saving.patch} | 22 +- ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 2 +- ...sing-chunks-due-to-integer-overflow.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 0 ...uping.patch => 0456-Fix-sand-duping.patch} | 0 ...desync-in-playerconnection-causing-.patch} | 0 ...older-method-without-block-snapshot.patch} | 0 ...h => 0459-Expose-Arrow-getItemStack.patch} | 0 ...mplement-PlayerRecipeBookClickEvent.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...2-Add-permission-for-command-blocks.patch} | 4 +- ...ure-Entity-AABB-s-are-never-invalid.patch} | 0 ...orldBorder-collision-checks-and-air.patch} | 0 ...d-Difficulty-Remembering-Difficulty.patch} | 0 ...atch => 0466-Paper-dumpitem-command.patch} | 0 ...67-Don-t-allow-null-UUID-s-for-chat.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...469-Support-old-UUID-format-for-NBT.patch} | 0 ...p-duplicated-GameProfile-Properties.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...-Priority-Urgency-System-for-Chunks.patch} | 24 +- ...Remove-some-streams-from-structures.patch} | 0 ...rom-classes-related-villager-gossip.patch} | 0 ...0475-Support-components-in-ItemMeta.patch} | 0 ...rgetLivingEntityEvent-for-1.16-mobs.patch} | 0 ...patch => 0477-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...wn-player-in-correct-world-on-login.patch} | 0 ...atch => 0480-Add-PrepareResultEvent.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 6 +- ...-for-portal-on-world-gen-entity-add.patch} | 0 ...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} | 0 ...-5989.patch => 0488-Fix-SPIGOT-5989.patch} | 0 ...-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} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...h => 0494-Incremental-player-saving.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} | 2 +- ...support.patch => 0498-Brand-support.patch} | 0 ...patch => 0499-Add-setMaxPlayers-API.patch} | 2 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0501-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 2 +- ...PI.patch => 0503-Add-moon-phase-API.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0505-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 4 +- ...patch => 0507-Buffer-joins-to-world.patch} | 0 ...=> 0508-Optimize-redstone-algorithm.patch} | 4 +- ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...ch => 0511-Fix-CraftTeam-null-check.patch} | 0 ...I.patch => 0512-Add-more-Evoker-API.patch} | 0 ...translation-keys-for-blocks-entitie.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0515-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 6 +- ...ty-in-invalid-locations-SPIGOT-6086.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0523-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...g-a-passenger-in-CreatureSpawnEvent.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0528-Optimise-getType-calls.patch} | 4 +- ....patch => 0529-Villager-resetOffers.patch} | 0 ...nig-for-some-hot-IBlockData-methods.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...tch => 0534-Player-elytra-boost-API.patch} | 0 ...35-Fixed-TileEntityBell-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0538-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 4 +- ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0541-Item-no-age-no-player-pickup.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...543-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0544-Add-API-for-quit-reason.patch} | 0 ...h => 0545-Seed-based-feature-search.patch} | 4 +- ...ng-Trader-spawn-rate-config-options.patch} | 4 +- ...rove-performance-of-the-end-generat.patch} | 0 ...ch => 0548-Expose-world-spawn-angle.patch} | 0 ...patch => 0549-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...51-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0552-Add-PlayerItemCooldownEvent.patch} | 0 ...PI.patch => 0553-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 4 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0556-Add-PlayerShearBlockEvent.patch} | 0 ...rbose-world-setting-to-false-by-def.patch} | 0 ...ng-zombie-villager-discount-exploit.patch} | 4 +- ....patch => 0559-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ... 0561-MC-4-Fix-item-position-desync.patch} | 0 ...562-Player-Chunk-Load-Unload-Events.patch} | 0 ...3-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 => 0567-added-PlayerTradeEvent.patch} | 0 ...ch => 0568-Implement-TargetHitEvent.patch} | 0 ...569-Additional-Block-Material-API-s.patch} | 0 ...tch => 0570-Fix-harming-potion-dupe.patch} | 0 ...get-Material-from-Boats-and-Minecar.patch} | 0 ....patch => 0572-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 4 +- ...ment-PlayerFlowerPotManipulateEvent.patch} | 0 ...event-not-being-called-in-adventure.patch} | 0 ...h => 0576-Zombie-API-breaking-doors.patch} | 0 ...577-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0578-Add-EntityLoadCrossbowEvent.patch} | 0 ...ch => 0579-Guardian-beam-workaround.patch} | 0 ...0580-Added-WorldGameRuleChangeEvent.patch} | 0 ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 4 +- ...mplemented-BlockFailedDispenseEvent.patch} | 0 ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 16 +- ...ty-commands-shall-not-be-dispatched.patch} | 0 ...I-to-expose-exact-interaction-point.patch} | 4 +- ...OIs.patch => 0589-Remove-stale-POIs.patch} | 2 +- ...h => 0590-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0591-Add-sendOpLevel-API.patch} | 0 ...ch => 0592-Add-StructureLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 4 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...596-Make-schedule-command-per-world.patch} | 0 ...597-Configurable-max-leash-distance.patch} | 4 +- ...598-Implement-BlockPreDispenseEvent.patch} | 0 ...h => 0599-Added-Vanilla-Entity-Tags.patch} | 0 ...-API.patch => 0600-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} | 4 +- ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 0 ...e-map-update-when-spawning-disabled.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0608-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0609-EntityMoveEvent.patch} | 2 +- ...isable-pathfinding-updates-on-block.patch} | 6 +- ... 0611-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 => 0617-misc-debugging-dumps.patch} | 0 ...port-for-hex-color-codes-in-console.patch} | 0 ...atch => 0619-Expose-Tracked-Players.patch} | 0 ...0-Remove-streams-from-SensorNearest.patch} | 0 ...ix-Wither-hostility-towards-players.patch} | 4 +- ...er-exception-on-empty-JsonList-file.patch} | 0 ...GUI.patch => 0623-Improve-ServerGUI.patch} | 0 ...ure-plate-EntityInteractEvent-for-i.patch} | 0 ...625-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0626-Add-worldborder-events.patch} | 0 ...=> 0627-added-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0629-Add-recipe-to-cook-events.patch} | 0 ...patch => 0630-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 4 +- ...ch => 0632-Implement-Keyed-on-World.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0634-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} | 0 ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...block-falling-causing-client-desync.patch} | 0 ...tch => 0641-Expose-protocol-version.patch} | 0 ...nt-suggestion-tooltips-in-AsyncTabC.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0645-Add-bypass-host-check.patch} | 0 ...0646-Set-area-affect-cloud-rotation.patch} | 0 ...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} | 0 ... => 0654-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0655-More-World-API.patch} | 0 ... 0656-Added-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...n-acting-as-a-bed-respawn-from-the-.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0663-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...address-to-AsyncPlayerPreLoginEvent.patch} | 0 ...close.patch => 0667-Inventory-close.patch} | 0 ...reateEvent-players-and-end-platform.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...=> 0670-Fix-CraftPotionBrewer-cache.patch} | 0 ...atch => 0671-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 2 +- ... => 0674-ItemStack-repair-check-API.patch} | 0 ....patch => 0675-More-Enchantment-API.patch} | 0 ...option-to-load-extra-plugin-jars-no.patch} | 2 +- ...-and-optimise-world-force-upgrading.patch} | 15 +- ...PI.patch => 0678-Add-Mob-lookAt-API.patch} | 0 ...0679-Add-Unix-domain-socket-support.patch} | 0 ... => 0680-Add-EntityInsideBlockEvent.patch} | 0 ...81-Attributes-API-for-item-defaults.patch} | 0 ...hantCustom-emit-PlayerPurchaseEvent.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 2 +- ...patch => 0684-More-Lidded-Block-API.patch} | 0 ...85-Limit-item-frame-cursors-on-maps.patch} | 4 +- ...0686-Add-PufferFishStateChangeEvent.patch} | 0 ... => 0687-Add-PlayerKickEvent-causes.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ReentrantLo.patch} | 30 +- ...-to-fix-items-merging-through-walls.patch} | 4 +- ...h => 0691-Add-BellRevealRaiderEvent.patch} | 0 ... 0692-Fix-invulnerable-end-crystals.patch} | 4 +- ...93-Add-ElderGuardianAppearanceEvent.patch} | 0 ...inventory-on-cancelled-pickup-event.patch} | 0 ...0695-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...0698-Add-more-line-of-sight-methods.patch} | 0 ... => 0699-add-per-world-spawn-limits.patch} | 4 +- ...plashEvent-for-water-splash-potions.patch} | 0 ...tus-dataconverter-for-pre-1.13-chun.patch} | 0 338 files changed, 500 insertions(+), 661 deletions(-) rename patches/{removed/1.17 => server}/0364-Anti-Xray.patch (70%) rename patches/server/{0364-No-Tick-view-distance-implementation.patch => 0365-No-Tick-view-distance-implementation.patch} (98%) rename patches/server/{0365-Implement-alternative-item-despawn-rate.patch => 0366-Implement-alternative-item-despawn-rate.patch} (76%) rename patches/server/{0366-Tracking-Range-Improvements.patch => 0367-Tracking-Range-Improvements.patch} (97%) rename patches/server/{0367-Fix-items-vanishing-through-end-portal.patch => 0368-Fix-items-vanishing-through-end-portal.patch} (100%) rename patches/server/{0368-implement-optional-per-player-mob-spawns.patch => 0369-implement-optional-per-player-mob-spawns.patch} (97%) rename patches/server/{0369-Avoid-hopper-searches-if-there-are-no-items.patch => 0370-Avoid-hopper-searches-if-there-are-no-items.patch} (97%) rename patches/server/{0370-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0371-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/server/{0371-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0372-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (100%) rename patches/server/{0372-Allow-overriding-the-java-version-check.patch => 0373-Allow-overriding-the-java-version-check.patch} (100%) rename patches/server/{0373-Add-ThrownEggHatchEvent.patch => 0374-Add-ThrownEggHatchEvent.patch} (100%) rename patches/server/{0374-Optimise-random-block-ticking.patch => 0375-Optimise-random-block-ticking.patch} (95%) rename patches/server/{0375-Entity-Jump-API.patch => 0376-Entity-Jump-API.patch} (100%) rename patches/server/{0376-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0377-Add-option-to-nerf-pigmen-from-nether-portals.patch} (95%) rename patches/server/{0377-Make-the-GUI-graph-fancier.patch => 0378-Make-the-GUI-graph-fancier.patch} (100%) rename patches/server/{0378-add-hand-to-BlockMultiPlaceEvent.patch => 0379-add-hand-to-BlockMultiPlaceEvent.patch} (100%) rename patches/server/{0379-Prevent-teleporting-dead-entities.patch => 0380-Prevent-teleporting-dead-entities.patch} (100%) rename patches/server/{0380-Validate-tripwire-hook-placement-before-update.patch => 0381-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/server/{0381-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0382-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (92%) rename patches/server/{0382-Configurable-chance-of-villager-zombie-infection.patch => 0383-Configurable-chance-of-villager-zombie-infection.patch} (94%) rename patches/server/{0383-Optimise-Chunk-getFluid.patch => 0384-Optimise-Chunk-getFluid.patch} (92%) rename patches/server/{0384-Optimise-TickListServer-by-rewriting-it.patch => 0385-Optimise-TickListServer-by-rewriting-it.patch} (99%) rename patches/server/{0385-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0386-Pillager-patrol-spawn-settings-and-per-player-option.patch} (97%) rename patches/server/{0386-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0387-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (100%) rename patches/server/{0387-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0388-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/server/{0388-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0389-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (91%) rename patches/server/{0389-Optimize-Collision-to-not-load-chunks.patch => 0390-Optimize-Collision-to-not-load-chunks.patch} (100%) rename patches/server/{0390-Don-t-tick-dead-players.patch => 0391-Don-t-tick-dead-players.patch} (100%) rename patches/server/{0391-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0392-Dead-Player-s-shouldn-t-be-able-to-move.patch} (100%) rename patches/server/{0392-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch => 0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch} (96%) rename patches/server/{0393-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch => 0394-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch} (99%) rename patches/server/{0394-Don-t-move-existing-players-to-world-spawn.patch => 0395-Don-t-move-existing-players-to-world-spawn.patch} (100%) rename patches/server/{0395-Add-tick-times-API-and-mspt-command.patch => 0396-Add-tick-times-API-and-mspt-command.patch} (100%) rename patches/server/{0396-Expose-MinecraftServer-isRunning.patch => 0397-Expose-MinecraftServer-isRunning.patch} (100%) rename patches/server/{0397-Add-Raw-Byte-ItemStack-Serialization.patch => 0398-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/server/{0398-Remove-streams-from-Mob-AI-System.patch => 0399-Remove-streams-from-Mob-AI-System.patch} (100%) rename patches/server/{0399-Async-command-map-building.patch => 0400-Async-command-map-building.patch} (100%) rename patches/server/{0400-Improved-Watchdog-Support.patch => 0401-Improved-Watchdog-Support.patch} (98%) rename patches/server/{0401-Optimize-Pathfinding.patch => 0402-Optimize-Pathfinding.patch} (100%) rename patches/server/{0402-Reduce-Either-Optional-allocation.patch => 0403-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0403-Remove-streams-from-PairedQueue.patch => 0404-Remove-streams-from-PairedQueue.patch} (100%) rename patches/server/{0404-Reduce-memory-footprint-of-NBTTagCompound.patch => 0405-Reduce-memory-footprint-of-NBTTagCompound.patch} (100%) rename patches/server/{0405-Prevent-opening-inventories-when-frozen.patch => 0406-Prevent-opening-inventories-when-frozen.patch} (100%) rename patches/server/{0406-Optimise-ArraySetSorted-removeIf.patch => 0407-Optimise-ArraySetSorted-removeIf.patch} (100%) rename patches/server/{0407-Don-t-run-entity-collision-code-if-not-needed.patch => 0408-Don-t-run-entity-collision-code-if-not-needed.patch} (100%) rename patches/server/{0408-Restrict-vanilla-teleport-command-to-valid-locations.patch => 0409-Restrict-vanilla-teleport-command-to-valid-locations.patch} (100%) rename patches/server/{0409-Implement-Player-Client-Options-API.patch => 0410-Implement-Player-Client-Options-API.patch} (100%) rename patches/server/{0410-Fix-Chunk-Post-Processing-deadlock-risk.patch => 0411-Fix-Chunk-Post-Processing-deadlock-risk.patch} (93%) rename patches/server/{0411-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0412-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0412-Broadcast-join-message-to-console.patch => 0413-Broadcast-join-message-to-console.patch} (100%) rename patches/server/{0413-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch => 0414-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch} (96%) rename patches/server/{0414-Load-Chunks-for-Login-Asynchronously.patch => 0415-Load-Chunks-for-Login-Asynchronously.patch} (100%) rename patches/server/{0415-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0416-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (100%) rename patches/server/{0416-Add-PlayerAttackEntityCooldownResetEvent.patch => 0417-Add-PlayerAttackEntityCooldownResetEvent.patch} (100%) rename patches/server/{0417-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch => 0418-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch} (93%) rename patches/server/{0418-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0419-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/server/{0419-Add-phantom-creative-and-insomniac-controls.patch => 0420-Add-phantom-creative-and-insomniac-controls.patch} (96%) rename patches/server/{0420-Fix-numerous-item-duplication-issues-and-teleport-is.patch => 0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch} (100%) rename patches/server/{0421-Implement-Brigadier-Mojang-API.patch => 0422-Implement-Brigadier-Mojang-API.patch} (100%) rename patches/server/{0422-Villager-Restocks-API.patch => 0423-Villager-Restocks-API.patch} (100%) rename patches/server/{0423-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0424-Validate-PickItem-Packet-and-kick-for-invalid.patch} (100%) rename patches/server/{0424-Expose-game-version.patch => 0425-Expose-game-version.patch} (89%) rename patches/server/{0425-Optimize-Voxel-Shape-Merging.patch => 0426-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{0426-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0427-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (100%) rename patches/server/{0427-Implement-Mob-Goal-API.patch => 0428-Implement-Mob-Goal-API.patch} (100%) rename patches/server/{0428-Use-distance-map-to-optimise-entity-tracker.patch => 0429-Use-distance-map-to-optimise-entity-tracker.patch} (96%) rename patches/server/{0429-Optimize-isOutsideRange-to-use-distance-maps.patch => 0430-Optimize-isOutsideRange-to-use-distance-maps.patch} (97%) rename patches/server/{0430-Add-villager-reputation-API.patch => 0431-Add-villager-reputation-API.patch} (100%) rename patches/server/{0431-Option-for-maximum-exp-value-when-merging-orbs.patch => 0432-Option-for-maximum-exp-value-when-merging-orbs.patch} (95%) rename patches/server/{0432-ExperienceOrbMergeEvent.patch => 0433-ExperienceOrbMergeEvent.patch} (100%) rename patches/server/{0433-Fix-PotionEffect-ignores-icon-flag.patch => 0434-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0434-Optimize-brigadier-child-sorting-performance.patch => 0435-Optimize-brigadier-child-sorting-performance.patch} (100%) rename patches/server/{0435-Potential-bed-API.patch => 0436-Potential-bed-API.patch} (100%) rename patches/server/{0436-Wait-for-Async-Tasks-during-shutdown.patch => 0437-Wait-for-Async-Tasks-during-shutdown.patch} (100%) rename patches/server/{0437-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0438-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0438-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 0439-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (98%) rename patches/server/{0439-Reduce-MutableInt-allocations-from-light-engine.patch => 0440-Reduce-MutableInt-allocations-from-light-engine.patch} (100%) rename patches/server/{0440-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0441-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (96%) rename patches/server/{0441-Ensure-safe-gateway-teleport.patch => 0442-Ensure-safe-gateway-teleport.patch} (100%) rename patches/server/{0442-Add-option-for-console-having-all-permissions.patch => 0443-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0443-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch => 0444-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch} (98%) rename patches/server/{0444-Optimize-sending-packets-to-nearby-locations-sounds-.patch => 0445-Optimize-sending-packets-to-nearby-locations-sounds-.patch} (100%) rename patches/server/{0445-Fix-villager-trading-demand-MC-163962.patch => 0446-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0446-Maps-shouldn-t-load-chunks.patch => 0447-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0447-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0448-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0448-Delay-Chunk-Unloads-based-on-Player-Movement.patch => 0449-Delay-Chunk-Unloads-based-on-Player-Movement.patch} (96%) rename patches/server/{0449-Optimize-Bit-Operations-by-inlining.patch => 0450-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{0450-incremental-chunk-saving.patch => 0451-incremental-chunk-saving.patch} (94%) rename patches/server/{0451-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0452-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (98%) rename patches/server/{0452-Fix-missing-chunks-due-to-integer-overflow.patch => 0453-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0453-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0454-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0454-Fix-piston-physics-inconsistency-MC-188840.patch => 0455-Fix-piston-physics-inconsistency-MC-188840.patch} (100%) rename patches/server/{0455-Fix-sand-duping.patch => 0456-Fix-sand-duping.patch} (100%) rename patches/server/{0456-Prevent-position-desync-in-playerconnection-causing-.patch => 0457-Prevent-position-desync-in-playerconnection-causing-.patch} (100%) rename patches/server/{0457-Inventory-getHolder-method-without-block-snapshot.patch => 0458-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0458-Expose-Arrow-getItemStack.patch => 0459-Expose-Arrow-getItemStack.patch} (100%) rename patches/server/{0459-Add-and-implement-PlayerRecipeBookClickEvent.patch => 0460-Add-and-implement-PlayerRecipeBookClickEvent.patch} (100%) rename patches/server/{0460-Hide-sync-chunk-writes-behind-flag.patch => 0461-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0461-Add-permission-for-command-blocks.patch => 0462-Add-permission-for-command-blocks.patch} (97%) rename patches/server/{0462-Ensure-Entity-AABB-s-are-never-invalid.patch => 0463-Ensure-Entity-AABB-s-are-never-invalid.patch} (100%) rename patches/server/{0463-Optimize-WorldBorder-collision-checks-and-air.patch => 0464-Optimize-WorldBorder-collision-checks-and-air.patch} (100%) rename patches/server/{0464-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0465-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (100%) rename patches/server/{0465-Paper-dumpitem-command.patch => 0466-Paper-dumpitem-command.patch} (100%) rename patches/server/{0466-Don-t-allow-null-UUID-s-for-chat.patch => 0467-Don-t-allow-null-UUID-s-for-chat.patch} (100%) rename patches/server/{0467-Improve-Legacy-Component-serialization-size.patch => 0468-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0468-Support-old-UUID-format-for-NBT.patch => 0469-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0469-Clean-up-duplicated-GameProfile-Properties.patch => 0470-Clean-up-duplicated-GameProfile-Properties.patch} (100%) rename patches/server/{0470-Convert-legacy-attributes-in-Item-Meta.patch => 0471-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0471-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch => 0472-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch} (98%) rename patches/server/{0472-Remove-some-streams-from-structures.patch => 0473-Remove-some-streams-from-structures.patch} (100%) rename patches/server/{0473-Remove-streams-from-classes-related-villager-gossip.patch => 0474-Remove-streams-from-classes-related-villager-gossip.patch} (100%) rename patches/server/{0474-Support-components-in-ItemMeta.patch => 0475-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0475-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch => 0476-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch} (100%) rename patches/server/{0476-Add-entity-liquid-API.patch => 0477-Add-entity-liquid-API.patch} (100%) rename patches/server/{0477-Update-itemstack-legacy-name-and-lore.patch => 0478-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0478-Spawn-player-in-correct-world-on-login.patch => 0479-Spawn-player-in-correct-world-on-login.patch} (100%) rename patches/server/{0479-Add-PrepareResultEvent.patch => 0480-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0480-Allow-delegation-to-vanilla-chunk-gen.patch => 0481-Allow-delegation-to-vanilla-chunk-gen.patch} (95%) rename patches/server/{0481-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0482-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/server/{0482-Optimize-NetworkManager-Exception-Handling.patch => 0483-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0483-Optimize-the-advancement-data-player-iteration-to-be.patch => 0484-Optimize-the-advancement-data-player-iteration-to-be.patch} (100%) rename patches/server/{0484-Fix-arrows-never-despawning-MC-125757.patch => 0485-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0485-Thread-Safe-Vanilla-Command-permission-checking.patch => 0486-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0486-Move-range-check-for-block-placing-up.patch => 0487-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0487-Fix-SPIGOT-5989.patch => 0488-Fix-SPIGOT-5989.patch} (100%) rename patches/server/{0488-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0489-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0489-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0490-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0490-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0491-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0491-Add-missing-strikeLighting-call-to-World-spigot-stri.patch => 0492-Add-missing-strikeLighting-call-to-World-spigot-stri.patch} (100%) rename patches/server/{0492-Fix-some-rails-connecting-improperly.patch => 0493-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0493-Incremental-player-saving.patch => 0494-Incremental-player-saving.patch} (100%) rename patches/server/{0494-Fix-MC-187716-Use-configured-height.patch => 0495-Fix-MC-187716-Use-configured-height.patch} (100%) rename patches/server/{0495-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0496-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0496-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0497-Do-not-let-the-server-load-chunks-from-newer-version.patch} (96%) rename patches/server/{0497-Brand-support.patch => 0498-Brand-support.patch} (100%) rename patches/server/{0498-Add-setMaxPlayers-API.patch => 0499-Add-setMaxPlayers-API.patch} (94%) rename patches/server/{0499-Add-playPickupItemAnimation-to-LivingEntity.patch => 0500-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0500-Don-t-require-FACING-data.patch => 0501-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0501-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0502-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (96%) rename patches/server/{0502-Add-moon-phase-API.patch => 0503-Add-moon-phase-API.patch} (100%) rename patches/server/{0503-Prevent-headless-pistons-from-being-created.patch => 0504-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0504-Add-BellRingEvent.patch => 0505-Add-BellRingEvent.patch} (100%) rename patches/server/{0505-Add-zombie-targets-turtle-egg-config.patch => 0506-Add-zombie-targets-turtle-egg-config.patch} (92%) rename patches/server/{0506-Buffer-joins-to-world.patch => 0507-Buffer-joins-to-world.patch} (100%) rename patches/server/{0507-Optimize-redstone-algorithm.patch => 0508-Optimize-redstone-algorithm.patch} (99%) rename patches/server/{0508-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0509-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0509-PortalCreateEvent-needs-to-know-its-entity.patch => 0510-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0510-Fix-CraftTeam-null-check.patch => 0511-Fix-CraftTeam-null-check.patch} (100%) rename patches/server/{0511-Add-more-Evoker-API.patch => 0512-Add-more-Evoker-API.patch} (100%) rename patches/server/{0512-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch => 0513-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch} (100%) rename patches/server/{0513-Create-HoverEvent-from-ItemStack-Entity.patch => 0514-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0514-Cache-block-data-strings.patch => 0515-Cache-block-data-strings.patch} (100%) rename patches/server/{0515-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0516-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/server/{0516-Add-additional-open-container-api-to-HumanEntity.patch => 0517-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0517-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0518-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0518-Extend-block-drop-capture-to-capture-all-items-added.patch => 0519-Extend-block-drop-capture-to-capture-all-items-added.patch} (92%) rename patches/server/{0519-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch => 0520-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch} (100%) rename patches/server/{0520-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0521-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/server/{0521-Lazily-track-plugin-scoreboards-by-default.patch => 0522-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0522-Entity-isTicking.patch => 0523-Entity-isTicking.patch} (100%) rename patches/server/{0523-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0524-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0524-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch => 0525-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch} (100%) rename patches/server/{0525-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0526-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0526-Fix-for-large-move-vectors-crashing-server.patch => 0527-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0527-Optimise-getType-calls.patch => 0528-Optimise-getType-calls.patch} (96%) rename patches/server/{0528-Villager-resetOffers.patch => 0529-Villager-resetOffers.patch} (100%) rename patches/server/{0529-Improve-inlinig-for-some-hot-IBlockData-methods.patch => 0530-Improve-inlinig-for-some-hot-IBlockData-methods.patch} (100%) rename patches/server/{0530-Retain-block-place-order-when-capturing-blockstates.patch => 0531-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0531-Reduce-blockpos-allocation-from-pathfinding.patch => 0532-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0532-Fix-item-locations-dropped-from-campfires.patch => 0533-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0533-Player-elytra-boost-API.patch => 0534-Player-elytra-boost-API.patch} (100%) rename patches/server/{0534-Fixed-TileEntityBell-memory-leak.patch => 0535-Fixed-TileEntityBell-memory-leak.patch} (100%) rename patches/server/{0535-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0536-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0536-Add-getOfflinePlayerIfCached-String.patch => 0537-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0537-Add-ignore-discounts-API.patch => 0538-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0538-Toggle-for-removing-existing-dragon.patch => 0539-Toggle-for-removing-existing-dragon.patch} (92%) rename patches/server/{0539-Fix-client-lag-on-advancement-loading.patch => 0540-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0540-Item-no-age-no-player-pickup.patch => 0541-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0541-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 0542-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{0542-Beacon-API-custom-effect-ranges.patch => 0543-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0543-Add-API-for-quit-reason.patch => 0544-Add-API-for-quit-reason.patch} (100%) rename patches/server/{0544-Seed-based-feature-search.patch => 0545-Seed-based-feature-search.patch} (96%) rename patches/server/{0545-Add-Wandering-Trader-spawn-rate-config-options.patch => 0546-Add-Wandering-Trader-spawn-rate-config-options.patch} (97%) rename patches/server/{0546-Significantly-improve-performance-of-the-end-generat.patch => 0547-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0547-Expose-world-spawn-angle.patch => 0548-Expose-world-spawn-angle.patch} (100%) rename patches/server/{0548-Add-Destroy-Speed-API.patch => 0549-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0549-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0550-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/server/{0550-Add-LivingEntity-clearActiveItem.patch => 0551-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0551-Add-PlayerItemCooldownEvent.patch => 0552-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0552-More-lightning-API.patch => 0553-More-lightning-API.patch} (100%) rename patches/server/{0553-Climbing-should-not-bypass-cramming-gamerule.patch => 0554-Climbing-should-not-bypass-cramming-gamerule.patch} (98%) rename patches/server/{0554-Added-missing-default-perms-for-commands.patch => 0555-Added-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0555-Add-PlayerShearBlockEvent.patch => 0556-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0556-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0557-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/server/{0557-Fix-curing-zombie-villager-discount-exploit.patch => 0558-Fix-curing-zombie-villager-discount-exploit.patch} (94%) rename patches/server/{0558-Limit-recipe-packets.patch => 0559-Limit-recipe-packets.patch} (100%) rename patches/server/{0559-Fix-CraftSound-backwards-compatibility.patch => 0560-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0560-MC-4-Fix-item-position-desync.patch => 0561-MC-4-Fix-item-position-desync.patch} (100%) rename patches/server/{0561-Player-Chunk-Load-Unload-Events.patch => 0562-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0562-Optimize-Dynamic-get-Missing-Keys.patch => 0563-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0563-Expose-LivingEntity-hurt-direction.patch => 0564-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0564-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0565-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0565-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch => 0566-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch} (100%) rename patches/server/{0566-added-PlayerTradeEvent.patch => 0567-added-PlayerTradeEvent.patch} (100%) rename patches/server/{0567-Implement-TargetHitEvent.patch => 0568-Implement-TargetHitEvent.patch} (100%) rename patches/server/{0568-Additional-Block-Material-API-s.patch => 0569-Additional-Block-Material-API-s.patch} (100%) rename patches/server/{0569-Fix-harming-potion-dupe.patch => 0570-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0570-Implement-API-to-get-Material-from-Boats-and-Minecar.patch => 0571-Implement-API-to-get-Material-from-Boats-and-Minecar.patch} (100%) rename patches/server/{0571-Cache-burn-durations.patch => 0572-Cache-burn-durations.patch} (100%) rename patches/server/{0572-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0573-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (93%) rename patches/server/{0573-Implement-PlayerFlowerPotManipulateEvent.patch => 0574-Implement-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0574-Fix-interact-event-not-being-called-in-adventure.patch => 0575-Fix-interact-event-not-being-called-in-adventure.patch} (100%) rename patches/server/{0575-Zombie-API-breaking-doors.patch => 0576-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0576-Fix-nerfed-slime-when-splitting.patch => 0577-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0577-Add-EntityLoadCrossbowEvent.patch => 0578-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0578-Guardian-beam-workaround.patch => 0579-Guardian-beam-workaround.patch} (100%) rename patches/server/{0579-Added-WorldGameRuleChangeEvent.patch => 0580-Added-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0580-Added-ServerResourcesReloadedEvent.patch => 0581-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0581-Added-world-settings-for-mobs-picking-up-loot.patch => 0582-Added-world-settings-for-mobs-picking-up-loot.patch} (95%) rename patches/server/{0582-Implemented-BlockFailedDispenseEvent.patch => 0583-Implemented-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0583-Added-PlayerLecternPageChangeEvent.patch => 0584-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0584-Added-PlayerLoomPatternSelectEvent.patch => 0585-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0585-Configurable-door-breaking-difficulty.patch => 0586-Configurable-door-breaking-difficulty.patch} (92%) rename patches/server/{0586-Empty-commands-shall-not-be-dispatched.patch => 0587-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0587-Implement-API-to-expose-exact-interaction-point.patch => 0588-Implement-API-to-expose-exact-interaction-point.patch} (96%) rename patches/server/{0588-Remove-stale-POIs.patch => 0589-Remove-stale-POIs.patch} (92%) rename patches/server/{0589-Fix-villager-boat-exploit.patch => 0590-Fix-villager-boat-exploit.patch} (100%) rename patches/server/{0590-Add-sendOpLevel-API.patch => 0591-Add-sendOpLevel-API.patch} (100%) rename patches/server/{0591-Add-StructureLocateEvent.patch => 0592-Add-StructureLocateEvent.patch} (100%) rename patches/server/{0592-Collision-option-for-requiring-a-player-participant.patch => 0593-Collision-option-for-requiring-a-player-participant.patch} (97%) rename patches/server/{0593-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0594-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0594-Return-chat-component-with-empty-text-instead-of-thr.patch => 0595-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0595-Make-schedule-command-per-world.patch => 0596-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0596-Configurable-max-leash-distance.patch => 0597-Configurable-max-leash-distance.patch} (94%) rename patches/server/{0597-Implement-BlockPreDispenseEvent.patch => 0598-Implement-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0598-Added-Vanilla-Entity-Tags.patch => 0599-Added-Vanilla-Entity-Tags.patch} (100%) rename patches/server/{0599-added-Wither-API.patch => 0600-added-Wither-API.patch} (100%) rename patches/server/{0600-Added-firing-of-PlayerChangeBeaconEffectEvent.patch => 0601-Added-firing-of-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0601-Fix-console-spam-when-removing-chests-in-water.patch => 0602-Fix-console-spam-when-removing-chests-in-water.patch} (100%) rename patches/server/{0602-Add-toggle-for-always-placing-the-dragon-egg.patch => 0603-Add-toggle-for-always-placing-the-dragon-egg.patch} (92%) rename patches/server/{0603-Added-PlayerStonecutterRecipeSelectEvent.patch => 0604-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0604-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0605-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (100%) rename patches/server/{0605-Skip-distance-map-update-when-spawning-disabled.patch => 0606-Skip-distance-map-update-when-spawning-disabled.patch} (100%) rename patches/server/{0606-Reset-shield-blocking-on-dimension-change.patch => 0607-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0607-add-DragonEggFormEvent.patch => 0608-add-DragonEggFormEvent.patch} (100%) rename patches/server/{0608-EntityMoveEvent.patch => 0609-EntityMoveEvent.patch} (97%) rename patches/server/{0609-added-option-to-disable-pathfinding-updates-on-block.patch => 0610-added-option-to-disable-pathfinding-updates-on-block.patch} (88%) rename patches/server/{0610-Inline-shift-direction-fields.patch => 0611-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0611-Allow-adding-items-to-BlockDropItemEvent.patch => 0612-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0612-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0613-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0613-living-entity-allow-attribute-registration.patch => 0614-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0614-fix-dead-slime-setSize-invincibility.patch => 0615-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0615-Merchant-getRecipes-should-return-an-immutable-list.patch => 0616-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0616-misc-debugging-dumps.patch => 0617-misc-debugging-dumps.patch} (100%) rename patches/server/{0617-Add-support-for-hex-color-codes-in-console.patch => 0618-Add-support-for-hex-color-codes-in-console.patch} (100%) rename patches/server/{0618-Expose-Tracked-Players.patch => 0619-Expose-Tracked-Players.patch} (100%) rename patches/server/{0619-Remove-streams-from-SensorNearest.patch => 0620-Remove-streams-from-SensorNearest.patch} (100%) rename patches/server/{0620-MC-29274-Fix-Wither-hostility-towards-players.patch => 0621-MC-29274-Fix-Wither-hostility-towards-players.patch} (93%) rename patches/server/{0621-Throw-proper-exception-on-empty-JsonList-file.patch => 0622-Throw-proper-exception-on-empty-JsonList-file.patch} (100%) rename patches/server/{0622-Improve-ServerGUI.patch => 0623-Improve-ServerGUI.patch} (100%) rename patches/server/{0623-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch => 0624-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch} (100%) rename patches/server/{0624-fix-converting-txt-to-json-file.patch => 0625-fix-converting-txt-to-json-file.patch} (100%) rename patches/server/{0625-Add-worldborder-events.patch => 0626-Add-worldborder-events.patch} (100%) rename patches/server/{0626-added-PlayerNameEntityEvent.patch => 0627-added-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0627-Prevent-grindstones-from-overstacking-items.patch => 0628-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0628-Add-recipe-to-cook-events.patch => 0629-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0629-Add-Block-isValidTool.patch => 0630-Add-Block-isValidTool.patch} (100%) rename patches/server/{0630-Allow-using-signs-inside-spawn-protection.patch => 0631-Allow-using-signs-inside-spawn-protection.patch} (94%) rename patches/server/{0631-Implement-Keyed-on-World.patch => 0632-Implement-Keyed-on-World.patch} (100%) rename patches/server/{0632-Add-fast-alternative-constructor-for-Rotations.patch => 0633-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0633-Item-Rarity-API.patch => 0634-Item-Rarity-API.patch} (100%) rename patches/server/{0634-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0635-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0635-copy-TESign-isEditable-from-snapshots.patch => 0636-copy-TESign-isEditable-from-snapshots.patch} (100%) rename patches/server/{0636-Drop-carried-item-when-player-has-disconnected.patch => 0637-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/server/{0637-forced-whitelist-use-configurable-kick-message.patch => 0638-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0638-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0639-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0639-fix-cancelling-block-falling-causing-client-desync.patch => 0640-fix-cancelling-block-falling-causing-client-desync.patch} (100%) rename patches/server/{0640-Expose-protocol-version.patch => 0641-Expose-protocol-version.patch} (100%) rename patches/server/{0641-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch => 0642-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch} (100%) rename patches/server/{0642-Enhance-console-tab-completions-for-brigadier-comman.patch => 0643-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0643-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0644-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0644-Add-bypass-host-check.patch => 0645-Add-bypass-host-check.patch} (100%) rename patches/server/{0645-Set-area-affect-cloud-rotation.patch => 0646-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0646-add-isDeeplySleeping-to-HumanEntity.patch => 0647-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0647-Fix-duplicating-give-items-on-item-drop-cancel.patch => 0648-Fix-duplicating-give-items-on-item-drop-cancel.patch} (100%) rename patches/server/{0648-add-consumeFuel-to-FurnaceBurnEvent.patch => 0649-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0649-add-get-set-drop-chance-to-EntityEquipment.patch => 0650-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0650-fix-PigZombieAngerEvent-cancellation.patch => 0651-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0651-Fix-checkReach-check-for-Shulker-boxes.patch => 0652-Fix-checkReach-check-for-Shulker-boxes.patch} (100%) rename patches/server/{0652-fix-PlayerItemHeldEvent-firing-twice.patch => 0653-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0653-Added-PlayerDeepSleepEvent.patch => 0654-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0654-More-World-API.patch => 0655-More-World-API.patch} (100%) rename patches/server/{0655-Added-PlayerBedFailEnterEvent.patch => 0656-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0656-Implement-methods-to-convert-between-Component-and-B.patch => 0657-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0657-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch => 0658-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch} (100%) rename patches/server/{0658-Introduce-beacon-activation-deactivation-events.patch => 0659-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0659-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0660-add-RespawnFlags-to-PlayerRespawnEvent.patch} (100%) rename patches/server/{0660-Add-Channel-initialization-listeners.patch => 0661-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0661-Send-empty-commands-if-tab-completion-is-disabled.patch => 0662-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0662-Add-more-WanderingTrader-API.patch => 0663-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0663-Add-EntityBlockStorage-clearEntities.patch => 0664-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0664-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0665-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0665-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch => 0666-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch} (100%) rename patches/server/{0666-Inventory-close.patch => 0667-Inventory-close.patch} (100%) rename patches/server/{0667-call-PortalCreateEvent-players-and-end-platform.patch => 0668-call-PortalCreateEvent-players-and-end-platform.patch} (100%) rename patches/server/{0668-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0669-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0669-Fix-CraftPotionBrewer-cache.patch => 0670-Fix-CraftPotionBrewer-cache.patch} (100%) rename patches/server/{0670-Add-basic-Datapack-API.patch => 0671-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0671-Add-environment-variable-to-disable-server-gui.patch => 0672-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0672-additions-to-PlayerGameModeChangeEvent.patch => 0673-additions-to-PlayerGameModeChangeEvent.patch} (98%) rename patches/server/{0673-ItemStack-repair-check-API.patch => 0674-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0674-More-Enchantment-API.patch => 0675-More-Enchantment-API.patch} (100%) rename patches/server/{0675-Add-command-line-option-to-load-extra-plugin-jars-no.patch => 0676-Add-command-line-option-to-load-extra-plugin-jars-no.patch} (96%) rename patches/server/{0676-Fix-and-optimise-world-force-upgrading.patch => 0677-Fix-and-optimise-world-force-upgrading.patch} (95%) rename patches/server/{0677-Add-Mob-lookAt-API.patch => 0678-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0678-Add-Unix-domain-socket-support.patch => 0679-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0679-Add-EntityInsideBlockEvent.patch => 0680-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0680-Attributes-API-for-item-defaults.patch => 0681-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0681-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch => 0682-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch} (100%) rename patches/server/{0682-Add-cause-to-Weather-ThunderChangeEvents.patch => 0683-Add-cause-to-Weather-ThunderChangeEvents.patch} (98%) rename patches/server/{0683-More-Lidded-Block-API.patch => 0684-More-Lidded-Block-API.patch} (100%) rename patches/server/{0684-Limit-item-frame-cursors-on-maps.patch => 0685-Limit-item-frame-cursors-on-maps.patch} (93%) rename patches/server/{0685-Add-PufferFishStateChangeEvent.patch => 0686-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0686-Add-PlayerKickEvent-causes.patch => 0687-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0687-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0688-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0688-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch => 0689-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch} (71%) rename patches/server/{0689-Add-option-to-fix-items-merging-through-walls.patch => 0690-Add-option-to-fix-items-merging-through-walls.patch} (93%) rename patches/server/{0690-Add-BellRevealRaiderEvent.patch => 0691-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0691-Fix-invulnerable-end-crystals.patch => 0692-Fix-invulnerable-end-crystals.patch} (96%) rename patches/server/{0692-Add-ElderGuardianAppearanceEvent.patch => 0693-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0693-Reset-villager-inventory-on-cancelled-pickup-event.patch => 0694-Reset-villager-inventory-on-cancelled-pickup-event.patch} (100%) rename patches/server/{0694-Fix-dangerous-end-portal-logic.patch => 0695-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0695-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0696-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0696-Make-item-validations-configurable.patch => 0697-Make-item-validations-configurable.patch} (100%) rename patches/server/{0697-Add-more-line-of-sight-methods.patch => 0698-Add-more-line-of-sight-methods.patch} (100%) rename patches/server/{0698-add-per-world-spawn-limits.patch => 0699-add-per-world-spawn-limits.patch} (94%) rename patches/server/{0699-Fix-PotionSplashEvent-for-water-splash-potions.patch => 0700-Fix-PotionSplashEvent-for-water-splash-potions.patch} (100%) rename patches/server/{0700-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch => 0701-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch} (100%) diff --git a/patches/removed/1.17/0364-Anti-Xray.patch b/patches/server/0364-Anti-Xray.patch similarity index 70% rename from patches/removed/1.17/0364-Anti-Xray.patch rename to patches/server/0364-Anti-Xray.patch index 250195a551..982e71aa3f 100644 --- a/patches/removed/1.17/0364-Anti-Xray.patch +++ b/patches/server/0364-Anti-Xray.patch @@ -2,12 +2,16 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: stonar96 <minecraft.stonar96@gmail.com> Date: Mon, 20 Aug 2018 03:03:58 +0200 Subject: [PATCH] Anti-Xray +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + stonar96 — Today at 15:49 I'm just here to watch you suffer :smile: You can skip it if you want and I can do it later. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 1278d09f70c1e97607ef20d87a178dc252c7f723..c45493e88bf7e8811be2759ff9ac19e3fe9d938a 100644 +index e29566cad2647da4d9288e912188b57f00e8dd0c..51691d3dedf113d58f340b74d448c5e5375b5bed 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -1,7 +1,9 @@ @@ -20,9 +24,9 @@ index 1278d09f70c1e97607ef20d87a178dc252c7f723..c45493e88bf7e8811be2759ff9ac19e3 import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.spigotmc.SpigotWorldConfig; -@@ -461,4 +463,38 @@ public class PaperWorldConfig { - private void maxAutoSaveChunksPerTick() { - maxAutoSaveChunksPerTick = getInt("max-auto-save-chunks-per-tick", 24); +@@ -445,5 +447,39 @@ public class PaperWorldConfig { + private void lightQueueSize() { + lightQueueSize = getInt("light-queue-size", lightQueueSize); } + + public boolean antiXray; @@ -59,9 +63,10 @@ index 1278d09f70c1e97607ef20d87a178dc252c7f723..c45493e88bf7e8811be2759ff9ac19e3 + } + } } + diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java new file mode 100644 -index 0000000000000000000000000000000000000000..8fb63441fbf9afb6f11e1185a9f29528e1950546 +index 0000000000000000000000000000000000000000..fe1a91a3a281dd91e5989bf2282240b03684b500 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockController.java @@ -0,0 +1,45 @@ @@ -90,11 +95,11 @@ index 0000000000000000000000000000000000000000..8fb63441fbf9afb6f11e1185a9f29528 + return null; + } + -+ public boolean shouldModify(ServerPlayer entityPlayer, LevelChunk chunk, int chunkSectionSelector) { ++ public boolean shouldModify(ServerPlayer entityPlayer, LevelChunk chunk) { + return false; + } + -+ public ChunkPacketInfo<BlockState> getChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk, int chunkSectionSelector) { ++ public ChunkPacketInfo<BlockState> getChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk) { + return null; + } + @@ -112,7 +117,7 @@ index 0000000000000000000000000000000000000000..8fb63441fbf9afb6f11e1185a9f29528 +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java new file mode 100644 -index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4c56dea46 +index 0000000000000000000000000000000000000000..e1bc1093a03b931ff2c3870ea1601cd420f71192 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java @@ -0,0 +1,649 @@ @@ -200,7 +205,7 @@ index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4 + for (String id : paperWorldConfig.hiddenBlocks) { + Block block = Registry.BLOCK.getOptional(new ResourceLocation(id)).orElse(null); + -+ if (block != null && !block.isEntityBlock()) { ++ if (block != null && !(block instanceof net.minecraft.world.level.block.EntityBlock)) { + toObfuscate.add(id); + predefinedBlockDataList.add(block.defaultBlockState()); + } @@ -284,15 +289,15 @@ index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4 + } + + @Override -+ public boolean shouldModify(ServerPlayer entityPlayer, LevelChunk chunk, int chunkSectionSelector) { ++ public boolean shouldModify(ServerPlayer entityPlayer, LevelChunk chunk) { + return !usePermission || !entityPlayer.getBukkitEntity().hasPermission("paper.antixray.bypass"); + } + + @Override -+ public ChunkPacketInfoAntiXray getChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk, int chunkSectionSelector) { ++ public ChunkPacketInfoAntiXray getChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk) { + // Return a new instance to collect data and objects in the right state while creating the chunk packet for thread safe access later + // Note: As of 1.14 this has to be moved later due to the chunk system. -+ ChunkPacketInfoAntiXray chunkPacketInfoAntiXray = new ChunkPacketInfoAntiXray(packetPlayOutMapChunk, chunk, chunkSectionSelector, this); ++ ChunkPacketInfoAntiXray chunkPacketInfoAntiXray = new ChunkPacketInfoAntiXray(packetPlayOutMapChunk, chunk, this); + return chunkPacketInfoAntiXray; + } + @@ -314,7 +319,7 @@ index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4 + LevelChunk chunk = chunkPacketInfo.getChunk(); + int x = chunk.getPos().x; + int z = chunk.getPos().z; -+ ServerLevel world = (ServerLevel)chunk.world; ++ ServerLevel world = (ServerLevel)chunk.level; + ((ChunkPacketInfoAntiXray) chunkPacketInfo).setNearbyChunks( + (LevelChunk) world.getChunkIfLoadedImmediately(x - 1, z), + (LevelChunk) world.getChunkIfLoadedImmediately(x + 1, z), @@ -374,7 +379,7 @@ index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4 + int[] predefinedBlockDataBitsTemp; + + if (chunkPacketInfoAntiXray.getDataPalette(chunkSectionIndex) == LevelChunkSection.GLOBAL_BLOCKSTATE_PALETTE) { -+ predefinedBlockDataBitsTemp = engineMode == EngineMode.HIDE ? chunkPacketInfoAntiXray.getChunk().world.getWorld().getEnvironment() == Environment.NETHER ? predefinedBlockDataBitsNetherrackGlobal : chunkPacketInfoAntiXray.getChunk().world.getWorld().getEnvironment() == Environment.THE_END ? predefinedBlockDataBitsEndStoneGlobal : predefinedBlockDataBitsStoneGlobal : predefinedBlockDataBitsGlobal; ++ predefinedBlockDataBitsTemp = engineMode == EngineMode.HIDE ? chunkPacketInfoAntiXray.getChunk().level.getWorld().getEnvironment() == Environment.NETHER ? predefinedBlockDataBitsNetherrackGlobal : chunkPacketInfoAntiXray.getChunk().level.getWorld().getEnvironment() == Environment.THE_END ? predefinedBlockDataBitsEndStoneGlobal : predefinedBlockDataBitsStoneGlobal : predefinedBlockDataBitsGlobal; + } else { + // If it's this.predefinedBlockData, use this.predefinedBlockDataFull instead + BlockState[] predefinedBlockDataFull = chunkPacketInfoAntiXray.getPredefinedObjects(chunkSectionIndex) == predefinedBlockData ? this.predefinedBlockDataFull : chunkPacketInfoAntiXray.getPredefinedObjects(chunkSectionIndex); @@ -767,10 +772,10 @@ index 0000000000000000000000000000000000000000..6d41628444e880dea5c96ad5caf557f4 +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java new file mode 100644 -index 0000000000000000000000000000000000000000..dc04ffc76e11ab63cd98a84cf95c58dc5cd1efdb +index 0000000000000000000000000000000000000000..4d06356d4c183605fdaa9157da02c66990f0fb70 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfo.java -@@ -0,0 +1,81 @@ +@@ -0,0 +1,75 @@ +package com.destroystokyo.paper.antixray; + +import net.minecraft.network.protocol.game.ClientboundLevelChunkPacket; @@ -781,17 +786,15 @@ index 0000000000000000000000000000000000000000..dc04ffc76e11ab63cd98a84cf95c58dc + + private final ClientboundLevelChunkPacket packetPlayOutMapChunk; + private final LevelChunk chunk; -+ private final int chunkSectionSelector; + private byte[] data; + private final int[] bitsPerObject = new int[16]; + private final Object[] dataPalettes = new Object[16]; + private final int[] dataBitsIndexes = new int[16]; + private final Object[][] predefinedObjects = new Object[16][]; + -+ public ChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk, int chunkSectionSelector) { ++ public ChunkPacketInfo(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk) { + this.packetPlayOutMapChunk = packetPlayOutMapChunk; + this.chunk = chunk; -+ this.chunkSectionSelector = chunkSectionSelector; + } + + public ClientboundLevelChunkPacket getPacketPlayOutMapChunk() { @@ -802,10 +805,6 @@ index 0000000000000000000000000000000000000000..dc04ffc76e11ab63cd98a84cf95c58dc + return chunk; + } + -+ public int getChunkSectionSelector() { -+ return chunkSectionSelector; -+ } -+ + public byte[] getData() { + return data; + } @@ -854,7 +853,7 @@ index 0000000000000000000000000000000000000000..dc04ffc76e11ab63cd98a84cf95c58dc +} diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java new file mode 100644 -index 0000000000000000000000000000000000000000..7345f1dc7c5c05f2e1ee09b94f4ebf56dd59bc55 +index 0000000000000000000000000000000000000000..2339aa92ecaf3af9c7481ec6c21981c39319c76f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketInfoAntiXray.java @@ -0,0 +1,30 @@ @@ -869,9 +868,9 @@ index 0000000000000000000000000000000000000000..7345f1dc7c5c05f2e1ee09b94f4ebf56 + private LevelChunk[] nearbyChunks; + private final ChunkPacketBlockControllerAntiXray chunkPacketBlockControllerAntiXray; + -+ public ChunkPacketInfoAntiXray(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk, int chunkSectionSelector, ++ public ChunkPacketInfoAntiXray(ClientboundLevelChunkPacket packetPlayOutMapChunk, LevelChunk chunk, + ChunkPacketBlockControllerAntiXray chunkPacketBlockControllerAntiXray) { -+ super(packetPlayOutMapChunk, chunk, chunkSectionSelector); ++ super(packetPlayOutMapChunk, chunk); + this.chunkPacketBlockControllerAntiXray = chunkPacketBlockControllerAntiXray; + } + @@ -1031,90 +1030,73 @@ index 0000000000000000000000000000000000000000..333763936897befda5bb6c077944d266 + } +} diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacket.java -index b587f774c8f88f2a1c3ea489f7e4fe0bbdeb5a41..10dd582b0fff4df27f1113e41c8ee3e274c6fb65 100644 +index c28879f32b004f36ff746ea2274f91ddd9501e71..7762d8ff94f856d613a6f50311006b698f2aa2b0 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacket.java -@@ -1,5 +1,6 @@ - package net.minecraft.network.protocol.game; - -+import com.destroystokyo.paper.antixray.ChunkPacketInfo; // Paper - Anti-Xray - Add chunk packet info - import com.google.common.collect.Lists; - import io.netty.buffer.ByteBuf; - import io.netty.buffer.Unpooled; -@@ -16,6 +17,7 @@ import net.minecraft.network.protocol.Packet; - import net.minecraft.world.level.ChunkPos; - import net.minecraft.world.level.block.entity.BlockEntity; - import net.minecraft.world.level.block.entity.SkullBlockEntity; -+import net.minecraft.world.level.block.state.BlockState; - import net.minecraft.world.level.chunk.ChunkBiomeContainer; - import net.minecraft.world.level.chunk.LevelChunk; - import net.minecraft.world.level.chunk.LevelChunkSection; -@@ -33,7 +35,13 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - private List<CompoundTag> blockEntitiesTags; - private boolean fullChunk; - -- public ClientboundLevelChunkPacket() {} -+ // Paper start - Async-Anti-Xray - Set the ready flag to true -+ private volatile boolean ready; // Paper - Async-Anti-Xray - Ready flag for the network manager -+ public ClientboundLevelChunkPacket() { -+ this.ready = true; -+ } -+ // Paper end -+ - // Paper start - private final java.util.List<Packet> extraPackets = new java.util.ArrayList<>(); - private static final int TE_LIMIT = Integer.getInteger("Paper.excessiveTELimit", 750); -@@ -43,12 +51,16 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - return extraPackets; +@@ -37,7 +37,13 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe } // Paper end -- public ClientboundLevelChunkPacket(LevelChunk chunk, int includedSectionsMask) { -+ // Paper start - Anti-Xray - Add chunk packet info -+ @Deprecated public ClientboundLevelChunkPacket(LevelChunk chunk, int includedSectionsMask) { this(chunk, includedSectionsMask, true); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public ClientboundLevelChunkPacket(LevelChunk chunk, int i, boolean modifyBlocks) { -+ ChunkPacketInfo<BlockState> chunkPacketInfo = modifyBlocks ? chunk.world.chunkPacketBlockController.getChunkPacketInfo(this, chunk, i) : null; + +- public ClientboundLevelChunkPacket(LevelChunk chunk) { ++ private volatile boolean ready; // Paper - Async-Anti-Xray - Ready flag for the network manager ++ ++ // Paper start ++ @Deprecated public ClientboundLevelChunkPacket(LevelChunk chunk) { this(chunk, true); } // Notice for updates: Please make sure this constructor isn't used anywhere ++ public ClientboundLevelChunkPacket(LevelChunk chunk, boolean modifyBlocks) { ++ com.destroystokyo.paper.antixray.ChunkPacketInfo<net.minecraft.world.level.block.state.BlockState> chunkPacketInfo = modifyBlocks ? chunk.level.chunkPacketBlockController.getChunkPacketInfo(this, chunk) : null; + // Paper end - ChunkPos chunkcoordintpair = chunk.getPos(); + ChunkPos chunkPos = chunk.getPos(); + this.x = chunkPos.x; + this.z = chunkPos.z; +@@ -51,7 +57,12 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - this.x = chunkcoordintpair.x; - this.z = chunkcoordintpair.z; -- this.fullChunk = includedSectionsMask == 65535; -+ this.fullChunk = i == 65535; - this.heightmaps = new CompoundTag(); - Iterator iterator = chunk.getHeightmaps().iterator(); - -@@ -65,8 +77,13 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - this.biomes = chunk.getBiomes().writeBiomes(); - } - -- this.buffer = new byte[this.calculateChunkSize(chunk, includedSectionsMask)]; -- this.availableSections = this.extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk, includedSectionsMask); -+ this.buffer = new byte[this.calculateChunkSize(chunk, i)]; + this.biomes = chunk.getBiomes().writeBiomes(); + this.buffer = new byte[this.calculateChunkSize(chunk)]; +- this.availableSections = this.extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk); + // Paper start - Anti-Xray - Add chunk packet info + if (chunkPacketInfo != null) { -+ chunkPacketInfo.setData(this.getData()); ++ chunkPacketInfo.setData(this.buffer); + } -+ this.availableSections = this.writeChunk(new FriendlyByteBuf(this.getWriteBuffer()), chunk, i, chunkPacketInfo); ++ this.availableSections = this.extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk, chunkPacketInfo); + // Paper end this.blockEntitiesTags = Lists.newArrayList(); - iterator = chunk.getBlockEntities().entrySet().iterator(); int totalTileEntities = 0; // Paper -@@ -77,7 +94,7 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - BlockEntity tileentity = (BlockEntity) entry.getValue(); - int j = blockposition.getY() >> 4; -- if (this.isFullChunk() || (includedSectionsMask & 1 << j) != 0) { -+ if (this.isFullChunk() || (i & 1 << j) != 0) { - // Paper start - improve oversized chunk data packet handling - if (++totalTileEntities > TE_LIMIT) { - ClientboundBlockEntityDataPacket updatePacket = tileentity.getUpdatePacket(); -@@ -93,8 +110,19 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - this.blockEntitiesTags.add(nbttagcompound); +@@ -70,7 +81,7 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe + if (blockEntity instanceof net.minecraft.world.level.block.entity.SkullBlockEntity) { net.minecraft.world.level.block.entity.SkullBlockEntity.sanitizeTileEntityUUID(compoundTag); } // Paper + this.blockEntitiesTags.add(compoundTag); + } +- ++ chunk.level.chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks + } + + public ClientboundLevelChunkPacket(FriendlyByteBuf buf) { +@@ -120,7 +131,10 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe + return byteBuf; + } + +- public BitSet extractChunkData(FriendlyByteBuf buf, LevelChunk chunk) { ++ // Paper start - Anti-Xray - Add chunk packet info ++ @Deprecated public BitSet extractChunkData(FriendlyByteBuf buf, LevelChunk chunk) { return extractChunkData(buf, chunk, null); } // Notice for updates: Please make sure this method isn't used anywhere ++ public BitSet extractChunkData(FriendlyByteBuf buf, LevelChunk chunk, com.destroystokyo.paper.antixray.ChunkPacketInfo<net.minecraft.world.level.block.state.BlockState> chunkPacketInfo) { ++ // Paper end + BitSet bitSet = new BitSet(); + LevelChunkSection[] levelChunkSections = chunk.getSections(); + int i = 0; +@@ -129,7 +143,7 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe + LevelChunkSection levelChunkSection = levelChunkSections[i]; + if (levelChunkSection != LevelChunk.EMPTY_SECTION && !levelChunkSection.isEmpty()) { + bitSet.set(i); +- levelChunkSection.write(buf); ++ levelChunkSection.write(buf, chunkPacketInfo); // Paper - Anti-Xray - Add chunk packet info } } -+ chunk.world.chunkPacketBlockController.modifyBlocks(this, chunkPacketInfo); // Paper - Anti-Xray - Modify blocks -+ } +@@ -174,4 +188,15 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe + public int[] getBiomes() { + return this.biomes; + } ++ + // Paper start - Async-Anti-Xray - Getter and Setter for the ready flag + @Override + public boolean isReady() { @@ -1123,81 +1105,49 @@ index b587f774c8f88f2a1c3ea489f7e4fe0bbdeb5a41..10dd582b0fff4df27f1113e41c8ee3e2 + + public void setReady(boolean ready) { + this.ready = ready; - } ++ } + // Paper end - - @Override - public void read(FriendlyByteBuf buf) throws IOException { -@@ -160,8 +188,12 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - return bytebuf; - } - -- public int writeChunk(FriendlyByteBuf packetDataSerializer, LevelChunk chunk, int chunkSectionSelector) { return this.extractChunkData(packetDataSerializer, chunk, chunkSectionSelector); } // Paper - OBFHELPER -- public int extractChunkData(FriendlyByteBuf packetdataserializer, LevelChunk chunk, int includedSectionsMask) { -+ // Paper start - Anti-Xray - Add chunk packet info -+ @Deprecated public int writeChunk(FriendlyByteBuf packetDataSerializer, LevelChunk chunk, int chunkSectionSelector) { return this.extractChunkData(packetDataSerializer, chunk, chunkSectionSelector); } // OBFHELPER // Notice for updates: Please make sure this method isn't used anywhere -+ @Deprecated public int extractChunkData(FriendlyByteBuf packetdataserializer, LevelChunk chunk, int includedSectionsMask) { return this.writeChunk(packetdataserializer, chunk, includedSectionsMask, null); } // Notice for updates: Please make sure this method isn't used anywhere -+ public int writeChunk(FriendlyByteBuf packetDataSerializer, LevelChunk chunk, int chunkSectionSelector, ChunkPacketInfo<BlockState> chunkPacketInfo) { return this.a(packetDataSerializer, chunk, chunkSectionSelector, chunkPacketInfo); } // OBFHELPER -+ public int a(FriendlyByteBuf packetdataserializer, LevelChunk chunk, int i, ChunkPacketInfo<BlockState> chunkPacketInfo) { -+ // Paper end - int j = 0; - LevelChunkSection[] achunksection = chunk.getSections(); - int k = 0; -@@ -169,9 +201,9 @@ public class ClientboundLevelChunkPacket implements Packet<ClientGamePacketListe - for (int l = achunksection.length; k < l; ++k) { - LevelChunkSection chunksection = achunksection[k]; - -- if (chunksection != LevelChunk.EMPTY_SECTION && (!this.isFullChunk() || !chunksection.isEmpty()) && (includedSectionsMask & 1 << k) != 0) { -+ if (chunksection != LevelChunk.EMPTY_SECTION && (!this.isFullChunk() || !chunksection.isEmpty()) && (i & 1 << k) != 0) { - j |= 1 << k; -- chunksection.write(packetdataserializer); -+ chunksection.writeChunkSection(packetdataserializer, chunkPacketInfo); // Paper - Anti-Xray - Add chunk packet info - } - } - + } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index cfec04e12dfaeb8852dc129a6a7e68c61dac54b6..b2d668607c2b5122d06fa75f77b3cef44100fe28 100644 +index 480c361c919bbfbebacf9ac94418eac5ed38e233..56dece64f19009583c94569c5713c2ad0c91ae17 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -654,7 +654,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - } +@@ -1444,7 +1444,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - this.markPositionReplaceable(pos); -- return Either.left(new ProtoChunk(pos, UpgradeData.EMPTY)); -+ return Either.left(new ProtoChunk(pos, UpgradeData.EMPTY, this.level)); // Paper - Anti-Xray - Add parameter - }, this.mainThreadExecutor); - } - -@@ -1402,9 +1402,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - - } - -+ private final void sendChunk(ServerPlayer entityplayer, Packet<?>[] apacket, LevelChunk chunk) { this.playerLoadedChunk(entityplayer, apacket, chunk); } // Paper - OBFHELPER private void playerLoadedChunk(ServerPlayer player, Packet<?>[] packets, LevelChunk chunk) { if (packets[0] == null) { -- packets[0] = new ClientboundLevelChunkPacket(chunk, 65535); -+ packets[0] = new ClientboundLevelChunkPacket(chunk, 65535, chunk.world.chunkPacketBlockController.shouldModify(player, chunk, 65535)); // Paper - Anti-Xray - Bypass - packets[1] = new ClientboundLightUpdatePacket(chunk.getPos(), this.lightEngine, true); +- packets[0] = new ClientboundLevelChunkPacket(chunk); ++ packets[0] = new ClientboundLevelChunkPacket(chunk, chunk.level.chunkPacketBlockController.shouldModify(player, chunk)); // Paper - Ani-Xray - Bypass + packets[1] = new ClientboundLightUpdatePacket(chunk.getPos(), this.lightEngine, (BitSet) null, (BitSet) null, true); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index fd7ee4badb383ffb4347d62c00ea2dfa3d76fd12..7a09bc921827958f58290bd3d6f19984bb34a8f6 100644 +index e6ef6d9b6e9a674db1180cae6263537e57b843d3..c5070975be1ceeab20ad0b3bab790426adb5e5fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -204,7 +204,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl - +@@ -292,7 +292,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl // Add env and gen to constructor, WorldData -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, ServerLevelData iworlddataserver, ResourceKey<net.minecraft.world.level.Level> resourcekey, DimensionType dimensionmanager, ChunkProgressListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List<CustomSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) { + // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error - super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getProfiler, false, flag, i, gen, env); -+ super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getProfiler, false, flag, i, gen, env, executor); // Paper pass executor ++ super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getProfiler, false, flag, i, gen, env, executor); // Paper - pass executor this.pvpMode = minecraftserver.isPvpAllowed(); - convertable = convertable_conversionsession; - uuid = WorldUUID.getUUID(convertable_conversionsession.levelPath.toFile()); + this.convertable = convertable_conversionsession; + this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelPath.toFile()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index d97607f2ded4977b253d3afa3bafcbe6d7f98837..af048ab682612233c01f7087d7b8afbf7e58945b 100644 +index f4a056185990181e486f452960159a5287947382..a695e5a0c2e8846333ccb9aea499b5656af35163 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -308,6 +308,8 @@ public class ServerPlayerGameMode { +@@ -49,7 +49,7 @@ import org.bukkit.event.player.PlayerInteractEvent; + public class ServerPlayerGameMode { + + private static final Logger LOGGER = LogManager.getLogger(); +- protected ServerLevel level; ++ public ServerLevel level; // Paper - protected->public + protected final ServerPlayer player; + private GameType gameModeForPlayer; + @Nullable +@@ -314,6 +314,8 @@ public class ServerPlayerGameMode { } } @@ -1207,39 +1157,32 @@ index d97607f2ded4977b253d3afa3bafcbe6d7f98837..af048ab682612233c01f7087d7b8afbf public void destroyAndAck(BlockPos pos, ServerboundPlayerActionPacket.Action action, String reason) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index eb88d830fb45a6b8c990e8bdc1943d80f63c8b93..1377465e3dc062f34be25cac10aa018776fb22e7 100644 +index aa198e9f2755734eac591bd3f94679518e9d7270..687e3652d0f36a358a2348df845801ad82d8460c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -2,6 +2,8 @@ package net.minecraft.world.level; - - import co.aikar.timings.Timing; - import co.aikar.timings.Timings; -+import com.destroystokyo.paper.antixray.ChunkPacketBlockController; // Paper - Anti-Xray -+import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray; // Paper - Anti-Xray - import com.destroystokyo.paper.event.server.ServerExceptionEvent; - import com.destroystokyo.paper.exception.ServerInternalException; - import com.google.common.base.MoreObjects; -@@ -144,6 +146,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -164,6 +164,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper -+ public final ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray ++ public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot -@@ -165,9 +168,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return typeKey; +@@ -185,9 +186,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + return this.typeKey; } - protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, final DimensionType dimensionmanager, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) { + protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, final DimensionType dimensionmanager, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper -+ this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray ++ this.chunkPacketBlockController = this.paperConfig.antiXray ? ++ new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) ++ : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, env); this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit -@@ -433,6 +437,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -448,6 +452,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit end BlockState iblockdata1 = chunk.setType(pos, state, (flags & 64) != 0, (flags & 1024) == 0); // CraftBukkit custom NO_PLACE flag @@ -1247,131 +1190,98 @@ index eb88d830fb45a6b8c990e8bdc1943d80f63c8b93..1377465e3dc062f34be25cac10aa0187 if (iblockdata1 == null) { // CraftBukkit start - remove blockstate if failed (or the same) +diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +index c0075d226331f32e470dae5bf1ce8d79e8b263dc..91f5106cfe7914389b52a1ed001117b13e4f9768 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java ++++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +@@ -75,6 +75,7 @@ public interface ChunkAccess extends BlockGetter, FeatureAccess { + default LevelChunkSection getOrCreateSection(int yIndex) { + LevelChunkSection[] levelChunkSections = this.getSections(); + if (levelChunkSections[yIndex] == LevelChunk.EMPTY_SECTION) { ++ // Paper - diff on change in ProtoChunk + levelChunkSections[yIndex] = new LevelChunkSection(this.getSectionYFromSectionIndex(yIndex)); + } + diff --git a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -index e369730ac6909ff5343468bd685c9ea2b6b3cfed..2c19d147710a3bbe2e980114161f1cdf81760947 100644 +index 69c2454533e6f21c70792b555ec02c6bc6d169b3..2607c7ba5cf1aca5f3e5c22be2e4e8b3007427d4 100644 --- a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -@@ -8,6 +8,7 @@ import net.minecraft.Util; - import net.minecraft.core.BlockPos; - import net.minecraft.core.Registry; - import net.minecraft.data.worldgen.biome.Biomes; -+import net.minecraft.server.MinecraftServer; - import net.minecraft.server.level.ChunkHolder; - import net.minecraft.world.entity.Entity; - import net.minecraft.world.level.ChunkPos; -@@ -28,7 +29,7 @@ public class EmptyLevelChunk extends LevelChunk { - }); +@@ -86,7 +86,7 @@ public class EmptyLevelChunk extends LevelChunk { + private static final Biome[] EMPTY_BIOMES = new Biome[0]; - public EmptyLevelChunk(Level world, ChunkPos pos) { -- super(world, pos, new ChunkBiomeContainer(world.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), EmptyLevelChunk.BIOMES)); -+ super(world, pos, new ChunkBiomeContainer(MinecraftServer.getServer().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), EmptyLevelChunk.BIOMES)); // Paper - world isnt ready yet for anti xray use here, use server singleton for registry - } - - // Paper start -diff --git a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -index 17fa8b23d1000ae53f2b4f1a6e8817c1005c1c81..56ab660e29a0dc7d22eeaa41cc8f50e8a96717ef 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -+++ b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java -@@ -27,7 +27,7 @@ public class ImposterProtoChunk extends ProtoChunk { - private final LevelChunk wrapped; - - public ImposterProtoChunk(LevelChunk wrapped) { -- super(wrapped.getPos(), UpgradeData.EMPTY); -+ super(wrapped.getPos(), UpgradeData.EMPTY, wrapped.world); // Paper - Anti-Xray - Add parameter - this.wrapped = wrapped; - } + public EmptyChunkBiomeContainer(Level world) { +- super(world.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), world, EMPTY_BIOMES); ++ super(net.minecraft.server.MinecraftServer.getServer().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), world, EMPTY_BIOMES); // Paper - world isnt ready yet for anti xray use here, use server singleton for registry + } + @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 419b4bf0549d798d52d73fbbd9de59313fc05eb1..85861545ec4620a6cfd06876dad091637bd29b0b 100644 +index 521f199e495f3bec232cc9ca36e51e0392afe737..d4e11b552988f0ef28059f9aa2ca1f1897653171 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -464,7 +464,7 @@ public class LevelChunk implements ChunkAccess { +@@ -456,7 +456,7 @@ public class LevelChunk implements ChunkAccess { return null; } -- chunksection = new LevelChunkSection(j >> 4 << 4); -+ chunksection = new LevelChunkSection(j >> 4 << 4, this, this.world, true); // Paper - Anti-Xray - Add parameters - this.sections[j >> 4] = chunksection; +- chunksection = new LevelChunkSection(SectionPos.blockToSectionCoord(i)); ++ chunksection = new LevelChunkSection(SectionPos.blockToSectionCoord(i), this, this.level, true); // Paper - Anti-Xray - Add parameters + this.sections[j] = chunksection; } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index f5db97fb0dac78e1d9aa68d0417aa13f39914f52..38c7c5f18fc84d4a1de2da1ddc6d3ac37c25f341 100644 +index 5fd66020a937b641e2a060cf38df731a43f3bf55..b10beabccf5a29098a796e5615eb4632fae95f99 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -@@ -1,9 +1,11 @@ - package net.minecraft.world.level.chunk; - - import java.util.function.Predicate; -+import com.destroystokyo.paper.antixray.ChunkPacketInfo; // Paper - Anti-Xray - Add chunk packet info - import javax.annotation.Nullable; - import net.minecraft.nbt.NbtUtils; - import net.minecraft.network.FriendlyByteBuf; -+import net.minecraft.world.level.Level; - import net.minecraft.world.level.block.Block; - import net.minecraft.world.level.block.Blocks; - import net.minecraft.world.level.block.state.BlockState; -@@ -18,16 +20,22 @@ public class LevelChunkSection { +@@ -20,16 +20,25 @@ public class LevelChunkSection { private short tickingFluidCount; final PalettedContainer<BlockState> states; // Paper - package-private - public LevelChunkSection(int yOffset) { -- this(yOffset, (short) 0, (short) 0, (short) 0); +- this(yOffset, (short)0, (short)0, (short)0); + // Paper start - Anti-Xray - Add parameters + @Deprecated public LevelChunkSection(int yOffset) { this(yOffset, null, null, true); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public LevelChunkSection(int i, ChunkAccess chunk, Level world, boolean initializeBlocks) { -+ this(i, (short) 0, (short) 0, (short) 0, chunk, world, initializeBlocks); ++ public LevelChunkSection(int yOffset, ChunkAccess chunk, net.minecraft.server.level.ServerLevel world, boolean initializeBlocks) { + // Paper end ++ this(yOffset, (short) 0, (short) 0, (short) 0, chunk, world, initializeBlocks); } - public LevelChunkSection(int yOffset, short nonEmptyBlockCount, short randomTickableBlockCount, short nonEmptyFluidCount) { -- this.bottomBlockY = yOffset; -- this.nonEmptyBlockCount = nonEmptyBlockCount; -- this.tickingBlockCount = randomTickableBlockCount; -- this.tickingFluidCount = nonEmptyFluidCount; -- this.states = new PalettedContainer<>(LevelChunkSection.GLOBAL_BLOCKSTATE_PALETTE, Block.BLOCK_STATE_REGISTRY, NbtUtils::readBlockState, NbtUtils::writeBlockState, Blocks.AIR.defaultBlockState()); + // Paper start - Anti-Xray - Add parameters -+ @Deprecated public LevelChunkSection(int yOffset, short nonEmptyBlockCount, short randomTickableBlockCount, short nonEmptyFluidCount) { this(yOffset, nonEmptyBlockCount, randomTickableBlockCount, nonEmptyFluidCount, null, null, true); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public LevelChunkSection(int i, short short0, short short1, short short2, ChunkAccess chunk, Level world, boolean initializeBlocks) { ++ @Deprecated public LevelChunkSection(int yOffset, short nonEmptyBlockCount, short randomTickableBlockCount, short nonEmptyFluidCount) { // Notice for updates: Please make sure this constructor isn't used anywhere ++ this(yOffset, nonEmptyBlockCount, randomTickableBlockCount, nonEmptyFluidCount, null, null, true); ++ } ++ public LevelChunkSection(int yOffset, short nonEmptyBlockCount, short randomTickableBlockCount, short nonEmptyFluidCount, ChunkAccess chunk, net.minecraft.server.level.ServerLevel world, boolean initializeBlocks) { + // Paper end -+ this.bottomBlockY = i; -+ this.nonEmptyBlockCount = short0; -+ this.tickingBlockCount = short1; -+ this.tickingFluidCount = short2; -+ this.states = new PalettedContainer<>(LevelChunkSection.GLOBAL_BLOCKSTATE_PALETTE, Block.BLOCK_STATE_REGISTRY, NbtUtils::readBlockState, NbtUtils::writeBlockState, Blocks.AIR.defaultBlockState(), world == null ? null : world.chunkPacketBlockController.getPredefinedBlockData(world, chunk, this, initializeBlocks), initializeBlocks); // Paper - Anti-Xray - Add predefined block data + this.bottomBlockY = getBottomBlockY(yOffset); + this.nonEmptyBlockCount = nonEmptyBlockCount; + this.tickingBlockCount = randomTickableBlockCount; + this.tickingFluidCount = nonEmptyFluidCount; +- this.states = new PalettedContainer<>(GLOBAL_BLOCKSTATE_PALETTE, Block.BLOCK_STATE_REGISTRY, NbtUtils::readBlockState, NbtUtils::writeBlockState, Blocks.AIR.defaultBlockState()); ++ this.states = new PalettedContainer<>(GLOBAL_BLOCKSTATE_PALETTE, Block.BLOCK_STATE_REGISTRY, NbtUtils::readBlockState, NbtUtils::writeBlockState, Blocks.AIR.defaultBlockState(), ++ world == null ? null : world.chunkPacketBlockController.getPredefinedBlockData(world, chunk, this, initializeBlocks), initializeBlocks); // Paper - Anti-Xray - Add predefined block data } - public final BlockState getBlockState(int x, int y, int z) { // Paper -@@ -139,10 +147,14 @@ public class LevelChunkSection { - return this.states; + public static int getBottomBlockY(int chunkPos) { +@@ -147,9 +156,12 @@ public class LevelChunkSection { + this.states.read(buf); } -- public void writeChunkSection(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // Paper - OBFHELPER -- public void write(FriendlyByteBuf packetdataserializer) { -+ // Paper start - Anti-Xray - Add chunk packet info -+ @Deprecated public final void writeChunkSection(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // OBFHELPER // Notice for updates: Please make sure this method isn't used anywhere -+ @Deprecated public final void write(FriendlyByteBuf packetdataserializer) { this.writeChunkSection(packetdataserializer, null); } // Notice for updates: Please make sure this method isn't used anywhere -+ public final void writeChunkSection(FriendlyByteBuf packetDataSerializer, ChunkPacketInfo<BlockState> chunkPacketInfo) { this.b(packetDataSerializer, chunkPacketInfo); } // OBFHELPER -+ public void b(FriendlyByteBuf packetdataserializer, ChunkPacketInfo<BlockState> chunkPacketInfo) { +- public void write(FriendlyByteBuf buf) { ++ // Paper start ++ @Deprecated public void write(FriendlyByteBuf buf) { write(buf, null); } // Notice for updates: Please make sure this method isn't used anywhere ++ public void write(FriendlyByteBuf buf, com.destroystokyo.paper.antixray.ChunkPacketInfo<BlockState> chunkPacketInfo) { + // Paper end - packetdataserializer.writeShort(this.nonEmptyBlockCount); -- this.states.write(packetdataserializer); -+ this.states.writeDataPaletteBlock(packetdataserializer, chunkPacketInfo, this.bottomBlockY >> 4); // Paper - Anti-Xray - Add chunk packet info + buf.writeShort(this.nonEmptyBlockCount); +- this.states.write(buf); ++ this.states.write(buf, chunkPacketInfo, this.bottomBlockY >> 4); // Paper - Anti-Xray - Add chunk packet info } public int getSerializedSize() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 917b0a64083ebbe24321089b784b91f3af4918b9..dd252372e1e380674b1191e9ea265cbb10de437b 100644 +index 5ea60bbb56450502f1ceb41959239ab579458ac2..efe4d45b431890e4821f977b8f9fafdab7de3be2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -1,6 +1,7 @@ - package net.minecraft.world.level.chunk; - - import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; -+import com.destroystokyo.paper.antixray.ChunkPacketInfo; // Paper - Anti-Xray - Add chunk packet info - import java.util.Arrays; - import java.util.Objects; - import java.util.concurrent.locks.ReentrantLock; -@@ -26,6 +27,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -28,6 +28,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { private final Function<CompoundTag, T> reader; private final Function<T, CompoundTag> writer; private final T defaultValue; @@ -1379,26 +1289,23 @@ index 917b0a64083ebbe24321089b784b91f3af4918b9..dd252372e1e380674b1191e9ea265cbb protected BitStorage storage; public final BitStorage getDataBits() { return this.storage; } // Paper - OBFHELPER private Palette<T> palette; private Palette<T> getDataPalette() { return this.palette; } // Paper - OBFHELPER private int bits; private int getBitsPerObject() { return this.bits; } // Paper - OBFHELPER -@@ -50,14 +52,47 @@ public class PalettedContainer<T> implements PaletteResize<T> { - //this.j.unlock(); // Paper - disable this +@@ -48,15 +49,51 @@ public class PalettedContainer<T> implements PaletteResize<T> { + this.lock.release(); } - public PalettedContainer(Palette<T> fallbackPalette, IdMapper<T> idList, Function<CompoundTag, T> elementDeserializer, Function<T, CompoundTag> elementSerializer, T defaultElement) { -- this.globalPalette = fallbackPalette; -- this.registry = idList; -- this.reader = elementDeserializer; -- this.writer = elementSerializer; -- this.defaultValue = defaultElement; -- this.setBits(4); + // Paper start - Anti-Xray - Add predefined objects -+ @Deprecated public PalettedContainer(Palette<T> fallbackPalette, IdMapper<T> idList, Function<CompoundTag, T> elementDeserializer, Function<T, CompoundTag> elementSerializer, T defaultElement) { this(fallbackPalette, idList, elementDeserializer, elementSerializer, defaultElement, null, true); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public PalettedContainer(Palette<T> datapalette, IdMapper<T> registryblockid, Function<CompoundTag, T> function, Function<T, CompoundTag> function1, T t0, T[] predefinedObjects, boolean initialize) { ++ @Deprecated public PalettedContainer(Palette<T> fallbackPalette, IdMapper<T> idList, Function<CompoundTag, T> elementDeserializer, Function<T, CompoundTag> elementSerializer, T defaultElement) { // Notice for updates: Please make sure this constructor isn't used anywhere ++ this(fallbackPalette, idList, elementDeserializer, elementSerializer, defaultElement, null, true); ++ } ++ public PalettedContainer(Palette<T> fallbackPalette, IdMapper<T> idList, Function<CompoundTag, T> elementDeserializer, Function<T, CompoundTag> elementSerializer, T defaultElement, T[] predefinedObjects, boolean initialize) { + // Paper end -+ this.globalPalette = datapalette; -+ this.registry = registryblockid; -+ this.reader = function; -+ this.writer = function1; -+ this.defaultValue = t0; + this.globalPalette = fallbackPalette; + this.registry = idList; + this.reader = elementDeserializer; + this.writer = elementSerializer; + this.defaultValue = defaultElement; + this.setBits(4); + // Paper start - Anti-Xray - Add predefined objects + this.predefinedObjects = predefinedObjects; + @@ -1420,168 +1327,119 @@ index 917b0a64083ebbe24321089b784b91f3af4918b9..dd252372e1e380674b1191e9ea265cbb + } + } + // Paper end -+ } -+ + } + + // Paper start - Anti-Xray - Add predefined objects + private void addPredefinedObjects() { -+ if (this.predefinedObjects != null && this.getDataPalette() != this.getDataPaletteGlobal()) { -+ for (int i = 0; i < this.predefinedObjects.length; i++) { -+ this.getDataPalette().getOrCreateIdFor(this.predefinedObjects[i]); ++ if (this.predefinedObjects != null && this.palette != this.globalPalette) { ++ for (T predefinedObject : this.predefinedObjects) { ++ this.palette.getOrCreateIdFor(predefinedObject); + } + } - } ++ } + // Paper end - ++ private static int getIndex(int x, int y, int z) { return y << 8 | z << 4 | x; -@@ -92,6 +127,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { - - int j; + } +@@ -86,6 +123,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { + Palette<T> palette = this.palette; + this.setBits(newSize); + this.addPredefinedObjects(); // Paper - Anti-Xray - Add predefined objects - for (j = 0; j < databits.getSize(); ++j) { - T t1 = datapalette.valueFor(databits.get(j)); - -@@ -141,24 +177,38 @@ public class PalettedContainer<T> implements PaletteResize<T> { - return t0 == null ? this.defaultValue : t0; + for(int i = 0; i < bitStorage.getSize(); ++i) { + T object = palette.valueFor(bitStorage.get(i)); + if (object != null) { +@@ -161,11 +199,24 @@ public class PalettedContainer<T> implements PaletteResize<T> { } -- public void writeDataPaletteBlock(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // Paper - OBFHELPER -- public synchronized void write(FriendlyByteBuf buf) { // Paper - synchronize + public void writeDataPaletteBlock(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // Paper - OBFHELPER +- public void write(FriendlyByteBuf buf) { + // Paper start - Anti-Xray - Add chunk packet info -+ @Deprecated public void writeDataPaletteBlock(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // OBFHELPER // Notice for updates: Please make sure this method isn't used anywhere -+ @Deprecated public void write(FriendlyByteBuf buf) { this.writeDataPaletteBlock(buf, null, 0); } // Notice for updates: Please make sure this method isn't used anywhere -+ public void writeDataPaletteBlock(FriendlyByteBuf packetDataSerializer, ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { this.b(packetDataSerializer, chunkPacketInfo, chunkSectionIndex); } // OBFHELPER -+ public synchronized void b(FriendlyByteBuf packetdataserializer, ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { // Paper - synchronize ++ @Deprecated public void write(FriendlyByteBuf buf) { ++ write(buf, null, 0); ++ } ++ public void write(FriendlyByteBuf buf, com.destroystokyo.paper.antixray.ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { + // Paper end - this.acquire(); -- buf.writeByte(this.bits); -- this.palette.write(buf); -- buf.writeLongArray(this.storage.getRaw()); -+ packetdataserializer.writeByte(this.bits); -+ this.palette.write(packetdataserializer); -+ // Paper start - Anti-Xray - Add chunk packet info -+ if (chunkPacketInfo != null) { -+ chunkPacketInfo.setBitsPerObject(chunkSectionIndex, this.getBitsPerObject()); -+ chunkPacketInfo.setDataPalette(chunkSectionIndex, this.getDataPalette()); -+ chunkPacketInfo.setDataBitsIndex(chunkSectionIndex, packetdataserializer.writerIndex() + FriendlyByteBuf.countBytes(this.getDataBits().getDataBits().length)); -+ chunkPacketInfo.setPredefinedObjects(chunkSectionIndex, this.predefinedObjects); -+ } -+ // Paper end -+ packetdataserializer.writeLongArray(this.storage.getRaw()); - this.release(); - } + try { + this.acquire(); + buf.writeByte(this.bits); + this.palette.write(buf); ++ // Paper start - Anti-Xray - Add chunk packet info ++ if (chunkPacketInfo != null) { ++ chunkPacketInfo.setBitsPerObject(chunkSectionIndex, this.bits); ++ chunkPacketInfo.setDataPalette(chunkSectionIndex, this.palette); ++ chunkPacketInfo.setDataBitsIndex(chunkSectionIndex, buf.writerIndex() + FriendlyByteBuf.getVarIntSize(this.storage.getDataBits().length)); ++ chunkPacketInfo.setPredefinedObjects(chunkSectionIndex, this.predefinedObjects); ++ } ++ // Paper end + buf.writeLongArray(this.storage.getRaw()); + } finally { + this.release(); +@@ -176,12 +227,14 @@ public class PalettedContainer<T> implements PaletteResize<T> { + public void read(ListTag paletteNbt, long[] data) { + try { + this.acquire(); +- int i = Math.max(4, Mth.ceillog2(paletteNbt.size())); +- if (i != this.bits) { ++ // Paper - Anti-Xray - TODO: Should this.predefinedObjects.length just be added here (faster) or should the contents be compared to calculate the size (less RAM)? ++ int i = Math.max(4, Mth.ceillog2(paletteNbt.size() + (this.predefinedObjects == null ? 0 : this.predefinedObjects.length))); // Paper - Anti-Xray - Calculate the size with predefined objects ++ if (true || i != this.bits) { // Paper - Anti-Xray - Not initialized yet + this.setBits(i); + } - public synchronized void read(ListTag paletteTag, long[] data) { // Paper - synchronize - this.acquire(); -- int i = Math.max(4, Mth.ceillog2(paletteTag.size())); -+ // Paper - Anti-Xray - TODO: Should this.predefinedObjects.length just be added here (faster) or should the contents be compared to calculate the size (less RAM)? -+ int i = Math.max(4, Mth.ceillog2(paletteTag.size() + (this.predefinedObjects == null ? 0 : this.predefinedObjects.length))); // Paper - Anti-Xray - Calculate the size with predefined objects - -- if (i != this.bits) { -+ if (true || i != this.bits) { // Paper - Anti-Xray - Not initialized yet - this.setBits(i); - } - - this.palette.read(paletteTag); -+ this.addPredefinedObjects(); // Paper - Anti-Xray - Add predefined objects - int j = data.length * 64 / 4096; - - if (this.palette == this.globalPalette) { + this.palette.read(paletteNbt); ++ this.addPredefinedObjects(); // Paper - Anti-Xray - Add predefined objects + int j = data.length * 64 / 4096; + if (this.palette == this.globalPalette) { + Palette<T> palette = new HashMapPalette<>(this.registry, i, this.dummyPaletteResize, this.reader, this.writer); diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -index d8b7b210484079c9ca2c34831c84102cba6692f5..87fd585141ad9818fca0b697cb4c87248fe7ce11 100644 +index 245998e2cea32cf15ee2659639c647f449704ec0..cd41b9ee682248a9abde1bf046e54c7e6e485470 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java -@@ -64,16 +64,24 @@ public class ProtoChunk implements ChunkAccess { +@@ -63,7 +63,7 @@ public class ProtoChunk implements ChunkAccess { private long inhabitedTime; - private final Map<GenerationStep.Carving, BitSet> carvingMasks; + private final Map<GenerationStep.Carving, BitSet> carvingMasks = new Object2ObjectArrayMap<>(); private volatile boolean isLightCorrect; -+ private final Level world; // Paper - Anti-Xray - Add world +- final net.minecraft.world.level.Level level; // Paper - Add level ++ final net.minecraft.server.level.ServerLevel level; // Paper - Add level -- public ProtoChunk(ChunkPos pos, UpgradeData upgradeData) { -- this(pos, upgradeData, (LevelChunkSection[]) null, new ProtoTickList<>((block) -> { -+ // Paper start - Anti-Xray - Add world -+ @Deprecated public ProtoChunk(ChunkPos pos, UpgradeData upgradeData) { this(pos, upgradeData, null); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public ProtoChunk(ChunkPos chunkcoordintpair, UpgradeData chunkconverter, Level world) { -+ // Paper end -+ this(chunkcoordintpair, chunkconverter, (LevelChunkSection[]) null, new ProtoTickList<>((block) -> { - return block == null || block.defaultBlockState().isAir(); -- }, pos), new ProtoTickList<>((fluidtype) -> { -+ }, chunkcoordintpair), new ProtoTickList<>((fluidtype) -> { - return fluidtype == null || fluidtype == Fluids.EMPTY; -- }, pos)); -+ }, chunkcoordintpair), world); // Paper - Anti-Xray - Add world + // Paper start - add level + @Deprecated public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) { this(pos, upgradeData, world, null); } +@@ -506,4 +506,15 @@ public class ProtoChunk implements ChunkAccess { + public int getHeight() { + return this.levelHeightAccessor.getHeight(); } - -- public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] sections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler) { -+ // Paper start - Anti-Xray - Add world -+ @Deprecated public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] sections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler) { this(pos, upgradeData, sections, blockTickScheduler, fluidTickScheduler, null); } // Notice for updates: Please make sure this constructor isn't used anywhere -+ public ProtoChunk(ChunkPos chunkcoordintpair, UpgradeData chunkconverter, @Nullable LevelChunkSection[] achunksection, ProtoTickList<Block> protochunkticklist, ProtoTickList<Fluid> protochunkticklist1, Level world) { -+ this.world = world; -+ // Paper end - this.heightmaps = Maps.newEnumMap(Heightmap.Types.class); - this.status = ChunkStatus.EMPTY; - this.blockEntities = Maps.newHashMap(); -@@ -85,15 +93,15 @@ public class ProtoChunk implements ChunkAccess { - this.structureStarts = Maps.newHashMap(); - this.structuresRefences = Maps.newHashMap(); - this.carvingMasks = new Object2ObjectArrayMap(); -- this.chunkPos = pos; -- this.upgradeData = upgradeData; -- this.blockTicks = blockTickScheduler; -- this.liquidTicks = fluidTickScheduler; -- if (sections != null) { -- if (this.sections.length == sections.length) { -- System.arraycopy(sections, 0, this.sections, 0, this.sections.length); -+ this.chunkPos = chunkcoordintpair; -+ this.upgradeData = chunkconverter; -+ this.blockTicks = protochunkticklist; -+ this.liquidTicks = protochunkticklist1; -+ if (achunksection != null) { -+ if (this.sections.length == achunksection.length) { -+ System.arraycopy(achunksection, 0, this.sections, 0, this.sections.length); - } else { -- ProtoChunk.LOGGER.warn("Could not set level chunk sections, array length is {} instead of {}", sections.length, this.sections.length); -+ ProtoChunk.LOGGER.warn("Could not set level chunk sections, array length is {} instead of {}", achunksection.length, this.sections.length); - } - } - -@@ -228,7 +236,7 @@ public class ProtoChunk implements ChunkAccess { - - public LevelChunkSection getOrCreateSection(int y) { - if (this.sections[y] == LevelChunk.EMPTY_SECTION) { -- this.sections[y] = new LevelChunkSection(y << 4); -+ this.sections[y] = new LevelChunkSection(y << 4, this, this.world, true); // Paper - Anti-Xray - Add parameters - } - - return this.sections[y]; ++ ++ @Override ++ public net.minecraft.world.level.chunk.LevelChunkSection getOrCreateSection(final int yIndex) { ++ LevelChunkSection[] levelChunkSections = this.getSections(); ++ if (levelChunkSections[yIndex] == LevelChunk.EMPTY_SECTION) { ++ // Paper - diff on change in ProtoChunk ++ levelChunkSections[yIndex] = new LevelChunkSection(this.getSectionYFromSectionIndex(yIndex), this, this.level, true); // Paper - Anti-Xray - Add parameters ++ } ++ ++ return levelChunkSections[yIndex]; ++ } + } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 969130442b529eaac6f708107ff129f89cc0af90..8dbd1dc2de400ad0c6c2be49ba09dfc03216ffd2 100644 +index 7c04aef3eac54981ca1e34cb87d97104c3c9685b..097d38f12ef324dbb529a833383e2da949377f9c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -@@ -101,7 +101,7 @@ public class ChunkSerializer { +@@ -136,7 +136,7 @@ public class ChunkSerializer { byte b0 = nbttagcompound2.getByte("Y"); if (nbttagcompound2.contains("Palette", 9) && nbttagcompound2.contains("BlockStates", 12)) { -- LevelChunkSection chunksection = new LevelChunkSection(b0 << 4); -+ LevelChunkSection chunksection = new LevelChunkSection(b0 << 4, null, world, false); // Paper - Anti-Xray - Add parameters +- LevelChunkSection chunksection = new LevelChunkSection(b0); ++ LevelChunkSection chunksection = new LevelChunkSection(b0, null, world, false); // Paper - Anti-Xray - Add parameters chunksection.getStates().read(nbttagcompound2.getList("Palette", 10), nbttagcompound2.getLongArray("BlockStates")); chunksection.recalcBlockCounts(); -@@ -165,7 +165,7 @@ public class ChunkSerializer { - // CraftBukkit end - }); - } else { -- ProtoChunk protochunk = new ProtoChunk(pos, chunkconverter, achunksection, protochunkticklist, protochunkticklist1); -+ ProtoChunk protochunk = new ProtoChunk(pos, chunkconverter, achunksection, protochunkticklist, protochunkticklist1, world); // Paper - Anti-Xray - Add parameter - - protochunk.setBiomes(biomestorage); - object = protochunk; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 423594177fe78600755d913f169f28dd1bfa2b37..74bad15034d9d55fb70931f38868f812160c6305 100644 +index 245d764d3dcc549fa8acbd7c9024a3c88d2d2a74..4dd7cea1eec5ec55a3700ce9786da8a513e72a28 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -43,7 +43,7 @@ public class CraftChunk implements Chunk { +@@ -46,7 +46,7 @@ public class CraftChunk implements Chunk { private final ServerLevel worldServer; private final int x; private final int z; @@ -1590,7 +1448,7 @@ index 423594177fe78600755d913f169f28dd1bfa2b37..74bad15034d9d55fb70931f38868f812 private static final byte[] emptyLight = new byte[2048]; public CraftChunk(net.minecraft.world.level.chunk.LevelChunk chunk) { -@@ -287,7 +287,7 @@ public class CraftChunk implements Chunk { +@@ -275,7 +275,7 @@ public class CraftChunk implements Chunk { CompoundTag data = new CompoundTag(); cs[i].getStates().write(data, "Palette", "BlockStates"); @@ -1600,27 +1458,27 @@ index 423594177fe78600755d913f169f28dd1bfa2b37..74bad15034d9d55fb70931f38868f812 sectionBlockIDs[i] = blockids; diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -index a94c65f4d63a06be099fd67b0b7756c5b45b84a0..8d72cd6a44cf462cfe3adac9bf99a16883a587df 100644 +index 3d905c98704da64cefd009b2c796b24e729396a5..fe7851476636dfed02339d4d9f93824b96086769 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -@@ -21,9 +21,11 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { +@@ -22,9 +22,11 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { private final int maxHeight; private final LevelChunkSection[] sections; private Set<BlockPos> tiles; + private World world; // Paper - Anti-Xray - Add world public CraftChunkData(World world) { - this(world.getMaxHeight()); + this(world.getMinHeight(), world.getMaxHeight()); + this.world = world; // Paper - Anti-Xray - Add world } - /* pp for tests */ CraftChunkData(int maxHeight) { -@@ -157,7 +159,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { - private LevelChunkSection getChunkSection(int y, boolean create) { - LevelChunkSection section = sections[y >> 4]; + /* pp for tests */ CraftChunkData(int minHeight, int maxHeight) { +@@ -162,7 +164,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { + int offset = (y - this.minHeight) >> 4; + LevelChunkSection section = this.sections[offset]; if (create && section == null) { -- sections[y >> 4] = section = new LevelChunkSection(y >> 4 << 4); -+ sections[y >> 4] = section = new LevelChunkSection(y >> 4 << 4, null, world instanceof org.bukkit.craftbukkit.CraftWorld ? ((org.bukkit.craftbukkit.CraftWorld) world).getHandle() : null, true); // Paper - Anti-Xray - Add parameters +- this.sections[offset] = section = new LevelChunkSection(offset + (this.minHeight >> 4)); ++ this.sections[offset] = section = new LevelChunkSection(offset + (this.minHeight >> 4), null, world instanceof org.bukkit.craftbukkit.CraftWorld ? ((org.bukkit.craftbukkit.CraftWorld) world).getHandle() : null, true); // Paper - Anti-Xray - Add parameters } return section; } diff --git a/patches/server/0364-No-Tick-view-distance-implementation.patch b/patches/server/0365-No-Tick-view-distance-implementation.patch similarity index 98% rename from patches/server/0364-No-Tick-view-distance-implementation.patch rename to patches/server/0365-No-Tick-view-distance-implementation.patch index 96b59e1789..ef60b4aa37 100644 --- a/patches/server/0364-No-Tick-view-distance-implementation.patch +++ b/patches/server/0365-No-Tick-view-distance-implementation.patch @@ -23,20 +23,21 @@ index f27fadc15cb7f5c782e45885ec6a5a69963beade..2ff4d4921e2076abf415bd3c8f5173ec })); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index e29566cad2647da4d9288e912188b57f00e8dd0c..3cd8895adecd345c3bdfb8b5e3e9fdf0ef9097db 100644 +index 51691d3dedf113d58f340b74d448c5e5375b5bed..b2f0102c2a15eb4324367f52e03e534bff883f9b 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -445,5 +445,10 @@ public class PaperWorldConfig { - private void lightQueueSize() { +@@ -448,6 +448,11 @@ public class PaperWorldConfig { lightQueueSize = getInt("light-queue-size", lightQueueSize); } -+ + + public int noTickViewDistance; + private void viewDistance() { + this.noTickViewDistance = this.getInt("viewdistances.no-tick-view-distance", -1); + } - } - ++ + public boolean antiXray; + public EngineMode engineMode; + public int maxChunkSectionIndex; diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java index bb0a07a280c7d4885165e9d6488e7741aaa7b47c..9c88426ab1275ee5fb6e28be8b213533dc4ab859 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java @@ -144,7 +145,7 @@ index 3653ec6f93d627092e63cede51f4db2e12b10613..995d7977233f0d7683c00a75c3833f9a public CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> getOrScheduleFuture(ChunkStatus targetStatus, ChunkMap chunkStorage) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 480c361c919bbfbebacf9ac94418eac5ed38e233..fdf5d8ede4b01e399272ddebfbd49258b166f00b 100644 +index 56dece64f19009583c94569c5713c2ad0c91ae17..b0cf6e186d7030b1aa9296671683bd33e2d15579 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -122,7 +122,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -486,7 +487,7 @@ index 480c361c919bbfbebacf9ac94418eac5ed38e233..fdf5d8ede4b01e399272ddebfbd49258 + + public void playerLoadedChunk(ServerPlayer player, Packet<?>[] packets, LevelChunk chunk) { // Paper - private -> public if (packets[0] == null) { - packets[0] = new ClientboundLevelChunkPacket(chunk); + packets[0] = new ClientboundLevelChunkPacket(chunk, chunk.level.chunkPacketBlockController.shouldModify(player, chunk)); // Paper - Ani-Xray - Bypass packets[1] = new ClientboundLightUpdatePacket(chunk.getPos(), this.lightEngine, (BitSet) null, (BitSet) null, true); diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java index 45c7ebe67019cdbe88b6617a95d5c40d3a68286c..38eebda226e007c8910e04f502ce218cdfe1d456 100644 @@ -556,10 +557,10 @@ index bcc946d2747443c34ee8ac2485a5ab41773c93af..2730923bd0bf3b0f928765b9e09e2299 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index aa198e9f2755734eac591bd3f94679518e9d7270..507a70521a97c463d6fd22b788c39e9f458971c3 100644 +index 687e3652d0f36a358a2348df845801ad82d8460c..4eee8156d193f59b7e28499f492f81247c4b1591 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -522,8 +522,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -527,8 +527,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.setBlocksDirty(blockposition, iblockdata1, iblockdata2); } @@ -575,7 +576,7 @@ index aa198e9f2755734eac591bd3f94679518e9d7270..507a70521a97c463d6fd22b788c39e9f if ((i & 1) != 0) { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 521f199e495f3bec232cc9ca36e51e0392afe737..922026da8c234427e0322443004d3c32993adfce 100644 +index d4e11b552988f0ef28059f9aa2ca1f1897653171..f6b591f045ae992180806fd6aba309c0d04e722b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -33,7 +33,10 @@ import net.minecraft.core.Registry; diff --git a/patches/server/0365-Implement-alternative-item-despawn-rate.patch b/patches/server/0366-Implement-alternative-item-despawn-rate.patch similarity index 76% rename from patches/server/0365-Implement-alternative-item-despawn-rate.patch rename to patches/server/0366-Implement-alternative-item-despawn-rate.patch index 5db80421d3..889c22011c 100644 --- a/patches/server/0365-Implement-alternative-item-despawn-rate.patch +++ b/patches/server/0366-Implement-alternative-item-despawn-rate.patch @@ -5,44 +5,29 @@ Subject: [PATCH] Implement alternative item-despawn-rate diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 3cd8895adecd345c3bdfb8b5e3e9fdf0ef9097db..be4a36df28d4f16727daad1270d5c3a84ae94613 100644 +index b2f0102c2a15eb4324367f52e03e534bff883f9b..3f4a9ce31981f77b1c451a5d9ba91d6c9ab67587 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -1,8 +1,13 @@ - package com.destroystokyo.paper; - -+import java.util.EnumMap; -+import java.util.HashMap; - import java.util.List; -+import java.util.Map; - - import org.bukkit.Bukkit; -+import org.bukkit.Material; -+import org.bukkit.configuration.ConfigurationSection; - import org.bukkit.configuration.file.YamlConfiguration; - import org.spigotmc.SpigotWorldConfig; - -@@ -450,5 +455,53 @@ public class PaperWorldConfig { - private void viewDistance() { +@@ -453,6 +453,54 @@ public class PaperWorldConfig { this.noTickViewDistance = this.getInt("viewdistances.no-tick-view-distance", -1); } -+ + + public boolean altItemDespawnRateEnabled; -+ public Map<Material, Integer> altItemDespawnRateMap; ++ public java.util.Map<org.bukkit.Material, Integer> altItemDespawnRateMap; + private void altItemDespawnRate() { + String path = "alt-item-despawn-rate"; + + altItemDespawnRateEnabled = getBoolean(path + ".enabled", false); + -+ Map<Material, Integer> altItemDespawnRateMapDefault = new EnumMap<>(Material.class); -+ altItemDespawnRateMapDefault.put(Material.COBBLESTONE, 300); -+ for (Material key : altItemDespawnRateMapDefault.keySet()) { ++ java.util.Map<org.bukkit.Material, Integer> altItemDespawnRateMapDefault = new java.util.EnumMap<>(org.bukkit.Material.class); ++ altItemDespawnRateMapDefault.put(org.bukkit.Material.COBBLESTONE, 300); ++ for (org.bukkit.Material key : altItemDespawnRateMapDefault.keySet()) { + config.addDefault("world-settings.default." + path + ".items." + key, altItemDespawnRateMapDefault.get(key)); + } + -+ Map<String, Integer> rawMap = new HashMap<>(); ++ java.util.Map<String, Integer> rawMap = new java.util.HashMap<>(); + try { -+ ConfigurationSection mapSection = config.getConfigurationSection("world-settings." + worldName + "." + path + ".items"); ++ org.bukkit.configuration.ConfigurationSection mapSection = config.getConfigurationSection("world-settings." + worldName + "." + path + ".items"); + if (mapSection == null) { + mapSection = config.getConfigurationSection("world-settings.default." + path + ".items"); + } @@ -56,26 +41,28 @@ index 3cd8895adecd345c3bdfb8b5e3e9fdf0ef9097db..be4a36df28d4f16727daad1270d5c3a8 + altItemDespawnRateEnabled = false; + } + -+ altItemDespawnRateMap = new EnumMap<>(Material.class); ++ altItemDespawnRateMap = new java.util.EnumMap<>(org.bukkit.Material.class); + if (!altItemDespawnRateEnabled) { + return; + } + + for(String key : rawMap.keySet()) { + try { -+ altItemDespawnRateMap.put(Material.valueOf(key), rawMap.get(key)); ++ altItemDespawnRateMap.put(org.bukkit.Material.valueOf(key), rawMap.get(key)); + } catch (Exception e) { + logError("Could not add item " + key + " to altItemDespawnRateMap: " + e.getMessage()); + } + } + if(altItemDespawnRateEnabled) { -+ for(Material key : altItemDespawnRateMap.keySet()) { ++ for(org.bukkit.Material key : altItemDespawnRateMap.keySet()) { + log("Alternative item despawn rate of " + key + ": " + altItemDespawnRateMap.get(key)); + } + } + } - } - ++ + public boolean antiXray; + public EngineMode engineMode; + public int maxChunkSectionIndex; diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java index 9ee1dc89dd4c6b9453e1f6f92208d454877d23c9..e0c13a112c95eed9867d4608e18dc797b0c9c9cf 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java diff --git a/patches/server/0366-Tracking-Range-Improvements.patch b/patches/server/0367-Tracking-Range-Improvements.patch similarity index 97% rename from patches/server/0366-Tracking-Range-Improvements.patch rename to patches/server/0367-Tracking-Range-Improvements.patch index b4d6875ed4..a8cc0ab069 100644 --- a/patches/server/0366-Tracking-Range-Improvements.patch +++ b/patches/server/0367-Tracking-Range-Improvements.patch @@ -8,7 +8,7 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code Also ignores Enderdragon, defaulting it to Mojang's setting diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index fdf5d8ede4b01e399272ddebfbd49258b166f00b..273cd2e0fc38801a5ecb26579e4d0e9ee017bb3c 100644 +index b0cf6e186d7030b1aa9296671683bd33e2d15579..280bd301b7005d16fec293311f11485b94ded550 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1791,6 +1791,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially diff --git a/patches/server/0367-Fix-items-vanishing-through-end-portal.patch b/patches/server/0368-Fix-items-vanishing-through-end-portal.patch similarity index 100% rename from patches/server/0367-Fix-items-vanishing-through-end-portal.patch rename to patches/server/0368-Fix-items-vanishing-through-end-portal.patch diff --git a/patches/server/0368-implement-optional-per-player-mob-spawns.patch b/patches/server/0369-implement-optional-per-player-mob-spawns.patch similarity index 97% rename from patches/server/0368-implement-optional-per-player-mob-spawns.patch rename to patches/server/0369-implement-optional-per-player-mob-spawns.patch index 27117d65e3..0ddeaece3a 100644 --- a/patches/server/0368-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0369-implement-optional-per-player-mob-spawns.patch @@ -25,11 +25,11 @@ index fe79c0add4f7cb18d487c5bb9415c40c5b551ea2..8d9ddad1879e7616d980ca70de8aecac poiUnload = Timings.ofSafe(name + "Chunk unload - POI"); chunkUnload = Timings.ofSafe(name + "Chunk unload - Chunk"); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index be4a36df28d4f16727daad1270d5c3a84ae94613..16f013ffe992a934e9d0b32e764a14a8fd204449 100644 +index 3f4a9ce31981f77b1c451a5d9ba91d6c9ab67587..a69efd1a21a667c5eee539f6c761755479375527 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -503,5 +503,10 @@ public class PaperWorldConfig { - } +@@ -534,5 +534,10 @@ public class PaperWorldConfig { + Bukkit.getLogger().warning("You have enabled permission-based Anti-Xray checking - depending on your permission plugin, this may cause performance issues"); } } + @@ -545,18 +545,10 @@ index 0000000000000000000000000000000000000000..11de56afaf059b00fa5bec293516bcdc + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 273cd2e0fc38801a5ecb26579e4d0e9ee017bb3c..e1498a5a8e664b922c77a8524ed2ea38c91834ce 100644 +index 280bd301b7005d16fec293311f11485b94ded550..d3f835a0c76ce559fb5f3c39714a3312c7e865d1 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -69,6 +69,7 @@ import net.minecraft.util.thread.ProcessorMailbox; - import net.minecraft.world.entity.Entity; - import net.minecraft.world.entity.EntityType; - import net.minecraft.world.entity.Mob; -+import net.minecraft.world.entity.MobCategory; - import net.minecraft.world.entity.ai.village.poi.PoiManager; - import net.minecraft.world.entity.boss.EnderDragonPart; - import net.minecraft.world.level.ChunkPos; -@@ -140,6 +141,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -140,6 +140,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private final Long2ByteMap chunkTypeCache; private final Queue<Runnable> unloadQueue; int viewDistance; @@ -564,7 +556,7 @@ index 273cd2e0fc38801a5ecb26579e4d0e9ee017bb3c..e1498a5a8e664b922c77a8524ed2ea38 // CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback() public final CallbackExecutor callbackExecutor = new CallbackExecutor(); -@@ -263,6 +265,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -263,6 +264,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.overworldDataStorage = persistentStateManagerFactory; this.poiManager = new PoiManager(new File(this.storageFolder, "poi"), dataFixer, dsync, world); this.setViewDistance(viewDistance); @@ -572,7 +564,7 @@ index 273cd2e0fc38801a5ecb26579e4d0e9ee017bb3c..e1498a5a8e664b922c77a8524ed2ea38 // Paper start - no-tick view distance this.setNoTickViewDistance(this.level.paperConfig.noTickViewDistance); this.playerViewDistanceTickMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, -@@ -304,6 +307,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -304,6 +306,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - no-tick view distance } @@ -590,7 +582,7 @@ index 273cd2e0fc38801a5ecb26579e4d0e9ee017bb3c..e1498a5a8e664b922c77a8524ed2ea38 + } + } + -+ public int getMobCountNear(ServerPlayer entityPlayer, MobCategory enumCreatureType) { ++ public int getMobCountNear(ServerPlayer entityPlayer, net.minecraft.world.entity.MobCategory enumCreatureType) { + return entityPlayer.mobCounts[enumCreatureType.ordinal()]; + } + // Paper end diff --git a/patches/server/0369-Avoid-hopper-searches-if-there-are-no-items.patch b/patches/server/0370-Avoid-hopper-searches-if-there-are-no-items.patch similarity index 97% rename from patches/server/0369-Avoid-hopper-searches-if-there-are-no-items.patch rename to patches/server/0370-Avoid-hopper-searches-if-there-are-no-items.patch index f2b4f51f8e..d0bab4c136 100644 --- a/patches/server/0369-Avoid-hopper-searches-if-there-are-no-items.patch +++ b/patches/server/0370-Avoid-hopper-searches-if-there-are-no-items.patch @@ -14,10 +14,10 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear Combined, this adds up a lot. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 507a70521a97c463d6fd22b788c39e9f458971c3..1dc1f7a5319e067b5f56c2fdadf04547ae1bc9ea 100644 +index 4eee8156d193f59b7e28499f492f81247c4b1591..641f022c4c716e0441a098f4540fd008059a4b51 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -984,7 +984,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -989,7 +989,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } } diff --git a/patches/server/0370-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0371-Bees-get-gravity-in-void.-Fixes-MC-167279.patch similarity index 100% rename from patches/server/0370-Bees-get-gravity-in-void.-Fixes-MC-167279.patch rename to patches/server/0371-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/server/0371-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0372-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 100% rename from patches/server/0371-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to patches/server/0372-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/patches/server/0372-Allow-overriding-the-java-version-check.patch b/patches/server/0373-Allow-overriding-the-java-version-check.patch similarity index 100% rename from patches/server/0372-Allow-overriding-the-java-version-check.patch rename to patches/server/0373-Allow-overriding-the-java-version-check.patch diff --git a/patches/server/0373-Add-ThrownEggHatchEvent.patch b/patches/server/0374-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/server/0373-Add-ThrownEggHatchEvent.patch rename to patches/server/0374-Add-ThrownEggHatchEvent.patch diff --git a/patches/server/0374-Optimise-random-block-ticking.patch b/patches/server/0375-Optimise-random-block-ticking.patch similarity index 95% rename from patches/server/0374-Optimise-random-block-ticking.patch rename to patches/server/0375-Optimise-random-block-ticking.patch index f5938a4275..99d7609598 100644 --- a/patches/server/0374-Optimise-random-block-ticking.patch +++ b/patches/server/0375-Optimise-random-block-ticking.patch @@ -71,7 +71,7 @@ index 0000000000000000000000000000000000000000..3edc8e52e06a62ce9f8cc734fd7458b3 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8d72e68fe8f7d0a770264f54c539ea11f5e1d8da..50efe1bd6a62b71007bf3274f323704be1477ce7 100644 +index c5070975be1ceeab20ad0b3bab790426adb5e5fa..86ee1b535a6e586fd4e9e3c37f439d81b4508939 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -667,7 +667,12 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -266,10 +266,10 @@ index e638d982b4bd1d261a7282cad6dab98ad0b55213..e305173fd1652a8b88ae8a9b94d0fae0 public BlockPos getHomePos() { // Paper - public diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1dc1f7a5319e067b5f56c2fdadf04547ae1bc9ea..9d5dcaabe43ee36259b24063b4c74daddc7df773 100644 +index 641f022c4c716e0441a098f4540fd008059a4b51..944b28b55a38352dfb49aeecca3f196502cb04e8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1300,10 +1300,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1305,10 +1305,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract TagContainer getTagManager(); public BlockPos getBlockRandomPos(int x, int y, int z, int l) { @@ -290,7 +290,7 @@ index 1dc1f7a5319e067b5f56c2fdadf04547ae1bc9ea..9d5dcaabe43ee36259b24063b4c74dad public boolean noSave() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 922026da8c234427e0322443004d3c32993adfce..88b053d8181d2a5abdb2c5527529a81855e1de7c 100644 +index f6b591f045ae992180806fd6aba309c0d04e722b..338e93a1855cf0e535e8a9897cffaff1d2e87279 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -568,6 +568,7 @@ public class LevelChunk implements ChunkAccess { @@ -302,7 +302,7 @@ index 922026da8c234427e0322443004d3c32993adfce..88b053d8181d2a5abdb2c5527529a818 public int getHeight(Heightmap.Types type, int x, int z) { return ((Heightmap) this.heightmaps.get(type)).getFirstAvailable(x & 15, z & 15) - 1; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 5fd66020a937b641e2a060cf38df731a43f3bf55..b5497272bc03a290298b5a829bdf653ac986866b 100644 +index b10beabccf5a29098a796e5615eb4632fae95f99..79fda9a003ca4088404d3f0490c0c6a12afa1711 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -14,11 +14,12 @@ public class LevelChunkSection { @@ -318,9 +318,9 @@ index 5fd66020a937b641e2a060cf38df731a43f3bf55..b5497272bc03a290298b5a829bdf653a final PalettedContainer<BlockState> states; // Paper - package-private + public final com.destroystokyo.paper.util.maplist.IBlockDataList tickingList = new com.destroystokyo.paper.util.maplist.IBlockDataList(); // Paper - public LevelChunkSection(int yOffset) { - this(yOffset, (short)0, (short)0, (short)0); -@@ -70,6 +71,9 @@ public class LevelChunkSection { + // Paper start - Anti-Xray - Add parameters + @Deprecated public LevelChunkSection(int yOffset) { this(yOffset, null, null, true); } // Notice for updates: Please make sure this constructor isn't used anywhere +@@ -79,6 +80,9 @@ public class LevelChunkSection { --this.nonEmptyBlockCount; if (blockState.isRandomlyTicking()) { --this.tickingBlockCount; @@ -330,7 +330,7 @@ index 5fd66020a937b641e2a060cf38df731a43f3bf55..b5497272bc03a290298b5a829bdf653a } } -@@ -81,6 +85,9 @@ public class LevelChunkSection { +@@ -90,6 +94,9 @@ public class LevelChunkSection { ++this.nonEmptyBlockCount; if (state.isRandomlyTicking()) { ++this.tickingBlockCount; @@ -340,7 +340,7 @@ index 5fd66020a937b641e2a060cf38df731a43f3bf55..b5497272bc03a290298b5a829bdf653a } } -@@ -116,22 +123,28 @@ public class LevelChunkSection { +@@ -125,22 +132,28 @@ public class LevelChunkSection { } public void recalcBlockCounts() { @@ -375,10 +375,10 @@ index 5fd66020a937b641e2a060cf38df731a43f3bf55..b5497272bc03a290298b5a829bdf653a } diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 5ea60bbb56450502f1ceb41959239ab579458ac2..5ac948b5b82f3144cdf402af440251cb8c7369d7 100644 +index efe4d45b431890e4821f977b8f9fafdab7de3be2..82a4b7969e36940cb694bd999b8c03f9c66a71dc 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -259,6 +259,14 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -312,6 +312,14 @@ public class PalettedContainer<T> implements PaletteResize<T> { }); } diff --git a/patches/server/0375-Entity-Jump-API.patch b/patches/server/0376-Entity-Jump-API.patch similarity index 100% rename from patches/server/0375-Entity-Jump-API.patch rename to patches/server/0376-Entity-Jump-API.patch diff --git a/patches/server/0376-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0377-Add-option-to-nerf-pigmen-from-nether-portals.patch similarity index 95% rename from patches/server/0376-Add-option-to-nerf-pigmen-from-nether-portals.patch rename to patches/server/0377-Add-option-to-nerf-pigmen-from-nether-portals.patch index 683ab55aea..276ef35f7c 100644 --- a/patches/server/0376-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0377-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 16f013ffe992a934e9d0b32e764a14a8fd204449..6c7e90f9939d42fdf8d40dd7ec0a6a86d5437451 100644 +index a69efd1a21a667c5eee539f6c761755479375527..8b460378d8c2dd1942404f332d4012acb5687773 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -446,6 +446,11 @@ public class PaperWorldConfig { +@@ -443,6 +443,11 @@ public class PaperWorldConfig { log("Hopper Move Item Events: " + (disableHopperMoveEvents ? "disabled" : "enabled")); } diff --git a/patches/server/0377-Make-the-GUI-graph-fancier.patch b/patches/server/0378-Make-the-GUI-graph-fancier.patch similarity index 100% rename from patches/server/0377-Make-the-GUI-graph-fancier.patch rename to patches/server/0378-Make-the-GUI-graph-fancier.patch diff --git a/patches/server/0378-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0379-add-hand-to-BlockMultiPlaceEvent.patch similarity index 100% rename from patches/server/0378-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/server/0379-add-hand-to-BlockMultiPlaceEvent.patch diff --git a/patches/server/0379-Prevent-teleporting-dead-entities.patch b/patches/server/0380-Prevent-teleporting-dead-entities.patch similarity index 100% rename from patches/server/0379-Prevent-teleporting-dead-entities.patch rename to patches/server/0380-Prevent-teleporting-dead-entities.patch diff --git a/patches/server/0380-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0381-Validate-tripwire-hook-placement-before-update.patch similarity index 100% rename from patches/server/0380-Validate-tripwire-hook-placement-before-update.patch rename to patches/server/0381-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/server/0381-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0382-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 92% rename from patches/server/0381-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/server/0382-Add-option-to-allow-iron-golems-to-spawn-in-air.patch index 3f7ba7afc5..89293c2bda 100644 --- a/patches/server/0381-Add-option-to-allow-iron-golems-to-spawn-in-air.patch +++ b/patches/server/0382-Add-option-to-allow-iron-golems-to-spawn-in-air.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to allow iron golems to spawn in air diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 6c7e90f9939d42fdf8d40dd7ec0a6a86d5437451..3ac4fe247dd12e039396da5276b83709957823c7 100644 +index 8b460378d8c2dd1942404f332d4012acb5687773..a2b1e2c3c4bd958b6ec7b7de5561747d3a2075d2 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -385,6 +385,11 @@ public class PaperWorldConfig { +@@ -382,6 +382,11 @@ public class PaperWorldConfig { scanForLegacyEnderDragon = getBoolean("game-mechanics.scan-for-legacy-ender-dragon", true); } diff --git a/patches/server/0382-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0383-Configurable-chance-of-villager-zombie-infection.patch similarity index 94% rename from patches/server/0382-Configurable-chance-of-villager-zombie-infection.patch rename to patches/server/0383-Configurable-chance-of-villager-zombie-infection.patch index 2e4e196e34..bf91ca7a1e 100644 --- a/patches/server/0382-Configurable-chance-of-villager-zombie-infection.patch +++ b/patches/server/0383-Configurable-chance-of-villager-zombie-infection.patch @@ -8,10 +8,10 @@ This allows you to solve an issue in vanilla behavior where: * On normal difficulty they will have a 50% of getting infected or dying. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 3ac4fe247dd12e039396da5276b83709957823c7..0863bdab8322b80a3df52c238b55c14401bafe6d 100644 +index a2b1e2c3c4bd958b6ec7b7de5561747d3a2075d2..c3f2cdedf7b9c2ff9e33b823cb20890cba0ded8a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -456,6 +456,11 @@ public class PaperWorldConfig { +@@ -453,6 +453,11 @@ public class PaperWorldConfig { nerfNetherPortalPigmen = getBoolean("game-mechanics.nerf-pigmen-from-nether-portals", nerfNetherPortalPigmen); } diff --git a/patches/server/0383-Optimise-Chunk-getFluid.patch b/patches/server/0384-Optimise-Chunk-getFluid.patch similarity index 92% rename from patches/server/0383-Optimise-Chunk-getFluid.patch rename to patches/server/0384-Optimise-Chunk-getFluid.patch index 13d8263759..07dd478b16 100644 --- a/patches/server/0383-Optimise-Chunk-getFluid.patch +++ b/patches/server/0384-Optimise-Chunk-getFluid.patch @@ -8,7 +8,7 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 88b053d8181d2a5abdb2c5527529a81855e1de7c..59a77541bbda880ae8f84e3535a2b6112caa78fb 100644 +index 338e93a1855cf0e535e8a9897cffaff1d2e87279..a4398502dd0cbbceb00cffc68702d34bf8ed7e8f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -461,18 +461,20 @@ public class LevelChunk implements ChunkAccess { @@ -49,10 +49,10 @@ index 88b053d8181d2a5abdb2c5527529a81855e1de7c..59a77541bbda880ae8f84e3535a2b611 // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index b5497272bc03a290298b5a829bdf653ac986866b..fa350db3f4ada07a385d9f57b46aa799effb6039 100644 +index 79fda9a003ca4088404d3f0490c0c6a12afa1711..9ca27907c6e1d4d5cc79e954136c63a59d3be2b8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -@@ -42,7 +42,7 @@ public class LevelChunkSection { +@@ -51,7 +51,7 @@ public class LevelChunkSection { } public FluidState getFluidState(int x, int y, int z) { diff --git a/patches/server/0384-Optimise-TickListServer-by-rewriting-it.patch b/patches/server/0385-Optimise-TickListServer-by-rewriting-it.patch similarity index 99% rename from patches/server/0384-Optimise-TickListServer-by-rewriting-it.patch rename to patches/server/0385-Optimise-TickListServer-by-rewriting-it.patch index 40dbc4fec4..16152bd344 100644 --- a/patches/server/0384-Optimise-TickListServer-by-rewriting-it.patch +++ b/patches/server/0385-Optimise-TickListServer-by-rewriting-it.patch @@ -941,7 +941,7 @@ index 56aa640eb0096e5c5f1a34d6f11a4dd9ac8770df..a81c773cc281ba390d3ce44c52c43710 public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, boolean flag, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkstatusupdatelistener, Supplier<DimensionDataStorage> supplier) { this.level = world; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 50efe1bd6a62b71007bf3274f323704be1477ce7..a43839ddd468d7b61d5609f22fb1e9fcd873590a 100644 +index 86ee1b535a6e586fd4e9e3c37f439d81b4508939..d037b14b34658e2f13d7e77f06576c406abc8a60 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -289,6 +289,15 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0385-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0386-Pillager-patrol-spawn-settings-and-per-player-option.patch similarity index 97% rename from patches/server/0385-Pillager-patrol-spawn-settings-and-per-player-option.patch rename to patches/server/0386-Pillager-patrol-spawn-settings-and-per-player-option.patch index b2bc5ab21f..2a6264e464 100644 --- a/patches/server/0385-Pillager-patrol-spawn-settings-and-per-player-option.patch +++ b/patches/server/0386-Pillager-patrol-spawn-settings-and-per-player-option.patch @@ -10,10 +10,10 @@ When not per player it will use the Vanilla mechanic of one delay per world and the world age for the start day. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 0863bdab8322b80a3df52c238b55c14401bafe6d..4a2b52b5f5c0453c204765ec77e35524ee7e77c1 100644 +index c3f2cdedf7b9c2ff9e33b823cb20890cba0ded8a..8f1dcdb3b1beddb5698f596c048869d99e1f4437 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -433,10 +433,21 @@ public class PaperWorldConfig { +@@ -430,10 +430,21 @@ public class PaperWorldConfig { } public boolean disablePillagerPatrols = false; diff --git a/patches/server/0386-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0387-Remote-Connections-shouldn-t-hold-up-shutdown.patch similarity index 100% rename from patches/server/0386-Remote-Connections-shouldn-t-hold-up-shutdown.patch rename to patches/server/0387-Remote-Connections-shouldn-t-hold-up-shutdown.patch diff --git a/patches/server/0387-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0388-Do-not-allow-bees-to-load-chunks-for-beehives.patch similarity index 100% rename from patches/server/0387-Do-not-allow-bees-to-load-chunks-for-beehives.patch rename to patches/server/0388-Do-not-allow-bees-to-load-chunks-for-beehives.patch diff --git a/patches/server/0388-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0389-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch similarity index 91% rename from patches/server/0388-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch rename to patches/server/0389-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index 09f26df53f..1a65d627cd 100644 --- a/patches/server/0388-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0389-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,10 +7,10 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e1498a5a8e664b922c77a8524ed2ea38c91834ce..71d5c298e14869d9d44226aeb6ffe3f051827d1a 100644 +index d3f835a0c76ce559fb5f3c39714a3312c7e865d1..002561c87ddd03e8bc31864ddd9dee7bc2ff0931 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1467,6 +1467,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1466,6 +1466,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider protected void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot @@ -26,7 +26,7 @@ index e1498a5a8e664b922c77a8524ed2ea38c91834ce..71d5c298e14869d9d44226aeb6ffe3f0 EntityType<?> entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 03939f43ade3859a53ccf90e7fc221555ce6e97f..7340a25e49af30ecbb4b212365b9941e24e221d2 100644 +index d037b14b34658e2f13d7e77f06576c406abc8a60..9cdfd1c8bce3adb5d3ad6d970c6f46ca75f3a952 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2120,7 +2120,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0389-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0390-Optimize-Collision-to-not-load-chunks.patch similarity index 100% rename from patches/server/0389-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0390-Optimize-Collision-to-not-load-chunks.patch diff --git a/patches/server/0390-Don-t-tick-dead-players.patch b/patches/server/0391-Don-t-tick-dead-players.patch similarity index 100% rename from patches/server/0390-Don-t-tick-dead-players.patch rename to patches/server/0391-Don-t-tick-dead-players.patch diff --git a/patches/server/0391-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0392-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 100% rename from patches/server/0391-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0392-Dead-Player-s-shouldn-t-be-able-to-move.patch diff --git a/patches/server/0392-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch b/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch similarity index 96% rename from patches/server/0392-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch rename to patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch index 66741a4086..2eaf2e2ef7 100644 --- a/patches/server/0392-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch +++ b/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch @@ -70,10 +70,10 @@ index 9c88426ab1275ee5fb6e28be8b213533dc4ab859..87c9a5c1b43f6010898d72136b5eb997 List<ChunkHolder> allChunks = new ArrayList<>(visibleChunks.values()); List<ServerPlayer> players = world.players; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d8fc25f07 100644 +index 002561c87ddd03e8bc31864ddd9dee7bc2ff0931..a80c4517cd0d2c5e7b71b4f86b6a8d441a9eb64e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -108,9 +108,36 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -107,9 +107,36 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private static final int MIN_VIEW_DISTANCE = 3; public static final int MAX_VIEW_DISTANCE = 33; public static final int MAX_CHUNK_DISTANCE = 33 + ChunkStatus.maxDistance(); @@ -112,7 +112,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d private final Long2ObjectLinkedOpenHashMap<ChunkHolder> pendingUnloads; public final LongSet entitiesInLevel; // Paper - private -> public public final ServerLevel level; -@@ -233,7 +260,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -232,7 +259,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureManager structureManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) { super(new File(session.getDimensionPath(world.dimension()), "region"), dataFixer, dsync); @@ -121,7 +121,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d this.pendingUnloads = new Long2ObjectLinkedOpenHashMap(); this.entitiesInLevel = new LongOpenHashSet(); this.toDrop = new LongOpenHashSet(); -@@ -372,9 +399,52 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -371,9 +398,52 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return (ChunkHolder) this.updatingChunkMap.get(pos); } @@ -175,7 +175,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d } protected IntSupplier getChunkQueueLevel(long pos) { -@@ -531,8 +601,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -530,8 +600,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void saveAllChunks(boolean flush) { @@ -186,7 +186,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d MutableBoolean mutableboolean = new MutableBoolean(); do { -@@ -563,7 +634,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -562,7 +633,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // this.i(); // Paper - nuke IOWorker ChunkMap.LOGGER.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", this.storageFolder.getName()); } else { @@ -195,7 +195,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d ChunkAccess ichunkaccess = (ChunkAccess) playerchunk.getChunkToSave().getNow(null); // CraftBukkit - decompile error if (ichunkaccess instanceof ImposterProtoChunk || ichunkaccess instanceof LevelChunk) { -@@ -723,7 +794,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -722,7 +793,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!this.modified) { return false; } else { @@ -217,7 +217,7 @@ index 71d5c298e14869d9d44226aeb6ffe3f051827d1a..a75de538835522f92e889452fddd5a3d this.modified = false; return true; } -@@ -1132,12 +1216,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1131,12 +1215,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected Iterable<ChunkHolder> getChunks() { diff --git a/patches/server/0393-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch b/patches/server/0394-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch similarity index 99% rename from patches/server/0393-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch rename to patches/server/0394-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch index 7f241bc382..f70626a470 100644 --- a/patches/server/0393-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch +++ b/patches/server/0394-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch @@ -226,7 +226,7 @@ index 34183527a23650706a9249ffac0182cb77b18086..90decfade57b2f17cdcc9188962c2d21 // CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task public boolean pollTask() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index da85bfe5de9dcd6d51605ce9b023265b5a5f2936..f10fad84e4f36f9158383b327170593f273cecd9 100644 +index 9cdfd1c8bce3adb5d3ad6d970c6f46ca75f3a952..70106dda486d685dffafc0d4b3ae95b4861c6342 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0394-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0395-Don-t-move-existing-players-to-world-spawn.patch similarity index 100% rename from patches/server/0394-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0395-Don-t-move-existing-players-to-world-spawn.patch diff --git a/patches/server/0395-Add-tick-times-API-and-mspt-command.patch b/patches/server/0396-Add-tick-times-API-and-mspt-command.patch similarity index 100% rename from patches/server/0395-Add-tick-times-API-and-mspt-command.patch rename to patches/server/0396-Add-tick-times-API-and-mspt-command.patch diff --git a/patches/server/0396-Expose-MinecraftServer-isRunning.patch b/patches/server/0397-Expose-MinecraftServer-isRunning.patch similarity index 100% rename from patches/server/0396-Expose-MinecraftServer-isRunning.patch rename to patches/server/0397-Expose-MinecraftServer-isRunning.patch diff --git a/patches/server/0397-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0398-Add-Raw-Byte-ItemStack-Serialization.patch similarity index 100% rename from patches/server/0397-Add-Raw-Byte-ItemStack-Serialization.patch rename to patches/server/0398-Add-Raw-Byte-ItemStack-Serialization.patch diff --git a/patches/server/0398-Remove-streams-from-Mob-AI-System.patch b/patches/server/0399-Remove-streams-from-Mob-AI-System.patch similarity index 100% rename from patches/server/0398-Remove-streams-from-Mob-AI-System.patch rename to patches/server/0399-Remove-streams-from-Mob-AI-System.patch diff --git a/patches/server/0399-Async-command-map-building.patch b/patches/server/0400-Async-command-map-building.patch similarity index 100% rename from patches/server/0399-Async-command-map-building.patch rename to patches/server/0400-Async-command-map-building.patch diff --git a/patches/server/0400-Improved-Watchdog-Support.patch b/patches/server/0401-Improved-Watchdog-Support.patch similarity index 98% rename from patches/server/0400-Improved-Watchdog-Support.patch rename to patches/server/0401-Improved-Watchdog-Support.patch index 17dd04331c..b979bd4e07 100644 --- a/patches/server/0400-Improved-Watchdog-Support.patch +++ b/patches/server/0401-Improved-Watchdog-Support.patch @@ -262,10 +262,10 @@ index 0511f1921193b78cbf4d8426136bf1f79746f955..e5f7f043cbdb28d85b8aa0eea7cbaeb5 @Override diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a75de538835522f92e889452fddd5a3d8fc25f07..ccf50500b53f7336db1d3d287ec6f2a0da3d4183 100644 +index a80c4517cd0d2c5e7b71b4f86b6a8d441a9eb64e..3994cefe74481efd5d779f22c752aadc22b4749b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -607,6 +607,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -606,6 +606,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider MutableBoolean mutableboolean = new MutableBoolean(); do { @@ -299,10 +299,10 @@ index 0ef3c4982df88a7991a56d983ac733daa8adc507..cdd797c6fc7507a0e6376f7d9c521be8 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9d5dcaabe43ee36259b24063b4c74daddc7df773..06f2f76636804cd5f997bbe1558a104bc24aa84a 100644 +index 944b28b55a38352dfb49aeecca3f196502cb04e8..54fcdcef2a6b68e4b4f4c6a090e84919fe76b073 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -837,6 +837,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -842,6 +842,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); } catch (Throwable throwable) { @@ -311,7 +311,7 @@ index 9d5dcaabe43ee36259b24063b4c74daddc7df773..06f2f76636804cd5f997bbe1558a104b String msg = "Entity threw exception at " + entity.level.getWorld().getName() + ":" + entity.getX() + "," + entity.getY() + "," + entity.getZ(); System.err.println(msg); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 59a77541bbda880ae8f84e3535a2b6112caa78fb..a63dc77db41dab79f03ef7384da55c1cdeca5d98 100644 +index a4398502dd0cbbceb00cffc68702d34bf8ed7e8f..bde00ca058f32eb55e940614f0fbc361fe3a501d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1320,6 +1320,7 @@ public class LevelChunk implements ChunkAccess { diff --git a/patches/server/0401-Optimize-Pathfinding.patch b/patches/server/0402-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0401-Optimize-Pathfinding.patch rename to patches/server/0402-Optimize-Pathfinding.patch diff --git a/patches/server/0402-Reduce-Either-Optional-allocation.patch b/patches/server/0403-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0402-Reduce-Either-Optional-allocation.patch rename to patches/server/0403-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0403-Remove-streams-from-PairedQueue.patch b/patches/server/0404-Remove-streams-from-PairedQueue.patch similarity index 100% rename from patches/server/0403-Remove-streams-from-PairedQueue.patch rename to patches/server/0404-Remove-streams-from-PairedQueue.patch diff --git a/patches/server/0404-Reduce-memory-footprint-of-NBTTagCompound.patch b/patches/server/0405-Reduce-memory-footprint-of-NBTTagCompound.patch similarity index 100% rename from patches/server/0404-Reduce-memory-footprint-of-NBTTagCompound.patch rename to patches/server/0405-Reduce-memory-footprint-of-NBTTagCompound.patch diff --git a/patches/server/0405-Prevent-opening-inventories-when-frozen.patch b/patches/server/0406-Prevent-opening-inventories-when-frozen.patch similarity index 100% rename from patches/server/0405-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0406-Prevent-opening-inventories-when-frozen.patch diff --git a/patches/server/0406-Optimise-ArraySetSorted-removeIf.patch b/patches/server/0407-Optimise-ArraySetSorted-removeIf.patch similarity index 100% rename from patches/server/0406-Optimise-ArraySetSorted-removeIf.patch rename to patches/server/0407-Optimise-ArraySetSorted-removeIf.patch diff --git a/patches/server/0407-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0408-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 100% rename from patches/server/0407-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0408-Don-t-run-entity-collision-code-if-not-needed.patch diff --git a/patches/server/0408-Restrict-vanilla-teleport-command-to-valid-locations.patch b/patches/server/0409-Restrict-vanilla-teleport-command-to-valid-locations.patch similarity index 100% rename from patches/server/0408-Restrict-vanilla-teleport-command-to-valid-locations.patch rename to patches/server/0409-Restrict-vanilla-teleport-command-to-valid-locations.patch diff --git a/patches/server/0409-Implement-Player-Client-Options-API.patch b/patches/server/0410-Implement-Player-Client-Options-API.patch similarity index 100% rename from patches/server/0409-Implement-Player-Client-Options-API.patch rename to patches/server/0410-Implement-Player-Client-Options-API.patch diff --git a/patches/server/0410-Fix-Chunk-Post-Processing-deadlock-risk.patch b/patches/server/0411-Fix-Chunk-Post-Processing-deadlock-risk.patch similarity index 93% rename from patches/server/0410-Fix-Chunk-Post-Processing-deadlock-risk.patch rename to patches/server/0411-Fix-Chunk-Post-Processing-deadlock-risk.patch index 0818f079c0..e7af5f978e 100644 --- a/patches/server/0410-Fix-Chunk-Post-Processing-deadlock-risk.patch +++ b/patches/server/0411-Fix-Chunk-Post-Processing-deadlock-risk.patch @@ -25,10 +25,10 @@ This successfully fixed a reoccurring and highly reproduceable crash for heightmaps. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ccf50500b53f7336db1d3d287ec6f2a0da3d4183..f651b7d2bbc2fc883bc73ef892de62624d1285e7 100644 +index 3994cefe74481efd5d779f22c752aadc22b4749b..dede8863193423858f6d60cc942919e52f28b607 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -190,6 +190,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; // CraftBukkit end @@ -36,7 +36,7 @@ index ccf50500b53f7336db1d3d287ec6f2a0da3d4183..f651b7d2bbc2fc883bc73ef892de6262 // Paper start - distance maps private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>(); // Paper start - no-tick view distance -@@ -1050,7 +1051,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1049,7 +1050,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return Either.left(chunk); }); }, (runnable) -> { diff --git a/patches/server/0411-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0412-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0411-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0412-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0412-Broadcast-join-message-to-console.patch b/patches/server/0413-Broadcast-join-message-to-console.patch similarity index 100% rename from patches/server/0412-Broadcast-join-message-to-console.patch rename to patches/server/0413-Broadcast-join-message-to-console.patch diff --git a/patches/server/0413-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0414-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch similarity index 96% rename from patches/server/0413-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch rename to patches/server/0414-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index fe9800e326..d9ef680f7d 100644 --- a/patches/server/0413-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/patches/server/0414-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch @@ -28,10 +28,10 @@ receives a deterministic result, and should no longer require 1 tick delays anymore. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f651b7d2bbc2fc883bc73ef892de62624d1285e7..6c763b5407425b764839b921f4dc9e18d76442cd 100644 +index dede8863193423858f6d60cc942919e52f28b607..4fe5b75661de64474698495776ebb8232fd252aa 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1551,7 +1551,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1550,7 +1550,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - per player view distance } @@ -40,7 +40,7 @@ index f651b7d2bbc2fc883bc73ef892de62624d1285e7..6c763b5407425b764839b921f4dc9e18 org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot // Paper start - ignore and warn about illegal addEntity calls instead of crashing server if (!entity.valid || entity.level != this.level || this.entityMap.containsKey(entity.getId())) { -@@ -1560,6 +1560,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1559,6 +1559,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider .printStackTrace(); return; } diff --git a/patches/server/0414-Load-Chunks-for-Login-Asynchronously.patch b/patches/server/0415-Load-Chunks-for-Login-Asynchronously.patch similarity index 100% rename from patches/server/0414-Load-Chunks-for-Login-Asynchronously.patch rename to patches/server/0415-Load-Chunks-for-Login-Asynchronously.patch diff --git a/patches/server/0415-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0416-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 100% rename from patches/server/0415-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0416-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch diff --git a/patches/server/0416-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0417-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 100% rename from patches/server/0416-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0417-Add-PlayerAttackEntityCooldownResetEvent.patch diff --git a/patches/server/0417-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch b/patches/server/0418-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch similarity index 93% rename from patches/server/0417-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch rename to patches/server/0418-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch index 9ced634f50..e74eba1280 100644 --- a/patches/server/0417-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch +++ b/patches/server/0418-Allow-multiple-callbacks-to-schedule-for-Callback-Ex.patch @@ -14,10 +14,10 @@ Use an ArrayDeque to store this Queue We make sure to also implement a pattern that is recursion safe too. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6c763b5407425b764839b921f4dc9e18d76442cd..f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c 100644 +index 4fe5b75661de64474698495776ebb8232fd252aa..3e45ddc39d1283661cbfc1057aa0548d940a444a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -174,17 +174,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -173,17 +173,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public final CallbackExecutor callbackExecutor = new CallbackExecutor(); public static final class CallbackExecutor implements java.util.concurrent.Executor, Runnable { diff --git a/patches/server/0418-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0419-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/server/0418-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0419-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/server/0419-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch similarity index 96% rename from patches/server/0419-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch index ae7582ec64..91912af6f4 100644 --- a/patches/server/0419-Add-phantom-creative-and-insomniac-controls.patch +++ b/patches/server/0420-Add-phantom-creative-and-insomniac-controls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add phantom creative and insomniac controls diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 4a2b52b5f5c0453c204765ec77e35524ee7e77c1..16cf7d116e3ffd44ffc4f060b4014b52389cff77 100644 +index 8f1dcdb3b1beddb5698f596c048869d99e1f4437..98416de3dfc9d16d17124902e19cbd9b916077d2 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -477,6 +477,13 @@ public class PaperWorldConfig { +@@ -474,6 +474,13 @@ public class PaperWorldConfig { lightQueueSize = getInt("light-queue-size", lightQueueSize); } diff --git a/patches/server/0420-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch similarity index 100% rename from patches/server/0420-Fix-numerous-item-duplication-issues-and-teleport-is.patch rename to patches/server/0421-Fix-numerous-item-duplication-issues-and-teleport-is.patch diff --git a/patches/server/0421-Implement-Brigadier-Mojang-API.patch b/patches/server/0422-Implement-Brigadier-Mojang-API.patch similarity index 100% rename from patches/server/0421-Implement-Brigadier-Mojang-API.patch rename to patches/server/0422-Implement-Brigadier-Mojang-API.patch diff --git a/patches/server/0422-Villager-Restocks-API.patch b/patches/server/0423-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0422-Villager-Restocks-API.patch rename to patches/server/0423-Villager-Restocks-API.patch diff --git a/patches/server/0423-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0424-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 100% rename from patches/server/0423-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0424-Validate-PickItem-Packet-and-kick-for-invalid.patch diff --git a/patches/server/0424-Expose-game-version.patch b/patches/server/0425-Expose-game-version.patch similarity index 89% rename from patches/server/0424-Expose-game-version.patch rename to patches/server/0425-Expose-game-version.patch index 9c79c20af1..3fc2583240 100644 --- a/patches/server/0424-Expose-game-version.patch +++ b/patches/server/0425-Expose-game-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4c0b94a56fab161fca92b594f55e1c846524d5e8..479b4eb8efeeca432bcb21925db18d5c0750f001 100644 +index e31a05dfe7e934692ac89c7cedcab736bcd9ca4f..130ab05393a7136020e06ec199256a031ba66091 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -517,6 +517,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0425-Optimize-Voxel-Shape-Merging.patch b/patches/server/0426-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/0425-Optimize-Voxel-Shape-Merging.patch rename to patches/server/0426-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/0426-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0427-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 100% rename from patches/server/0426-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0427-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/server/0427-Implement-Mob-Goal-API.patch b/patches/server/0428-Implement-Mob-Goal-API.patch similarity index 100% rename from patches/server/0427-Implement-Mob-Goal-API.patch rename to patches/server/0428-Implement-Mob-Goal-API.patch diff --git a/patches/server/0428-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch similarity index 96% rename from patches/server/0428-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch index 1fac56559b..3df5bd58bb 100644 --- a/patches/server/0428-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch @@ -18,7 +18,7 @@ index 11fd6d24ed0612e4df1a0493907178fb9c455d1c..d7023cb0974f6c28a0fb8a0a6e5a6600 return initialDistance; } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a808c9736 100644 +index 3e45ddc39d1283661cbfc1057aa0548d940a444a..f4a31d340ea9629dea70eec4e339cfd869a73ed9 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -58,6 +58,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEntityLinkPacket; @@ -29,7 +29,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a import net.minecraft.server.level.progress.ChunkProgressListener; import net.minecraft.server.network.ServerPlayerConnection; import net.minecraft.util.CsvOutput; -@@ -222,11 +223,33 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -221,11 +222,33 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerViewDistanceTickMap; public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerViewDistanceNoTickMap; // Paper end - no-tick view distance @@ -63,7 +63,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a // Paper start - no-tick view distance int effectiveTickViewDistance = this.getEffectiveViewDistance(); int effectiveNoTickViewDistance = Math.max(this.getEffectiveNoTickViewDistance(), effectiveTickViewDistance); -@@ -243,7 +266,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -242,7 +265,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } void removePlayerFromDistanceMaps(ServerPlayer player) { @@ -76,7 +76,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a // Paper start - no-tick view distance this.playerViewDistanceBroadcastMap.remove(player); this.playerViewDistanceTickMap.remove(player); -@@ -255,6 +282,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -254,6 +281,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int chunkX = MCUtil.getChunkCoordinate(player.getX()); int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated @@ -91,7 +91,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a // Paper start - no-tick view distance int effectiveTickViewDistance = this.getEffectiveViewDistance(); int effectiveNoTickViewDistance = Math.max(this.getEffectiveNoTickViewDistance(), effectiveTickViewDistance); -@@ -306,6 +341,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -305,6 +340,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.poiManager = new PoiManager(new File(this.storageFolder, "poi"), dataFixer, dsync, world); this.setViewDistance(viewDistance); this.playerMobDistanceMap = this.level.paperConfig.perPlayerMobSpawns ? new com.destroystokyo.paper.util.PlayerMobDistanceMap() : null; // Paper @@ -137,7 +137,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a // Paper start - no-tick view distance this.setNoTickViewDistance(this.level.paperConfig.noTickViewDistance); this.playerViewDistanceTickMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, -@@ -1424,17 +1498,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1423,17 +1497,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -156,7 +156,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a int i = SectionPos.blockToSectionCoord(player.getBlockX()); int j = SectionPos.blockToSectionCoord(player.getBlockZ()); -@@ -1589,7 +1653,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1588,7 +1652,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -165,7 +165,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1633,7 +1697,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1632,7 +1696,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -203,7 +203,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list1 = this.level.players(); -@@ -1742,23 +1836,31 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -1741,23 +1835,31 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially DebugPackets.sendPoiPacketsForChunk(this.level, chunk.getPos()); List<Entity> list = Lists.newArrayList(); List<Entity> list1 = Lists.newArrayList(); @@ -247,7 +247,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a Iterator iterator; Entity entity1; -@@ -1837,6 +1939,42 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -1836,6 +1938,42 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially this.lastSectionPos = SectionPos.of(entity); } @@ -290,7 +290,7 @@ index f9fcf99ec7151b4f00ef2c40b0cbc2fd3a8e002c..f7032e1d64afa6707756bb5a2af9d43a public boolean equals(Object object) { return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } -@@ -1922,7 +2060,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -1921,7 +2059,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially int j = entity.getType().clientTrackingRange() * 16; j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper diff --git a/patches/server/0429-Optimize-isOutsideRange-to-use-distance-maps.patch b/patches/server/0430-Optimize-isOutsideRange-to-use-distance-maps.patch similarity index 97% rename from patches/server/0429-Optimize-isOutsideRange-to-use-distance-maps.patch rename to patches/server/0430-Optimize-isOutsideRange-to-use-distance-maps.patch index 3db66834ee..71825c2d60 100644 --- a/patches/server/0429-Optimize-isOutsideRange-to-use-distance-maps.patch +++ b/patches/server/0430-Optimize-isOutsideRange-to-use-distance-maps.patch @@ -37,10 +37,10 @@ index 58369d70bcd8b2c25609b6f101d9cbe2031df352..969b0c9cf6d7eb2055d3b804f25a3cbc // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835bcc28bbe6 100644 +index f4a31d340ea9629dea70eec4e339cfd869a73ed9..450ab55859304ecda6f752b0e4a04279f4104af1 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -237,6 +237,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -236,6 +236,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return MinecraftServer.getServer().applyTrackingRangeScale(vanilla); } // Paper end - use distance map to optimise tracker @@ -58,7 +58,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b void addPlayerToDistanceMaps(ServerPlayer player) { int chunkX = MCUtil.getChunkCoordinate(player.getX()); -@@ -250,6 +261,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -249,6 +260,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider trackMap.add(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance())); } // Paper end - use distance map to optimise entity tracker @@ -71,7 +71,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b // Paper start - no-tick view distance int effectiveTickViewDistance = this.getEffectiveViewDistance(); int effectiveNoTickViewDistance = Math.max(this.getEffectiveNoTickViewDistance(), effectiveTickViewDistance); -@@ -271,6 +288,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -270,6 +287,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.playerEntityTrackerTrackMaps[i].remove(player); } // Paper end - use distance map to optimise tracker @@ -82,7 +82,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b // Paper start - no-tick view distance this.playerViewDistanceBroadcastMap.remove(player); this.playerViewDistanceTickMap.remove(player); -@@ -290,6 +311,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -289,6 +310,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider trackMap.update(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance())); } // Paper end - use distance map to optimise entity tracker @@ -92,7 +92,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b // Paper start - no-tick view distance int effectiveTickViewDistance = this.getEffectiveViewDistance(); int effectiveNoTickViewDistance = Math.max(this.getEffectiveNoTickViewDistance(), effectiveTickViewDistance); -@@ -336,7 +360,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -335,7 +359,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.mainThreadMailbox = this.queueSorter.getProcessor(mailbox, false); this.mailboxLight = this.queueSorter.getProcessor(lightthreaded, false);// Paper this.lightEngine = new ThreadedLevelLightEngine(chunkProvider, this, this.level.dimensionType().hasSkyLight(), threadedmailbox1, this.queueSorter.getProcessor(threadedmailbox1, false)); @@ -101,7 +101,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b this.overworldDataStorage = persistentStateManagerFactory; this.poiManager = new PoiManager(new File(this.storageFolder, "poi"), dataFixer, dsync, world); this.setViewDistance(viewDistance); -@@ -380,6 +404,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -379,6 +403,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.playerEntityTrackerTrackMaps[ordinal] = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets); } // Paper end - use distance map to optimise entity tracker @@ -140,7 +140,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b // Paper start - no-tick view distance this.setNoTickViewDistance(this.level.paperConfig.noTickViewDistance); this.playerViewDistanceTickMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, -@@ -649,6 +705,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -648,6 +704,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } else { if (holder != null) { holder.setTicketLevel(level); @@ -148,7 +148,7 @@ index f7032e1d64afa6707756bb5a2af9d43a808c9736..18335e2c5c9e50a8ed31a3d2b585835b } if (holder != null) { -@@ -1434,29 +1491,50 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1433,29 +1490,50 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return this.isOutsideOfRange(chunkPos, false); } diff --git a/patches/server/0430-Add-villager-reputation-API.patch b/patches/server/0431-Add-villager-reputation-API.patch similarity index 100% rename from patches/server/0430-Add-villager-reputation-API.patch rename to patches/server/0431-Add-villager-reputation-API.patch diff --git a/patches/server/0431-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0432-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 95% rename from patches/server/0431-Option-for-maximum-exp-value-when-merging-orbs.patch rename to patches/server/0432-Option-for-maximum-exp-value-when-merging-orbs.patch index c08ccc6865..6b5ce39eda 100644 --- a/patches/server/0431-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/patches/server/0432-Option-for-maximum-exp-value-when-merging-orbs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for maximum exp value when merging orbs diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 16cf7d116e3ffd44ffc4f060b4014b52389cff77..3bc6329d3ea48966cb99e792f9b35e2d2d71a34b 100644 +index 98416de3dfc9d16d17124902e19cbd9b916077d2..b10de4e99913030bae7451b3242067312e94df7e 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -359,6 +359,12 @@ public class PaperWorldConfig { +@@ -356,6 +356,12 @@ public class PaperWorldConfig { log("Creeper lingering effect: " + disableCreeperLingeringEffect); } diff --git a/patches/server/0432-ExperienceOrbMergeEvent.patch b/patches/server/0433-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/server/0432-ExperienceOrbMergeEvent.patch rename to patches/server/0433-ExperienceOrbMergeEvent.patch diff --git a/patches/server/0433-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0434-Fix-PotionEffect-ignores-icon-flag.patch similarity index 100% rename from patches/server/0433-Fix-PotionEffect-ignores-icon-flag.patch rename to patches/server/0434-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/server/0434-Optimize-brigadier-child-sorting-performance.patch b/patches/server/0435-Optimize-brigadier-child-sorting-performance.patch similarity index 100% rename from patches/server/0434-Optimize-brigadier-child-sorting-performance.patch rename to patches/server/0435-Optimize-brigadier-child-sorting-performance.patch diff --git a/patches/server/0435-Potential-bed-API.patch b/patches/server/0436-Potential-bed-API.patch similarity index 100% rename from patches/server/0435-Potential-bed-API.patch rename to patches/server/0436-Potential-bed-API.patch diff --git a/patches/server/0436-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0437-Wait-for-Async-Tasks-during-shutdown.patch similarity index 100% rename from patches/server/0436-Wait-for-Async-Tasks-during-shutdown.patch rename to patches/server/0437-Wait-for-Async-Tasks-during-shutdown.patch diff --git a/patches/server/0437-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch b/patches/server/0438-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch similarity index 100% rename from patches/server/0437-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch rename to patches/server/0438-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch diff --git a/patches/server/0438-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0439-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 98% rename from patches/server/0438-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/0439-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 6fa1cd4c6d..18f52c03fd 100644 --- a/patches/server/0438-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/0439-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -56,10 +56,10 @@ index cdf214fca3b0055efa56702470d9d2f890a8aead..a12af10e28f2d023ba6f916b5e7a5353 this.level.getProfiler().push("explosion_blocks"); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 06f2f76636804cd5f997bbe1558a104bc24aa84a..b92d930448757968cd6a178f4bcafae72c93044c 100644 +index 54fcdcef2a6b68e4b4f4c6a090e84919fe76b073..f004f5012ce157f9b0fb9c5890b5f3de957418f8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -420,6 +420,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -424,6 +424,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/server/0439-Reduce-MutableInt-allocations-from-light-engine.patch b/patches/server/0440-Reduce-MutableInt-allocations-from-light-engine.patch similarity index 100% rename from patches/server/0439-Reduce-MutableInt-allocations-from-light-engine.patch rename to patches/server/0440-Reduce-MutableInt-allocations-from-light-engine.patch diff --git a/patches/server/0440-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0441-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 96% rename from patches/server/0440-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0441-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index b91add5e6e..b595c247f0 100644 --- a/patches/server/0440-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0441-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reduce allocation of Vec3D by entity tracker diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 18335e2c5c9e50a8ed31a3d2b585835bcc28bbe6..d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7 100644 +index 450ab55859304ecda6f752b0e4a04279f4104af1..f722d9e77fa074847a2bdc6a117816d176eb6dca 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -2102,9 +2102,14 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2101,9 +2101,14 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/0441-Ensure-safe-gateway-teleport.patch b/patches/server/0442-Ensure-safe-gateway-teleport.patch similarity index 100% rename from patches/server/0441-Ensure-safe-gateway-teleport.patch rename to patches/server/0442-Ensure-safe-gateway-teleport.patch diff --git a/patches/server/0442-Add-option-for-console-having-all-permissions.patch b/patches/server/0443-Add-option-for-console-having-all-permissions.patch similarity index 100% rename from patches/server/0442-Add-option-for-console-having-all-permissions.patch rename to patches/server/0443-Add-option-for-console-having-all-permissions.patch diff --git a/patches/server/0443-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch b/patches/server/0444-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch similarity index 98% rename from patches/server/0443-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch rename to patches/server/0444-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch index 9a51437a68..7b2d1c7f8f 100644 --- a/patches/server/0443-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch +++ b/patches/server/0444-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch @@ -16,7 +16,7 @@ We further improve it by making a copy of the nbt tag with only the memory it needs, so that we dont have to hold a copy to the entire compound. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 7c04aef3eac54981ca1e34cb87d97104c3c9685b..b4246524dd11ad1e1dc94c56eee966c5a54d9ecc 100644 +index 097d38f12ef324dbb529a833383e2da949377f9c..1f95ac18990822a64f0bb2af947693c4b88cdf73 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -27,6 +27,7 @@ import net.minecraft.nbt.CompoundTag; diff --git a/patches/server/0444-Optimize-sending-packets-to-nearby-locations-sounds-.patch b/patches/server/0445-Optimize-sending-packets-to-nearby-locations-sounds-.patch similarity index 100% rename from patches/server/0444-Optimize-sending-packets-to-nearby-locations-sounds-.patch rename to patches/server/0445-Optimize-sending-packets-to-nearby-locations-sounds-.patch diff --git a/patches/server/0445-Fix-villager-trading-demand-MC-163962.patch b/patches/server/0446-Fix-villager-trading-demand-MC-163962.patch similarity index 100% rename from patches/server/0445-Fix-villager-trading-demand-MC-163962.patch rename to patches/server/0446-Fix-villager-trading-demand-MC-163962.patch diff --git a/patches/server/0446-Maps-shouldn-t-load-chunks.patch b/patches/server/0447-Maps-shouldn-t-load-chunks.patch similarity index 100% rename from patches/server/0446-Maps-shouldn-t-load-chunks.patch rename to patches/server/0447-Maps-shouldn-t-load-chunks.patch diff --git a/patches/server/0447-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/patches/server/0448-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch similarity index 100% rename from patches/server/0447-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch rename to patches/server/0448-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch diff --git a/patches/server/0448-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/patches/server/0449-Delay-Chunk-Unloads-based-on-Player-Movement.patch similarity index 96% rename from patches/server/0448-Delay-Chunk-Unloads-based-on-Player-Movement.patch rename to patches/server/0449-Delay-Chunk-Unloads-based-on-Player-Movement.patch index a7a809be4c..38b1b71ec6 100644 --- a/patches/server/0448-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/patches/server/0449-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -17,10 +17,10 @@ This allows servers with smaller worlds who do less long distance exploring to s wasting cpu cycles on saving/unloading/reloading chunks repeatedly. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 3bc6329d3ea48966cb99e792f9b35e2d2d71a34b..1f4d0d3493e748f52eb3b679c0a8a1306c0cc8b4 100644 +index b10de4e99913030bae7451b3242067312e94df7e..d2b1ef727004906d184995a840657e22ea127f71 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -495,6 +495,15 @@ public class PaperWorldConfig { +@@ -492,6 +492,15 @@ public class PaperWorldConfig { this.noTickViewDistance = this.getInt("viewdistances.no-tick-view-distance", -1); } @@ -34,7 +34,7 @@ index 3bc6329d3ea48966cb99e792f9b35e2d2d71a34b..1f4d0d3493e748f52eb3b679c0a8a130 + } + public boolean altItemDespawnRateEnabled; - public Map<Material, Integer> altItemDespawnRateMap; + public java.util.Map<org.bukkit.Material, Integer> altItemDespawnRateMap; private void altItemDespawnRate() { diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java index 577b391dcba1db712c1e2c83296e1c87b3e34ab2..d94241bcca4f2fd5e464a860bd356af504dc68b7 100644 diff --git a/patches/server/0449-Optimize-Bit-Operations-by-inlining.patch b/patches/server/0450-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/0449-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/0450-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/0450-incremental-chunk-saving.patch b/patches/server/0451-incremental-chunk-saving.patch similarity index 94% rename from patches/server/0450-incremental-chunk-saving.patch rename to patches/server/0451-incremental-chunk-saving.patch index ece4224cd0..ad4e15eae2 100644 --- a/patches/server/0450-incremental-chunk-saving.patch +++ b/patches/server/0451-incremental-chunk-saving.patch @@ -5,10 +5,10 @@ Subject: [PATCH] incremental chunk saving diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 1f4d0d3493e748f52eb3b679c0a8a1306c0cc8b4..91917b11163c0740d5e5effc5e93d494e2b2d73e 100644 +index d2b1ef727004906d184995a840657e22ea127f71..040956f5d714ac014f9a153981d444db299fd826 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -47,6 +47,21 @@ public class PaperWorldConfig { +@@ -44,6 +44,21 @@ public class PaperWorldConfig { log( "Keep Spawn Loaded Range: " + (keepLoadedRange/16)); } @@ -139,10 +139,10 @@ index 969b0c9cf6d7eb2055d3b804f25a3cbc161ceaea..1f67c9c5f7161ea687983e7ae0ec7d25 for (int i = 0; i < this.futures.length(); ++i) { CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = (CompletableFuture) this.futures.get(i); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7..5a5e9188f55405c8a2646891c348d544d33eb940 100644 +index f722d9e77fa074847a2bdc6a117816d176eb6dca..8982823efd8fd21d403c6c6fb158d57a9da67707 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -93,6 +93,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureMana +@@ -92,6 +92,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureMana import net.minecraft.world.level.storage.DimensionDataStorage; import net.minecraft.world.level.storage.LevelStorageSource; import net.minecraft.world.phys.Vec3; @@ -150,7 +150,7 @@ index d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7..5a5e9188f55405c8a2646891c348d544 import org.apache.commons.lang3.mutable.MutableBoolean; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -744,6 +745,64 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -743,6 +744,64 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } @@ -215,7 +215,7 @@ index d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7..5a5e9188f55405c8a2646891c348d544 protected void saveAllChunks(boolean flush) { Long2ObjectLinkedOpenHashMap<ChunkHolder> visibleChunks = this.getVisibleChunks(); // Paper remove clone of visible Chunks unless saving off main thread (watchdog kill) if (flush) { -@@ -883,6 +942,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -882,6 +941,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider asyncSaveData, chunk); chunk.setUnsaved(false); @@ -223,7 +223,7 @@ index d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7..5a5e9188f55405c8a2646891c348d544 } // Paper end -@@ -905,6 +965,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -904,6 +964,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.level.unload(chunk); } @@ -231,7 +231,7 @@ index d8f99f7f5ca0e1dbbb9b760af3a4b4f9c52ef6c7..5a5e9188f55405c8a2646891c348d544 // Paper start - async chunk saving try { -@@ -1231,6 +1292,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1230,6 +1291,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!chunk.isUnsaved()) { return false; } else { @@ -260,7 +260,7 @@ index 3faa808f41f057a9956c697ec1323330f5920b86..7ab28e9bd3f785838b7fa4ac5811c0e7 public void close() throws IOException { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f10fad84e4f36f9158383b327170593f273cecd9..bdabcdb60dbfb803ead13c42c8dd5e100b37dc00 100644 +index 70106dda486d685dffafc0d4b3ae95b4861c6342..74753639ed095eab305c2facd0f00264a6253cef 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1017,6 +1017,38 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -303,7 +303,7 @@ index f10fad84e4f36f9158383b327170593f273cecd9..bdabcdb60dbfb803ead13c42c8dd5e10 ServerChunkCache chunkproviderserver = this.getChunkSource(); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java -index c0075d226331f32e470dae5bf1ce8d79e8b263dc..8ba782511b0a6c7859cbcf910ad742cbb9f599e5 100644 +index 91f5106cfe7914389b52a1ed001117b13e4f9768..31ea618547e0e452f9a495796a4197e718abbfa6 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java @@ -29,6 +29,7 @@ public interface ChunkAccess extends BlockGetter, FeatureAccess { @@ -315,7 +315,7 @@ index c0075d226331f32e470dae5bf1ce8d79e8b263dc..8ba782511b0a6c7859cbcf910ad742cb default boolean generateFlatBedrock() { if (this instanceof ProtoChunk) { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index a63dc77db41dab79f03ef7384da55c1cdeca5d98..efb9c6fef915b43c9dd4468ead52aa36ea9e7ef3 100644 +index bde00ca058f32eb55e940614f0fbc361fe3a501d..fe46fdb828d630f9dc9b212128608203f6c6f4bb 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -108,6 +108,13 @@ public class LevelChunk implements ChunkAccess { diff --git a/patches/server/0451-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0452-Add-Plugin-Tickets-to-API-Chunk-Methods.patch similarity index 98% rename from patches/server/0451-Add-Plugin-Tickets-to-API-Chunk-Methods.patch rename to patches/server/0452-Add-Plugin-Tickets-to-API-Chunk-Methods.patch index ab4ec662b0..10203095da 100644 --- a/patches/server/0451-Add-Plugin-Tickets-to-API-Chunk-Methods.patch +++ b/patches/server/0452-Add-Plugin-Tickets-to-API-Chunk-Methods.patch @@ -22,7 +22,7 @@ wants it to collect even faster, they can restore that setting back to 1 instead Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 94670ec4de01341822f6affe0fa1c9774dd6131b..6bc5ba51c90723c7138b1b5d2381cb215f1e5271 100644 +index e3338717bffe5f5e4a00fe1ebe3ba7cf74555b36..f7d542b828904fb51a30dfb7a50e01e4e2df0f3e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -346,7 +346,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0452-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0453-Fix-missing-chunks-due-to-integer-overflow.patch similarity index 100% rename from patches/server/0452-Fix-missing-chunks-due-to-integer-overflow.patch rename to patches/server/0453-Fix-missing-chunks-due-to-integer-overflow.patch diff --git a/patches/server/0453-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/patches/server/0454-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch similarity index 100% rename from patches/server/0453-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch rename to patches/server/0454-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch diff --git a/patches/server/0454-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/server/0455-Fix-piston-physics-inconsistency-MC-188840.patch similarity index 100% rename from patches/server/0454-Fix-piston-physics-inconsistency-MC-188840.patch rename to patches/server/0455-Fix-piston-physics-inconsistency-MC-188840.patch diff --git a/patches/server/0455-Fix-sand-duping.patch b/patches/server/0456-Fix-sand-duping.patch similarity index 100% rename from patches/server/0455-Fix-sand-duping.patch rename to patches/server/0456-Fix-sand-duping.patch diff --git a/patches/server/0456-Prevent-position-desync-in-playerconnection-causing-.patch b/patches/server/0457-Prevent-position-desync-in-playerconnection-causing-.patch similarity index 100% rename from patches/server/0456-Prevent-position-desync-in-playerconnection-causing-.patch rename to patches/server/0457-Prevent-position-desync-in-playerconnection-causing-.patch diff --git a/patches/server/0457-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0458-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/server/0457-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/server/0458-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/server/0458-Expose-Arrow-getItemStack.patch b/patches/server/0459-Expose-Arrow-getItemStack.patch similarity index 100% rename from patches/server/0458-Expose-Arrow-getItemStack.patch rename to patches/server/0459-Expose-Arrow-getItemStack.patch diff --git a/patches/server/0459-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0460-Add-and-implement-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/server/0459-Add-and-implement-PlayerRecipeBookClickEvent.patch rename to patches/server/0460-Add-and-implement-PlayerRecipeBookClickEvent.patch diff --git a/patches/server/0460-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0461-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/server/0460-Hide-sync-chunk-writes-behind-flag.patch rename to patches/server/0461-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/server/0461-Add-permission-for-command-blocks.patch b/patches/server/0462-Add-permission-for-command-blocks.patch similarity index 97% rename from patches/server/0461-Add-permission-for-command-blocks.patch rename to patches/server/0462-Add-permission-for-command-blocks.patch index da4472b2e1..e1dcbcf07f 100644 --- a/patches/server/0461-Add-permission-for-command-blocks.patch +++ b/patches/server/0462-Add-permission-for-command-blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for command blocks diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index f4a056185990181e486f452960159a5287947382..6c55bd8b876d1d694e05ad6de6a9fd29a4d4d053 100644 +index a695e5a0c2e8846333ccb9aea499b5656af35163..c21c5134308a2a83fb50bfe37f05d19c8e96ca7c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -389,7 +389,7 @@ public class ServerPlayerGameMode { +@@ -391,7 +391,7 @@ public class ServerPlayerGameMode { BlockEntity tileentity = this.level.getBlockEntity(pos); Block block = iblockdata.getBlock(); diff --git a/patches/server/0462-Ensure-Entity-AABB-s-are-never-invalid.patch b/patches/server/0463-Ensure-Entity-AABB-s-are-never-invalid.patch similarity index 100% rename from patches/server/0462-Ensure-Entity-AABB-s-are-never-invalid.patch rename to patches/server/0463-Ensure-Entity-AABB-s-are-never-invalid.patch diff --git a/patches/server/0463-Optimize-WorldBorder-collision-checks-and-air.patch b/patches/server/0464-Optimize-WorldBorder-collision-checks-and-air.patch similarity index 100% rename from patches/server/0463-Optimize-WorldBorder-collision-checks-and-air.patch rename to patches/server/0464-Optimize-WorldBorder-collision-checks-and-air.patch diff --git a/patches/server/0464-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0465-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 100% rename from patches/server/0464-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0465-Fix-Per-World-Difficulty-Remembering-Difficulty.patch diff --git a/patches/server/0465-Paper-dumpitem-command.patch b/patches/server/0466-Paper-dumpitem-command.patch similarity index 100% rename from patches/server/0465-Paper-dumpitem-command.patch rename to patches/server/0466-Paper-dumpitem-command.patch diff --git a/patches/server/0466-Don-t-allow-null-UUID-s-for-chat.patch b/patches/server/0467-Don-t-allow-null-UUID-s-for-chat.patch similarity index 100% rename from patches/server/0466-Don-t-allow-null-UUID-s-for-chat.patch rename to patches/server/0467-Don-t-allow-null-UUID-s-for-chat.patch diff --git a/patches/server/0467-Improve-Legacy-Component-serialization-size.patch b/patches/server/0468-Improve-Legacy-Component-serialization-size.patch similarity index 100% rename from patches/server/0467-Improve-Legacy-Component-serialization-size.patch rename to patches/server/0468-Improve-Legacy-Component-serialization-size.patch diff --git a/patches/server/0468-Support-old-UUID-format-for-NBT.patch b/patches/server/0469-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0468-Support-old-UUID-format-for-NBT.patch rename to patches/server/0469-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0469-Clean-up-duplicated-GameProfile-Properties.patch b/patches/server/0470-Clean-up-duplicated-GameProfile-Properties.patch similarity index 100% rename from patches/server/0469-Clean-up-duplicated-GameProfile-Properties.patch rename to patches/server/0470-Clean-up-duplicated-GameProfile-Properties.patch diff --git a/patches/server/0470-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0471-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/server/0470-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0471-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/server/0471-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/patches/server/0472-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch similarity index 98% rename from patches/server/0471-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch rename to patches/server/0472-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index ed51f630f3..f96921a0f0 100644 --- a/patches/server/0471-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/patches/server/0472-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -327,10 +327,10 @@ index 1f67c9c5f7161ea687983e7ae0ec7d259da9acd3..6a1c000d693031f0c537112963cfa52e } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de03a597b29 100644 +index 8982823efd8fd21d403c6c6fb158d57a9da67707..943c187efab8fdbcc38c313a498f876983a98412 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -145,6 +145,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -144,6 +144,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public final ServerLevel level; private final ThreadedLevelLightEngine lightEngine; private final BlockableEventLoop<Runnable> mainThreadExecutor; @@ -338,7 +338,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 public final ChunkGenerator generator; private final Supplier<DimensionDataStorage> overworldDataStorage; public final Supplier<DimensionDataStorage> getWorldPersistentDataSupplier() { return this.overworldDataStorage; } // Paper - OBFHELPER private final PoiManager poiManager; -@@ -183,6 +184,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -182,6 +183,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Override public void execute(Runnable runnable) { @@ -346,7 +346,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 if (this.queue == null) { this.queue = new java.util.ArrayDeque<>(); } -@@ -191,6 +193,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -190,6 +192,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Override public void run() { @@ -354,7 +354,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 if (this.queue == null) { return; } -@@ -347,6 +350,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -346,6 +349,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.level = world; this.generator = chunkGenerator; this.mainThreadExecutor = mainThreadExecutor; @@ -370,7 +370,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 ProcessorMailbox<Runnable> threadedmailbox = ProcessorMailbox.create(executor, "worldgen"); Objects.requireNonNull(mainThreadExecutor); -@@ -442,6 +454,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -441,6 +453,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<ServerPlayer> newState) -> { @@ -378,7 +378,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 if (newState.size() != 1) { return; } -@@ -460,7 +473,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -459,7 +472,11 @@ 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 @@ -391,7 +391,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 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, -@@ -477,8 +494,116 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -476,8 +493,116 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); // Paper end - no-tick view distance } @@ -508,7 +508,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 public void updatePlayerMobTypeMap(Entity entity) { if (!this.level.paperConfig.perPlayerMobSpawns) { return; -@@ -636,6 +761,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -635,6 +760,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List<CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>>> list = Lists.newArrayList(); int j = centerChunk.x; int k = centerChunk.z; @@ -516,7 +516,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 for (int l = -margin; l <= margin; ++l) { for (int i1 = -margin; i1 <= margin; ++i1) { -@@ -654,6 +780,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -653,6 +779,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkStatus chunkstatus = (ChunkStatus) distanceToStatus.apply(j1); CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = playerchunk.getOrScheduleFuture(chunkstatus, this); @@ -531,7 +531,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 list.add(completablefuture); } -@@ -1100,14 +1234,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1099,14 +1233,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; CompletableFuture<CompoundTag> chunkSaveFuture = this.level.asyncChunkTaskManager.getChunkSaveFuture(pos.x, pos.z); @@ -559,7 +559,7 @@ index 5a5e9188f55405c8a2646891c348d544d33eb940..b86ff17cdfa613a03bd75eeaab194de0 return ret; // Paper end } -@@ -1238,7 +1380,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1237,7 +1379,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider long i = playerchunk.getPos().toLong(); Objects.requireNonNull(playerchunk); diff --git a/patches/server/0472-Remove-some-streams-from-structures.patch b/patches/server/0473-Remove-some-streams-from-structures.patch similarity index 100% rename from patches/server/0472-Remove-some-streams-from-structures.patch rename to patches/server/0473-Remove-some-streams-from-structures.patch diff --git a/patches/server/0473-Remove-streams-from-classes-related-villager-gossip.patch b/patches/server/0474-Remove-streams-from-classes-related-villager-gossip.patch similarity index 100% rename from patches/server/0473-Remove-streams-from-classes-related-villager-gossip.patch rename to patches/server/0474-Remove-streams-from-classes-related-villager-gossip.patch diff --git a/patches/server/0474-Support-components-in-ItemMeta.patch b/patches/server/0475-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/server/0474-Support-components-in-ItemMeta.patch rename to patches/server/0475-Support-components-in-ItemMeta.patch diff --git a/patches/server/0475-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch b/patches/server/0476-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch similarity index 100% rename from patches/server/0475-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch rename to patches/server/0476-Improve-EntityTargetLivingEntityEvent-for-1.16-mobs.patch diff --git a/patches/server/0476-Add-entity-liquid-API.patch b/patches/server/0477-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0476-Add-entity-liquid-API.patch rename to patches/server/0477-Add-entity-liquid-API.patch diff --git a/patches/server/0477-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0478-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0477-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0478-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0478-Spawn-player-in-correct-world-on-login.patch b/patches/server/0479-Spawn-player-in-correct-world-on-login.patch similarity index 100% rename from patches/server/0478-Spawn-player-in-correct-world-on-login.patch rename to patches/server/0479-Spawn-player-in-correct-world-on-login.patch diff --git a/patches/server/0479-Add-PrepareResultEvent.patch b/patches/server/0480-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0479-Add-PrepareResultEvent.patch rename to patches/server/0480-Add-PrepareResultEvent.patch diff --git a/patches/server/0480-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0481-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 95% rename from patches/server/0480-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0481-Allow-delegation-to-vanilla-chunk-gen.patch index ef0cf459b5..eb2bc9a627 100644 --- a/patches/server/0480-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0481-Allow-delegation-to-vanilla-chunk-gen.patch @@ -42,7 +42,7 @@ index f7d542b828904fb51a30dfb7a50e01e4e2df0f3e..407a91f64e040745dea17544d6b7c6d1 public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return new CraftBossBar(title, color, style, flags); diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -index 3d905c98704da64cefd009b2c796b24e729396a5..6e8018241664d2cc2a6a8d52d87946740ac8bb97 100644 +index fe7851476636dfed02339d4d9f93824b96086769..24a2e88d083f90375c46cf948c7c89dccc6e4aa0 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java @@ -20,7 +20,7 @@ import org.bukkit.material.MaterialData; @@ -52,9 +52,9 @@ index 3d905c98704da64cefd009b2c796b24e729396a5..6e8018241664d2cc2a6a8d52d8794674 - private final LevelChunkSection[] sections; + private LevelChunkSection[] sections; // Paper - remove final private Set<BlockPos> tiles; + private World world; // Paper - Anti-Xray - Add world - public CraftChunkData(World world) { -@@ -171,6 +171,12 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { +@@ -173,6 +173,12 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { return this.sections; } diff --git a/patches/server/0481-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0482-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 100% rename from patches/server/0481-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0482-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch diff --git a/patches/server/0482-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0483-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0482-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0483-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0483-Optimize-the-advancement-data-player-iteration-to-be.patch b/patches/server/0484-Optimize-the-advancement-data-player-iteration-to-be.patch similarity index 100% rename from patches/server/0483-Optimize-the-advancement-data-player-iteration-to-be.patch rename to patches/server/0484-Optimize-the-advancement-data-player-iteration-to-be.patch diff --git a/patches/server/0484-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0485-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0484-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0485-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0485-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0486-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0485-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0486-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0486-Move-range-check-for-block-placing-up.patch b/patches/server/0487-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0486-Move-range-check-for-block-placing-up.patch rename to patches/server/0487-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0487-Fix-SPIGOT-5989.patch b/patches/server/0488-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/server/0487-Fix-SPIGOT-5989.patch rename to patches/server/0488-Fix-SPIGOT-5989.patch diff --git a/patches/server/0488-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0489-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0488-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0489-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0489-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0490-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0489-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0490-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0490-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0491-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0490-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0491-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0491-Add-missing-strikeLighting-call-to-World-spigot-stri.patch b/patches/server/0492-Add-missing-strikeLighting-call-to-World-spigot-stri.patch similarity index 100% rename from patches/server/0491-Add-missing-strikeLighting-call-to-World-spigot-stri.patch rename to patches/server/0492-Add-missing-strikeLighting-call-to-World-spigot-stri.patch diff --git a/patches/server/0492-Fix-some-rails-connecting-improperly.patch b/patches/server/0493-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0492-Fix-some-rails-connecting-improperly.patch rename to patches/server/0493-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0493-Incremental-player-saving.patch b/patches/server/0494-Incremental-player-saving.patch similarity index 100% rename from patches/server/0493-Incremental-player-saving.patch rename to patches/server/0494-Incremental-player-saving.patch diff --git a/patches/server/0494-Fix-MC-187716-Use-configured-height.patch b/patches/server/0495-Fix-MC-187716-Use-configured-height.patch similarity index 100% rename from patches/server/0494-Fix-MC-187716-Use-configured-height.patch rename to patches/server/0495-Fix-MC-187716-Use-configured-height.patch diff --git a/patches/server/0495-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0496-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0495-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0496-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0496-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0497-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 96% rename from patches/server/0496-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0497-Do-not-let-the-server-load-chunks-from-newer-version.patch index f0ecafa556..5ddcf459d1 100644 --- a/patches/server/0496-Do-not-let-the-server-load-chunks-from-newer-version.patch +++ b/patches/server/0497-Do-not-let-the-server-load-chunks-from-newer-version.patch @@ -9,7 +9,7 @@ the game, immediately stop the server to prevent data corruption. You can override this functionality at your own peril. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index b4246524dd11ad1e1dc94c56eee966c5a54d9ecc..fad795c67829f89b21d78e822c7b15f2ea560184 100644 +index 1f95ac18990822a64f0bb2af947693c4b88cdf73..6b7d3433c6e26888b3c718cfe13237342ad9b2b4 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -98,10 +98,25 @@ public class ChunkSerializer { diff --git a/patches/server/0497-Brand-support.patch b/patches/server/0498-Brand-support.patch similarity index 100% rename from patches/server/0497-Brand-support.patch rename to patches/server/0498-Brand-support.patch diff --git a/patches/server/0498-Add-setMaxPlayers-API.patch b/patches/server/0499-Add-setMaxPlayers-API.patch similarity index 94% rename from patches/server/0498-Add-setMaxPlayers-API.patch rename to patches/server/0499-Add-setMaxPlayers-API.patch index 1249b8a981..f7d28abb3b 100644 --- a/patches/server/0498-Add-setMaxPlayers-API.patch +++ b/patches/server/0499-Add-setMaxPlayers-API.patch @@ -18,7 +18,7 @@ index 554da65376a1513af64fee6a958ceaa63c88b552..c61a4e8e03996487ed3f7f39187d96a8 private boolean allowCheatsForAllPlayers; private static final boolean ALLOW_LOGOUTIVATOR = false; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index beb8b7d06ef47c80ede95c884598fedcc7126d67..7795735e5acc3b7b6b71b4e61bdc4bdcb722a7b3 100644 +index 407a91f64e040745dea17544d6b7c6d125866c62..c4d7ac8abd7d86e8a4e2d8a3340d04f8710e925c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -616,6 +616,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0499-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0500-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0499-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0500-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0500-Don-t-require-FACING-data.patch b/patches/server/0501-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0500-Don-t-require-FACING-data.patch rename to patches/server/0501-Don-t-require-FACING-data.patch diff --git a/patches/server/0501-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0502-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 96% rename from patches/server/0501-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0502-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 69caf29aee..8750c499d9 100644 --- a/patches/server/0501-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0502-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 23f9bb0f3202b418bf4fb59a46c624477f4dfae3..8d3d76ff942baf129f9845b945bd1537a058833a 100644 +index 74753639ed095eab305c2facd0f00264a6253cef..93d31c6f4d05625c2fab1bd7166922323dac4b47 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1675,12 +1675,14 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0502-Add-moon-phase-API.patch b/patches/server/0503-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0502-Add-moon-phase-API.patch rename to patches/server/0503-Add-moon-phase-API.patch diff --git a/patches/server/0503-Prevent-headless-pistons-from-being-created.patch b/patches/server/0504-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0503-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0504-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0504-Add-BellRingEvent.patch b/patches/server/0505-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0504-Add-BellRingEvent.patch rename to patches/server/0505-Add-BellRingEvent.patch diff --git a/patches/server/0505-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0506-Add-zombie-targets-turtle-egg-config.patch similarity index 92% rename from patches/server/0505-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0506-Add-zombie-targets-turtle-egg-config.patch index 7704727c56..2f5c2120c0 100644 --- a/patches/server/0505-Add-zombie-targets-turtle-egg-config.patch +++ b/patches/server/0506-Add-zombie-targets-turtle-egg-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add zombie targets turtle egg config diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 91917b11163c0740d5e5effc5e93d494e2b2d73e..caac3c9936c764e411799cb6a702b590f49d9955 100644 +index 040956f5d714ac014f9a153981d444db299fd826..83a4a3bbea1c076788cb7746adcee61e128b90fe 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -41,6 +41,11 @@ public class PaperWorldConfig { +@@ -38,6 +38,11 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0506-Buffer-joins-to-world.patch b/patches/server/0507-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0506-Buffer-joins-to-world.patch rename to patches/server/0507-Buffer-joins-to-world.patch diff --git a/patches/server/0507-Optimize-redstone-algorithm.patch b/patches/server/0508-Optimize-redstone-algorithm.patch similarity index 99% rename from patches/server/0507-Optimize-redstone-algorithm.patch rename to patches/server/0508-Optimize-redstone-algorithm.patch index 1c103119e7..4ed4d3c38a 100644 --- a/patches/server/0507-Optimize-redstone-algorithm.patch +++ b/patches/server/0508-Optimize-redstone-algorithm.patch @@ -19,10 +19,10 @@ Aside from making the obvious class/function renames and obfhelpers I didn't nee Just added Bukkit's event system and took a few liberties with dead code and comment misspellings. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index caac3c9936c764e411799cb6a702b590f49d9955..a88ef43adcf4ba36964f02e3fd363d3e018147cd 100644 +index 83a4a3bbea1c076788cb7746adcee61e128b90fe..acbaa00167d60ca6c6019b2dcd0947ef1d0557ee 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -46,6 +46,16 @@ public class PaperWorldConfig { +@@ -43,6 +43,16 @@ public class PaperWorldConfig { zombiesTargetTurtleEggs = getBoolean("zombies-target-turtle-eggs", zombiesTargetTurtleEggs); } diff --git a/patches/server/0508-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0509-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0508-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0509-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0509-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0510-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0509-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0510-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0510-Fix-CraftTeam-null-check.patch b/patches/server/0511-Fix-CraftTeam-null-check.patch similarity index 100% rename from patches/server/0510-Fix-CraftTeam-null-check.patch rename to patches/server/0511-Fix-CraftTeam-null-check.patch diff --git a/patches/server/0511-Add-more-Evoker-API.patch b/patches/server/0512-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0511-Add-more-Evoker-API.patch rename to patches/server/0512-Add-more-Evoker-API.patch diff --git a/patches/server/0512-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch b/patches/server/0513-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch similarity index 100% rename from patches/server/0512-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch rename to patches/server/0513-Add-a-way-to-get-translation-keys-for-blocks-entitie.patch diff --git a/patches/server/0513-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0514-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0513-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0514-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0514-Cache-block-data-strings.patch b/patches/server/0515-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0514-Cache-block-data-strings.patch rename to patches/server/0515-Cache-block-data-strings.patch diff --git a/patches/server/0515-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0516-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 100% rename from patches/server/0515-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0516-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch diff --git a/patches/server/0516-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0517-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0516-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0517-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0517-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0518-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0517-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0518-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0518-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0519-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 92% rename from patches/server/0518-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0519-Extend-block-drop-capture-to-capture-all-items-added.patch index e32d13d264..07fde0b288 100644 --- a/patches/server/0518-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0519-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 4ae56444d258cdf44a02256315d6aae84e2f53be..f1c02ae301da2a3b582d2ec1215c1a981e26ac47 100644 +index 93d31c6f4d05625c2fab1bd7166922323dac4b47..fd797376447e121c56a557ea6af277654e3a1831 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1220,6 +1220,13 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl @@ -24,7 +24,7 @@ index 4ae56444d258cdf44a02256315d6aae84e2f53be..f1c02ae301da2a3b582d2ec1215c1a98 return false; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 6c55bd8b876d1d694e05ad6de6a9fd29a4d4d053..de4fdd46f23b2b17da752a8afc0faecc1ad8344f 100644 +index c21c5134308a2a83fb50bfe37f05d19c8e96ca7c..c3cdc5a7ae90b7d2dd5676d66086e1f0c5b23d0d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -7,6 +7,7 @@ import net.minecraft.world.InteractionResult; @@ -35,7 +35,7 @@ index 6c55bd8b876d1d694e05ad6de6a9fd29a4d4d053..de4fdd46f23b2b17da752a8afc0faecc import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.DoubleHighBlockItem; import net.minecraft.world.item.ItemStack; -@@ -421,10 +422,12 @@ public class ServerPlayerGameMode { +@@ -423,10 +424,12 @@ public class ServerPlayerGameMode { // return true; // CraftBukkit } // CraftBukkit start diff --git a/patches/server/0519-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch b/patches/server/0520-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch similarity index 100% rename from patches/server/0519-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch rename to patches/server/0520-Don-t-mark-dirty-in-invalid-locations-SPIGOT-6086.patch diff --git a/patches/server/0520-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0521-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/server/0520-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0521-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/server/0521-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0522-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0521-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0522-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0522-Entity-isTicking.patch b/patches/server/0523-Entity-isTicking.patch similarity index 100% rename from patches/server/0522-Entity-isTicking.patch rename to patches/server/0523-Entity-isTicking.patch diff --git a/patches/server/0523-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0524-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0523-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0524-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0524-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch b/patches/server/0525-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch similarity index 100% rename from patches/server/0524-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch rename to patches/server/0525-Fix-CME-on-adding-a-passenger-in-CreatureSpawnEvent.patch diff --git a/patches/server/0525-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0526-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0525-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0526-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0526-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0527-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/server/0526-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0527-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/server/0527-Optimise-getType-calls.patch b/patches/server/0528-Optimise-getType-calls.patch similarity index 96% rename from patches/server/0527-Optimise-getType-calls.patch rename to patches/server/0528-Optimise-getType-calls.patch index e67e76e8d0..29bd54a4d7 100644 --- a/patches/server/0527-Optimise-getType-calls.patch +++ b/patches/server/0528-Optimise-getType-calls.patch @@ -80,10 +80,10 @@ index 6dc8f9f269db6971b8b46819e017357899ccd118..7f49c7c7048b5778f20ddce1d844d4b3 public BlockState getState() { diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -index 6e8018241664d2cc2a6a8d52d87946740ac8bb97..8038fe792533617023e9667fa2763ce98975318c 100644 +index 24a2e88d083f90375c46cf948c7c89dccc6e4aa0..53a0edfff9b8a5417461aa253ee6df4f592fd5d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -@@ -75,7 +75,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { +@@ -77,7 +77,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { @Override public Material getType(int x, int y, int z) { diff --git a/patches/server/0528-Villager-resetOffers.patch b/patches/server/0529-Villager-resetOffers.patch similarity index 100% rename from patches/server/0528-Villager-resetOffers.patch rename to patches/server/0529-Villager-resetOffers.patch diff --git a/patches/server/0529-Improve-inlinig-for-some-hot-IBlockData-methods.patch b/patches/server/0530-Improve-inlinig-for-some-hot-IBlockData-methods.patch similarity index 100% rename from patches/server/0529-Improve-inlinig-for-some-hot-IBlockData-methods.patch rename to patches/server/0530-Improve-inlinig-for-some-hot-IBlockData-methods.patch diff --git a/patches/server/0530-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0531-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0530-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0531-Retain-block-place-order-when-capturing-blockstates.patch index 86eaf1f7dc..c81368ec8e 100644 --- a/patches/server/0530-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0531-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b92d930448757968cd6a178f4bcafae72c93044c..0c1774ecf236d7616738a170930abe58c5d12ece 100644 +index f004f5012ce157f9b0fb9c5890b5f3de957418f8..febc4fececb4bf527a69e47a06d782ec81616c1e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -147,7 +147,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0531-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0532-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0531-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0532-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0532-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0533-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0532-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0533-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0533-Player-elytra-boost-API.patch b/patches/server/0534-Player-elytra-boost-API.patch similarity index 100% rename from patches/server/0533-Player-elytra-boost-API.patch rename to patches/server/0534-Player-elytra-boost-API.patch diff --git a/patches/server/0534-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0535-Fixed-TileEntityBell-memory-leak.patch similarity index 100% rename from patches/server/0534-Fixed-TileEntityBell-memory-leak.patch rename to patches/server/0535-Fixed-TileEntityBell-memory-leak.patch diff --git a/patches/server/0535-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0536-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0535-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0536-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0536-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0537-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0536-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0537-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0537-Add-ignore-discounts-API.patch b/patches/server/0538-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0537-Add-ignore-discounts-API.patch rename to patches/server/0538-Add-ignore-discounts-API.patch diff --git a/patches/server/0538-Toggle-for-removing-existing-dragon.patch b/patches/server/0539-Toggle-for-removing-existing-dragon.patch similarity index 92% rename from patches/server/0538-Toggle-for-removing-existing-dragon.patch rename to patches/server/0539-Toggle-for-removing-existing-dragon.patch index 3bb55320e8..c7654f7d44 100644 --- a/patches/server/0538-Toggle-for-removing-existing-dragon.patch +++ b/patches/server/0539-Toggle-for-removing-existing-dragon.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for removing existing dragon diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index a88ef43adcf4ba36964f02e3fd363d3e018147cd..1a2f62fae9ccf31764d8e10642ef38bdb955dc41 100644 +index acbaa00167d60ca6c6019b2dcd0947ef1d0557ee..b3e9149dbbc1cd6a6d01bb9f7109136b995afb0a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -56,6 +56,14 @@ public class PaperWorldConfig { +@@ -53,6 +53,14 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0539-Fix-client-lag-on-advancement-loading.patch b/patches/server/0540-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0539-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0540-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0540-Item-no-age-no-player-pickup.patch b/patches/server/0541-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0540-Item-no-age-no-player-pickup.patch rename to patches/server/0541-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0541-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0542-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/0541-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/0542-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/0542-Beacon-API-custom-effect-ranges.patch b/patches/server/0543-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0542-Beacon-API-custom-effect-ranges.patch rename to patches/server/0543-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0543-Add-API-for-quit-reason.patch b/patches/server/0544-Add-API-for-quit-reason.patch similarity index 100% rename from patches/server/0543-Add-API-for-quit-reason.patch rename to patches/server/0544-Add-API-for-quit-reason.patch diff --git a/patches/server/0544-Seed-based-feature-search.patch b/patches/server/0545-Seed-based-feature-search.patch similarity index 96% rename from patches/server/0544-Seed-based-feature-search.patch rename to patches/server/0545-Seed-based-feature-search.patch index 05c05fa386..46be6bfd43 100644 --- a/patches/server/0544-Seed-based-feature-search.patch +++ b/patches/server/0545-Seed-based-feature-search.patch @@ -21,10 +21,10 @@ changes but this should usually not happen. A config option to disable this completely is added though in case that should ever be necessary. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 1a2f62fae9ccf31764d8e10642ef38bdb955dc41..2097c579bda12c2d1d19d67a023ca94051509b51 100644 +index b3e9149dbbc1cd6a6d01bb9f7109136b995afb0a..2523aabf499ef3807af02f7e61a3b13dbca08ee3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -379,6 +379,14 @@ public class PaperWorldConfig { +@@ -376,6 +376,14 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0545-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0546-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 97% rename from patches/server/0545-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0546-Add-Wandering-Trader-spawn-rate-config-options.patch index d5e31e5fbb..22e1ab6f8c 100644 --- a/patches/server/0545-Add-Wandering-Trader-spawn-rate-config-options.patch +++ b/patches/server/0546-Add-Wandering-Trader-spawn-rate-config-options.patch @@ -11,10 +11,10 @@ in IWorldServerData are removed as they were only used in certain places, with h values used in other places. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 2097c579bda12c2d1d19d67a023ca94051509b51..afc637476380da272e61c10663dc77b30901c03a 100644 +index 2523aabf499ef3807af02f7e61a3b13dbca08ee3..d76b292cdfa2ae4d84a449da7f66faba494f6b03 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -64,6 +64,19 @@ public class PaperWorldConfig { +@@ -61,6 +61,19 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0546-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0547-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0546-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0547-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0547-Expose-world-spawn-angle.patch b/patches/server/0548-Expose-world-spawn-angle.patch similarity index 100% rename from patches/server/0547-Expose-world-spawn-angle.patch rename to patches/server/0548-Expose-world-spawn-angle.patch diff --git a/patches/server/0548-Add-Destroy-Speed-API.patch b/patches/server/0549-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0548-Add-Destroy-Speed-API.patch rename to patches/server/0549-Add-Destroy-Speed-API.patch diff --git a/patches/server/0549-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0550-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/server/0549-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0550-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/server/0550-Add-LivingEntity-clearActiveItem.patch b/patches/server/0551-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0550-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0551-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0551-Add-PlayerItemCooldownEvent.patch b/patches/server/0552-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0551-Add-PlayerItemCooldownEvent.patch rename to patches/server/0552-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0552-More-lightning-API.patch b/patches/server/0553-More-lightning-API.patch similarity index 100% rename from patches/server/0552-More-lightning-API.patch rename to patches/server/0553-More-lightning-API.patch diff --git a/patches/server/0553-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0554-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 98% rename from patches/server/0553-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0554-Climbing-should-not-bypass-cramming-gamerule.patch index 5364432181..af8c479a90 100644 --- a/patches/server/0553-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0554-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index afc637476380da272e61c10663dc77b30901c03a..247b30b2b2edbb1043b6385039ba830dea877c55 100644 +index d76b292cdfa2ae4d84a449da7f66faba494f6b03..0ec093e5d8865e909d0d105e27b81b31bdb5c192 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -77,6 +77,11 @@ public class PaperWorldConfig { +@@ -74,6 +74,11 @@ public class PaperWorldConfig { wanderingTraderSpawnChanceMax = getInt("wandering-trader.spawn-chance-max", wanderingTraderSpawnChanceMax); } diff --git a/patches/server/0554-Added-missing-default-perms-for-commands.patch b/patches/server/0555-Added-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0554-Added-missing-default-perms-for-commands.patch rename to patches/server/0555-Added-missing-default-perms-for-commands.patch diff --git a/patches/server/0555-Add-PlayerShearBlockEvent.patch b/patches/server/0556-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0555-Add-PlayerShearBlockEvent.patch rename to patches/server/0556-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0556-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0557-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/server/0556-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/server/0557-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/server/0557-Fix-curing-zombie-villager-discount-exploit.patch b/patches/server/0558-Fix-curing-zombie-villager-discount-exploit.patch similarity index 94% rename from patches/server/0557-Fix-curing-zombie-villager-discount-exploit.patch rename to patches/server/0558-Fix-curing-zombie-villager-discount-exploit.patch index 015e81c616..b6a6b16e0f 100644 --- a/patches/server/0557-Fix-curing-zombie-villager-discount-exploit.patch +++ b/patches/server/0558-Fix-curing-zombie-villager-discount-exploit.patch @@ -8,10 +8,10 @@ and curing a villager on repeat by simply resetting the relevant part of the reputation when it is cured. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 247b30b2b2edbb1043b6385039ba830dea877c55..618f47567ca9d4704f4686d7ca789286866f080a 100644 +index 0ec093e5d8865e909d0d105e27b81b31bdb5c192..1a8e7a495c38f617932825185378b2e494158175 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -82,6 +82,11 @@ public class PaperWorldConfig { +@@ -79,6 +79,11 @@ public class PaperWorldConfig { fixClimbingBypassingCrammingRule = getBoolean("fix-climbing-bypassing-cramming-rule", fixClimbingBypassingCrammingRule); } diff --git a/patches/server/0558-Limit-recipe-packets.patch b/patches/server/0559-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0558-Limit-recipe-packets.patch rename to patches/server/0559-Limit-recipe-packets.patch diff --git a/patches/server/0559-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0560-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0559-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0560-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0560-MC-4-Fix-item-position-desync.patch b/patches/server/0561-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/server/0560-MC-4-Fix-item-position-desync.patch rename to patches/server/0561-MC-4-Fix-item-position-desync.patch diff --git a/patches/server/0561-Player-Chunk-Load-Unload-Events.patch b/patches/server/0562-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0561-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0562-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0562-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0563-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0562-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0563-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0563-Expose-LivingEntity-hurt-direction.patch b/patches/server/0564-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0563-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0564-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0564-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0565-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0564-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0565-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0565-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0566-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch similarity index 100% rename from patches/server/0565-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch rename to patches/server/0566-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch diff --git a/patches/server/0566-added-PlayerTradeEvent.patch b/patches/server/0567-added-PlayerTradeEvent.patch similarity index 100% rename from patches/server/0566-added-PlayerTradeEvent.patch rename to patches/server/0567-added-PlayerTradeEvent.patch diff --git a/patches/server/0567-Implement-TargetHitEvent.patch b/patches/server/0568-Implement-TargetHitEvent.patch similarity index 100% rename from patches/server/0567-Implement-TargetHitEvent.patch rename to patches/server/0568-Implement-TargetHitEvent.patch diff --git a/patches/server/0568-Additional-Block-Material-API-s.patch b/patches/server/0569-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/server/0568-Additional-Block-Material-API-s.patch rename to patches/server/0569-Additional-Block-Material-API-s.patch diff --git a/patches/server/0569-Fix-harming-potion-dupe.patch b/patches/server/0570-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0569-Fix-harming-potion-dupe.patch rename to patches/server/0570-Fix-harming-potion-dupe.patch diff --git a/patches/server/0570-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0571-Implement-API-to-get-Material-from-Boats-and-Minecar.patch similarity index 100% rename from patches/server/0570-Implement-API-to-get-Material-from-Boats-and-Minecar.patch rename to patches/server/0571-Implement-API-to-get-Material-from-Boats-and-Minecar.patch diff --git a/patches/server/0571-Cache-burn-durations.patch b/patches/server/0572-Cache-burn-durations.patch similarity index 100% rename from patches/server/0571-Cache-burn-durations.patch rename to patches/server/0572-Cache-burn-durations.patch diff --git a/patches/server/0572-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0573-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 93% rename from patches/server/0572-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0573-Allow-disabling-mob-spawner-spawn-egg-transformation.patch index 25231c3e9e..df86b299c0 100644 --- a/patches/server/0572-Allow-disabling-mob-spawner-spawn-egg-transformation.patch +++ b/patches/server/0573-Allow-disabling-mob-spawner-spawn-egg-transformation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow disabling mob spawner spawn egg transformation diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 618f47567ca9d4704f4686d7ca789286866f080a..bedadfc8835fa0c834494eb10cef13fa1cdc5cf5 100644 +index 1a8e7a495c38f617932825185378b2e494158175..3c9bc0684f25d511b05b724d4d52aaa82e965397 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -87,6 +87,11 @@ public class PaperWorldConfig { +@@ -84,6 +84,11 @@ public class PaperWorldConfig { fixCuringZombieVillagerDiscountExploit = getBoolean("game-mechanics.fix-curing-zombie-villager-discount-exploit", fixCuringZombieVillagerDiscountExploit); } diff --git a/patches/server/0573-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0574-Implement-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0573-Implement-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0574-Implement-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0574-Fix-interact-event-not-being-called-in-adventure.patch b/patches/server/0575-Fix-interact-event-not-being-called-in-adventure.patch similarity index 100% rename from patches/server/0574-Fix-interact-event-not-being-called-in-adventure.patch rename to patches/server/0575-Fix-interact-event-not-being-called-in-adventure.patch diff --git a/patches/server/0575-Zombie-API-breaking-doors.patch b/patches/server/0576-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0575-Zombie-API-breaking-doors.patch rename to patches/server/0576-Zombie-API-breaking-doors.patch diff --git a/patches/server/0576-Fix-nerfed-slime-when-splitting.patch b/patches/server/0577-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0576-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0577-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0577-Add-EntityLoadCrossbowEvent.patch b/patches/server/0578-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0577-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0578-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0578-Guardian-beam-workaround.patch b/patches/server/0579-Guardian-beam-workaround.patch similarity index 100% rename from patches/server/0578-Guardian-beam-workaround.patch rename to patches/server/0579-Guardian-beam-workaround.patch diff --git a/patches/server/0579-Added-WorldGameRuleChangeEvent.patch b/patches/server/0580-Added-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0579-Added-WorldGameRuleChangeEvent.patch rename to patches/server/0580-Added-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0580-Added-ServerResourcesReloadedEvent.patch b/patches/server/0581-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0580-Added-ServerResourcesReloadedEvent.patch rename to patches/server/0581-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0581-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0582-Added-world-settings-for-mobs-picking-up-loot.patch similarity index 95% rename from patches/server/0581-Added-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0582-Added-world-settings-for-mobs-picking-up-loot.patch index 78f99e2245..84060c5b85 100644 --- a/patches/server/0581-Added-world-settings-for-mobs-picking-up-loot.patch +++ b/patches/server/0582-Added-world-settings-for-mobs-picking-up-loot.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added world settings for mobs picking up loot diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index bedadfc8835fa0c834494eb10cef13fa1cdc5cf5..b0b414a31192a2b0e5c69d00b982f883b66e77fd 100644 +index 3c9bc0684f25d511b05b724d4d52aaa82e965397..4a9fedb40acc72bec29fe71634406b06ce6b53cd 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -433,6 +433,14 @@ public class PaperWorldConfig { +@@ -430,6 +430,14 @@ public class PaperWorldConfig { log("Creeper lingering effect: " + disableCreeperLingeringEffect); } diff --git a/patches/server/0582-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0583-Implemented-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0582-Implemented-BlockFailedDispenseEvent.patch rename to patches/server/0583-Implemented-BlockFailedDispenseEvent.patch diff --git a/patches/server/0583-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0584-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0583-Added-PlayerLecternPageChangeEvent.patch rename to patches/server/0584-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0584-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0585-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0584-Added-PlayerLoomPatternSelectEvent.patch rename to patches/server/0585-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0585-Configurable-door-breaking-difficulty.patch b/patches/server/0586-Configurable-door-breaking-difficulty.patch similarity index 92% rename from patches/server/0585-Configurable-door-breaking-difficulty.patch rename to patches/server/0586-Configurable-door-breaking-difficulty.patch index 8b84a411c3..a2bac6f78b 100644 --- a/patches/server/0585-Configurable-door-breaking-difficulty.patch +++ b/patches/server/0586-Configurable-door-breaking-difficulty.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Configurable door breaking difficulty diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b0b414a31192a2b0e5c69d00b982f883b66e77fd..dd5c092a035a30c477fe828b58bc918fc48daa03 100644 +index 4a9fedb40acc72bec29fe71634406b06ce6b53cd..48e0f9b8dbb94d56200b0b46c2a50d9bfa44b398 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -4,7 +4,10 @@ import java.util.EnumMap; - import java.util.HashMap; +@@ -2,7 +2,10 @@ package com.destroystokyo.paper; + + import java.util.Arrays; import java.util.List; - import java.util.Map; - +import java.util.stream.Collectors; +import net.minecraft.world.Difficulty; +import net.minecraft.world.entity.monster.Vindicator; +import net.minecraft.world.entity.monster.Zombie; + import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray.EngineMode; import org.bukkit.Bukkit; - import org.bukkit.Material; - import org.bukkit.configuration.ConfigurationSection; -@@ -92,6 +95,25 @@ public class PaperWorldConfig { + import org.bukkit.configuration.file.YamlConfiguration; +@@ -89,6 +92,25 @@ public class PaperWorldConfig { disableMobSpawnerSpawnEggTransformation = getBoolean("game-mechanics.disable-mob-spawner-spawn-egg-transformation", disableMobSpawnerSpawnEggTransformation); } @@ -46,7 +46,7 @@ index b0b414a31192a2b0e5c69d00b982f883b66e77fd..dd5c092a035a30c477fe828b58bc918f public short keepLoadedRange; private void keepLoadedRange() { keepLoadedRange = (short) (getInt("keep-spawn-loaded-range", Math.min(spigotConfig.viewDistance, 10)) * 16); -@@ -143,6 +165,11 @@ public class PaperWorldConfig { +@@ -140,6 +162,11 @@ public class PaperWorldConfig { return config.getString("world-settings." + worldName + "." + path, config.getString("world-settings.default." + path)); } diff --git a/patches/server/0586-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0587-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0586-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0587-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0587-Implement-API-to-expose-exact-interaction-point.patch b/patches/server/0588-Implement-API-to-expose-exact-interaction-point.patch similarity index 96% rename from patches/server/0587-Implement-API-to-expose-exact-interaction-point.patch rename to patches/server/0588-Implement-API-to-expose-exact-interaction-point.patch index 410f64669f..7d021dd589 100644 --- a/patches/server/0587-Implement-API-to-expose-exact-interaction-point.patch +++ b/patches/server/0588-Implement-API-to-expose-exact-interaction-point.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement API to expose exact interaction point diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index de4fdd46f23b2b17da752a8afc0faecc1ad8344f..2a0f313365a25c1780027f1536dbb88ccdab61e2 100644 +index c3cdc5a7ae90b7d2dd5676d66086e1f0c5b23d0d..b096384cdc7596166e010e06272534b8001693c9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -498,7 +498,7 @@ public class ServerPlayerGameMode { +@@ -500,7 +500,7 @@ public class ServerPlayerGameMode { cancelledBlock = true; } diff --git a/patches/server/0588-Remove-stale-POIs.patch b/patches/server/0589-Remove-stale-POIs.patch similarity index 92% rename from patches/server/0588-Remove-stale-POIs.patch rename to patches/server/0589-Remove-stale-POIs.patch index 712638228b..89164a2d29 100644 --- a/patches/server/0588-Remove-stale-POIs.patch +++ b/patches/server/0589-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 908708900a9160d95dea3a392d96a40a17489280..a883677719b408edf0b81cdc885e65759a03936e 100644 +index fd797376447e121c56a557ea6af277654e3a1831..d5cfcba5e9a496deafa32f162b6ef634eae06214 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1764,6 +1764,11 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0589-Fix-villager-boat-exploit.patch b/patches/server/0590-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/server/0589-Fix-villager-boat-exploit.patch rename to patches/server/0590-Fix-villager-boat-exploit.patch diff --git a/patches/server/0590-Add-sendOpLevel-API.patch b/patches/server/0591-Add-sendOpLevel-API.patch similarity index 100% rename from patches/server/0590-Add-sendOpLevel-API.patch rename to patches/server/0591-Add-sendOpLevel-API.patch diff --git a/patches/server/0591-Add-StructureLocateEvent.patch b/patches/server/0592-Add-StructureLocateEvent.patch similarity index 100% rename from patches/server/0591-Add-StructureLocateEvent.patch rename to patches/server/0592-Add-StructureLocateEvent.patch diff --git a/patches/server/0592-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0593-Collision-option-for-requiring-a-player-participant.patch similarity index 97% rename from patches/server/0592-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0593-Collision-option-for-requiring-a-player-participant.patch index a27b7eae79..ab0cf7aa4c 100644 --- a/patches/server/0592-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0593-Collision-option-for-requiring-a-player-participant.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index dd5c092a035a30c477fe828b58bc918fc48daa03..16b80fe4c55c51d3afaefba7eef97d1e3e4a3248 100644 +index 48e0f9b8dbb94d56200b0b46c2a50d9bfa44b398..bc39e5fe8c9f5d1e5b5c4ea7bd80193af8574211 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -67,6 +67,18 @@ public class PaperWorldConfig { +@@ -64,6 +64,18 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0593-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0594-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0593-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0594-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0594-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0595-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0594-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0595-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0595-Make-schedule-command-per-world.patch b/patches/server/0596-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0595-Make-schedule-command-per-world.patch rename to patches/server/0596-Make-schedule-command-per-world.patch diff --git a/patches/server/0596-Configurable-max-leash-distance.patch b/patches/server/0597-Configurable-max-leash-distance.patch similarity index 94% rename from patches/server/0596-Configurable-max-leash-distance.patch rename to patches/server/0597-Configurable-max-leash-distance.patch index de244acf73..39b2c1b3a2 100644 --- a/patches/server/0596-Configurable-max-leash-distance.patch +++ b/patches/server/0597-Configurable-max-leash-distance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable max leash distance diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 16b80fe4c55c51d3afaefba7eef97d1e3e4a3248..4ceb6b048889c62edb69c88422abddd1aee0bcf7 100644 +index bc39e5fe8c9f5d1e5b5c4ea7bd80193af8574211..214b7ab71c4717faa3c949e18f268bef3e066305 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -266,6 +266,12 @@ public class PaperWorldConfig { +@@ -263,6 +263,12 @@ public class PaperWorldConfig { } } diff --git a/patches/server/0597-Implement-BlockPreDispenseEvent.patch b/patches/server/0598-Implement-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0597-Implement-BlockPreDispenseEvent.patch rename to patches/server/0598-Implement-BlockPreDispenseEvent.patch diff --git a/patches/server/0598-Added-Vanilla-Entity-Tags.patch b/patches/server/0599-Added-Vanilla-Entity-Tags.patch similarity index 100% rename from patches/server/0598-Added-Vanilla-Entity-Tags.patch rename to patches/server/0599-Added-Vanilla-Entity-Tags.patch diff --git a/patches/server/0599-added-Wither-API.patch b/patches/server/0600-added-Wither-API.patch similarity index 100% rename from patches/server/0599-added-Wither-API.patch rename to patches/server/0600-added-Wither-API.patch diff --git a/patches/server/0600-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0601-Added-firing-of-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0600-Added-firing-of-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0601-Added-firing-of-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0601-Fix-console-spam-when-removing-chests-in-water.patch b/patches/server/0602-Fix-console-spam-when-removing-chests-in-water.patch similarity index 100% rename from patches/server/0601-Fix-console-spam-when-removing-chests-in-water.patch rename to patches/server/0602-Fix-console-spam-when-removing-chests-in-water.patch diff --git a/patches/server/0602-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0603-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 92% rename from patches/server/0602-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0603-Add-toggle-for-always-placing-the-dragon-egg.patch index 1ca09dd0b5..421a188e0f 100644 --- a/patches/server/0602-Add-toggle-for-always-placing-the-dragon-egg.patch +++ b/patches/server/0603-Add-toggle-for-always-placing-the-dragon-egg.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for always placing the dragon egg diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 4ceb6b048889c62edb69c88422abddd1aee0bcf7..7738b5959f347cb369646852e7174aa580546400 100644 +index 214b7ab71c4717faa3c949e18f268bef3e066305..70fdd29f0dd6dfac94b2c20090348678a956c333 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -683,5 +683,10 @@ public class PaperWorldConfig { +@@ -714,5 +714,10 @@ public class PaperWorldConfig { private void perPlayerMobSpawns() { perPlayerMobSpawns = getBoolean("per-player-mob-spawns", false); } diff --git a/patches/server/0603-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0604-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0603-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0604-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0604-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0605-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0604-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/server/0605-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/server/0605-Skip-distance-map-update-when-spawning-disabled.patch b/patches/server/0606-Skip-distance-map-update-when-spawning-disabled.patch similarity index 100% rename from patches/server/0605-Skip-distance-map-update-when-spawning-disabled.patch rename to patches/server/0606-Skip-distance-map-update-when-spawning-disabled.patch diff --git a/patches/server/0606-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0607-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0606-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0607-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0607-add-DragonEggFormEvent.patch b/patches/server/0608-add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0607-add-DragonEggFormEvent.patch rename to patches/server/0608-add-DragonEggFormEvent.patch diff --git a/patches/server/0608-EntityMoveEvent.patch b/patches/server/0609-EntityMoveEvent.patch similarity index 97% rename from patches/server/0608-EntityMoveEvent.patch rename to patches/server/0609-EntityMoveEvent.patch index b6b9cba0ed..95012893ed 100644 --- a/patches/server/0608-EntityMoveEvent.patch +++ b/patches/server/0609-EntityMoveEvent.patch @@ -17,7 +17,7 @@ index 51bbb11ff8d3da95fa6d9890be3135a34b3eafac..c8213692e658f6eb82d3bd843b9525ff 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 0e14946284738b751790b2763bfe197c0148a54a..5cd1fe3506b1009de9fce64c3f4f44a29f13c359 100644 +index d5cfcba5e9a496deafa32f162b6ef634eae06214..103d32b360095c179e681bd354d0b9316b050339 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/0609-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0610-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 88% rename from patches/server/0609-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0610-added-option-to-disable-pathfinding-updates-on-block.patch index 176d82a83b..ca55ee348e 100644 --- a/patches/server/0609-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0610-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,10 +5,10 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 7738b5959f347cb369646852e7174aa580546400..c6cbc656f2cf6b253c3dfc87b8367f11102c7e41 100644 +index 70fdd29f0dd6dfac94b2c20090348678a956c333..bc33cf47e6f67179656f9ac0c378408985d9a88e 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -688,5 +688,10 @@ public class PaperWorldConfig { +@@ -719,5 +719,10 @@ public class PaperWorldConfig { private void enderDragonsDeathAlwaysPlacesDragonEgg() { enderDragonsDeathAlwaysPlacesDragonEgg = getBoolean("ender-dragons-death-always-places-dragon-egg", enderDragonsDeathAlwaysPlacesDragonEgg); } @@ -20,7 +20,7 @@ index 7738b5959f347cb369646852e7174aa580546400..c6cbc656f2cf6b253c3dfc87b8367f11 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5cd1fe3506b1009de9fce64c3f4f44a29f13c359..a2d9e093bf7b5ee947f1d7c3b94397cd93eedef7 100644 +index 103d32b360095c179e681bd354d0b9316b050339..1f1b1a62ea9b37bc671e4df60a00c16c1027d3f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1360,6 +1360,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0610-Inline-shift-direction-fields.patch b/patches/server/0611-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0610-Inline-shift-direction-fields.patch rename to patches/server/0611-Inline-shift-direction-fields.patch diff --git a/patches/server/0611-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0612-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0611-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0612-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0612-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0613-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0612-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0613-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0613-living-entity-allow-attribute-registration.patch b/patches/server/0614-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0613-living-entity-allow-attribute-registration.patch rename to patches/server/0614-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0614-fix-dead-slime-setSize-invincibility.patch b/patches/server/0615-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0614-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0615-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0615-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0616-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0615-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0616-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0616-misc-debugging-dumps.patch b/patches/server/0617-misc-debugging-dumps.patch similarity index 100% rename from patches/server/0616-misc-debugging-dumps.patch rename to patches/server/0617-misc-debugging-dumps.patch diff --git a/patches/server/0617-Add-support-for-hex-color-codes-in-console.patch b/patches/server/0618-Add-support-for-hex-color-codes-in-console.patch similarity index 100% rename from patches/server/0617-Add-support-for-hex-color-codes-in-console.patch rename to patches/server/0618-Add-support-for-hex-color-codes-in-console.patch diff --git a/patches/server/0618-Expose-Tracked-Players.patch b/patches/server/0619-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0618-Expose-Tracked-Players.patch rename to patches/server/0619-Expose-Tracked-Players.patch diff --git a/patches/server/0619-Remove-streams-from-SensorNearest.patch b/patches/server/0620-Remove-streams-from-SensorNearest.patch similarity index 100% rename from patches/server/0619-Remove-streams-from-SensorNearest.patch rename to patches/server/0620-Remove-streams-from-SensorNearest.patch diff --git a/patches/server/0620-MC-29274-Fix-Wither-hostility-towards-players.patch b/patches/server/0621-MC-29274-Fix-Wither-hostility-towards-players.patch similarity index 93% rename from patches/server/0620-MC-29274-Fix-Wither-hostility-towards-players.patch rename to patches/server/0621-MC-29274-Fix-Wither-hostility-towards-players.patch index 019deb51e8..519adeaa4d 100644 --- a/patches/server/0620-MC-29274-Fix-Wither-hostility-towards-players.patch +++ b/patches/server/0621-MC-29274-Fix-Wither-hostility-towards-players.patch @@ -5,10 +5,10 @@ Subject: [PATCH] MC-29274: Fix Wither hostility towards players diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index c6cbc656f2cf6b253c3dfc87b8367f11102c7e41..caa15973d78e21725b5dd9e5fc91cede4cc0dac4 100644 +index bc33cf47e6f67179656f9ac0c378408985d9a88e..f97795330cff2df87c91a0946b80d156d1df9389 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -693,5 +693,11 @@ public class PaperWorldConfig { +@@ -724,5 +724,11 @@ public class PaperWorldConfig { private void setUpdatePathfindingOnBlockUpdate() { updatePathfindingOnBlockUpdate = getBoolean("update-pathfinding-on-block-update", this.updatePathfindingOnBlockUpdate); } diff --git a/patches/server/0621-Throw-proper-exception-on-empty-JsonList-file.patch b/patches/server/0622-Throw-proper-exception-on-empty-JsonList-file.patch similarity index 100% rename from patches/server/0621-Throw-proper-exception-on-empty-JsonList-file.patch rename to patches/server/0622-Throw-proper-exception-on-empty-JsonList-file.patch diff --git a/patches/server/0622-Improve-ServerGUI.patch b/patches/server/0623-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0622-Improve-ServerGUI.patch rename to patches/server/0623-Improve-ServerGUI.patch diff --git a/patches/server/0623-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch b/patches/server/0624-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch similarity index 100% rename from patches/server/0623-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch rename to patches/server/0624-stop-firing-pressure-plate-EntityInteractEvent-for-i.patch diff --git a/patches/server/0624-fix-converting-txt-to-json-file.patch b/patches/server/0625-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/server/0624-fix-converting-txt-to-json-file.patch rename to patches/server/0625-fix-converting-txt-to-json-file.patch diff --git a/patches/server/0625-Add-worldborder-events.patch b/patches/server/0626-Add-worldborder-events.patch similarity index 100% rename from patches/server/0625-Add-worldborder-events.patch rename to patches/server/0626-Add-worldborder-events.patch diff --git a/patches/server/0626-added-PlayerNameEntityEvent.patch b/patches/server/0627-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0626-added-PlayerNameEntityEvent.patch rename to patches/server/0627-added-PlayerNameEntityEvent.patch diff --git a/patches/server/0627-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0628-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0627-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0628-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0628-Add-recipe-to-cook-events.patch b/patches/server/0629-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0628-Add-recipe-to-cook-events.patch rename to patches/server/0629-Add-recipe-to-cook-events.patch diff --git a/patches/server/0629-Add-Block-isValidTool.patch b/patches/server/0630-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0629-Add-Block-isValidTool.patch rename to patches/server/0630-Add-Block-isValidTool.patch diff --git a/patches/server/0630-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0631-Allow-using-signs-inside-spawn-protection.patch similarity index 94% rename from patches/server/0630-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0631-Allow-using-signs-inside-spawn-protection.patch index 300b353455..b353cb3548 100644 --- a/patches/server/0630-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0631-Allow-using-signs-inside-spawn-protection.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index caa15973d78e21725b5dd9e5fc91cede4cc0dac4..46601a98d9f06c6cfadc8120bcffab081ca7f557 100644 +index f97795330cff2df87c91a0946b80d156d1df9389..19a0b2a73ab1d066501148108d6cd9998d281853 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -699,5 +699,10 @@ public class PaperWorldConfig { +@@ -730,5 +730,10 @@ public class PaperWorldConfig { fixWitherTargetingBug = getBoolean("fix-wither-targeting-bug", false); log("Withers properly target players: " + fixWitherTargetingBug); } diff --git a/patches/server/0631-Implement-Keyed-on-World.patch b/patches/server/0632-Implement-Keyed-on-World.patch similarity index 100% rename from patches/server/0631-Implement-Keyed-on-World.patch rename to patches/server/0632-Implement-Keyed-on-World.patch diff --git a/patches/server/0632-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0633-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0632-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0633-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0633-Item-Rarity-API.patch b/patches/server/0634-Item-Rarity-API.patch similarity index 100% rename from patches/server/0633-Item-Rarity-API.patch rename to patches/server/0634-Item-Rarity-API.patch diff --git a/patches/server/0634-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0635-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0634-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0635-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0635-copy-TESign-isEditable-from-snapshots.patch b/patches/server/0636-copy-TESign-isEditable-from-snapshots.patch similarity index 100% rename from patches/server/0635-copy-TESign-isEditable-from-snapshots.patch rename to patches/server/0636-copy-TESign-isEditable-from-snapshots.patch diff --git a/patches/server/0636-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0637-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/server/0636-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0637-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/server/0637-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0638-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0637-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0638-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0638-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0639-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/server/0638-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0639-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/server/0639-fix-cancelling-block-falling-causing-client-desync.patch b/patches/server/0640-fix-cancelling-block-falling-causing-client-desync.patch similarity index 100% rename from patches/server/0639-fix-cancelling-block-falling-causing-client-desync.patch rename to patches/server/0640-fix-cancelling-block-falling-causing-client-desync.patch diff --git a/patches/server/0640-Expose-protocol-version.patch b/patches/server/0641-Expose-protocol-version.patch similarity index 100% rename from patches/server/0640-Expose-protocol-version.patch rename to patches/server/0641-Expose-protocol-version.patch diff --git a/patches/server/0641-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch b/patches/server/0642-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch similarity index 100% rename from patches/server/0641-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch rename to patches/server/0642-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch diff --git a/patches/server/0642-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0643-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0642-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0643-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0643-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0644-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0643-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0644-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0644-Add-bypass-host-check.patch b/patches/server/0645-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0644-Add-bypass-host-check.patch rename to patches/server/0645-Add-bypass-host-check.patch diff --git a/patches/server/0645-Set-area-affect-cloud-rotation.patch b/patches/server/0646-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0645-Set-area-affect-cloud-rotation.patch rename to patches/server/0646-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0646-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0647-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0646-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0647-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0647-Fix-duplicating-give-items-on-item-drop-cancel.patch b/patches/server/0648-Fix-duplicating-give-items-on-item-drop-cancel.patch similarity index 100% rename from patches/server/0647-Fix-duplicating-give-items-on-item-drop-cancel.patch rename to patches/server/0648-Fix-duplicating-give-items-on-item-drop-cancel.patch diff --git a/patches/server/0648-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0649-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0648-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0649-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0649-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0650-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0649-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0650-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0650-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0651-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0650-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0651-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0651-Fix-checkReach-check-for-Shulker-boxes.patch b/patches/server/0652-Fix-checkReach-check-for-Shulker-boxes.patch similarity index 100% rename from patches/server/0651-Fix-checkReach-check-for-Shulker-boxes.patch rename to patches/server/0652-Fix-checkReach-check-for-Shulker-boxes.patch diff --git a/patches/server/0652-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0653-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/server/0652-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0653-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0653-Added-PlayerDeepSleepEvent.patch b/patches/server/0654-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0653-Added-PlayerDeepSleepEvent.patch rename to patches/server/0654-Added-PlayerDeepSleepEvent.patch diff --git a/patches/server/0654-More-World-API.patch b/patches/server/0655-More-World-API.patch similarity index 100% rename from patches/server/0654-More-World-API.patch rename to patches/server/0655-More-World-API.patch diff --git a/patches/server/0655-Added-PlayerBedFailEnterEvent.patch b/patches/server/0656-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0655-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0656-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0656-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0657-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0656-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0657-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0657-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0658-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch similarity index 100% rename from patches/server/0657-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename to patches/server/0658-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch diff --git a/patches/server/0658-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0659-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0658-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0659-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0659-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0660-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 100% rename from patches/server/0659-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0660-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/server/0660-Add-Channel-initialization-listeners.patch b/patches/server/0661-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0660-Add-Channel-initialization-listeners.patch rename to patches/server/0661-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0661-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0662-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0661-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0662-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0662-Add-more-WanderingTrader-API.patch b/patches/server/0663-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0662-Add-more-WanderingTrader-API.patch rename to patches/server/0663-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0663-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0664-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0663-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0664-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0664-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0665-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0664-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0665-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0665-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0666-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/server/0665-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/0666-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/server/0666-Inventory-close.patch b/patches/server/0667-Inventory-close.patch similarity index 100% rename from patches/server/0666-Inventory-close.patch rename to patches/server/0667-Inventory-close.patch diff --git a/patches/server/0667-call-PortalCreateEvent-players-and-end-platform.patch b/patches/server/0668-call-PortalCreateEvent-players-and-end-platform.patch similarity index 100% rename from patches/server/0667-call-PortalCreateEvent-players-and-end-platform.patch rename to patches/server/0668-call-PortalCreateEvent-players-and-end-platform.patch diff --git a/patches/server/0668-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0669-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0668-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0669-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0669-Fix-CraftPotionBrewer-cache.patch b/patches/server/0670-Fix-CraftPotionBrewer-cache.patch similarity index 100% rename from patches/server/0669-Fix-CraftPotionBrewer-cache.patch rename to patches/server/0670-Fix-CraftPotionBrewer-cache.patch diff --git a/patches/server/0670-Add-basic-Datapack-API.patch b/patches/server/0671-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0670-Add-basic-Datapack-API.patch rename to patches/server/0671-Add-basic-Datapack-API.patch diff --git a/patches/server/0671-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0672-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0671-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0672-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0672-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0673-additions-to-PlayerGameModeChangeEvent.patch similarity index 98% rename from patches/server/0672-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0673-additions-to-PlayerGameModeChangeEvent.patch index dda1537e31..673eefae1e 100644 --- a/patches/server/0672-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0673-additions-to-PlayerGameModeChangeEvent.patch @@ -91,7 +91,7 @@ index 753ad5a12bc523eddfffa336a20ab3e3284e6f7c..9f218a4b253fe2ab0e70e871eeee05bb } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 2a0f313365a25c1780027f1536dbb88ccdab61e2..013ed10b8eca812309a2c9a10acd668ad51aac8e 100644 +index b096384cdc7596166e010e06272534b8001693c9..4b756c0a4b607faa03b00ab81761335be63c39eb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -74,18 +74,24 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0673-ItemStack-repair-check-API.patch b/patches/server/0674-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0673-ItemStack-repair-check-API.patch rename to patches/server/0674-ItemStack-repair-check-API.patch diff --git a/patches/server/0674-More-Enchantment-API.patch b/patches/server/0675-More-Enchantment-API.patch similarity index 100% rename from patches/server/0674-More-Enchantment-API.patch rename to patches/server/0675-More-Enchantment-API.patch diff --git a/patches/server/0675-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0676-Add-command-line-option-to-load-extra-plugin-jars-no.patch similarity index 96% rename from patches/server/0675-Add-command-line-option-to-load-extra-plugin-jars-no.patch rename to patches/server/0676-Add-command-line-option-to-load-extra-plugin-jars-no.patch index 2299c257c0..ff5753ab51 100644 --- a/patches/server/0675-Add-command-line-option-to-load-extra-plugin-jars-no.patch +++ b/patches/server/0676-Add-command-line-option-to-load-extra-plugin-jars-no.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2f914ebd18764fbfd3834c0a94cedb2184f8dbb0..59c352f9666ff9b828450a62f590ab637b4329b5 100644 +index b7db2d68deeee0a213ee26e31475f05ba16d073e..ca28dda0f9819e8d75fbaa48cf5ff5643910999a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -386,8 +386,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0676-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0677-Fix-and-optimise-world-force-upgrading.patch similarity index 95% rename from patches/server/0676-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0677-Fix-and-optimise-world-force-upgrading.patch index 83bea4ae22..8b74933f38 100644 --- a/patches/server/0676-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0677-Fix-and-optimise-world-force-upgrading.patch @@ -297,12 +297,12 @@ index 73ac55de9059a1d0f1da5bec0688dcd4bf5c8973..db2d6e7b2dc82c60d524dd2a018d28c2 if (dimensionKey == LevelStem.OVERWORLD) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0c1774ecf236d7616738a170930abe58c5d12ece..667aecc27e0c886f15a0418020d046e0a9791a0e 100644 +index febc4fececb4bf527a69e47a06d782ec81616c1e..ccf6c79293ca046174b94a61a28aea3fa9c2a37f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -185,6 +185,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return this.typeKey; - } +@@ -174,6 +174,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions + public java.util.ArrayDeque<net.minecraft.world.level.block.RedstoneTorchBlock.Toggle> redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here + // Paper start - fix and optimise world upgrading + // copied from below @@ -312,9 +312,10 @@ index 0c1774ecf236d7616738a170930abe58c5d12ece..667aecc27e0c886f15a0418020d046e0 + }); + } + // Paper end - fix and optimise world upgrading - protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, final DimensionType dimensionmanager, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) { - this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot - this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper ++ + public CraftWorld getWorld() { + return this.world; + } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java index 1bee455235ece8aa299a2baeede027d251e6ff57..60ae9395591c81aebaa4be1541380a8fe921ce68 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java diff --git a/patches/server/0677-Add-Mob-lookAt-API.patch b/patches/server/0678-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0677-Add-Mob-lookAt-API.patch rename to patches/server/0678-Add-Mob-lookAt-API.patch diff --git a/patches/server/0678-Add-Unix-domain-socket-support.patch b/patches/server/0679-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0678-Add-Unix-domain-socket-support.patch rename to patches/server/0679-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0679-Add-EntityInsideBlockEvent.patch b/patches/server/0680-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0679-Add-EntityInsideBlockEvent.patch rename to patches/server/0680-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0680-Attributes-API-for-item-defaults.patch b/patches/server/0681-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0680-Attributes-API-for-item-defaults.patch rename to patches/server/0681-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0681-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch b/patches/server/0682-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/0681-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch rename to patches/server/0682-Have-CraftMerchantCustom-emit-PlayerPurchaseEvent.patch diff --git a/patches/server/0682-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0683-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 98% rename from patches/server/0682-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0683-Add-cause-to-Weather-ThunderChangeEvents.patch index b94ca80e31..501e76c033 100644 --- a/patches/server/0682-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0683-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 a2d9e093bf7b5ee947f1d7c3b94397cd93eedef7..985b8b9da26aba43b84e9fe363507627c625e6d3 100644 +index 1f1b1a62ea9b37bc671e4df60a00c16c1027d3f6..6c8d18c4ea8a332a6973c3bb257cb443fe844d17 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -419,8 +419,8 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0683-More-Lidded-Block-API.patch b/patches/server/0684-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0683-More-Lidded-Block-API.patch rename to patches/server/0684-More-Lidded-Block-API.patch diff --git a/patches/server/0684-Limit-item-frame-cursors-on-maps.patch b/patches/server/0685-Limit-item-frame-cursors-on-maps.patch similarity index 93% rename from patches/server/0684-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0685-Limit-item-frame-cursors-on-maps.patch index 5717cf12a3..0f1eee2ed7 100644 --- a/patches/server/0684-Limit-item-frame-cursors-on-maps.patch +++ b/patches/server/0685-Limit-item-frame-cursors-on-maps.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Limit item frame cursors on maps diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 46601a98d9f06c6cfadc8120bcffab081ca7f557..b7b160ef6feded6b84faf9958599c761828fcf59 100644 +index 19a0b2a73ab1d066501148108d6cd9998d281853..0fef75148df251d76a029e86a345adad039fcdd0 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -704,5 +704,10 @@ public class PaperWorldConfig { +@@ -735,5 +735,10 @@ public class PaperWorldConfig { private void allowUsingSignsInsideSpawnProtection() { allowUsingSignsInsideSpawnProtection = getBoolean("allow-using-signs-inside-spawn-protection", allowUsingSignsInsideSpawnProtection); } diff --git a/patches/server/0685-Add-PufferFishStateChangeEvent.patch b/patches/server/0686-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0685-Add-PufferFishStateChangeEvent.patch rename to patches/server/0686-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0686-Add-PlayerKickEvent-causes.patch b/patches/server/0687-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0686-Add-PlayerKickEvent-causes.patch rename to patches/server/0687-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0687-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0688-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0687-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0688-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0688-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch b/patches/server/0689-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch similarity index 71% rename from patches/server/0688-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch rename to patches/server/0689-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch index 598b0de366..fd18c13168 100644 --- a/patches/server/0688-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch +++ b/patches/server/0689-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch @@ -13,10 +13,10 @@ contention situations. And this is extremely a low contention situation. diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83ce21f2444 100644 +index 82a4b7969e36940cb694bd999b8c03f9c66a71dc..05d5a77c439b177dc12b8b1ebd4181a5446c0f31 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -36,16 +36,18 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -37,16 +37,18 @@ public class PalettedContainer<T> implements PaletteResize<T> { private final DebugBuffer<Pair<Thread, StackTraceElement[]>> traces = null; public void acquire() { @@ -35,8 +35,8 @@ index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83c + //this.lock.release(); // Paper - disable this } - public PalettedContainer(Palette<T> fallbackPalette, IdMapper<T> idList, Function<CompoundTag, T> elementDeserializer, Function<T, CompoundTag> elementSerializer, T defaultElement) { -@@ -96,7 +98,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { + // Paper start - Anti-Xray - Add predefined objects +@@ -134,7 +136,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { return this.palette.idFor(objectAdded); } @@ -45,7 +45,7 @@ index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83c Object var6; try { this.acquire(); -@@ -120,7 +122,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -158,7 +160,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { return (T)(object == null ? this.defaultValue : object); } @@ -54,7 +54,7 @@ index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83c try { this.acquire(); this.set(getIndex(i, j, k), object); -@@ -144,7 +146,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -182,7 +184,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { return (T)(object == null ? this.defaultValue : object); } @@ -63,16 +63,16 @@ index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83c try { this.acquire(); int i = buf.readByte(); -@@ -161,7 +163,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -203,7 +205,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { + @Deprecated public void write(FriendlyByteBuf buf) { + write(buf, null, 0); } - - public void writeDataPaletteBlock(FriendlyByteBuf packetDataSerializer) { this.write(packetDataSerializer); } // Paper - OBFHELPER -- public void write(FriendlyByteBuf buf) { -+ public synchronized void write(FriendlyByteBuf buf) { // Paper - synchronize +- public void write(FriendlyByteBuf buf, com.destroystokyo.paper.antixray.ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { ++ public synchronized void write(FriendlyByteBuf buf, com.destroystokyo.paper.antixray.ChunkPacketInfo<T> chunkPacketInfo, int chunkSectionIndex) { // Paper - synchronize + // Paper end try { this.acquire(); - buf.writeByte(this.bits); -@@ -173,7 +175,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { +@@ -224,7 +226,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { } @@ -80,8 +80,8 @@ index 5ac948b5b82f3144cdf402af440251cb8c7369d7..d8b7a7d9aa3ef47aa4e222c6ca85e83c + public synchronized void read(ListTag paletteNbt, long[] data) { // Paper - synchronize try { this.acquire(); - int i = Math.max(4, Mth.ceillog2(paletteNbt.size())); -@@ -206,7 +208,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { + // Paper - Anti-Xray - TODO: Should this.predefinedObjects.length just be added here (faster) or should the contents be compared to calculate the size (less RAM)? +@@ -259,7 +261,7 @@ public class PalettedContainer<T> implements PaletteResize<T> { } diff --git a/patches/server/0689-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0690-Add-option-to-fix-items-merging-through-walls.patch similarity index 93% rename from patches/server/0689-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0690-Add-option-to-fix-items-merging-through-walls.patch index 3e34d24f12..b0a39319bf 100644 --- a/patches/server/0689-Add-option-to-fix-items-merging-through-walls.patch +++ b/patches/server/0690-Add-option-to-fix-items-merging-through-walls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to fix items merging through walls diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b7b160ef6feded6b84faf9958599c761828fcf59..75a02252f398b3d16f8588693e71f779d7fa062a 100644 +index 0fef75148df251d76a029e86a345adad039fcdd0..57929ffa8e992874089ee30d8a96eeb03d754816 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -709,5 +709,10 @@ public class PaperWorldConfig { +@@ -740,5 +740,10 @@ public class PaperWorldConfig { private void mapItemFrameCursorLimit() { mapItemFrameCursorLimit = getInt("map-item-frame-cursor-limit", mapItemFrameCursorLimit); } diff --git a/patches/server/0690-Add-BellRevealRaiderEvent.patch b/patches/server/0691-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0690-Add-BellRevealRaiderEvent.patch rename to patches/server/0691-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0691-Fix-invulnerable-end-crystals.patch b/patches/server/0692-Fix-invulnerable-end-crystals.patch similarity index 96% rename from patches/server/0691-Fix-invulnerable-end-crystals.patch rename to patches/server/0692-Fix-invulnerable-end-crystals.patch index 6da3abadd1..7c436c60d4 100644 --- a/patches/server/0691-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0692-Fix-invulnerable-end-crystals.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix invulnerable end crystals MC-108513 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 75a02252f398b3d16f8588693e71f779d7fa062a..f2981aa82c26d7bdac08f45818813025b240b77e 100644 +index 57929ffa8e992874089ee30d8a96eeb03d754816..31be320d7d4cf8659d2d4281186b3f0d424a99e1 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -714,5 +714,10 @@ public class PaperWorldConfig { +@@ -745,5 +745,10 @@ public class PaperWorldConfig { private void fixItemsMergingThroughWalls() { fixItemsMergingThroughWalls = getBoolean("fix-items-merging-through-walls", fixItemsMergingThroughWalls); } diff --git a/patches/server/0692-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0693-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0692-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0693-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0693-Reset-villager-inventory-on-cancelled-pickup-event.patch b/patches/server/0694-Reset-villager-inventory-on-cancelled-pickup-event.patch similarity index 100% rename from patches/server/0693-Reset-villager-inventory-on-cancelled-pickup-event.patch rename to patches/server/0694-Reset-villager-inventory-on-cancelled-pickup-event.patch diff --git a/patches/server/0694-Fix-dangerous-end-portal-logic.patch b/patches/server/0695-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0694-Fix-dangerous-end-portal-logic.patch rename to patches/server/0695-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0695-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0696-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0695-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0696-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0696-Make-item-validations-configurable.patch b/patches/server/0697-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0696-Make-item-validations-configurable.patch rename to patches/server/0697-Make-item-validations-configurable.patch diff --git a/patches/server/0697-Add-more-line-of-sight-methods.patch b/patches/server/0698-Add-more-line-of-sight-methods.patch similarity index 100% rename from patches/server/0697-Add-more-line-of-sight-methods.patch rename to patches/server/0698-Add-more-line-of-sight-methods.patch diff --git a/patches/server/0698-add-per-world-spawn-limits.patch b/patches/server/0699-add-per-world-spawn-limits.patch similarity index 94% rename from patches/server/0698-add-per-world-spawn-limits.patch rename to patches/server/0699-add-per-world-spawn-limits.patch index a828305722..4bfb3570ac 100644 --- a/patches/server/0698-add-per-world-spawn-limits.patch +++ b/patches/server/0699-add-per-world-spawn-limits.patch @@ -6,10 +6,10 @@ Subject: [PATCH] add per world spawn limits Taken from #2982. Credit to Chasewhip8 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index f2981aa82c26d7bdac08f45818813025b240b77e..974fba89648399919802dc4c11846601d2923712 100644 +index 31be320d7d4cf8659d2d4281186b3f0d424a99e1..cc2d40ba72a904baf2c39cd011cf7e1c746b2ca9 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -605,6 +605,19 @@ public class PaperWorldConfig { +@@ -602,6 +602,19 @@ public class PaperWorldConfig { zombieVillagerInfectionChance = getDouble("zombie-villager-infection-chance", zombieVillagerInfectionChance); } diff --git a/patches/server/0699-Fix-PotionSplashEvent-for-water-splash-potions.patch b/patches/server/0700-Fix-PotionSplashEvent-for-water-splash-potions.patch similarity index 100% rename from patches/server/0699-Fix-PotionSplashEvent-for-water-splash-potions.patch rename to patches/server/0700-Fix-PotionSplashEvent-for-water-splash-potions.patch diff --git a/patches/server/0700-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch b/patches/server/0701-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch similarity index 100% rename from patches/server/0700-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch rename to patches/server/0701-Fix-incorrect-status-dataconverter-for-pre-1.13-chun.patch