diff options
-rw-r--r-- | patches/api/0055-Item-canEntityPickup.patch | 4 | ||||
-rw-r--r-- | patches/api/0230-Item-no-age-no-player-pickup.patch | 4 | ||||
-rw-r--r-- | patches/api/0348-Add-API-for-item-entity-health.patch | 4 | ||||
-rw-r--r-- | patches/server/0003-Build-system-changes.patch | 6 | ||||
-rw-r--r-- | patches/server/0004-Paper-config-files.patch | 4 | ||||
-rw-r--r-- | patches/server/0005-MC-Dev-fixes.patch | 4 | ||||
-rw-r--r-- | patches/server/0007-MC-Utils.patch | 28 | ||||
-rw-r--r-- | patches/server/0012-Timings-v2.patch | 39 | ||||
-rw-r--r-- | patches/server/0020-Drop-falling-block-and-tnt-entities-at-the-specified.patch | 4 | ||||
-rw-r--r-- | patches/server/0021-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch | 10 | ||||
-rw-r--r-- | patches/server/0025-Further-improve-server-tick-loop.patch | 14 | ||||
-rw-r--r-- | patches/server/0027-Entity-Origin-API.patch | 8 | ||||
-rw-r--r-- | patches/server/0034-Optimize-explosions.patch | 4 | ||||
-rw-r--r-- | patches/server/0056-Add-exception-reporting-event.patch | 4 | ||||
-rw-r--r-- | patches/server/0073-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch | 4 | ||||
-rw-r--r-- | patches/server/0074-Entity-AddTo-RemoveFrom-World-Events.patch | 6 | ||||
-rw-r--r-- | patches/server/0084-Configurable-Player-Collision.patch | 4 | ||||
-rw-r--r-- | patches/server/0089-remove-null-possibility-for-getServer-singleton.patch | 8 | ||||
-rw-r--r-- | patches/server/0090-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch | 14 | ||||
-rw-r--r-- | patches/server/0094-Optimize-UserCache-Thread-Safe.patch | 4 | ||||
-rw-r--r-- | patches/server/0107-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch | 4 | ||||
-rw-r--r-- | patches/server/0129-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch | 23 | ||||
-rw-r--r-- | patches/server/0130-Properly-handle-async-calls-to-restart-the-server.patch | 8 | ||||
-rw-r--r-- | patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch | 12 | ||||
-rw-r--r-- | patches/server/0135-Item-canEntityPickup.patch | 6 | ||||
-rw-r--r-- | patches/server/0140-Shoulder-Entities-Release-API.patch | 4 | ||||
-rw-r--r-- | patches/server/0148-Fix-this-stupid-bullshit.patch | 4 | ||||
-rw-r--r-- | patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch | 12 | ||||
-rw-r--r-- | patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch | 4 | ||||
-rw-r--r-- | patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch | 6 | ||||
-rw-r--r-- | patches/server/0173-Add-ArmorStand-Item-Meta.patch | 21 | ||||
-rw-r--r-- | patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch | 4 | ||||
-rw-r--r-- | patches/server/0178-Implement-extended-PaperServerListPingEvent.patch | 4 | ||||
-rw-r--r-- | patches/server/0188-Configurable-sprint-interruption-on-attack.patch | 4 | ||||
-rw-r--r-- | patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch | 4 | ||||
-rw-r--r-- | patches/server/0208-PlayerReadyArrowEvent.patch | 6 | ||||
-rw-r--r-- | patches/server/0209-Implement-EntityKnockbackByEntityEvent.patch | 6 | ||||
-rw-r--r-- | patches/server/0215-InventoryCloseEvent-Reason-API.patch | 8 | ||||
-rw-r--r-- | patches/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch | 10 | ||||
-rw-r--r-- | patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch | 4 | ||||
-rw-r--r-- | patches/server/0253-Asynchronous-chunk-IO-and-loading.patch | 46 | ||||
-rw-r--r-- | patches/server/0259-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch | 4 | ||||
-rw-r--r-- | patches/server/0280-Improve-Server-Thread-Pool-and-Thread-Priorities.patch | 4 | ||||
-rw-r--r-- | patches/server/0281-Optimize-World-Time-Updates.patch | 4 | ||||
-rw-r--r-- | patches/server/0289-force-entity-dismount-during-teleportation.patch | 4 | ||||
-rw-r--r-- | patches/server/0308-Entity-getEntitySpawnReason.patch | 4 | ||||
-rw-r--r-- | patches/server/0313-Server-Tick-Events.patch | 6 | ||||
-rw-r--r-- | patches/server/0320-Fix-CraftServer-isPrimaryThread-and-MinecraftServer-.patch | 4 | ||||
-rw-r--r-- | patches/server/0322-Implement-CraftBlockSoundGroup.patch | 4 | ||||
-rw-r--r-- | patches/server/0323-Configurable-Keep-Spawn-Loaded-range-per-world.patch | 10 | ||||
-rw-r--r-- | patches/server/0328-Fix-World-isChunkGenerated-calls.patch | 4 | ||||
-rw-r--r-- | patches/server/0341-Duplicate-UUID-Resolve-Option.patch | 6 | ||||
-rw-r--r-- | patches/server/0342-Optimize-Hoppers.patch | 4 | ||||
-rw-r--r-- | patches/server/0352-Add-effect-to-block-break-naturally.patch | 6 | ||||
-rw-r--r-- | patches/server/0354-Increase-Light-Queue-Size.patch | 4 | ||||
-rw-r--r-- | patches/server/0356-Anti-Xray.patch | 10 | ||||
-rw-r--r-- | patches/server/0358-Tracking-Range-Improvements.patch | 4 | ||||
-rw-r--r-- | patches/server/0376-Add-tick-times-API-and-mspt-command.patch | 8 | ||||
-rw-r--r-- | patches/server/0382-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch | 10 | ||||
-rw-r--r-- | patches/server/0384-Dead-Player-s-shouldn-t-be-able-to-move.patch | 4 | ||||
-rw-r--r-- | patches/server/0388-Improved-Watchdog-Support.patch | 28 | ||||
-rw-r--r-- | patches/server/0398-Fix-Chunk-Post-Processing-deadlock-risk.patch | 4 | ||||
-rw-r--r-- | patches/server/0399-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch | 4 | ||||
-rw-r--r-- | patches/server/0411-misc-debugging-dumps.patch | 8 | ||||
-rw-r--r-- | patches/server/0421-Wait-for-Async-Tasks-during-shutdown.patch | 4 | ||||
-rw-r--r-- | patches/server/0425-Reduce-allocation-of-Vec3D-by-entity-tracker.patch | 4 | ||||
-rw-r--r-- | patches/server/0428-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch | 8 | ||||
-rw-r--r-- | patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch | 12 | ||||
-rw-r--r-- | patches/server/0430-Optimize-ServerLevels-chunk-level-checking-methods.patch | 4 | ||||
-rw-r--r-- | patches/server/0438-Fix-sand-duping.patch | 6 | ||||
-rw-r--r-- | patches/server/0446-Fix-Per-World-Difficulty-Remembering-Difficulty.patch | 8 | ||||
-rw-r--r-- | patches/server/0452-incremental-chunk-and-player-saving.patch | 16 | ||||
-rw-r--r-- | patches/server/0466-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch | 12 | ||||
-rw-r--r-- | patches/server/0484-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch | 4 | ||||
-rw-r--r-- | patches/server/0486-Improve-Chunk-Status-Transition-Speed.patch | 4 | ||||
-rw-r--r-- | patches/server/0496-Add-methods-to-get-translation-keys.patch | 4 | ||||
-rw-r--r-- | patches/server/0498-Cache-block-data-strings.patch | 4 | ||||
-rw-r--r-- | patches/server/0502-Extend-block-drop-capture-to-capture-all-items-added.patch | 9 | ||||
-rw-r--r-- | patches/server/0507-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch | 4 | ||||
-rw-r--r-- | patches/server/0511-Optimise-getType-calls.patch | 4 | ||||
-rw-r--r-- | patches/server/0524-Item-no-age-no-player-pickup.patch | 4 | ||||
-rw-r--r-- | patches/server/0531-Add-Destroy-Speed-API.patch | 4 | ||||
-rw-r--r-- | patches/server/0550-Additional-Block-Material-API-s.patch | 4 | ||||
-rw-r--r-- | patches/server/0563-Added-ServerResourcesReloadedEvent.patch | 6 | ||||
-rw-r--r-- | patches/server/0571-Remove-stale-POIs.patch | 4 | ||||
-rw-r--r-- | patches/server/0574-Add-PaperRegistry.patch | 4 | ||||
-rw-r--r-- | patches/server/0575-Add-StructuresLocateEvent.patch | 4 | ||||
-rw-r--r-- | patches/server/0588-EntityMoveEvent.patch | 4 | ||||
-rw-r--r-- | patches/server/0589-added-option-to-disable-pathfinding-updates-on-block.patch | 6 | ||||
-rw-r--r-- | patches/server/0596-Add-support-for-hex-color-codes-in-console.patch | 4 | ||||
-rw-r--r-- | patches/server/0607-Add-Block-isValidTool.patch | 4 | ||||
-rw-r--r-- | patches/server/0615-forced-whitelist-use-configurable-kick-message.patch | 4 | ||||
-rw-r--r-- | patches/server/0625-Fix-duplicating-give-items-on-item-drop-cancel.patch | 70 | ||||
-rw-r--r-- | patches/server/0625-add-consumeFuel-to-FurnaceBurnEvent.patch (renamed from patches/server/0626-add-consumeFuel-to-FurnaceBurnEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0626-add-get-set-drop-chance-to-EntityEquipment.patch (renamed from patches/server/0627-add-get-set-drop-chance-to-EntityEquipment.patch) | 0 | ||||
-rw-r--r-- | patches/server/0627-fix-PigZombieAngerEvent-cancellation.patch (renamed from patches/server/0628-fix-PigZombieAngerEvent-cancellation.patch) | 0 | ||||
-rw-r--r-- | patches/server/0628-Fix-checkReach-check-for-Shulker-boxes.patch (renamed from patches/server/0629-Fix-checkReach-check-for-Shulker-boxes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0629-fix-PlayerItemHeldEvent-firing-twice.patch (renamed from patches/server/0630-fix-PlayerItemHeldEvent-firing-twice.patch) | 0 | ||||
-rw-r--r-- | patches/server/0630-Added-PlayerDeepSleepEvent.patch (renamed from patches/server/0631-Added-PlayerDeepSleepEvent.patch) | 2 | ||||
-rw-r--r-- | patches/server/0631-More-World-API.patch (renamed from patches/server/0632-More-World-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0632-Added-PlayerBedFailEnterEvent.patch (renamed from patches/server/0633-Added-PlayerBedFailEnterEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0633-Implement-methods-to-convert-between-Component-and-B.patch (renamed from patches/server/0634-Implement-methods-to-convert-between-Component-and-B.patch) | 0 | ||||
-rw-r--r-- | patches/server/0634-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch (renamed from patches/server/0635-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch) | 0 | ||||
-rw-r--r-- | patches/server/0635-Introduce-beacon-activation-deactivation-events.patch (renamed from patches/server/0636-Introduce-beacon-activation-deactivation-events.patch) | 0 | ||||
-rw-r--r-- | patches/server/0636-add-RespawnFlags-to-PlayerRespawnEvent.patch (renamed from patches/server/0637-add-RespawnFlags-to-PlayerRespawnEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0637-Add-Channel-initialization-listeners.patch (renamed from patches/server/0638-Add-Channel-initialization-listeners.patch) | 0 | ||||
-rw-r--r-- | patches/server/0638-Send-empty-commands-if-tab-completion-is-disabled.patch (renamed from patches/server/0639-Send-empty-commands-if-tab-completion-is-disabled.patch) | 0 | ||||
-rw-r--r-- | patches/server/0639-Add-more-WanderingTrader-API.patch (renamed from patches/server/0640-Add-more-WanderingTrader-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0640-Add-EntityBlockStorage-clearEntities.patch (renamed from patches/server/0641-Add-EntityBlockStorage-clearEntities.patch) | 0 | ||||
-rw-r--r-- | patches/server/0641-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch (renamed from patches/server/0642-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0642-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/server/0643-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0643-Inventory-close.patch (renamed from patches/server/0644-Inventory-close.patch) | 0 | ||||
-rw-r--r-- | patches/server/0644-call-PortalCreateEvent-players-and-end-platform.patch (renamed from patches/server/0645-call-PortalCreateEvent-players-and-end-platform.patch) | 0 | ||||
-rw-r--r-- | patches/server/0645-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch (renamed from patches/server/0646-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch) | 0 | ||||
-rw-r--r-- | patches/server/0646-Fix-CraftPotionBrewer-cache.patch (renamed from patches/server/0647-Fix-CraftPotionBrewer-cache.patch) | 0 | ||||
-rw-r--r-- | patches/server/0647-Add-basic-Datapack-API.patch (renamed from patches/server/0648-Add-basic-Datapack-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0648-Add-environment-variable-to-disable-server-gui.patch (renamed from patches/server/0649-Add-environment-variable-to-disable-server-gui.patch) | 0 | ||||
-rw-r--r-- | patches/server/0649-additions-to-PlayerGameModeChangeEvent.patch (renamed from patches/server/0650-additions-to-PlayerGameModeChangeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0650-ItemStack-repair-check-API.patch (renamed from patches/server/0651-ItemStack-repair-check-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0651-More-Enchantment-API.patch (renamed from patches/server/0652-More-Enchantment-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0652-Fix-and-optimise-world-force-upgrading.patch (renamed from patches/server/0653-Fix-and-optimise-world-force-upgrading.patch) | 6 | ||||
-rw-r--r-- | patches/server/0653-Add-Mob-lookAt-API.patch (renamed from patches/server/0654-Add-Mob-lookAt-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0654-Add-Unix-domain-socket-support.patch (renamed from patches/server/0655-Add-Unix-domain-socket-support.patch) | 0 | ||||
-rw-r--r-- | patches/server/0655-Add-EntityInsideBlockEvent.patch (renamed from patches/server/0656-Add-EntityInsideBlockEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0656-Attributes-API-for-item-defaults.patch (renamed from patches/server/0657-Attributes-API-for-item-defaults.patch) | 0 | ||||
-rw-r--r-- | patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch (renamed from patches/server/0658-Add-cause-to-Weather-ThunderChangeEvents.patch) | 0 | ||||
-rw-r--r-- | patches/server/0658-More-Lidded-Block-API.patch (renamed from patches/server/0659-More-Lidded-Block-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0659-Limit-item-frame-cursors-on-maps.patch (renamed from patches/server/0660-Limit-item-frame-cursors-on-maps.patch) | 0 | ||||
-rw-r--r-- | patches/server/0660-Add-PlayerKickEvent-causes.patch (renamed from patches/server/0661-Add-PlayerKickEvent-causes.patch) | 4 | ||||
-rw-r--r-- | patches/server/0661-Add-PufferFishStateChangeEvent.patch (renamed from patches/server/0662-Add-PufferFishStateChangeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch (renamed from patches/server/0663-Fix-PlayerBucketEmptyEvent-result-itemstack.patch) | 0 | ||||
-rw-r--r-- | patches/server/0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch (renamed from patches/server/0664-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch) | 0 | ||||
-rw-r--r-- | patches/server/0664-Add-option-to-fix-items-merging-through-walls.patch (renamed from patches/server/0665-Add-option-to-fix-items-merging-through-walls.patch) | 0 | ||||
-rw-r--r-- | patches/server/0665-Add-BellRevealRaiderEvent.patch (renamed from patches/server/0666-Add-BellRevealRaiderEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0666-Fix-invulnerable-end-crystals.patch (renamed from patches/server/0667-Fix-invulnerable-end-crystals.patch) | 0 | ||||
-rw-r--r-- | patches/server/0667-Add-ElderGuardianAppearanceEvent.patch (renamed from patches/server/0668-Add-ElderGuardianAppearanceEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0668-Fix-dangerous-end-portal-logic.patch (renamed from patches/server/0669-Fix-dangerous-end-portal-logic.patch) | 0 | ||||
-rw-r--r-- | patches/server/0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch (renamed from patches/server/0670-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch) | 0 | ||||
-rw-r--r-- | patches/server/0670-Make-item-validations-configurable.patch (renamed from patches/server/0671-Make-item-validations-configurable.patch) | 0 | ||||
-rw-r--r-- | patches/server/0671-Line-Of-Sight-Changes.patch (renamed from patches/server/0672-Line-Of-Sight-Changes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0672-add-per-world-spawn-limits.patch (renamed from patches/server/0673-add-per-world-spawn-limits.patch) | 0 | ||||
-rw-r--r-- | patches/server/0673-Fix-PotionSplashEvent-for-water-splash-potions.patch (renamed from patches/server/0674-Fix-PotionSplashEvent-for-water-splash-potions.patch) | 0 | ||||
-rw-r--r-- | patches/server/0674-Add-more-LimitedRegion-API.patch (renamed from patches/server/0675-Add-more-LimitedRegion-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0675-Fix-PlayerDropItemEvent-using-wrong-item.patch (renamed from patches/server/0676-Fix-PlayerDropItemEvent-using-wrong-item.patch) | 10 | ||||
-rw-r--r-- | patches/server/0676-Missing-Entity-Behavior-API.patch (renamed from patches/server/0677-Missing-Entity-Behavior-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch (renamed from patches/server/0678-Ensure-disconnect-for-book-edit-is-called-on-main.patch) | 0 | ||||
-rw-r--r-- | patches/server/0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch | 19 | ||||
-rw-r--r-- | patches/server/0679-Fix-return-value-of-Block-applyBoneMeal-always-being.patch | 19 | ||||
-rw-r--r-- | patches/server/0679-Use-getChunkIfLoadedImmediately-in-places.patch (renamed from patches/server/0680-Use-getChunkIfLoadedImmediately-in-places.patch) | 0 | ||||
-rw-r--r-- | patches/server/0680-Fix-commands-from-signs-not-firing-command-events.patch (renamed from patches/server/0681-Fix-commands-from-signs-not-firing-command-events.patch) | 0 | ||||
-rw-r--r-- | patches/server/0681-Adds-PlayerArmSwingEvent.patch (renamed from patches/server/0682-Adds-PlayerArmSwingEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0682-Fixes-kick-event-leave-message-not-being-sent.patch (renamed from patches/server/0683-Fixes-kick-event-leave-message-not-being-sent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0683-Add-config-for-mobs-immune-to-default-effects.patch (renamed from patches/server/0684-Add-config-for-mobs-immune-to-default-effects.patch) | 0 | ||||
-rw-r--r-- | patches/server/0684-Fix-incorrect-message-for-outdated-client.patch (renamed from patches/server/0685-Fix-incorrect-message-for-outdated-client.patch) | 0 | ||||
-rw-r--r-- | patches/server/0685-Don-t-apply-cramming-damage-to-players.patch (renamed from patches/server/0686-Don-t-apply-cramming-damage-to-players.patch) | 0 | ||||
-rw-r--r-- | patches/server/0686-Rate-options-and-timings-for-sensors-and-behaviors.patch (renamed from patches/server/0687-Rate-options-and-timings-for-sensors-and-behaviors.patch) | 0 | ||||
-rw-r--r-- | patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch (renamed from patches/server/0688-Add-a-bunch-of-missing-forceDrop-toggles.patch) | 0 | ||||
-rw-r--r-- | patches/server/0688-Stinger-API.patch (renamed from patches/server/0689-Stinger-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch (renamed from patches/server/0690-Fix-incosistency-issue-with-empty-map-items-in-CB.patch) | 0 | ||||
-rw-r--r-- | patches/server/0690-Add-System.out-err-catcher.patch (renamed from patches/server/0691-Add-System.out-err-catcher.patch) | 0 | ||||
-rw-r--r-- | patches/server/0691-Fix-test-not-bootstrapping.patch (renamed from patches/server/0692-Fix-test-not-bootstrapping.patch) | 0 | ||||
-rw-r--r-- | patches/server/0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch (renamed from patches/server/0693-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch) | 0 | ||||
-rw-r--r-- | patches/server/0693-Improve-boat-collision-performance.patch (renamed from patches/server/0694-Improve-boat-collision-performance.patch) | 0 | ||||
-rw-r--r-- | patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch (renamed from patches/server/0695-Prevent-AFK-kick-while-watching-end-credits.patch) | 0 | ||||
-rw-r--r-- | patches/server/0695-Allow-skipping-writing-of-comments-to-server.propert.patch (renamed from patches/server/0696-Allow-skipping-writing-of-comments-to-server.propert.patch) | 0 | ||||
-rw-r--r-- | patches/server/0696-Add-PlayerSetSpawnEvent.patch (renamed from patches/server/0697-Add-PlayerSetSpawnEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0697-Make-hoppers-respect-inventory-max-stack-size.patch (renamed from patches/server/0698-Make-hoppers-respect-inventory-max-stack-size.patch) | 0 | ||||
-rw-r--r-- | patches/server/0698-Optimize-entity-tracker-passenger-checks.patch (renamed from patches/server/0699-Optimize-entity-tracker-passenger-checks.patch) | 0 | ||||
-rw-r--r-- | patches/server/0699-Config-option-for-Piglins-guarding-chests.patch (renamed from patches/server/0700-Config-option-for-Piglins-guarding-chests.patch) | 0 | ||||
-rw-r--r-- | patches/server/0700-Added-EntityDamageItemEvent.patch (renamed from patches/server/0701-Added-EntityDamageItemEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0701-Optimize-indirect-passenger-iteration.patch (renamed from patches/server/0702-Optimize-indirect-passenger-iteration.patch) | 0 | ||||
-rw-r--r-- | patches/server/0702-Fix-block-drops-position-losing-precision-millions-o.patch (renamed from patches/server/0703-Fix-block-drops-position-losing-precision-millions-o.patch) | 0 | ||||
-rw-r--r-- | patches/server/0703-Configurable-item-frame-map-cursor-update-interval.patch (renamed from patches/server/0704-Configurable-item-frame-map-cursor-update-interval.patch) | 0 | ||||
-rw-r--r-- | patches/server/0704-Make-EntityUnleashEvent-cancellable.patch (renamed from patches/server/0705-Make-EntityUnleashEvent-cancellable.patch) | 0 | ||||
-rw-r--r-- | patches/server/0705-Clear-bucket-NBT-after-dispense.patch (renamed from patches/server/0706-Clear-bucket-NBT-after-dispense.patch) | 0 | ||||
-rw-r--r-- | patches/server/0706-Respect-despawn-rate-in-item-merge-check.patch (renamed from patches/server/0707-Respect-despawn-rate-in-item-merge-check.patch) | 0 | ||||
-rw-r--r-- | patches/server/0707-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/server/0708-Change-EnderEye-target-without-changing-other-things.patch) | 0 | ||||
-rw-r--r-- | patches/server/0708-Add-BlockBreakBlockEvent.patch (renamed from patches/server/0709-Add-BlockBreakBlockEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch (renamed from patches/server/0710-Option-to-prevent-NBT-copy-in-smithing-recipes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0710-More-CommandBlock-API.patch (renamed from patches/server/0711-More-CommandBlock-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0711-Add-missing-team-sidebar-display-slots.patch (renamed from patches/server/0712-Add-missing-team-sidebar-display-slots.patch) | 0 | ||||
-rw-r--r-- | patches/server/0712-Add-back-EntityPortalExitEvent.patch (renamed from patches/server/0713-Add-back-EntityPortalExitEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/server/0714-Add-methods-to-find-targets-for-lightning-strikes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0714-Get-entity-default-attributes.patch (renamed from patches/server/0715-Get-entity-default-attributes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0715-Left-handed-API.patch (renamed from patches/server/0716-Left-handed-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0716-Add-advancement-display-API.patch (renamed from patches/server/0717-Add-advancement-display-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0717-Add-ItemFactory-getMonsterEgg-API.patch (renamed from patches/server/0718-Add-ItemFactory-getMonsterEgg-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0718-Add-critical-damage-API.patch (renamed from patches/server/0719-Add-critical-damage-API.patch) | 8 | ||||
-rw-r--r-- | patches/server/0719-Fix-issues-with-mob-conversion.patch (renamed from patches/server/0720-Fix-issues-with-mob-conversion.patch) | 0 | ||||
-rw-r--r-- | patches/server/0720-Add-isCollidable-methods-to-various-places.patch (renamed from patches/server/0721-Add-isCollidable-methods-to-various-places.patch) | 4 | ||||
-rw-r--r-- | patches/server/0721-Goat-ram-API.patch (renamed from patches/server/0722-Goat-ram-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0722-Add-API-for-resetting-a-single-score.patch (renamed from patches/server/0723-Add-API-for-resetting-a-single-score.patch) | 0 | ||||
-rw-r--r-- | patches/server/0723-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/server/0724-Add-Raw-Byte-Entity-Serialization.patch) | 0 | ||||
-rw-r--r-- | patches/server/0724-Vanilla-command-permission-fixes.patch (renamed from patches/server/0725-Vanilla-command-permission-fixes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0725-Make-CallbackExecutor-strict-again.patch (renamed from patches/server/0726-Make-CallbackExecutor-strict-again.patch) | 2 | ||||
-rw-r--r-- | patches/server/0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch (renamed from patches/server/0727-Do-not-allow-the-server-to-unload-chunks-at-request-.patch) | 0 | ||||
-rw-r--r-- | patches/server/0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (renamed from patches/server/0728-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch) | 6 | ||||
-rw-r--r-- | patches/server/0728-Correctly-handle-recursion-for-chunkholder-updates.patch (renamed from patches/server/0729-Correctly-handle-recursion-for-chunkholder-updates.patch) | 0 | ||||
-rw-r--r-- | patches/server/0729-Separate-lookup-locking-from-state-access-in-UserCac.patch (renamed from patches/server/0730-Separate-lookup-locking-from-state-access-in-UserCac.patch) | 0 | ||||
-rw-r--r-- | patches/server/0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch (renamed from patches/server/0731-Fix-chunks-refusing-to-unload-at-low-TPS.patch) | 4 | ||||
-rw-r--r-- | patches/server/0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch (renamed from patches/server/0732-Do-not-allow-ticket-level-changes-while-unloading-pl.patch) | 6 | ||||
-rw-r--r-- | patches/server/0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch (renamed from patches/server/0733-Do-not-allow-ticket-level-changes-when-updating-chun.patch) | 0 | ||||
-rw-r--r-- | patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch (renamed from patches/server/0734-Do-not-submit-profile-lookups-to-worldgen-threads.patch) | 0 | ||||
-rw-r--r-- | patches/server/0734-Log-when-the-async-catcher-is-tripped.patch (renamed from patches/server/0735-Log-when-the-async-catcher-is-tripped.patch) | 0 | ||||
-rw-r--r-- | patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch (renamed from patches/server/0736-Add-paper-mobcaps-and-paper-playermobcaps.patch) | 0 | ||||
-rw-r--r-- | patches/server/0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch (renamed from patches/server/0737-Prevent-unload-calls-removing-tickets-for-sync-loads.patch) | 0 | ||||
-rw-r--r-- | patches/server/0737-Sanitize-ResourceLocation-error-logging.patch (renamed from patches/server/0738-Sanitize-ResourceLocation-error-logging.patch) | 0 | ||||
-rw-r--r-- | patches/server/0738-Optimise-general-POI-access.patch (renamed from patches/server/0739-Optimise-general-POI-access.patch) | 0 | ||||
-rw-r--r-- | patches/server/0739-Allow-controlled-flushing-for-network-manager.patch (renamed from patches/server/0740-Allow-controlled-flushing-for-network-manager.patch) | 0 | ||||
-rw-r--r-- | patches/server/0740-Add-more-async-catchers.patch (renamed from patches/server/0741-Add-more-async-catchers.patch) | 0 | ||||
-rw-r--r-- | patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch (renamed from patches/server/0742-Rewrite-entity-bounding-box-lookup-calls.patch) | 0 | ||||
-rw-r--r-- | patches/server/0742-Optimise-chunk-tick-iteration.patch (renamed from patches/server/0743-Optimise-chunk-tick-iteration.patch) | 2 | ||||
-rw-r--r-- | patches/server/0743-Execute-chunk-tasks-mid-tick.patch (renamed from patches/server/0744-Execute-chunk-tasks-mid-tick.patch) | 6 | ||||
-rw-r--r-- | patches/server/0744-Do-not-copy-visible-chunks.patch (renamed from patches/server/0745-Do-not-copy-visible-chunks.patch) | 19 | ||||
-rw-r--r-- | patches/server/0745-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch (renamed from patches/server/0746-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch) | 0 | ||||
-rw-r--r-- | patches/server/0746-Custom-table-implementation-for-blockstate-state-loo.patch (renamed from patches/server/0747-Custom-table-implementation-for-blockstate-state-loo.patch) | 0 | ||||
-rw-r--r-- | patches/server/0747-Detail-more-information-in-watchdog-dumps.patch (renamed from patches/server/0748-Detail-more-information-in-watchdog-dumps.patch) | 0 | ||||
-rw-r--r-- | patches/server/0748-Manually-inline-methods-in-BlockPosition.patch (renamed from patches/server/0749-Manually-inline-methods-in-BlockPosition.patch) | 0 | ||||
-rw-r--r-- | patches/server/0749-Distance-manager-tick-timings.patch (renamed from patches/server/0750-Distance-manager-tick-timings.patch) | 0 | ||||
-rw-r--r-- | patches/server/0750-Name-craft-scheduler-threads-according-to-the-plugin.patch (renamed from patches/server/0751-Name-craft-scheduler-threads-according-to-the-plugin.patch) | 0 | ||||
-rw-r--r-- | patches/server/0751-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (renamed from patches/server/0752-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch) | 0 | ||||
-rw-r--r-- | patches/server/0752-Add-packet-limiter-config.patch (renamed from patches/server/0753-Add-packet-limiter-config.patch) | 0 | ||||
-rw-r--r-- | patches/server/0753-Lag-compensate-block-breaking.patch (renamed from patches/server/0754-Lag-compensate-block-breaking.patch) | 0 | ||||
-rw-r--r-- | patches/server/0754-Use-correct-LevelStem-registry-when-loading-default-.patch (renamed from patches/server/0755-Use-correct-LevelStem-registry-when-loading-default-.patch) | 4 | ||||
-rw-r--r-- | patches/server/0755-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (renamed from patches/server/0756-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch) | 0 | ||||
-rw-r--r-- | patches/server/0756-Consolidate-flush-calls-for-entity-tracker-packets.patch (renamed from patches/server/0757-Consolidate-flush-calls-for-entity-tracker-packets.patch) | 0 | ||||
-rw-r--r-- | patches/server/0757-Don-t-lookup-fluid-state-when-raytracing.patch (renamed from patches/server/0758-Don-t-lookup-fluid-state-when-raytracing.patch) | 0 | ||||
-rw-r--r-- | patches/server/0758-Time-scoreboard-search.patch (renamed from patches/server/0759-Time-scoreboard-search.patch) | 0 | ||||
-rw-r--r-- | patches/server/0759-Send-full-pos-packets-for-hard-colliding-entities.patch (renamed from patches/server/0760-Send-full-pos-packets-for-hard-colliding-entities.patch) | 0 | ||||
-rw-r--r-- | patches/server/0760-Do-not-run-raytrace-logic-for-AIR.patch (renamed from patches/server/0761-Do-not-run-raytrace-logic-for-AIR.patch) | 0 | ||||
-rw-r--r-- | patches/server/0761-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/server/0762-Oprimise-map-impl-for-tracked-players.patch) | 4 | ||||
-rw-r--r-- | patches/server/0762-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/server/0763-Optimise-BlockSoil-nearby-water-lookup.patch) | 0 | ||||
-rw-r--r-- | patches/server/0763-Allow-removal-addition-of-entities-to-entity-ticklis.patch (renamed from patches/server/0764-Allow-removal-addition-of-entities-to-entity-ticklis.patch) | 0 | ||||
-rw-r--r-- | patches/server/0764-Optimise-random-block-ticking.patch (renamed from patches/server/0765-Optimise-random-block-ticking.patch) | 0 | ||||
-rw-r--r-- | patches/server/0765-Optimise-non-flush-packet-sending.patch (renamed from patches/server/0766-Optimise-non-flush-packet-sending.patch) | 0 | ||||
-rw-r--r-- | patches/server/0766-Optimise-nearby-player-lookups.patch (renamed from patches/server/0767-Optimise-nearby-player-lookups.patch) | 2 | ||||
-rw-r--r-- | patches/server/0767-Optimise-WorldServer-notify.patch (renamed from patches/server/0768-Optimise-WorldServer-notify.patch) | 10 | ||||
-rw-r--r-- | patches/server/0768-Remove-streams-for-villager-AI.patch (renamed from patches/server/0769-Remove-streams-for-villager-AI.patch) | 0 | ||||
-rw-r--r-- | patches/server/0769-Rewrite-dataconverter-system.patch (renamed from patches/server/0770-Rewrite-dataconverter-system.patch) | 0 | ||||
-rw-r--r-- | patches/server/0770-Use-Velocity-compression-and-cipher-natives.patch (renamed from patches/server/0771-Use-Velocity-compression-and-cipher-natives.patch) | 0 | ||||
-rw-r--r-- | patches/server/0771-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch (renamed from patches/server/0772-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch) | 0 | ||||
-rw-r--r-- | patches/server/0772-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch (renamed from patches/server/0773-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch) | 0 | ||||
-rw-r--r-- | patches/server/0773-Async-catch-modifications-to-critical-entity-state.patch (renamed from patches/server/0774-Async-catch-modifications-to-critical-entity-state.patch) | 0 | ||||
-rw-r--r-- | patches/server/0774-Fix-Bukkit-NamespacedKey-shenanigans.patch (renamed from patches/server/0775-Fix-Bukkit-NamespacedKey-shenanigans.patch) | 0 | ||||
-rw-r--r-- | patches/server/0775-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/server/0776-Fix-merchant-inventory-not-closing-on-entity-removal.patch) | 4 | ||||
-rw-r--r-- | patches/server/0776-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/server/0777-Check-requirement-before-suggesting-root-nodes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0777-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/server/0778-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch) | 0 | ||||
-rw-r--r-- | patches/server/0778-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/server/0779-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch) | 0 | ||||
-rw-r--r-- | patches/server/0779-Ensure-valid-vehicle-status.patch (renamed from patches/server/0780-Ensure-valid-vehicle-status.patch) | 0 | ||||
-rw-r--r-- | patches/server/0780-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/server/0781-Prevent-softlocked-end-exit-portal-generation.patch) | 0 | ||||
-rw-r--r-- | patches/server/0781-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/server/0782-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch) | 0 | ||||
-rw-r--r-- | patches/server/0782-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/server/0783-Don-t-log-debug-logging-being-disabled.patch) | 0 | ||||
-rw-r--r-- | patches/server/0783-Mark-fish-and-axolotls-from-buckets-as-persistent.patch (renamed from patches/server/0784-Mark-fish-and-axolotls-from-buckets-as-persistent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0784-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/server/0785-fix-various-menus-with-empty-level-accesses.patch) | 0 | ||||
-rw-r--r-- | patches/server/0785-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch (renamed from patches/server/0786-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch) | 2 | ||||
-rw-r--r-- | patches/server/0786-Preserve-overstacked-loot.patch (renamed from patches/server/0787-Preserve-overstacked-loot.patch) | 0 | ||||
-rw-r--r-- | patches/server/0787-Update-head-rotation-in-missing-places.patch (renamed from patches/server/0788-Update-head-rotation-in-missing-places.patch) | 0 | ||||
-rw-r--r-- | patches/server/0788-prevent-unintended-light-block-manipulation.patch (renamed from patches/server/0789-prevent-unintended-light-block-manipulation.patch) | 0 | ||||
-rw-r--r-- | patches/server/0789-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch (renamed from patches/server/0790-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch) | 0 | ||||
-rw-r--r-- | patches/server/0790-Fix-CraftCriteria-defaults-map.patch (renamed from patches/server/0791-Fix-CraftCriteria-defaults-map.patch) | 0 | ||||
-rw-r--r-- | patches/server/0791-Fix-upstreams-block-state-factories.patch (renamed from patches/server/0792-Fix-upstreams-block-state-factories.patch) | 0 | ||||
-rw-r--r-- | patches/server/0792-Add-config-option-for-logging-player-ip-addresses.patch (renamed from patches/server/0793-Add-config-option-for-logging-player-ip-addresses.patch) | 0 | ||||
-rw-r--r-- | patches/server/0793-Configurable-feature-seeds.patch (renamed from patches/server/0794-Configurable-feature-seeds.patch) | 0 | ||||
-rw-r--r-- | patches/server/0794-VanillaCommandWrapper-didnt-account-for-entity-sende.patch (renamed from patches/server/0795-VanillaCommandWrapper-didnt-account-for-entity-sende.patch) | 0 | ||||
-rw-r--r-- | patches/server/0795-Add-root-admin-user-detection.patch (renamed from patches/server/0796-Add-root-admin-user-detection.patch) | 0 | ||||
-rw-r--r-- | patches/server/0796-Always-allow-item-changing-in-Fireball.patch (renamed from patches/server/0797-Always-allow-item-changing-in-Fireball.patch) | 0 | ||||
-rw-r--r-- | patches/server/0797-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/server/0798-don-t-attempt-to-teleport-dead-entities.patch) | 0 | ||||
-rw-r--r-- | patches/server/0798-Fix-anvil-prepare-event-not-working-with-zero-xp.patch (renamed from patches/server/0799-Fix-anvil-prepare-event-not-working-with-zero-xp.patch) | 0 | ||||
-rw-r--r-- | patches/server/0799-Prevent-excessive-velocity-through-repeated-crits.patch (renamed from patches/server/0800-Prevent-excessive-velocity-through-repeated-crits.patch) | 0 | ||||
-rw-r--r-- | patches/server/0800-Remove-client-side-code-using-deprecated-for-removal.patch (renamed from patches/server/0801-Remove-client-side-code-using-deprecated-for-removal.patch) | 0 | ||||
-rw-r--r-- | patches/server/0801-Rewrite-the-light-engine.patch (renamed from patches/server/0802-Rewrite-the-light-engine.patch) | 2 | ||||
-rw-r--r-- | patches/server/0802-Always-parse-protochunk-light-sources-unless-it-is-m.patch (renamed from patches/server/0803-Always-parse-protochunk-light-sources-unless-it-is-m.patch) | 0 | ||||
-rw-r--r-- | patches/server/0803-Fix-removing-recipes-from-RecipeIterator.patch (renamed from patches/server/0804-Fix-removing-recipes-from-RecipeIterator.patch) | 0 | ||||
-rw-r--r-- | patches/server/0804-Prevent-sending-oversized-item-data-in-equipment-and.patch (renamed from patches/server/0805-Prevent-sending-oversized-item-data-in-equipment-and.patch) | 0 | ||||
-rw-r--r-- | patches/server/0805-Hide-unnecessary-itemmeta-from-clients.patch (renamed from patches/server/0806-Hide-unnecessary-itemmeta-from-clients.patch) | 0 | ||||
-rw-r--r-- | patches/server/0806-Fix-kelp-modifier-changing-growth-for-other-crops.patch (renamed from patches/server/0807-Fix-kelp-modifier-changing-growth-for-other-crops.patch) | 0 | ||||
-rw-r--r-- | patches/server/0807-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/server/0808-Prevent-ContainerOpenersCounter-openCount-from-going.patch) | 0 | ||||
-rw-r--r-- | patches/server/0808-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/server/0809-Add-PlayerItemFrameChangeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0809-Add-player-health-update-API.patch (renamed from patches/server/0810-Add-player-health-update-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0810-Optimize-HashMapPalette.patch (renamed from patches/server/0811-Optimize-HashMapPalette.patch) | 0 | ||||
-rw-r--r-- | patches/server/0811-Allow-delegation-to-vanilla-chunk-gen.patch (renamed from patches/server/0812-Allow-delegation-to-vanilla-chunk-gen.patch) | 0 | ||||
-rw-r--r-- | patches/server/0812-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch (renamed from patches/server/0813-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch) | 0 | ||||
-rw-r--r-- | patches/server/0813-Optimise-collision-checking-in-player-move-packet-ha.patch (renamed from patches/server/0814-Optimise-collision-checking-in-player-move-packet-ha.patch) | 0 | ||||
-rw-r--r-- | patches/server/0814-Actually-unload-POI-data.patch (renamed from patches/server/0815-Actually-unload-POI-data.patch) | 28 | ||||
-rw-r--r-- | patches/server/0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (renamed from patches/server/0816-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch) | 0 | ||||
-rw-r--r-- | patches/server/0816-Update-Log4j.patch (renamed from patches/server/0817-Update-Log4j.patch) | 0 | ||||
-rw-r--r-- | patches/server/0817-Add-more-Campfire-API.patch (renamed from patches/server/0818-Add-more-Campfire-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (renamed from patches/server/0819-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch) | 0 | ||||
-rw-r--r-- | patches/server/0819-Fix-tripwire-state-inconsistency.patch (renamed from patches/server/0820-Fix-tripwire-state-inconsistency.patch) | 0 | ||||
-rw-r--r-- | patches/server/0820-Fix-fluid-logging-on-Block-breakNaturally.patch (renamed from patches/server/0821-Fix-fluid-logging-on-Block-breakNaturally.patch) | 6 | ||||
-rw-r--r-- | patches/server/0821-Forward-CraftEntity-in-teleport-command.patch (renamed from patches/server/0822-Forward-CraftEntity-in-teleport-command.patch) | 0 | ||||
-rw-r--r-- | patches/server/0822-Improve-scoreboard-entries.patch (renamed from patches/server/0823-Improve-scoreboard-entries.patch) | 0 | ||||
-rw-r--r-- | patches/server/0823-Entity-powdered-snow-API.patch (renamed from patches/server/0824-Entity-powdered-snow-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0824-Add-API-for-item-entity-health.patch (renamed from patches/server/0825-Add-API-for-item-entity-health.patch) | 4 | ||||
-rw-r--r-- | patches/server/0825-Fix-entity-type-tags-suggestions-in-selectors.patch (renamed from patches/server/0826-Fix-entity-type-tags-suggestions-in-selectors.patch) | 0 | ||||
-rw-r--r-- | patches/server/0826-Configurable-max-block-light-for-monster-spawning.patch (renamed from patches/server/0827-Configurable-max-block-light-for-monster-spawning.patch) | 0 | ||||
-rw-r--r-- | patches/server/0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch (renamed from patches/server/0828-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0828-Load-effect-amplifiers-greater-than-127-correctly.patch (renamed from patches/server/0829-Load-effect-amplifiers-greater-than-127-correctly.patch) | 0 | ||||
-rw-r--r-- | patches/server/0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch (renamed from patches/server/0830-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch) | 0 | ||||
-rw-r--r-- | patches/server/0830-Fix-bees-aging-inside-hives.patch (renamed from patches/server/0831-Fix-bees-aging-inside-hives.patch) | 0 | ||||
-rw-r--r-- | patches/server/0831-Bucketable-API.patch (renamed from patches/server/0832-Bucketable-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0832-Check-player-world-in-endPortalSoundRadius.patch (renamed from patches/server/0833-Check-player-world-in-endPortalSoundRadius.patch) | 0 | ||||
-rw-r--r-- | patches/server/0833-Validate-usernames.patch (renamed from patches/server/0834-Validate-usernames.patch) | 0 | ||||
-rw-r--r-- | patches/server/0834-Fix-saving-configs-with-more-long-comments.patch (renamed from patches/server/0835-Fix-saving-configs-with-more-long-comments.patch) | 0 | ||||
-rw-r--r-- | patches/server/0835-Make-water-animal-spawn-height-configurable.patch (renamed from patches/server/0836-Make-water-animal-spawn-height-configurable.patch) | 0 | ||||
-rw-r--r-- | patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch (renamed from patches/server/0837-Expose-vanilla-BiomeProvider-from-WorldInfo.patch) | 4 | ||||
-rw-r--r-- | patches/server/0837-Add-config-option-for-worlds-affected-by-time-cmd.patch (renamed from patches/server/0838-Add-config-option-for-worlds-affected-by-time-cmd.patch) | 0 | ||||
-rw-r--r-- | patches/server/0838-Add-new-overload-to-PersistentDataContainer-has.patch (renamed from patches/server/0839-Add-new-overload-to-PersistentDataContainer-has.patch) | 0 | ||||
-rw-r--r-- | patches/server/0839-Multiple-Entries-with-Scoreboards.patch (renamed from patches/server/0840-Multiple-Entries-with-Scoreboards.patch) | 0 | ||||
-rw-r--r-- | patches/server/0840-Reset-placed-block-on-exception.patch (renamed from patches/server/0841-Reset-placed-block-on-exception.patch) | 0 | ||||
-rw-r--r-- | patches/server/0841-Add-configurable-height-for-slime-spawn.patch (renamed from patches/server/0842-Add-configurable-height-for-slime-spawn.patch) | 0 | ||||
-rw-r--r-- | patches/server/0842-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch (renamed from patches/server/0843-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0843-Fix-xp-reward-for-baby-zombies.patch (renamed from patches/server/0844-Fix-xp-reward-for-baby-zombies.patch) | 0 | ||||
-rw-r--r-- | patches/server/0844-Kick-on-main-for-illegal-chars.patch (renamed from patches/server/0845-Kick-on-main-for-illegal-chars.patch) | 0 | ||||
-rw-r--r-- | patches/server/0845-Multi-Block-Change-API-Implementation.patch (renamed from patches/server/0846-Multi-Block-Change-API-Implementation.patch) | 0 | ||||
-rw-r--r-- | patches/server/0846-Fix-NotePlayEvent.patch (renamed from patches/server/0847-Fix-NotePlayEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0847-Freeze-Tick-Lock-API.patch (renamed from patches/server/0848-Freeze-Tick-Lock-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0848-Dolphin-API.patch (renamed from patches/server/0849-Dolphin-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0849-More-PotionEffectType-API.patch (renamed from patches/server/0850-More-PotionEffectType-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0850-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch (renamed from patches/server/0851-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch) | 0 | ||||
-rw-r--r-- | patches/server/0851-API-for-creating-command-sender-which-forwards-feedb.patch (renamed from patches/server/0852-API-for-creating-command-sender-which-forwards-feedb.patch) | 0 | ||||
-rw-r--r-- | patches/server/0852-Add-config-for-stronghold-seed.patch (renamed from patches/server/0853-Add-config-for-stronghold-seed.patch) | 0 | ||||
-rw-r--r-- | patches/server/0853-Implement-regenerateChunk.patch (renamed from patches/server/0854-Implement-regenerateChunk.patch) | 0 | ||||
-rw-r--r-- | patches/server/0854-Log-exceptions-thrown-during-chat-processing.patch (renamed from patches/server/0855-Log-exceptions-thrown-during-chat-processing.patch) | 0 | ||||
-rw-r--r-- | patches/server/0855-Fix-cancelled-powdered-snow-bucket-placement.patch (renamed from patches/server/0856-Fix-cancelled-powdered-snow-bucket-placement.patch) | 0 | ||||
-rw-r--r-- | patches/server/0856-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch (renamed from patches/server/0857-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch) | 0 | ||||
-rw-r--r-- | patches/server/0857-Add-GameEvent-tags.patch (renamed from patches/server/0858-Add-GameEvent-tags.patch) | 0 | ||||
-rw-r--r-- | patches/server/0858-Replace-player-chunk-loader-system.patch (renamed from patches/server/0859-Replace-player-chunk-loader-system.patch) | 22 | ||||
-rw-r--r-- | patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch (renamed from patches/server/0860-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch) | 6 | ||||
-rw-r--r-- | patches/server/0860-Replace-ticket-level-propagator.patch (renamed from patches/server/0861-Replace-ticket-level-propagator.patch) | 0 | ||||
-rw-r--r-- | patches/server/0861-Furnace-RecipesUsed-API.patch (renamed from patches/server/0862-Furnace-RecipesUsed-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0862-Configurable-sculk-sensor-listener-range.patch (renamed from patches/server/0863-Configurable-sculk-sensor-listener-range.patch) | 0 | ||||
-rw-r--r-- | patches/server/0863-Add-missing-block-data-mins-and-maxes.patch (renamed from patches/server/0864-Add-missing-block-data-mins-and-maxes.patch) | 0 | ||||
-rw-r--r-- | patches/server/0864-Option-to-have-default-CustomSpawners-in-custom-worl.patch (renamed from patches/server/0865-Option-to-have-default-CustomSpawners-in-custom-worl.patch) | 4 | ||||
-rw-r--r-- | patches/server/0865-Put-world-into-worldlist-before-initing-the-world.patch (renamed from patches/server/0866-Put-world-into-worldlist-before-initing-the-world.patch) | 4 | ||||
-rw-r--r-- | patches/server/0866-Fix-Entity-Position-Desync.patch (renamed from patches/server/0867-Fix-Entity-Position-Desync.patch) | 0 | ||||
-rw-r--r-- | patches/server/0867-Custom-Potion-Mixes.patch (renamed from patches/server/0868-Custom-Potion-Mixes.patch) | 4 | ||||
-rw-r--r-- | patches/server/0868-Fix-Fluid-tags-isTagged-method.patch (renamed from patches/server/0869-Fix-Fluid-tags-isTagged-method.patch) | 0 | ||||
-rw-r--r-- | patches/server/0869-Fix-World-locateNearestStructure.patch (renamed from patches/server/0870-Fix-World-locateNearestStructure.patch) | 8 | ||||
-rw-r--r-- | patches/server/0870-Force-close-world-loading-screen.patch (renamed from patches/server/0871-Force-close-world-loading-screen.patch) | 0 | ||||
-rw-r--r-- | patches/server/0871-Fix-falling-block-spawn-methods.patch (renamed from patches/server/0872-Fix-falling-block-spawn-methods.patch) | 0 | ||||
-rw-r--r-- | patches/server/0872-Expose-furnace-minecart-push-values.patch (renamed from patches/server/0873-Expose-furnace-minecart-push-values.patch) | 0 | ||||
-rw-r--r-- | patches/server/0873-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch (renamed from patches/server/0874-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch) | 0 | ||||
-rw-r--r-- | patches/server/0874-Fix-save-problems-on-shutdown.patch (renamed from patches/server/0875-Fix-save-problems-on-shutdown.patch) | 8 | ||||
-rw-r--r-- | patches/server/0875-More-Projectile-API.patch (renamed from patches/server/0876-More-Projectile-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0876-Fix-swamp-hut-cat-generation-deadlock.patch (renamed from patches/server/0877-Fix-swamp-hut-cat-generation-deadlock.patch) | 0 | ||||
-rw-r--r-- | patches/server/0877-Fix-CreativeCategory-API.patch (renamed from patches/server/0878-Fix-CreativeCategory-API.patch) | 0 | ||||
m--------- | work/Bukkit | 0 | ||||
m--------- | work/CraftBukkit | 0 | ||||
m--------- | work/Spigot | 0 |
350 files changed, 449 insertions, 548 deletions
diff --git a/patches/api/0055-Item-canEntityPickup.patch b/patches/api/0055-Item-canEntityPickup.patch index 27894bda93..1d18a940a2 100644 --- a/patches/api/0055-Item-canEntityPickup.patch +++ b/patches/api/0055-Item-canEntityPickup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item#canEntityPickup diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index 3f2736fbddd8661e764bc2f8d0499bd13ca91df5..c404a5b8efea7c780db5ddae19456753808abb3d 100644 +index 65dd4554c6cc0801fcbc0ef6809b794dcebd1124..ab06c640cef1309ab44b0fae8d95df48cdc869a7 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java -@@ -75,4 +75,20 @@ public interface Item extends Entity { +@@ -89,4 +89,20 @@ public interface Item extends Entity { */ @Nullable public UUID getThrower(); diff --git a/patches/api/0230-Item-no-age-no-player-pickup.patch b/patches/api/0230-Item-no-age-no-player-pickup.patch index 142a8b5202..5dd7572120 100644 --- a/patches/api/0230-Item-no-age-no-player-pickup.patch +++ b/patches/api/0230-Item-no-age-no-player-pickup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item no age & no player pickup diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index c404a5b8efea7c780db5ddae19456753808abb3d..0ee072645ecf1bf5feb74de6960947ef76db366e 100644 +index ab06c640cef1309ab44b0fae8d95df48cdc869a7..48858e1c58c13d786bbc935abedb0f059837833c 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java -@@ -90,5 +90,34 @@ public interface Item extends Entity { +@@ -104,5 +104,34 @@ public interface Item extends Entity { * @param canMobPickup True to allow non-player entity pickup */ public void setCanMobPickup(boolean canMobPickup); diff --git a/patches/api/0348-Add-API-for-item-entity-health.patch b/patches/api/0348-Add-API-for-item-entity-health.patch index 913f679ec0..94373dbdf2 100644 --- a/patches/api/0348-Add-API-for-item-entity-health.patch +++ b/patches/api/0348-Add-API-for-item-entity-health.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add API for item entity health diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index 0ee072645ecf1bf5feb74de6960947ef76db366e..87dbc00ab565377b8ae0eb6e73799ae6e2e3a376 100644 +index 48858e1c58c13d786bbc935abedb0f059837833c..d0bef15785493b512ff0f7414c1d58d38fead581 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java -@@ -119,5 +119,24 @@ public interface Item extends Entity { +@@ -133,5 +133,24 @@ public interface Item extends Entity { * @param willAge True if the item should age */ public void setWillAge(boolean willAge); diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 9ca9d1a8d1..20d71f4452 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts -index be24f2f1c72ffcb033fe99bd9197af2c0bed4e69..c1f97f5bb806e3c92a2b4633142d3214e11f7074 100644 +index bc894c62618437215e1a7185dc20283e4f9963dd..f08a6a00ad4d4c96166b386b3e79dc1ea021db3a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,10 +13,9 @@ repositories { @@ -39,7 +39,7 @@ index be24f2f1c72ffcb033fe99bd9197af2c0bed4e69..c1f97f5bb806e3c92a2b4633142d3214 for (tld in setOf("net", "com", "org")) { attributes("$tld/bukkit", "Sealed" to true) diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 3067833570c62e4d135b11b8637b52b8167ab269..b698d6a8d6b59eefd721639b62bfd8bcffcf5c6f 100644 +index e1963817af4d73c569da068b74ebbb260c5183cc..d20bb61700ba231cc5b58295f2a819ff7e7db705 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -190,7 +190,7 @@ public class Main { @@ -50,7 +50,7 @@ index 3067833570c62e4d135b11b8637b52b8167ab269..b698d6a8d6b59eefd721639b62bfd8bc + Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -3); + deadline.add(Calendar.DAY_OF_YEAR, -21); diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java diff --git a/patches/server/0004-Paper-config-files.patch b/patches/server/0004-Paper-config-files.patch index fba78da456..43bda55966 100644 --- a/patches/server/0004-Paper-config-files.patch +++ b/patches/server/0004-Paper-config-files.patch @@ -629,10 +629,10 @@ index 9e4cca119722c2edc478fdd1a34af4370649aa5c..b49528d8a2c577def4f74ee694ffd53b Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, generatorOptions, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9d38f78ba0db10578cfbcce29059e108272d0034..89522ebf7b11801cf8b9893a1bae50a1ee88ff79 100644 +index 6016216921232bedba84acc1f6a87a3cfbb75850..ef128de5fe17231b39edb12a7014291d03cf79ec 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -603,6 +603,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -601,6 +601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } this.forceDifficulty(); for (ServerLevel worldserver : this.getAllLevels()) { diff --git a/patches/server/0005-MC-Dev-fixes.patch b/patches/server/0005-MC-Dev-fixes.patch index 840be8059c..bb35e30256 100644 --- a/patches/server/0005-MC-Dev-fixes.patch +++ b/patches/server/0005-MC-Dev-fixes.patch @@ -183,10 +183,10 @@ index 2a6969baca7c07c52223672de58886dd05c032eb..a620e53021e02da1663b8d8b68d429b2 public void write(FriendlyByteBuf buf) { buf.writeInt(this.playerId); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 89522ebf7b11801cf8b9893a1bae50a1ee88ff79..a47303382db64d8121c6252d70739d597cfd6231 100644 +index ef128de5fe17231b39edb12a7014291d03cf79ec..868f6799a0e406401eecf18bc939fbdf88f534a2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1774,7 +1774,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1770,7 +1770,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa PackRepository resourcepackrepository = this.packRepository; Objects.requireNonNull(this.packRepository); diff --git a/patches/server/0007-MC-Utils.patch b/patches/server/0007-MC-Utils.patch index 99030fa8f0..d7c02e6e48 100644 --- a/patches/server/0007-MC-Utils.patch +++ b/patches/server/0007-MC-Utils.patch @@ -5001,18 +5001,18 @@ index 0000000000000000000000000000000000000000..9f292deee1b793d52b5774304318e940 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a47303382db64d8121c6252d70739d597cfd6231..9db23400a5538200ae26ef620da7bafb7fe75c37 100644 +index 868f6799a0e406401eecf18bc939fbdf88f534a2..dd8d14a1b128f801a4e1c811de5990d2602feeb2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -296,6 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -294,6 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa + private static final int SAMPLE_INTERVAL = 100; public final double[] recentTps = new double[ 3 ]; - public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); // Spigot end + public static long currentTickLong = 0L; // Paper public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) { AtomicReference<S> atomicreference = new AtomicReference(); -@@ -963,6 +964,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -961,6 +962,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa MinecraftServer.LOGGER.error("Failed to unlock level {}", this.storageSource.getLevelId(), ioexception1); } // Spigot start @@ -5022,7 +5022,7 @@ index a47303382db64d8121c6252d70739d597cfd6231..9db23400a5538200ae26ef620da7bafb if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { MinecraftServer.LOGGER.info("Saving usercache.json"); this.getProfileCache().save(); -@@ -1025,6 +1029,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1023,6 +1027,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.lastOverloadWarning = this.nextTickTime; } @@ -5030,7 +5030,7 @@ index a47303382db64d8121c6252d70739d597cfd6231..9db23400a5538200ae26ef620da7bafb if ( tickCount++ % MinecraftServer.SAMPLE_INTERVAL == 0 ) { double currentTps = 1E3 / ( curTime - tickSection ) * MinecraftServer.SAMPLE_INTERVAL; -@@ -1267,7 +1272,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1264,7 +1269,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa MinecraftServer.LOGGER.debug("Autosave finished"); SpigotTimings.worldSaveTimer.stopTiming(); // Spigot } @@ -5039,7 +5039,7 @@ index a47303382db64d8121c6252d70739d597cfd6231..9db23400a5538200ae26ef620da7bafb this.profiler.push("tallying"); long l = this.tickTimes[this.tickCount % 100] = Util.getNanos() - i; -@@ -1330,6 +1335,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1326,6 +1331,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa try { worldserver.timings.doTick.startTiming(); // Spigot worldserver.tick(shouldKeepTicking); @@ -5296,7 +5296,7 @@ index d1a053dbade32fde28784c79659d9b150c90ed93..2b936c67265f3c672d3b623e6aedd81e + // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2 100644 +index aa9bde92a48ab151145c3b0a77aa8beb6ecc1b5e..d9202f7a5b17d8a5c063c8aba4ce22a53d8f59af 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -62,6 +62,7 @@ import net.minecraft.network.protocol.game.ClientboundSetChunkCacheCenterPacket; @@ -5402,7 +5402,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b } this.updatingChunkMap.put(pos, holder); -@@ -547,7 +615,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -535,7 +603,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (completablefuture1 != completablefuture) { this.scheduleUnload(pos, holder); } else { @@ -5417,7 +5417,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b if (ichunkaccess instanceof LevelChunk) { ((LevelChunk) ichunkaccess).setLoaded(false); } -@@ -563,7 +637,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -551,7 +625,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lightEngine.tryScheduleUpdate(); this.progressListener.onStatusChange(ichunkaccess.getPos(), (ChunkStatus) null); this.chunkSaveCooldowns.remove(ichunkaccess.getPos().toLong()); @@ -5429,7 +5429,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b } }; -@@ -1111,6 +1189,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1099,6 +1177,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!flag1) { this.distanceManager.addPlayer(SectionPos.of((Entity) player), player); } @@ -5437,7 +5437,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b } else { SectionPos sectionposition = player.getLastSectionPos(); -@@ -1118,6 +1197,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1106,6 +1185,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!flag2) { this.distanceManager.removePlayer(sectionposition, player); } @@ -5445,7 +5445,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b } for (int k = i - this.viewDistance - 1; k <= i + this.viewDistance + 1; ++k) { -@@ -1230,6 +1310,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1218,6 +1298,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -5454,7 +5454,7 @@ index 27592093939d3ee3d0395527eead160ecec9330c..a5eb77f3d7cdbf656d11e97f4c27054b } @Override -@@ -1433,7 +1515,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1421,7 +1503,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public class ChunkDistanceManager extends DistanceManager { protected ChunkDistanceManager(Executor workerExecutor, Executor mainThreadExecutor) { diff --git a/patches/server/0012-Timings-v2.patch b/patches/server/0012-Timings-v2.patch index d1d307820f..bad5c80a79 100644 --- a/patches/server/0012-Timings-v2.patch +++ b/patches/server/0012-Timings-v2.patch @@ -676,7 +676,7 @@ index 0000000000000000000000000000000000000000..0fda52841b5e1643efeda92106124998 + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 64511d966043ca5a3c2b8588ef387ea37bf2de93..a0f55d6e1096af6f59e7e7ffdc27cdd29cbac9a6 100644 +index 131f67b5843af8feab16f14045cc496e40f9bc00..11e703e8e78fb49a5f53bdbc20d62422b573ae55 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,12 +14,15 @@ import java.util.concurrent.TimeUnit; @@ -766,7 +766,7 @@ index 13421daa96b4ba302581f36abcd730952713d8cd..049e64c355d5f064009b1107ad15d28c } catch (Exception exception) { if (listener.shouldPropagateHandlingExceptions()) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d88b403dc 100644 +index dd8d14a1b128f801a4e1c811de5990d2602feeb2..f1c94ec44233ce0007a43922d1ca7ba5e71d68bd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -180,7 +180,7 @@ import org.bukkit.craftbukkit.generator.CustomWorldChunkManager; @@ -775,10 +775,10 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d -import org.bukkit.craftbukkit.SpigotTimings; // Spigot +import co.aikar.timings.MinecraftTimings; // Paper - import org.spigotmc.SlackActivityAccountant; // Spigot public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, AutoCloseable { -@@ -895,6 +895,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa + +@@ -893,6 +893,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } // CraftBukkit end MinecraftServer.LOGGER.info("Stopping server"); @@ -786,7 +786,7 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); -@@ -1137,9 +1138,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1135,9 +1136,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa private boolean haveTime() { // CraftBukkit start @@ -808,7 +808,7 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d private void executeModerately() { this.runAllTasks(); java.util.concurrent.locks.LockSupport.parkNanos("executing tasks", 1000L); -@@ -1147,9 +1160,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1145,9 +1158,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit end protected void waitUntilNextTick() { @@ -820,13 +820,12 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d }); } -@@ -1235,10 +1248,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1233,9 +1246,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public void onServerExit() {} public void tickServer(BooleanSupplier shouldKeepTicking) { - SpigotTimings.serverTickTimer.startTiming(); // Spigot + co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper - this.slackActivityAccountant.tickStarted(); // Spigot long i = Util.getNanos(); + // Paper start - move oversleep into full server tick @@ -840,7 +839,7 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d ++this.tickCount; this.tickChildren(shouldKeepTicking); if (i - this.lastServerStatus >= 5000000000L) { -@@ -1264,15 +1285,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1261,15 +1282,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } if (this.autosavePeriod > 0 && this.tickCount % this.autosavePeriod == 0) { // CraftBukkit @@ -861,10 +860,10 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d this.profiler.push("tallying"); long l = this.tickTimes[this.tickCount % 100] = Util.getNanos() - i; -@@ -1283,30 +1307,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1279,30 +1303,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa + this.frameTimer.logFrameDuration(i1 - i); this.profiler.pop(); org.spigotmc.WatchdogThread.tick(); // Spigot - this.slackActivityAccountant.tickEnded(l); // Spigot - SpigotTimings.serverTickTimer.stopTiming(); // Spigot - org.spigotmc.CustomTimingsHandler.tick(); // Spigot + co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper @@ -900,7 +899,7 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d // Send time updates to everyone, it will get the right time from the world the player is in. if (this.tickCount % 20 == 0) { for (int i = 0; i < this.getPlayerList().players.size(); ++i) { -@@ -1314,7 +1337,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1310,7 +1333,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa entityplayer.connection.send(new ClientboundSetTimePacket(entityplayer.level.getGameTime(), entityplayer.getPlayerTime(), entityplayer.level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); // Add support for per player time } } @@ -909,7 +908,7 @@ index 9db23400a5538200ae26ef620da7bafb7fe75c37..3112f15993972c90d5bb797638a0186d while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); -@@ -1360,24 +1383,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1356,24 +1379,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } this.profiler.popPush("connection"); @@ -1035,7 +1034,7 @@ index ebd94265f56ecc946ff1834ec0d45673e010453e..1c0fefd539ef82d2d1b33a4974d67dc3 } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0e748ae44 100644 +index d9202f7a5b17d8a5c063c8aba4ce22a53d8f59af..f9e9e00855627b78e8ff018bf6d52c9787fcffeb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,8 +1,10 @@ @@ -1049,7 +1048,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 import com.google.common.collect.Lists; import com.google.common.collect.Queues; import com.google.common.collect.Sets; -@@ -693,11 +695,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -681,11 +683,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> scheduleChunkLoad(ChunkPos pos) { return CompletableFuture.supplyAsync(() -> { @@ -1067,7 +1066,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 boolean flag = nbttagcompound.contains("Status", 8); if (flag) { -@@ -708,7 +713,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -696,7 +701,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } ChunkMap.LOGGER.error("Chunk file at {} is missing level data, skipping", pos); @@ -1076,7 +1075,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 } catch (ReportedException reportedexception) { Throwable throwable = reportedexception.getCause(); -@@ -825,6 +830,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -813,6 +818,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkStatus chunkstatus = ChunkHolder.getStatus(chunkHolder.getTicketLevel()); return !chunkstatus.isOrAfter(ChunkStatus.FULL) ? ChunkHolder.UNLOADED_CHUNK : either.mapLeft((ichunkaccess) -> { @@ -1084,7 +1083,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 ChunkPos chunkcoordintpair = chunkHolder.getPos(); ProtoChunk protochunk = (ProtoChunk) ichunkaccess; LevelChunk chunk; -@@ -849,6 +855,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -837,6 +843,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } return chunk; @@ -1092,7 +1091,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 }); }, (runnable) -> { ProcessorHandle mailbox = this.mainThreadMailbox; -@@ -1396,6 +1403,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1384,6 +1391,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -1100,7 +1099,7 @@ index a5eb77f3d7cdbf656d11e97f4c27054b1d38b5d2..9aaf392876119cfda46f3e80d02020d0 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1420,14 +1428,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1408,14 +1416,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } diff --git a/patches/server/0020-Drop-falling-block-and-tnt-entities-at-the-specified.patch b/patches/server/0020-Drop-falling-block-and-tnt-entities-at-the-specified.patch index 760b6c69a1..b49d06b344 100644 --- a/patches/server/0020-Drop-falling-block-and-tnt-entities-at-the-specified.patch +++ b/patches/server/0020-Drop-falling-block-and-tnt-entities-at-the-specified.patch @@ -25,10 +25,10 @@ index 9b908c5c66dc454faa479430a908dda0745638c8..6dec1bb96d695f28aae6517e4d782491 + } } diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index eb67ba3ce1ea68eb5db62f68bf48853fe5023f12..8e7479afd3579e6b732feca059c1e4df1160e450 100644 +index 690a2a97e10bf1003b49f7e4806aab0bca206d99..6dc1500866e634364ac258956b07a880ecbf6c76 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -130,6 +130,17 @@ public class FallingBlockEntity extends Entity { +@@ -131,6 +131,17 @@ public class FallingBlockEntity extends Entity { } this.move(MoverType.SELF, this.getDeltaMovement()); diff --git a/patches/server/0021-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0021-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index de4eb13e5c..144fd8d659 100644 --- a/patches/server/0021-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/patches/server/0021-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -19,10 +19,10 @@ index f092497b6defd28c94393e483a9288d121158a1e..df44790b1c342d0a6ff794bea86319fa if (outputStream != null) { try { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3112f15993972c90d5bb797638a0186d88b403dc..8bacbb2289a9e5203766d71be6ba0a31f48b626e 100644 +index f1c94ec44233ce0007a43922d1ca7ba5e71d68bd..eef07309b24e88820d35517dd868fff25f777262 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1460,7 +1460,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1456,7 +1456,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @DontObfuscate public String getServerModName() { @@ -32,7 +32,7 @@ index 3112f15993972c90d5bb797638a0186d88b403dc..8bacbb2289a9e5203766d71be6ba0a31 public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ba53a17a8730344882502995245171190b2de5ee..ad70bb6419bdfa75ffc8ce4f42150097ef0ead0f 100644 +index d2c5221f7d0ed3cb04f160a9e77d9aba6ec206a4..bb304601b3795349dd45d94c53f082a3bcc17273 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -245,7 +245,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -45,11 +45,11 @@ index ba53a17a8730344882502995245171190b2de5ee..ad70bb6419bdfa75ffc8ce4f42150097 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 7e5fc58f43836edab3696b9644264434c5a95a2f..1ea304aaf85ada7737f62248f7b8cd44c800505e 100644 +index 52b13926ac40d61162b9da818fe6dc2c32cbae06..cd96196c8744596b95fd2a87bbbb9765f27c8be4 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -216,12 +216,25 @@ public class Main { - deadline.add(Calendar.DAY_OF_YEAR, -3); + deadline.add(Calendar.DAY_OF_YEAR, -21); if (buildDate.before(deadline.getTime())) { System.err.println("*** Error, this build is outdated ***"); - System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***"); diff --git a/patches/server/0025-Further-improve-server-tick-loop.patch b/patches/server/0025-Further-improve-server-tick-loop.patch index ea92cfe634..7ec5e96468 100644 --- a/patches/server/0025-Further-improve-server-tick-loop.patch +++ b/patches/server/0025-Further-improve-server-tick-loop.patch @@ -12,10 +12,10 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8bacbb2289a9e5203766d71be6ba0a31f48b626e..18f03367174651b93682d5e5f4350d8c7e6e3b98 100644 +index eef07309b24e88820d35517dd868fff25f777262..e26818bd6fb2216ab9b363affe99e4b6c83cca6a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -282,7 +282,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public ConsoleReader reader; @@ -24,16 +24,16 @@ index 8bacbb2289a9e5203766d71be6ba0a31f48b626e..18f03367174651b93682d5e5f4350d8c public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public int autosavePeriod; public Commands vanillaCommandDispatcher; -@@ -292,7 +292,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -291,7 +291,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // Spigot start public static final int TPS = 20; public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS; - private static final int SAMPLE_INTERVAL = 100; + private static final int SAMPLE_INTERVAL = 20; // Paper public final double[] recentTps = new double[ 3 ]; - public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); // Spigot end -@@ -1005,6 +1005,57 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa + public static long currentTickLong = 0L; // Paper +@@ -1003,6 +1003,57 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa { return ( avg * exp ) + ( tps * ( 1 - exp ) ); } @@ -91,7 +91,7 @@ index 8bacbb2289a9e5203766d71be6ba0a31f48b626e..18f03367174651b93682d5e5f4350d8c // Spigot End protected void runServer() { -@@ -1017,26 +1068,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1015,26 +1066,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // Spigot start Arrays.fill( recentTps, 20 ); @@ -133,7 +133,7 @@ index 8bacbb2289a9e5203766d71be6ba0a31f48b626e..18f03367174651b93682d5e5f4350d8c tickSection = curTime; } // Spigot end -@@ -1046,7 +1104,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1044,7 +1102,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.debugCommandProfiler = new MinecraftServer.TimeProfiler(Util.getNanos(), this.tickCount); } diff --git a/patches/server/0027-Entity-Origin-API.patch b/patches/server/0027-Entity-Origin-API.patch index affd5c5e38..8e66eaa1c1 100644 --- a/patches/server/0027-Entity-Origin-API.patch +++ b/patches/server/0027-Entity-Origin-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity Origin API diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 74571a05f8d69e068c615179782def0902b26a09..54416a9327ecb02627537306678122ae77da1239 100644 +index 0750cf27c1b2cac723d68d0e6c2204cbb5795571..0eb0229125fd027025b6b44dfceddf626fc05399 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2023,6 +2023,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2027,6 +2027,15 @@ public class ServerLevel extends Level implements WorldGenLevel { } entity.valid = true; // CraftBukkit @@ -94,10 +94,10 @@ index 8a4f4582a6bd69016a36d611f9c4ac2262f7f3ec..a4cd7088113b60fd10e79359e5749fd1 CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Entity being loaded"); diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index de98cbe9e863a19f71783980417fb32646102c9e..16b029f08d5c9dfd3bc4ad304ab9d339ad20b232 100644 +index 6dc1500866e634364ac258956b07a880ecbf6c76..b8155fb12ab7bb83290502e8313cbfa773ac15a7 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -330,6 +330,14 @@ public class FallingBlockEntity extends Entity { +@@ -331,6 +331,14 @@ public class FallingBlockEntity extends Entity { this.blockState = Blocks.SAND.defaultBlockState(); } diff --git a/patches/server/0034-Optimize-explosions.patch b/patches/server/0034-Optimize-explosions.patch index 62c851563b..5d241f7a2b 100644 --- a/patches/server/0034-Optimize-explosions.patch +++ b/patches/server/0034-Optimize-explosions.patch @@ -25,10 +25,10 @@ index bc35bdd9cbd544ae2ab27ad042d7d1b3166db9a6..2b0a75dc2e292e655ca3300f64bc1211 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 18f03367174651b93682d5e5f4350d8c7e6e3b98..ac88d79685c5f988d02122bce38d5af41fe11445 100644 +index e26818bd6fb2216ab9b363affe99e4b6c83cca6a..400a59336300b189a1b86621b53817940f9a599e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1439,6 +1439,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1435,6 +1435,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.profiler.pop(); this.profiler.pop(); diff --git a/patches/server/0056-Add-exception-reporting-event.patch b/patches/server/0056-Add-exception-reporting-event.patch index 525aa3dc9d..deb9b2f20b 100644 --- a/patches/server/0056-Add-exception-reporting-event.patch +++ b/patches/server/0056-Add-exception-reporting-event.patch @@ -49,10 +49,10 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8 + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9aaf392876119cfda46f3e80d02020d0e748ae44..a10848e6899853f447f101675e3a6aba9d3d43f3 100644 +index f9e9e00855627b78e8ff018bf6d52c9787fcffeb..fb8d50dc14e1d23001e184b425bc6ac2f8b0f37e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -973,6 +973,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -961,6 +961,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return true; } catch (Exception exception) { ChunkMap.LOGGER.error("Failed to save chunk {},{}", new Object[]{chunkcoordintpair.x, chunkcoordintpair.z, exception}); diff --git a/patches/server/0073-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0073-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index b9b524fca0..6cbf5d62c4 100644 --- a/patches/server/0073-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0073-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener Saves on some object allocation and processing when no plugin listens to this diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ac88d79685c5f988d02122bce38d5af41fe11445..ba2b8c886d6c4d68b669186724e8049531987979 100644 +index 400a59336300b189a1b86621b53817940f9a599e..16dbd40ab7394450fd97ced74954ae1554c79aa8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1400,6 +1400,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1396,6 +1396,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); diff --git a/patches/server/0074-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0074-Entity-AddTo-RemoveFrom-World-Events.patch index 5950957dd2..e1a15a5613 100644 --- a/patches/server/0074-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/server/0074-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 06c182e04e1e046d8e5623d5422a2732cbfec78b..0fa1a31c1595d504ac4d78ab4f5047dc8f1a063a 100644 +index 93c967efbcdbc44f3729d7a70e90847212daa647..317ae71b8b9318a8bfe243b7b316f84566b88bf9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2033,6 +2033,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2037,6 +2037,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.setOrigin(entity.getOriginVector().toLocation(getWorld())); } // Paper end @@ -16,7 +16,7 @@ index 06c182e04e1e046d8e5623d5422a2732cbfec78b..0fa1a31c1595d504ac4d78ab4f5047dc } public void onTrackingEnd(Entity entity) { -@@ -2113,6 +2114,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2117,6 +2118,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // CraftBukkit end diff --git a/patches/server/0084-Configurable-Player-Collision.patch b/patches/server/0084-Configurable-Player-Collision.patch index 0c2e3d317d..6f1dfb6005 100644 --- a/patches/server/0084-Configurable-Player-Collision.patch +++ b/patches/server/0084-Configurable-Player-Collision.patch @@ -32,7 +32,7 @@ index 8993d8809c109212ab278e15c09cebab9e89342f..005a3058c51a41a39f050b1817e2079b buf.writeComponent(this.playerPrefix); buf.writeComponent(this.playerSuffix); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ba2b8c886d6c4d68b669186724e8049531987979..199401eb1a0722d84700681a0a5cba67953c6bec 100644 +index 16dbd40ab7394450fd97ced74954ae1554c79aa8..66ba45e0a3c4970df9f8b3a0b8b5cfdaf597e40c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -162,6 +162,7 @@ import net.minecraft.world.level.storage.loot.LootTables; @@ -43,7 +43,7 @@ index ba2b8c886d6c4d68b669186724e8049531987979..199401eb1a0722d84700681a0a5cba67 import org.apache.commons.lang3.Validate; import org.slf4j.Logger; -@@ -610,6 +611,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -608,6 +609,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.server.getPluginManager().callEvent(new org.bukkit.event.world.WorldLoadEvent(worldserver.getWorld())); } diff --git a/patches/server/0089-remove-null-possibility-for-getServer-singleton.patch b/patches/server/0089-remove-null-possibility-for-getServer-singleton.patch index c0f8aa3bb4..5a2e76c50e 100644 --- a/patches/server/0089-remove-null-possibility-for-getServer-singleton.patch +++ b/patches/server/0089-remove-null-possibility-for-getServer-singleton.patch @@ -6,10 +6,10 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 199401eb1a0722d84700681a0a5cba67953c6bec..9fb842e86aa6302259a98e5352da5296dbd07054 100644 +index 66ba45e0a3c4970df9f8b3a0b8b5cfdaf597e40c..9e95cb40ce6839de2582e71576b73cdf8787a042 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -186,6 +186,7 @@ import org.spigotmc.SlackActivityAccountant; // Spigot +@@ -185,6 +185,7 @@ import co.aikar.timings.MinecraftTimings; // Paper public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, AutoCloseable { @@ -17,7 +17,7 @@ index 199401eb1a0722d84700681a0a5cba67953c6bec..9fb842e86aa6302259a98e5352da5296 public static final Logger LOGGER = LogUtils.getLogger(); public static final String VANILLA_BRAND = "vanilla"; private static final float AVERAGE_TICK_TIME_SMOOTHING = 0.8F; -@@ -321,6 +322,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -319,6 +320,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public MinecraftServer(OptionSet options, DataPackConfig datapackconfiguration, DynamicOps<Tag> registryreadops, Thread thread, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PackRepository resourcepackrepository, WorldStem worldstem, Proxy proxy, DataFixer datafixer, @Nullable MinecraftSessionService minecraftsessionservice, @Nullable GameProfileRepository gameprofilerepository, @Nullable GameProfileCache usercache, ChunkProgressListenerFactory worldloadlistenerfactory) { super("Server"); @@ -25,7 +25,7 @@ index 199401eb1a0722d84700681a0a5cba67953c6bec..9fb842e86aa6302259a98e5352da5296 this.metricsRecorder = InactiveMetricsRecorder.INSTANCE; this.profiler = this.metricsRecorder.getProfiler(); this.onMetricsRecordingStopped = (methodprofilerresults) -> { -@@ -2310,7 +2312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2306,7 +2308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @Deprecated public static MinecraftServer getServer() { diff --git a/patches/server/0090-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0090-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index a79e71b55b..8a73474774 100644 --- a/patches/server/0090-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/patches/server/0090-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0fa1a31c1595d504ac4d78ab4f5047dc8f1a063a..c0ec21a8110ed54489361cfae1e1112fe448150a 100644 +index 317ae71b8b9318a8bfe243b7b316f84566b88bf9..9769977c9db77aa52b99b793ca4f5d0c7b54528f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2053,6 +2053,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2057,6 +2057,7 @@ public class ServerLevel extends Level implements WorldGenLevel { { if ( iter.next().player == entity ) { @@ -25,7 +25,7 @@ index 0fa1a31c1595d504ac4d78ab4f5047dc8f1a063a..c0ec21a8110ed54489361cfae1e1112f } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 71610fa70cdaf3c5a54250a5814809013a6d228e..cf8b0c50bf44d28dcca6a759e5dc67c0a8d484c4 100644 +index 067513b240db88b818bd26d74c31fb5f8ee80f5d..df753a2d39332464f16207615175bc95d35f61e8 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -88,6 +88,7 @@ import net.minecraft.world.item.ElytraItem; @@ -44,15 +44,15 @@ index 71610fa70cdaf3c5a54250a5814809013a6d228e..cf8b0c50bf44d28dcca6a759e5dc67c0 import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.scores.PlayerTeam; -@@ -740,6 +742,14 @@ public abstract class Player extends LivingEntity { +@@ -750,6 +752,14 @@ public abstract class Player extends LivingEntity { return null; } // CraftBukkit end + // Paper start - remove player from map on drop -+ if (stack.getItem() == Items.FILLED_MAP) { -+ MapItemSavedData worldmap = MapItem.getSavedData(stack, this.level); ++ if (itemstack.getItem() == Items.FILLED_MAP) { ++ MapItemSavedData worldmap = MapItem.getSavedData(itemstack, this.level); + if (worldmap != null) { -+ worldmap.tickCarriedBy(this, stack); ++ worldmap.tickCarriedBy(this, itemstack); + } + } + // Paper end diff --git a/patches/server/0094-Optimize-UserCache-Thread-Safe.patch b/patches/server/0094-Optimize-UserCache-Thread-Safe.patch index fcfc1b35d7..18234d0ef9 100644 --- a/patches/server/0094-Optimize-UserCache-Thread-Safe.patch +++ b/patches/server/0094-Optimize-UserCache-Thread-Safe.patch @@ -12,10 +12,10 @@ the user never changed the default setting for Spigot's save on stop only. 1.17: TODO does this need the synchronized blocks anymore? diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fb842e86aa6302259a98e5352da5296dbd07054..d864cd5b511e36c9e0c0773324e7de4849595566 100644 +index 9e95cb40ce6839de2582e71576b73cdf8787a042..49c354fa65e0047a367f0a5410c79b8da8693df9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -987,7 +987,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -985,7 +985,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } catch (java.lang.InterruptedException ignored) {} // Paper if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { MinecraftServer.LOGGER.info("Saving usercache.json"); diff --git a/patches/server/0107-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch b/patches/server/0107-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch index 0eb4dfb833..75871fada0 100644 --- a/patches/server/0107-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch +++ b/patches/server/0107-Filter-bad-data-from-ArmorStand-and-SpawnEgg-items.patch @@ -22,10 +22,10 @@ index d7734fbc6b684b14bc32c94e65947fb41aae126a..7320f07beffee60fe3c49016daf7a986 + } } diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 16b029f08d5c9dfd3bc4ad304ab9d339ad20b232..2723816204ee61ea3fda9279369df030b8d70a13 100644 +index b8155fb12ab7bb83290502e8313cbfa773ac15a7..f12eafb49c2536f91f4716188c931ad97264c113 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -309,6 +309,18 @@ public class FallingBlockEntity extends Entity { +@@ -310,6 +310,18 @@ public class FallingBlockEntity extends Entity { @Override protected void readAdditionalSaveData(CompoundTag nbt) { this.blockState = NbtUtils.readBlockState(nbt.getCompound("BlockState")); diff --git a/patches/server/0129-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch b/patches/server/0129-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch index a1b0e025ae..99a97de584 100644 --- a/patches/server/0129-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch +++ b/patches/server/0129-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make targetSize more aggressive in the chunk unload queue diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a10848e6899853f447f101675e3a6aba9d3d43f3..50b2dc91f4926ebc4511e44e3aa3062eadc40ea0 100644 +index fb8d50dc14e1d23001e184b425bc6ac2f8b0f37e..f5cf71258732aa040443eb82e09ab28f130e4c79 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -226,8 +226,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -18,21 +18,20 @@ index a10848e6899853f447f101675e3a6aba9d3d43f3..50b2dc91f4926ebc4511e44e3aa3062e Path path = session.getDimensionPath(world.dimension()); this.storageName = path.getFileName().toString(); -@@ -569,7 +569,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - // Spigot start - org.spigotmc.SlackActivityAccountant activityAccountant = this.level.getServer().slackActivityAccountant; - activityAccountant.startActivity(0.5); -- int targetSize = (int) (this.toDrop.size() * ChunkMap.UNLOAD_QUEUE_RESIZE_FACTOR); -+ int targetSize = Math.min(this.toDrop.size() - 100, (int) (this.toDrop.size() * ChunkMap.UNLOAD_QUEUE_RESIZE_FACTOR)); // Paper - Make more aggressive - // Spigot end - while (longiterator.hasNext()) { // Spigot +@@ -564,7 +564,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + + private void processUnloads(BooleanSupplier shouldKeepTicking) { + LongIterator longiterator = this.toDrop.iterator(); +- + for (int i = 0; longiterator.hasNext() && (shouldKeepTicking.getAsBoolean() || i < 200 || this.toDrop.size() > 2000); longiterator.remove()) { long j = longiterator.nextLong(); -@@ -589,7 +589,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); +@@ -577,7 +576,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + } } - activityAccountant.endActivity(); // Spigot - int k = Math.max(0, this.unloadQueue.size() - 2000); -+ int k = Math.max(0, Math.min(100, this.unloadQueue.size() - (int) (this.unloadQueue.size() * UNLOAD_QUEUE_RESIZE_FACTOR))); // Paper - Target this queue as well ++ int k = Math.max(100, this.unloadQueue.size() - 2000); // Paper - Unload more than just up to queue size 2000 Runnable runnable; diff --git a/patches/server/0130-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0130-Properly-handle-async-calls-to-restart-the-server.patch index 933e7082a4..e180c31457 100644 --- a/patches/server/0130-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/server/0130-Properly-handle-async-calls-to-restart-the-server.patch @@ -30,10 +30,10 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d864cd5b511e36c9e0c0773324e7de4849595566..f17cee5678f912e7118e12c8e0ff907ed49e3acf 100644 +index 49c354fa65e0047a367f0a5410c79b8da8693df9..aa02ab4ea7890d9a477be55ce6c0be0a2a0d4b52 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -230,6 +230,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -229,6 +229,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public final Map<ResourceKey<Level>, ServerLevel> levels; private PlayerList playerList; private volatile boolean running; @@ -41,7 +41,7 @@ index d864cd5b511e36c9e0c0773324e7de4849595566..f17cee5678f912e7118e12c8e0ff907e private boolean stopped; private int tickCount; protected final Proxy proxy; -@@ -926,7 +927,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -924,7 +925,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.playerList != null) { MinecraftServer.LOGGER.info("Saving players"); this.playerList.saveAll(); @@ -50,7 +50,7 @@ index d864cd5b511e36c9e0c0773324e7de4849595566..f17cee5678f912e7118e12c8e0ff907e try { Thread.sleep(100); } catch (InterruptedException ex) {} // CraftBukkit - SPIGOT-625 - give server at least a chance to send packets } -@@ -1006,6 +1007,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1004,6 +1005,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } public void halt(boolean flag) { diff --git a/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch index b83942e31a..a04e5151aa 100644 --- a/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..685deaa0e5d1ddc13e3a7c0471b1cfcf + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f5000ee3310 100644 +index aa02ab4ea7890d9a477be55ce6c0be0a2a0d4b52..f846d9163ca97901ac1508ef8a476dabbf6dc454 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -169,7 +169,7 @@ import org.slf4j.Logger; @@ -124,7 +124,7 @@ index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f50 import joptsimple.OptionSet; import net.minecraft.server.bossevents.CustomBossEvents; import net.minecraft.server.dedicated.DedicatedServer; -@@ -285,7 +285,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -284,7 +284,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public OptionSet options; public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; @@ -133,7 +133,7 @@ index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f50 public static int currentTick = 0; // Paper - Further improve tick loop public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public int autosavePeriod; -@@ -369,7 +369,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -367,7 +367,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.datapackconfiguration = datapackconfiguration; this.registryreadops = registryreadops; this.vanillaCommandDispatcher = worldstem.dataPackResources().commands; // CraftBukkit @@ -143,7 +143,7 @@ index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f50 if (System.console() == null && System.getProperty("jline.terminal") == null) { System.setProperty("jline.terminal", "jline.UnsupportedTerminal"); Main.useJline = false; -@@ -390,6 +392,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -388,6 +390,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa MinecraftServer.LOGGER.warn((String) null, ex); } } @@ -152,7 +152,7 @@ index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f50 Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this)); } // CraftBukkit end -@@ -1183,7 +1187,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1181,7 +1185,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa org.spigotmc.WatchdogThread.doStop(); // Spigot // CraftBukkit start - Restore terminal to original settings try { @@ -161,7 +161,7 @@ index f17cee5678f912e7118e12c8e0ff907ed49e3acf..7adbe2f133e74d566b31098d5c805f50 } catch (Exception ignored) { } // CraftBukkit end -@@ -1599,7 +1603,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1595,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @Override public void sendMessage(Component message, UUID sender) { diff --git a/patches/server/0135-Item-canEntityPickup.patch b/patches/server/0135-Item-canEntityPickup.patch index 8256bd986b..9ef2b98277 100644 --- a/patches/server/0135-Item-canEntityPickup.patch +++ b/patches/server/0135-Item-canEntityPickup.patch @@ -33,11 +33,11 @@ index 1f9e1a7284a02ba7486cf9d1b1498a7799b8d3da..e5c97ffc4ceafcda2939d28fdc7cd729 public ItemEntity(EntityType<? extends ItemEntity> type, Level world) { super(type, world); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index b9044654d22a47cfa952dcf25754ad0d87fc0844..0d262c99c7e9ef06e297612b1802c493700f64ae 100644 +index 4ca76a7530f8679567d887cdf1491d110e7465ec..30c954efba587d69ff55df509339f03e7d5a476e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -@@ -49,6 +49,18 @@ public class CraftItem extends CraftEntity implements Item { - item.age = value; +@@ -66,6 +66,18 @@ public class CraftItem extends CraftEntity implements Item { + } } + // Paper Start diff --git a/patches/server/0140-Shoulder-Entities-Release-API.patch b/patches/server/0140-Shoulder-Entities-Release-API.patch index 146b442789..fbdd1baa23 100644 --- a/patches/server/0140-Shoulder-Entities-Release-API.patch +++ b/patches/server/0140-Shoulder-Entities-Release-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index b15fd75ccbe54ea9169593e02631d2952b0d239a..ca9731d4d963f2615721e3e1f7e1a5e13c94cf52 100644 +index fe715c81ea755f83fae0020e66f5e61304c51867..7fc4cd29bd487955886c81e6997d832a3185ec8e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1961,20 +1961,44 @@ public abstract class Player extends LivingEntity { +@@ -1971,20 +1971,44 @@ public abstract class Player extends LivingEntity { } diff --git a/patches/server/0148-Fix-this-stupid-bullshit.patch b/patches/server/0148-Fix-this-stupid-bullshit.patch index 0e67ea0838..e76bb5784f 100644 --- a/patches/server/0148-Fix-this-stupid-bullshit.patch +++ b/patches/server/0148-Fix-this-stupid-bullshit.patch @@ -31,12 +31,12 @@ index 9f23951f6b4c17c2a968fdcb3e8f9f65c296f34a..248b7ca7dbd75d4eab52fb937cace2b2 Bootstrap.isBootstrapped = true; if (Registry.REGISTRY.keySet().isEmpty()) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 1e49bff6e1ccd7cf8405785c73f56caada94e399..08f4ba483a6c61365310de6561b314e428a6b978 100644 +index a168fd9daeca1bc5f390558eebaa3ee1a264f3ca..2695f047a2e3c7acb67487c2b547cfbd6d50c29c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -234,10 +234,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -3); + deadline.add(Calendar.DAY_OF_YEAR, -21); if (buildDate.before(deadline.getTime())) { - System.err.println("*** Error, this build is outdated ***"); + // Paper start - This is some stupid bullshit diff --git a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch index 2034d8b6c7..ed1bc704af 100644 --- a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d62b05265 100644 +index 7fc4cd29bd487955886c81e6997d832a3185ec8e..de71d57b86d681efe0916dbee53be3ac826f9e2e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -31,6 +31,7 @@ import net.minecraft.network.chat.MutableComponent; @@ -17,7 +17,7 @@ index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; -@@ -1191,7 +1192,7 @@ public abstract class Player extends LivingEntity { +@@ -1201,7 +1202,7 @@ public abstract class Player extends LivingEntity { int i = b0 + EnchantmentHelper.getKnockbackBonus(this); if (this.isSprinting() && flag) { @@ -26,7 +26,7 @@ index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d ++i; flag1 = true; } -@@ -1266,7 +1267,7 @@ public abstract class Player extends LivingEntity { +@@ -1276,7 +1277,7 @@ public abstract class Player extends LivingEntity { } } @@ -35,7 +35,7 @@ index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d this.sweepAttack(); } -@@ -1294,15 +1295,15 @@ public abstract class Player extends LivingEntity { +@@ -1304,15 +1305,15 @@ public abstract class Player extends LivingEntity { } if (flag2) { @@ -54,7 +54,7 @@ index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d } } -@@ -1354,7 +1355,7 @@ public abstract class Player extends LivingEntity { +@@ -1364,7 +1365,7 @@ public abstract class Player extends LivingEntity { this.causeFoodExhaustion(level.spigotConfig.combatExhaustion, EntityExhaustionEvent.ExhaustionReason.ATTACK); // CraftBukkit - EntityExhaustionEvent // Spigot - Change to use configurable value } else { @@ -63,7 +63,7 @@ index ca9731d4d963f2615721e3e1f7e1a5e13c94cf52..653dbaafb9247653a6d8f549b57f0a5d if (flag4) { target.clearFire(); } -@@ -1801,6 +1802,14 @@ public abstract class Player extends LivingEntity { +@@ -1811,6 +1812,14 @@ public abstract class Player extends LivingEntity { public int getXpNeededForNextLevel() { return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); } diff --git a/patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch index 6805a47f52..7e608ec44f 100644 --- a/patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch @@ -51,10 +51,10 @@ index 32a2fbf4a11a84d5a55e02d3ba21e6f4430379c0..a69bbc11b9e003aed1630a6f5cdbca52 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index f967388fa64aa9d4b2a390c86a2c98ac0fdd4523..7ce727c168a4c0fe6d7cd0bbaa8a4121adc96a90 100644 +index 52fc42050d5df0882586c8f4bb4890ef1dbf979e..ba8f9ffed49bf377be8b37532d4f2bdcb8c44d82 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -322,6 +322,13 @@ public class CraftBlock implements Block { +@@ -329,6 +329,13 @@ public class CraftBlock implements Block { return CraftBlockStates.getBlockState(this); } diff --git a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch index 3fb8ab5bf8..d960b570a4 100644 --- a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch @@ -9,10 +9,10 @@ from triggering monster spawns on a server. Also a highly more effecient way to blanket block spawns in a world diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 50b2dc91f4926ebc4511e44e3aa3062eadc40ea0..610a1ce766d826f3fdca595dd4135f96ef9280d8 100644 +index f5cf71258732aa040443eb82e09ab28f130e4c79..81eb73e9fde37e3b196bd899ecd4d614897d1a98 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1127,7 +1127,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1114,7 +1114,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider chunkRange = (chunkRange > level.spigotConfig.viewDistance) ? (byte) level.spigotConfig.viewDistance : chunkRange; chunkRange = (chunkRange > 8) ? 8 : chunkRange; @@ -23,7 +23,7 @@ index 50b2dc91f4926ebc4511e44e3aa3062eadc40ea0..610a1ce766d826f3fdca595dd4135f96 // Spigot end long i = chunkcoordintpair.toLong(); -@@ -1144,6 +1146,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1131,6 +1133,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } entityplayer = (ServerPlayer) iterator.next(); diff --git a/patches/server/0173-Add-ArmorStand-Item-Meta.patch b/patches/server/0173-Add-ArmorStand-Item-Meta.patch index e468d79145..4c74f73a6f 100644 --- a/patches/server/0173-Add-ArmorStand-Item-Meta.patch +++ b/patches/server/0173-Add-ArmorStand-Item-Meta.patch @@ -13,7 +13,7 @@ starting point for future additions in this area. Fixes GH-559 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java -index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241c17e103d 100644 +index 1b8be8a7103e09065a405a22d427b9a747fc1a3e..2afedf24e485dd36e95988843c70af880d679b1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java @@ -9,9 +9,22 @@ import org.bukkit.configuration.serialization.DelegateDeserialization; @@ -54,11 +54,10 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 this.entityTag = armorStand.entityTag; } -@@ -30,11 +50,40 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -30,11 +50,39 @@ public class CraftMetaArmorStand extends CraftMetaItem { if (tag.contains(ENTITY_TAG.NBT)) { - this.entityTag = tag.getCompound(ENTITY_TAG.NBT); -+ + this.entityTag = tag.getCompound(ENTITY_TAG.NBT).copy(); + // Paper start + if (entityTag.contains(INVISIBLE.NBT)) { + invisible = entityTag.getBoolean(INVISIBLE.NBT); @@ -95,7 +94,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 } @Override -@@ -57,6 +106,31 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -57,6 +105,31 @@ public class CraftMetaArmorStand extends CraftMetaItem { void applyToItem(CompoundTag tag) { super.applyToItem(tag); @@ -127,7 +126,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 if (this.entityTag != null) { tag.put(ENTITY_TAG.NBT, entityTag); } -@@ -78,7 +152,7 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -78,7 +151,7 @@ public class CraftMetaArmorStand extends CraftMetaItem { } boolean isArmorStandEmpty() { @@ -136,7 +135,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 } @Override -@@ -89,7 +163,13 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -89,7 +162,13 @@ public class CraftMetaArmorStand extends CraftMetaItem { if (meta instanceof CraftMetaArmorStand) { CraftMetaArmorStand that = (CraftMetaArmorStand) meta; @@ -151,7 +150,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 } return true; } -@@ -104,9 +184,14 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -104,9 +183,14 @@ public class CraftMetaArmorStand extends CraftMetaItem { final int original; int hash = original = super.applyHash(); @@ -169,7 +168,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 return original != hash ? CraftMetaArmorStand.class.hashCode() ^ hash : hash; } -@@ -115,6 +200,28 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -115,6 +199,28 @@ public class CraftMetaArmorStand extends CraftMetaItem { Builder<String, Object> serialize(Builder<String, Object> builder) { super.serialize(builder); @@ -198,7 +197,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 return builder; } -@@ -128,4 +235,56 @@ public class CraftMetaArmorStand extends CraftMetaItem { +@@ -128,4 +234,56 @@ public class CraftMetaArmorStand extends CraftMetaItem { return clone; } @@ -256,7 +255,7 @@ index aee796567f11c8b93ac9ec0b8cb8f3a8412b23ce..39b98305632271e7375afe6c7001f241 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 51d37a8963a2f8f5381bf802e28e5dfcdcc27eaa..2244a3c61f4effd365ed5fc010ecd1a4858b53a8 100644 +index 3f34d3989df1fedf625dc2bd767794067d8a0c06..ba8a8865e72faa826cb5abff3c428b5a2634bb27 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -1445,6 +1445,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch index e0f1b8355f..a541c92642 100644 --- a/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch +++ b/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch @@ -21,10 +21,10 @@ index 2c92d3d924fa132937576c24da26e2a8f72f601e..207bef30c34e368066f4058dd28dd12f private void allChunksAreSlimeChunks() { allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 653dbaafb9247653a6d8f549b57f0a5d62b05265..8978f3b53ce478d8aa078ac7a16784985f4a2744 100644 +index de71d57b86d681efe0916dbee53be3ac826f9e2e..66b474304f659efcc7bd1181e3eaee70657013eb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1199,6 +1199,7 @@ public abstract class Player extends LivingEntity { +@@ -1209,6 +1209,7 @@ public abstract class Player extends LivingEntity { boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; diff --git a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch index 5011f668c0..a0fdb8ec3d 100644 --- a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch @@ -190,7 +190,7 @@ index 67455a5ba75c9b816213e44d6872c5ddf8e27e98..23efad80934930beadf15e65781551d4 public ClientboundStatusResponsePacket(ServerStatus metadata) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7adbe2f133e74d566b31098d5c805f5000ee3310..61edb76381a83f36d0ade1c35e9999eaad58abd2 100644 +index f846d9163ca97901ac1508ef8a476dabbf6dc454..4da9491425649b2b930b2304c4aa6692540ff4cb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2,6 +2,9 @@ package net.minecraft.server; @@ -203,7 +203,7 @@ index 7adbe2f133e74d566b31098d5c805f5000ee3310..61edb76381a83f36d0ade1c35e9999ea import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1353,7 +1356,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1350,7 +1353,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.lastServerStatus = i; this.status.setPlayers(new ServerStatus.Players(this.getMaxPlayers(), this.getPlayerCount())); if (!this.hidesOnlinePlayers()) { diff --git a/patches/server/0188-Configurable-sprint-interruption-on-attack.patch b/patches/server/0188-Configurable-sprint-interruption-on-attack.patch index 8a66457998..27f3182bec 100644 --- a/patches/server/0188-Configurable-sprint-interruption-on-attack.patch +++ b/patches/server/0188-Configurable-sprint-interruption-on-attack.patch @@ -20,10 +20,10 @@ index 207bef30c34e368066f4058dd28dd12fdbac5d34..ef9f6712046a22a8d0dfcf95d8e2d124 + } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 8978f3b53ce478d8aa078ac7a16784985f4a2744..f1ee710de043ad8b71c8c385a24ab4b7167f45a3 100644 +index 66b474304f659efcc7bd1181e3eaee70657013eb..7b81d77649997aeb97cd819f380bdfe848702164 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1248,7 +1248,11 @@ public abstract class Player extends LivingEntity { +@@ -1258,7 +1258,11 @@ public abstract class Player extends LivingEntity { } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); diff --git a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch index e3f03cae84..54e79a491b 100644 --- a/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0193-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,10 +10,10 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c0ec21a8110ed54489361cfae1e1112fe448150a..7c64fbdaa8724fafd0bba6fcab581760ec0e0b0d 100644 +index 9769977c9db77aa52b99b793ca4f5d0c7b54528f..d8b0f6ae1604a158ef1be02701c8c605192e7fe1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1386,12 +1386,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1390,12 +1390,17 @@ public class ServerLevel extends Level implements WorldGenLevel { } public <T extends ParticleOptions> int sendParticles(ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { diff --git a/patches/server/0208-PlayerReadyArrowEvent.patch b/patches/server/0208-PlayerReadyArrowEvent.patch index 2d3e016e1a..164b5f9475 100644 --- a/patches/server/0208-PlayerReadyArrowEvent.patch +++ b/patches/server/0208-PlayerReadyArrowEvent.patch @@ -7,10 +7,10 @@ Called when a player is firing a bow and the server is choosing an arrow to use. Plugins can skip selection of certain arrows and control which is used. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f1ee710de043ad8b71c8c385a24ab4b7167f45a3..f0da841cf8e37884c40397bb4032eab35e9eec4f 100644 +index 7b81d77649997aeb97cd819f380bdfe848702164..61fb16c1a2a70d96b3d20708321d1984f7592494 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2194,6 +2194,17 @@ public abstract class Player extends LivingEntity { +@@ -2204,6 +2204,17 @@ public abstract class Player extends LivingEntity { return ImmutableList.of(Pose.STANDING, Pose.CROUCHING, Pose.SWIMMING); } @@ -28,7 +28,7 @@ index f1ee710de043ad8b71c8c385a24ab4b7167f45a3..f0da841cf8e37884c40397bb4032eab3 @Override public ItemStack getProjectile(ItemStack stack) { if (!(stack.getItem() instanceof ProjectileWeaponItem)) { -@@ -2210,7 +2221,7 @@ public abstract class Player extends LivingEntity { +@@ -2220,7 +2231,7 @@ public abstract class Player extends LivingEntity { for (int i = 0; i < this.inventory.getContainerSize(); ++i) { ItemStack itemstack2 = this.inventory.getItem(i); diff --git a/patches/server/0209-Implement-EntityKnockbackByEntityEvent.patch b/patches/server/0209-Implement-EntityKnockbackByEntityEvent.patch index fb2d62ff7e..e75691b680 100644 --- a/patches/server/0209-Implement-EntityKnockbackByEntityEvent.patch +++ b/patches/server/0209-Implement-EntityKnockbackByEntityEvent.patch @@ -82,10 +82,10 @@ index f6fd39823f04f8071c616d40a838b01e7159c5a1..e1cdf3ce38404d3f40be59e4cd3ad2b9 serverLevel.playSound((Player)null, pathfinderMob, this.getImpactSound.apply(pathfinderMob), SoundSource.HOSTILE, 1.0F, 1.0F); } else { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f0da841cf8e37884c40397bb4032eab35e9eec4f..c522ecc74d2b204986716bccfa555cb54e8bd062 100644 +index 61fb16c1a2a70d96b3d20708321d1984f7592494..1a264c6f18235580bd1fba4e5243554b56503253 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1242,7 +1242,7 @@ public abstract class Player extends LivingEntity { +@@ -1252,7 +1252,7 @@ public abstract class Player extends LivingEntity { if (flag5) { if (i > 0) { if (target instanceof LivingEntity) { @@ -94,7 +94,7 @@ index f0da841cf8e37884c40397bb4032eab35e9eec4f..c522ecc74d2b204986716bccfa555cb5 } else { target.push((double) (-Mth.sin(this.getYRot() * 0.017453292F) * (float) i * 0.5F), 0.1D, (double) (Mth.cos(this.getYRot() * 0.017453292F) * (float) i * 0.5F)); } -@@ -1266,7 +1266,7 @@ public abstract class Player extends LivingEntity { +@@ -1276,7 +1276,7 @@ public abstract class Player extends LivingEntity { if (entityliving != this && entityliving != target && !this.isAlliedTo((Entity) entityliving) && (!(entityliving instanceof ArmorStand) || !((ArmorStand) entityliving).isMarker()) && this.distanceToSqr((Entity) entityliving) < 9.0D) { // CraftBukkit start - Only apply knockback if the damage hits if (entityliving.hurt(DamageSource.playerAttack(this).sweep(), f4)) { diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch index 33bcecc69c..5e84e2fd40 100644 --- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch @@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7c64fbdaa8724fafd0bba6fcab581760ec0e0b0d..d4a09cbaac906c766c55577551e539c9840d8d03 100644 +index d8b0f6ae1604a158ef1be02701c8c605192e7fe1..4d69b6b35f04c904ee9ca9c896baaa9892f8ef9c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1133,7 +1133,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1137,7 +1137,7 @@ public class ServerLevel extends Level implements WorldGenLevel { for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.Container) tileentity).getViewers())) { @@ -19,7 +19,7 @@ index 7c64fbdaa8724fafd0bba6fcab581760ec0e0b0d..d4a09cbaac906c766c55577551e539c9 } } } -@@ -2070,7 +2070,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2074,7 +2074,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { @@ -118,7 +118,7 @@ index a1ca0c0c08f6793ce3440733f802a40f99890d85..b2034239e158ce0388c9b09a52d45727 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, com.destroystokyo.paper.PaperConfig.useDisplayNameInQuit ? entityplayer.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(entityplayer.getScoreboardName()))); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index c522ecc74d2b204986716bccfa555cb54e8bd062..2dcbeaed2e84675e95cde9e831b9d552b2e0b32f 100644 +index 1a264c6f18235580bd1fba4e5243554b56503253..64a887de47b26d2dfa27b0ed3c4d8c0e00db163b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -263,7 +263,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 156e358d93..58f70dd2ea 100644 --- a/patches/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0238-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -8,10 +8,10 @@ Add -Ddebug.entities=true to your JVM flags to gain more information 1.17: Needs to be reworked for new entity storage system diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 610a1ce766d826f3fdca595dd4135f96ef9280d8..b64f42b9ca1da5b6d5c290c157e510797e524117 100644 +index 81eb73e9fde37e3b196bd899ecd4d614897d1a98..4206e1c96cdc7b7e324331681215f735688dd558 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1366,6 +1366,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1353,6 +1353,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } else { ChunkMap.TrackedEntity playerchunkmap_entitytracker = new ChunkMap.TrackedEntity(entity, i, j, entitytypes.trackDeltas()); @@ -19,7 +19,7 @@ index 610a1ce766d826f3fdca595dd4135f96ef9280d8..b64f42b9ca1da5b6d5c290c157e51079 this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); playerchunkmap_entitytracker.updatePlayers(this.level.players()); if (entity instanceof ServerPlayer) { -@@ -1408,7 +1409,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1395,7 +1396,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (playerchunkmap_entitytracker1 != null) { playerchunkmap_entitytracker1.broadcastRemoved(); } @@ -29,7 +29,7 @@ index 610a1ce766d826f3fdca595dd4135f96ef9280d8..b64f42b9ca1da5b6d5c290c157e51079 protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d4a09cbaac906c766c55577551e539c9840d8d03..abff89e99d9f62a82c65a397016ab956f9ef42aa 100644 +index 4d69b6b35f04c904ee9ca9c896baaa9892f8ef9c..5f58aa648a5f0c3e61f6d9d5853583ca003e3620 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -209,6 +209,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -42,7 +42,7 @@ index d4a09cbaac906c766c55577551e539c9840d8d03..abff89e99d9f62a82c65a397016ab956 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); -@@ -1096,7 +1099,28 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1099,7 +1102,28 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch index 7a3c2108b2..cd76b55687 100644 --- a/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch @@ -36,10 +36,10 @@ index d654affc5565622cfabde9b838aa2b40e4e122bb..23ddaffadfafc3b23a09fcba2bf708f5 public static int tabSpamLimit = 500; private static void tabSpamLimiters() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 61edb76381a83f36d0ade1c35e9999eaad58abd2..432f1d6e5989f861e762a8b919a0048b58e77ce7 100644 +index 4da9491425649b2b930b2304c4aa6692540ff4cb..d6e6bc73f9bbcae99126876a9abdd3468d6c2a7f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1098,6 +1098,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1096,6 +1096,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.updateStatusIcon(this.status); // Spigot start diff --git a/patches/server/0253-Asynchronous-chunk-IO-and-loading.patch b/patches/server/0253-Asynchronous-chunk-IO-and-loading.patch index d1864752c5..0ac5e6d6c0 100644 --- a/patches/server/0253-Asynchronous-chunk-IO-and-loading.patch +++ b/patches/server/0253-Asynchronous-chunk-IO-and-loading.patch @@ -2318,10 +2318,10 @@ index 8f5784ed4df46f3c7d4c6b4ff76ad839d436be1f..6a006f22d33491be4413fb64649ba9f6 DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, config.get(), ops.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), minecraftsessionservice, gameprofilerepository, usercache, LoggerChunkProgressListener::new); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 432f1d6e5989f861e762a8b919a0048b58e77ce7..f347842c224ee565d45f5120b2e3a359a9cade65 100644 +index d6e6bc73f9bbcae99126876a9abdd3468d6c2a7f..785df5ec8a5a4e307149edd5ccf7db75f7edb1fc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -998,7 +998,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -996,7 +996,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.getProfileCache().save(false); // Paper } // Spigot end @@ -2344,7 +2344,7 @@ index 2b936c67265f3c672d3b623e6aedd81eff0e4358..d930162608e1b765ef222eb0fe61d010 ChunkHolder.FullChunkStatus playerchunk_state1 = ChunkHolder.getFullChunkStatus(this.ticketLevel); // 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 b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895a50e8083 100644 +index 4206e1c96cdc7b7e324331681215f735688dd558..04b287c91acef5b9f0b73edb71fbefbb1f08eee6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -502,6 +502,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -2381,31 +2381,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 } gameprofilerfiller.pop(); -@@ -562,7 +568,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - return this.lightEngine.hasLightWork() || !this.pendingUnloads.isEmpty() || !this.updatingChunkMap.isEmpty() || this.poiManager.hasWork() || !this.toDrop.isEmpty() || !this.unloadQueue.isEmpty() || this.queueSorter.hasWork() || this.distanceManager.hasTickets(); - } - -- private static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.96; // Spigot -+ private static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.90; // Spigot // Paper - unload more - - private void processUnloads(BooleanSupplier shouldKeepTicking) { - LongIterator longiterator = this.toDrop.iterator(); -@@ -579,12 +585,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - if (playerchunk != null) { - this.pendingUnloads.put(j, playerchunk); - this.modified = true; -+ this.scheduleUnload(j, playerchunk); // Paper - Move up - don't leak chunks - // Spigot start - if (!shouldKeepTicking.getAsBoolean() && this.toDrop.size() <= targetSize && activityAccountant.activityTimeIsExhausted()) { - break; - } - // Spigot end -- this.scheduleUnload(j, playerchunk); -+ //this.scheduleUnload(j, playerchunk); // Paper - move up because spigot did a dumb - } - } - activityAccountant.endActivity(); // Spigot -@@ -628,7 +635,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -615,7 +621,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ((LevelChunk) ichunkaccess).setLoaded(false); } @@ -2423,7 +2399,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 if (this.entitiesInLevel.remove(pos) && ichunkaccess instanceof LevelChunk) { LevelChunk chunk = (LevelChunk) ichunkaccess; -@@ -694,20 +710,21 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -681,20 +696,21 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } private CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> scheduleChunkLoad(ChunkPos pos) { @@ -2456,7 +2432,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 this.markPosition(pos, protochunk.getStatus().getChunkType()); return Either.left(protochunk); } -@@ -729,7 +746,32 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -716,7 +732,32 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.markPositionReplaceable(pos); return Either.left(new ProtoChunk(pos, UpgradeData.EMPTY, this.level, this.level.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), (BlendingData) null)); @@ -2490,7 +2466,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 } private void markPositionReplaceable(ChunkPos pos) { -@@ -944,7 +986,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -931,7 +972,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -2539,7 +2515,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 this.poiManager.flush(chunk.getPos()); if (!chunk.isUnsaved()) { return false; -@@ -956,7 +1039,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -943,7 +1025,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkStatus chunkstatus = chunk.getStatus(); if (chunkstatus.getChunkType() != ChunkStatus.ChunkType.LEVELCHUNK) { @@ -2548,7 +2524,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 return false; } -@@ -966,9 +1049,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -953,9 +1035,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } this.level.getProfiler().incrementCounter("chunkSave"); @@ -2566,7 +2542,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 this.markPosition(chunkcoordintpair, chunkstatus.getChunkType()); return true; } catch (Exception exception) { -@@ -977,6 +1066,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -964,6 +1052,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return false; } } @@ -2574,7 +2550,7 @@ index b64f42b9ca1da5b6d5c290c157e510797e524117..6a7e6cbc188619b0239e97237069c895 } private boolean isExistingChunkFull(ChunkPos pos) { -@@ -1110,6 +1200,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1097,6 +1186,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } diff --git a/patches/server/0259-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0259-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch index 62b297eaff..7273f35ce1 100644 --- a/patches/server/0259-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch +++ b/patches/server/0259-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 2244a3c61f4effd365ed5fc010ecd1a4858b53a8..4b48f4e1b2d69a18be0e9d83d52bc4f58b1f5bd9 100644 +index ba8a8865e72faa826cb5abff3c428b5a2634bb27..200d1cd53b5af8d7368b6c34b1cfb64463f3e782 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -83,6 +83,12 @@ import org.bukkit.persistence.PersistentDataContainer; @@ -60,7 +60,7 @@ index 2244a3c61f4effd365ed5fc010ecd1a4858b53a8..4b48f4e1b2d69a18be0e9d83d52bc4f5 this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); @@ -381,6 +404,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - this.persistentDataContainer.put(key, compound.get(key)); + this.persistentDataContainer.put(key, compound.get(key).copy()); } } + // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values diff --git a/patches/server/0280-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0280-Improve-Server-Thread-Pool-and-Thread-Priorities.patch index e83e2ecb38..8ec3b02a9c 100644 --- a/patches/server/0280-Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/patches/server/0280-Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -58,10 +58,10 @@ index 90d22b75fd33d8355e59b6bab79757c5b436c9d7..a8772417eb54e1a52c490b75b470a502 return executorService; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f347842c224ee565d45f5120b2e3a359a9cade65..e2150c3a7cb7898adda6e53d9aeed8698d819a30 100644 +index 785df5ec8a5a4e307149edd5ccf7db75f7edb1fc..de10fc8a9d08dbab245292a4291590b54b0aa609 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -320,6 +320,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -318,6 +318,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa S s0 = serverFactory.apply(thread); // CraftBukkit - decompile error atomicreference.set(s0); diff --git a/patches/server/0281-Optimize-World-Time-Updates.patch b/patches/server/0281-Optimize-World-Time-Updates.patch index 1a47a58905..f74adbcae1 100644 --- a/patches/server/0281-Optimize-World-Time-Updates.patch +++ b/patches/server/0281-Optimize-World-Time-Updates.patch @@ -8,10 +8,10 @@ the updates per world, so that we can re-use the same packet object for every player unless they have per-player time enabled. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e2150c3a7cb7898adda6e53d9aeed8698d819a30..e8d88e47247afd3f0b4fee61260b0b8baa007d9e 100644 +index de10fc8a9d08dbab245292a4291590b54b0aa609..a241aa163a957f3c56e7764acf46aa8490758d41 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1423,12 +1423,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1419,12 +1419,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper // Send time updates to everyone, it will get the right time from the world the player is in. diff --git a/patches/server/0289-force-entity-dismount-during-teleportation.patch b/patches/server/0289-force-entity-dismount-during-teleportation.patch index 860e145bcd..a4411ebc94 100644 --- a/patches/server/0289-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0289-force-entity-dismount-during-teleportation.patch @@ -114,10 +114,10 @@ index e5c5bdc83804f335d7163cfefba79b57df97310b..853ce6536557b64de134a098d7ed3dde this.dismountVehicle(entity); } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2dcbeaed2e84675e95cde9e831b9d552b2e0b32f..a55ee0868fbf85456749ecede30cea7e0c481bb3 100644 +index 64a887de47b26d2dfa27b0ed3c4d8c0e00db163b..8a05690556f8f979d268cd7c6b5c14343ad33579 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1106,7 +1106,13 @@ public abstract class Player extends LivingEntity { +@@ -1116,7 +1116,13 @@ public abstract class Player extends LivingEntity { @Override public void removeVehicle() { diff --git a/patches/server/0308-Entity-getEntitySpawnReason.patch b/patches/server/0308-Entity-getEntitySpawnReason.patch index 67405e4977..5f97132644 100644 --- a/patches/server/0308-Entity-getEntitySpawnReason.patch +++ b/patches/server/0308-Entity-getEntitySpawnReason.patch @@ -10,10 +10,10 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d997ab37e49b43f692b30536ffb4d2563eab30f1..ebaa49c99eb797dfefe401731884f70a841904ad 100644 +index 98094546bb2867b20f89a1bc0efe911cdb6c9b79..46e16685dfe3b7721692f96d7d7e0af0a1fb9c22 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1188,6 +1188,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1191,6 +1191,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return true; } // Paper end diff --git a/patches/server/0313-Server-Tick-Events.patch b/patches/server/0313-Server-Tick-Events.patch index 38d655d6f4..20e65776b4 100644 --- a/patches/server/0313-Server-Tick-Events.patch +++ b/patches/server/0313-Server-Tick-Events.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Server Tick Events Fires event at start and end of a server tick diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e8d88e47247afd3f0b4fee61260b0b8baa007d9e..9be13843b17fff55cac404bd372581f7fadee4ac 100644 +index a241aa163a957f3c56e7764acf46aa8490758d41..cdf6394401882cb0702be6ed962e9c0683d3f67a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1351,6 +1351,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1348,6 +1348,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa }); isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); // Paper end @@ -17,7 +17,7 @@ index e8d88e47247afd3f0b4fee61260b0b8baa007d9e..9be13843b17fff55cac404bd372581f7 ++this.tickCount; this.tickChildren(shouldKeepTicking); -@@ -1389,6 +1390,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1386,6 +1387,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.runAllTasks(); } // Paper end diff --git a/patches/server/0320-Fix-CraftServer-isPrimaryThread-and-MinecraftServer-.patch b/patches/server/0320-Fix-CraftServer-isPrimaryThread-and-MinecraftServer-.patch index 876370429d..7c77472742 100644 --- a/patches/server/0320-Fix-CraftServer-isPrimaryThread-and-MinecraftServer-.patch +++ b/patches/server/0320-Fix-CraftServer-isPrimaryThread-and-MinecraftServer-.patch @@ -16,10 +16,10 @@ handling that should have been handled synchronously will be handled synchronously when the server gets shut down. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9be13843b17fff55cac404bd372581f7fadee4ac..6cb94b3b188a43535658dedf00b74236166665dc 100644 +index cdf6394401882cb0702be6ed962e9c0683d3f67a..5ce1fab4d1e68ad83bd46ae6269446b6f913fa07 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2337,7 +2337,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2333,7 +2333,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start @Override public boolean isSameThread() { diff --git a/patches/server/0322-Implement-CraftBlockSoundGroup.patch b/patches/server/0322-Implement-CraftBlockSoundGroup.patch index ee70b2532f..14bf8faccc 100644 --- a/patches/server/0322-Implement-CraftBlockSoundGroup.patch +++ b/patches/server/0322-Implement-CraftBlockSoundGroup.patch @@ -49,10 +49,10 @@ index 0000000000000000000000000000000000000000..9a516520d975f52169e346adc4ec6d9d + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 7ce727c168a4c0fe6d7cd0bbaa8a4121adc96a90..7f1d4015ba795db7404669d931bd44060116bcc9 100644 +index ba8f9ffed49bf377be8b37532d4f2bdcb8c44d82..250185af0abcfea380cc00e670c0076f7fe87446 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -607,4 +607,11 @@ public class CraftBlock implements Block { +@@ -644,4 +644,11 @@ public class CraftBlock implements Block { return iblockdata.canSurvive(world, this.position); } diff --git a/patches/server/0323-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0323-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 5558a4efa3..020061b666 100644 --- a/patches/server/0323-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0323-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -23,10 +23,10 @@ index a4b20f8616b6fe2046e7a5f00306565b59cd570d..47c8ea0e871959c01371f591c92d7955 config.addDefault("world-settings.default." + path, def); return config.getBoolean("world-settings." + worldName + "." + path, config.getBoolean("world-settings.default." + path)); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6cb94b3b188a43535658dedf00b74236166665dc..e75ca992a5fc0cc16b5d365287f63215c124759b 100644 +index 5ce1fab4d1e68ad83bd46ae6269446b6f913fa07..25fb2789bcec7cf864b3a401610e765daa1abe22 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -760,31 +760,34 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -758,31 +758,34 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start public void prepareLevels(ChunkProgressListener worldloadlistener, ServerLevel worldserver) { @@ -71,7 +71,7 @@ index 6cb94b3b188a43535658dedf00b74236166665dc..e75ca992a5fc0cc16b5d365287f63215 if (true) { ServerLevel worldserver1 = worldserver; -@@ -807,7 +810,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -805,7 +808,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // this.nextTickTime = SystemUtils.getMillis() + 10L; this.executeModerately(); // CraftBukkit end @@ -81,7 +81,7 @@ index 6cb94b3b188a43535658dedf00b74236166665dc..e75ca992a5fc0cc16b5d365287f63215 // CraftBukkit start // this.updateMobSpawningFlags(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ebaa49c99eb797dfefe401731884f70a841904ad..704d5fd4038cd6913e0804b66da920cd661e93ee 100644 +index 46e16685dfe3b7721692f96d7d7e0af0a1fb9c22..3c89e7ec876cc11437e1e035d1f43ea32426eec7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -63,6 +63,7 @@ import net.minecraft.network.protocol.game.ClientboundSoundEntityPacket; @@ -92,7 +92,7 @@ index ebaa49c99eb797dfefe401731884f70a841904ad..704d5fd4038cd6913e0804b66da920cd import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerScoreboard; import net.minecraft.server.level.progress.ChunkProgressListener; -@@ -1614,12 +1615,84 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1618,12 +1619,84 @@ public class ServerLevel extends Level implements WorldGenLevel { return ((MapIndex) this.getServer().overworld().getDataStorage().computeIfAbsent(MapIndex::load, MapIndex::new, "idcounts")).getFreeAuxValueForMap(); } diff --git a/patches/server/0328-Fix-World-isChunkGenerated-calls.patch b/patches/server/0328-Fix-World-isChunkGenerated-calls.patch index 3d88741861..b2948523d7 100644 --- a/patches/server/0328-Fix-World-isChunkGenerated-calls.patch +++ b/patches/server/0328-Fix-World-isChunkGenerated-calls.patch @@ -8,7 +8,7 @@ This patch also adds a chunk status cache on region files (note that its only purpose is to cache the status on DISK) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6a7e6cbc188619b0239e97237069c895a50e8083..5ccf921bb0ed5f1d4330fec3b3fdfc654d8c5160 100644 +index 04b287c91acef5b9f0b73edb71fbefbb1f08eee6..ebb2b7323b4e11749b7b905cc76863a841a74784 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -90,6 +90,7 @@ import net.minecraft.world.level.chunk.ProtoChunk; @@ -19,7 +19,7 @@ index 6a7e6cbc188619b0239e97237069c895a50e8083..5ccf921bb0ed5f1d4330fec3b3fdfc65 import net.minecraft.world.level.entity.ChunkStatusUpdateListener; import net.minecraft.world.level.levelgen.blending.BlendingData; import net.minecraft.world.level.levelgen.structure.StructureStart; -@@ -1232,10 +1233,59 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1218,10 +1219,59 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Nullable public CompoundTag readChunk(ChunkPos pos) throws IOException { CompoundTag nbttagcompound = this.read(pos); diff --git a/patches/server/0341-Duplicate-UUID-Resolve-Option.patch b/patches/server/0341-Duplicate-UUID-Resolve-Option.patch index 9f63a884e0..9960332821 100644 --- a/patches/server/0341-Duplicate-UUID-Resolve-Option.patch +++ b/patches/server/0341-Duplicate-UUID-Resolve-Option.patch @@ -83,7 +83,7 @@ index 11c5c7c703cbf631097056dd00a18a0236fac806..2f060bc6b108df0c4fb07758005a911d private void countAllMobsForSpawning() { countAllMobsForSpawning = getBoolean("count-all-mobs-for-spawning", false); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5ccf921bb0ed5f1d4330fec3b3fdfc654d8c5160..e3c9b1f33e146918dcdf4f3cd76fdf324acedda1 100644 +index ebb2b7323b4e11749b7b905cc76863a841a74784..5685ffe47fd68230cf30ca9f0e49e471b86eab00 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,6 +1,7 @@ @@ -112,7 +112,7 @@ index 5ccf921bb0ed5f1d4330fec3b3fdfc654d8c5160..e3c9b1f33e146918dcdf4f3cd76fdf32 import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; import java.util.concurrent.CompletionStage; -@@ -859,6 +864,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -845,6 +850,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.discard(); needsRemoval = true; } @@ -120,7 +120,7 @@ index 5ccf921bb0ed5f1d4330fec3b3fdfc654d8c5160..e3c9b1f33e146918dcdf4f3cd76fdf32 return !needsRemoval; })); // CraftBukkit end -@@ -909,6 +915,43 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -895,6 +901,43 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } diff --git a/patches/server/0342-Optimize-Hoppers.patch b/patches/server/0342-Optimize-Hoppers.patch index 66df27dd80..5be48c4437 100644 --- a/patches/server/0342-Optimize-Hoppers.patch +++ b/patches/server/0342-Optimize-Hoppers.patch @@ -35,10 +35,10 @@ index 2f060bc6b108df0c4fb07758005a911d92c09057..73d82e20d7353120a36815dc94be8c22 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e75ca992a5fc0cc16b5d365287f63215c124759b..8e49a648671b4d4c0d07af35ba6558b63bbf28ee 100644 +index 25fb2789bcec7cf864b3a401610e765daa1abe22..bec5328f1ab05faab83584f75d54a5a6c830f9b7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1455,6 +1455,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1451,6 +1451,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/patches/server/0352-Add-effect-to-block-break-naturally.patch b/patches/server/0352-Add-effect-to-block-break-naturally.patch index f05e2e493f..c254d6a8ee 100644 --- a/patches/server/0352-Add-effect-to-block-break-naturally.patch +++ b/patches/server/0352-Add-effect-to-block-break-naturally.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add effect to block break naturally diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 7f1d4015ba795db7404669d931bd44060116bcc9..7eb8f37f493a83058a6e96f2e134a204b3304015 100644 +index 250185af0abcfea380cc00e670c0076f7fe87446..945553bfe218a16ebe4abbb11e0723b6d8fc4910 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -468,6 +468,18 @@ public class CraftBlock implements Block { +@@ -475,6 +475,18 @@ public class CraftBlock implements Block { @Override public boolean breakNaturally(ItemStack item) { @@ -27,7 +27,7 @@ index 7f1d4015ba795db7404669d931bd44060116bcc9..7eb8f37f493a83058a6e96f2e134a204 // Order matters here, need to drop before setting to air so skulls can get their data net.minecraft.world.level.block.state.BlockState iblockdata = this.getNMS(); net.minecraft.world.level.block.Block block = iblockdata.getBlock(); -@@ -477,6 +489,7 @@ public class CraftBlock implements Block { +@@ -484,6 +496,7 @@ public class CraftBlock implements Block { // Modelled off EntityHuman#hasBlock if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) { net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), position, this.world.getBlockEntity(position), null, nmsItem); diff --git a/patches/server/0354-Increase-Light-Queue-Size.patch b/patches/server/0354-Increase-Light-Queue-Size.patch index fa65647a58..0a9c51833b 100644 --- a/patches/server/0354-Increase-Light-Queue-Size.patch +++ b/patches/server/0354-Increase-Light-Queue-Size.patch @@ -29,10 +29,10 @@ index 73d82e20d7353120a36815dc94be8c2253b2602d..6b88162d286bdabda0449d52b87457ac } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8e49a648671b4d4c0d07af35ba6558b63bbf28ee..e621d683df00a7d095cc72f74357224208b0dbca 100644 +index bec5328f1ab05faab83584f75d54a5a6c830f9b7..287014feb99c67083a959f2c09213d49ad5f743d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -811,7 +811,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -809,7 +809,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.executeModerately(); // CraftBukkit end if (worldserver.getWorld().getKeepSpawnInMemory()) worldloadlistener.stop(); // Paper diff --git a/patches/server/0356-Anti-Xray.patch b/patches/server/0356-Anti-Xray.patch index 5dd064947f..ad8b66e124 100644 --- a/patches/server/0356-Anti-Xray.patch +++ b/patches/server/0356-Anti-Xray.patch @@ -1127,10 +1127,10 @@ index 7825d6f0fdcfda6212cff8033ec55fb7db236154..2072aa8710f6e285f7c8f76c63b7bcf8 public ClientboundLevelChunkWithLightPacket(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 655a2f2fd64cc3ce1c972f3b05df8136f31a603a..ab976352bb0b7a7aa9ffaf1f8bffeadb31abcc1d 100644 +index 071d821094ce1c13ad5755a1ba76d9a8f27bba97..0fad7ad13be138cbc7c4b09f457adbde570cf6fa 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -980,7 +980,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -966,7 +966,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider completablefuture1.thenAcceptAsync((either) -> { either.ifLeft((chunk) -> { this.tickingGenerated.getAndIncrement(); @@ -1139,7 +1139,7 @@ index 655a2f2fd64cc3ce1c972f3b05df8136f31a603a..ab976352bb0b7a7aa9ffaf1f8bffeadb this.getPlayers(chunkcoordintpair, false).forEach((entityplayer) -> { this.playerLoadedChunk(entityplayer, mutableobject, chunk); -@@ -1159,7 +1159,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1145,7 +1145,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (objectiterator.hasNext()) { ChunkHolder playerchunk = (ChunkHolder) objectiterator.next(); ChunkPos chunkcoordintpair = playerchunk.getPos(); @@ -1148,7 +1148,7 @@ index 655a2f2fd64cc3ce1c972f3b05df8136f31a603a..ab976352bb0b7a7aa9ffaf1f8bffeadb this.getPlayers(chunkcoordintpair, false).forEach((entityplayer) -> { SectionPos sectionposition = entityplayer.getLastSectionPos(); -@@ -1173,7 +1173,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1159,7 +1159,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } @@ -1157,7 +1157,7 @@ index 655a2f2fd64cc3ce1c972f3b05df8136f31a603a..ab976352bb0b7a7aa9ffaf1f8bffeadb if (player.level == this.level) { if (newWithinViewDistance && !oldWithinViewDistance) { ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos.toLong()); -@@ -1693,12 +1693,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1679,12 +1679,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } diff --git a/patches/server/0358-Tracking-Range-Improvements.patch b/patches/server/0358-Tracking-Range-Improvements.patch index 8d05c0e50d..2a36982dc4 100644 --- a/patches/server/0358-Tracking-Range-Improvements.patch +++ b/patches/server/0358-Tracking-Range-Improvements.patch @@ -8,10 +8,10 @@ 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 ab976352bb0b7a7aa9ffaf1f8bffeadb31abcc1d..6dae228c0d0460d74ed49aee5a38dfd7b145d891 100644 +index 0fad7ad13be138cbc7c4b09f457adbde570cf6fa..f1bf847a498023ce8729315c6ec68f1d16cab822 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1881,6 +1881,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1867,6 +1867,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); int j = entity.getType().clientTrackingRange() * 16; diff --git a/patches/server/0376-Add-tick-times-API-and-mspt-command.patch b/patches/server/0376-Add-tick-times-API-and-mspt-command.patch index 7bf2ffe7f4..19bf56aa04 100644 --- a/patches/server/0376-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0376-Add-tick-times-API-and-mspt-command.patch @@ -87,10 +87,10 @@ index 83bf428abd3be89e34cf42638bd1357a708ea0e3..fda5a623ec6bba0ed4d230415f7b9779 version = getInt("config-version", 25); set("config-version", 25); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e621d683df00a7d095cc72f74357224208b0dbca..1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e 100644 +index 287014feb99c67083a959f2c09213d49ad5f743d..2e08855085a547151140bcb05dce9bc469d81ff6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -245,6 +245,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -244,6 +244,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa private String motd; private int playerIdleTimeout; public final long[] tickTimes; @@ -102,7 +102,7 @@ index e621d683df00a7d095cc72f74357224208b0dbca..1ab4e3a1d2e3a576ea5f05c2d92a1aae @Nullable private KeyPair keyPair; @Nullable -@@ -1404,6 +1409,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1401,6 +1406,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.averageTickTime = this.averageTickTime * 0.8F + (float) l / 1000000.0F * 0.19999999F; long i1 = Util.getNanos(); @@ -115,7 +115,7 @@ index e621d683df00a7d095cc72f74357224208b0dbca..1ab4e3a1d2e3a576ea5f05c2d92a1aae this.frameTimer.logFrameDuration(i1 - i); this.profiler.pop(); org.spigotmc.WatchdogThread.tick(); // Spigot -@@ -2541,4 +2552,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2537,4 +2548,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa }; } } diff --git a/patches/server/0382-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0382-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index e74cc3c4e0..c2ca16c8a1 100644 --- a/patches/server/0382-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0382-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 c7114fc8045feab770dde30669d2711313bff189..04596feb8667e3abbfa1c7343b46cacaf88ecce8 100644 +index a0ffdeaad5c375539857d6a5a94832216d09f024..5346109670bedf88f13b4eff47c5292170fb47cc 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1614,6 +1614,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1600,6 +1600,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot @@ -26,10 +26,10 @@ index c7114fc8045feab770dde30669d2711313bff189..04596feb8667e3abbfa1c7343b46caca 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 2119a0cb18edffb88150451446f488b763db977c..01fca7eb1b12948d475f794e5a319ada72f0eb38 100644 +index e0e6915320264da3fefb3f449f27efb8477e1e63..5c5f9cf3539aeba4911d27111b0580d99a61f577 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2200,7 +2200,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2204,7 +2204,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -38,7 +38,7 @@ index 2119a0cb18edffb88150451446f488b763db977c..01fca7eb1b12948d475f794e5a319ada if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2233,6 +2233,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2237,6 +2237,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } entity.valid = true; // CraftBukkit diff --git a/patches/server/0384-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0384-Dead-Player-s-shouldn-t-be-able-to-move.patch index f2b52414bc..b79b2b17bc 100644 --- a/patches/server/0384-Dead-Player-s-shouldn-t-be-able-to-move.patch +++ b/patches/server/0384-Dead-Player-s-shouldn-t-be-able-to-move.patch @@ -7,10 +7,10 @@ This fixes a lot of game state issues where packets were delayed for processing due to 1.15's new queue but processed while dead. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index a55ee0868fbf85456749ecede30cea7e0c481bb3..4e604e902145ea91811e8e7769952024fcbd1a3d 100644 +index 8a05690556f8f979d268cd7c6b5c14343ad33579..49648e258c6e72ac921f69114e1e36a926749d46 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1118,7 +1118,7 @@ public abstract class Player extends LivingEntity { +@@ -1128,7 +1128,7 @@ public abstract class Player extends LivingEntity { @Override protected boolean isImmobile() { diff --git a/patches/server/0388-Improved-Watchdog-Support.patch b/patches/server/0388-Improved-Watchdog-Support.patch index 2da28bf8c2..6e1675915d 100644 --- a/patches/server/0388-Improved-Watchdog-Support.patch +++ b/patches/server/0388-Improved-Watchdog-Support.patch @@ -71,10 +71,10 @@ index 8cc4cb2163a93b9491550fe6d0f5d980fb216920..4dd14d73a37b32288a64fbd67ee22c43 cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20faadb9c9 100644 +index 2e08855085a547151140bcb05dce9bc469d81ff6..c39479a9dffd9f9d7a8a6f99b97fef47391de1cd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -298,7 +298,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public int autosavePeriod; public Commands vanillaCommandDispatcher; @@ -83,7 +83,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 // CraftBukkit end // Spigot start public static final int TPS = 20; -@@ -309,6 +309,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -307,6 +307,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // Spigot end public static long currentTickLong = 0L; // Paper @@ -93,7 +93,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) { AtomicReference<S> atomicreference = new AtomicReference(); Thread thread = new Thread(() -> { -@@ -913,6 +916,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -911,6 +914,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start private boolean hasStopped = false; @@ -101,7 +101,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 private final Object stopLock = new Object(); public final boolean hasStopped() { synchronized (this.stopLock) { -@@ -927,6 +931,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -925,6 +929,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.hasStopped) return; this.hasStopped = true; } @@ -121,7 +121,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 // CraftBukkit end MinecraftServer.LOGGER.info("Stopping server"); MinecraftTimings.stopServer(); // Paper -@@ -1007,7 +1024,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1005,7 +1022,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.getProfileCache().save(false); // Paper } // Spigot end @@ -140,7 +140,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 } public String getLocalIp() { -@@ -1100,6 +1128,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1098,6 +1126,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa protected void runServer() { try { @@ -148,7 +148,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 if (this.initServer()) { this.nextTickTime = Util.getMillis(); this.status.setDescription(new TextComponent(this.motd)); -@@ -1107,6 +1136,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1105,6 +1134,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.updateStatusIcon(this.status); // Spigot start @@ -167,7 +167,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 org.spigotmc.WatchdogThread.hasStarted = true; // Paper Arrays.fill( recentTps, 20 ); long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop -@@ -1164,6 +1205,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1162,6 +1203,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.onServerCrash((CrashReport) null); } } catch (Throwable throwable) { @@ -180,7 +180,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 MinecraftServer.LOGGER.error("Encountered an unexpected exception", throwable); // Spigot Start if ( throwable.getCause() != null ) -@@ -1197,14 +1244,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1195,14 +1242,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.profileCache.clearExecutor(); } @@ -198,7 +198,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 } } -@@ -1268,6 +1315,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1266,6 +1313,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @Override public TickTask wrapRunnable(Runnable runnable) { @@ -211,7 +211,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 return new TickTask(this.tickCount, runnable); } -@@ -1496,6 +1549,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1492,6 +1545,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa try { crashreport = CrashReport.forThrowable(throwable, "Exception ticking world"); } catch (Throwable t) { @@ -219,7 +219,7 @@ index 1ab4e3a1d2e3a576ea5f05c2d92a1aae47b1f73e..2b301ab18cc67c04f6091f3a001aff20 throw new RuntimeException("Error generating crash report", t); } // Spigot End -@@ -1953,7 +2007,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1949,7 +2003,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.packRepository.setSelected(dataPacks); this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); this.resources.managers.updateRegistryTags(this.registryAccess()); @@ -262,7 +262,7 @@ index ab26a26ac553071ecd943dc8a3b41debf8b797ef..d0d058287fc1e87e944e99d4fc2cbd38 } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 04596feb8667e3abbfa1c7343b46cacaf88ecce8..7e3f7b69fc7a608dd82b471d832cc401a77f0738 100644 +index 5346109670bedf88f13b4eff47c5292170fb47cc..7776c22744cdd31459e9634d1d549bdf2876e04f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -571,6 +571,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0398-Fix-Chunk-Post-Processing-deadlock-risk.patch b/patches/server/0398-Fix-Chunk-Post-Processing-deadlock-risk.patch index f3f4e5d8b2..0f3fb79f59 100644 --- a/patches/server/0398-Fix-Chunk-Post-Processing-deadlock-risk.patch +++ b/patches/server/0398-Fix-Chunk-Post-Processing-deadlock-risk.patch @@ -25,7 +25,7 @@ This successfully fixed a reoccurring and highly reproducible 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 7e3f7b69fc7a608dd82b471d832cc401a77f0738..95feb9e316d4d1115c7dad5873979708f8d647d9 100644 +index 7776c22744cdd31459e9634d1d549bdf2876e04f..43e5e148f1289ff5e42311981c597c66d98447aa 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -178,6 +178,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -36,7 +36,7 @@ index 7e3f7b69fc7a608dd82b471d832cc401a77f0738..95feb9e316d4d1115c7dad5873979708 // Paper start - distance maps private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>(); -@@ -1009,16 +1010,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -995,16 +996,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> completablefuture1 = completablefuture.thenApplyAsync((either) -> { return either.mapLeft((list) -> { diff --git a/patches/server/0399-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0399-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index 1ea10446b3..d7248b82b6 100644 --- a/patches/server/0399-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/patches/server/0399-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 95feb9e316d4d1115c7dad5873979708f8d647d9..da40ae8799de108b1d3913c3c27ed4f9273fb303 100644 +index 43e5e148f1289ff5e42311981c597c66d98447aa..f4b14d77d5c256852677bd9bc6dbda2bbe5367e3 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1622,6 +1622,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1608,6 +1608,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider .printStackTrace(); return; } diff --git a/patches/server/0411-misc-debugging-dumps.patch b/patches/server/0411-misc-debugging-dumps.patch index a56f23d099..1c556f4401 100644 --- a/patches/server/0411-misc-debugging-dumps.patch +++ b/patches/server/0411-misc-debugging-dumps.patch @@ -29,10 +29,10 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2b301ab18cc67c04f6091f3a001aff20faadb9c9..fe877316a1c347354ee8e0651bbc243fb5eddc81 100644 +index c39479a9dffd9f9d7a8a6f99b97fef47391de1cd..6d774f126e31e90d0845fc24b1ad7df5346c7cc9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -917,6 +917,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -915,6 +915,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start private boolean hasStopped = false; public volatile boolean hasFullyShutdown = false; // Paper @@ -40,7 +40,7 @@ index 2b301ab18cc67c04f6091f3a001aff20faadb9c9..fe877316a1c347354ee8e0651bbc243f private final Object stopLock = new Object(); public final boolean hasStopped() { synchronized (this.stopLock) { -@@ -931,6 +932,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -929,6 +930,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.hasStopped) return; this.hasStopped = true; } @@ -48,7 +48,7 @@ index 2b301ab18cc67c04f6091f3a001aff20faadb9c9..fe877316a1c347354ee8e0651bbc243f // Paper start - kill main thread, and kill it hard shutdownThread = Thread.currentThread(); org.spigotmc.WatchdogThread.doStop(); // Paper -@@ -1056,6 +1058,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1054,6 +1056,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } public void safeShutdown(boolean flag, boolean isRestarting) { this.isRestarting = isRestarting; diff --git a/patches/server/0421-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0421-Wait-for-Async-Tasks-during-shutdown.patch index 62f28a9fa9..050ebb6ea6 100644 --- a/patches/server/0421-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0421-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,10 +10,10 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fe877316a1c347354ee8e0651bbc243fb5eddc81..4658883ffc150e38d29d5387784587e6299fab65 100644 +index 6d774f126e31e90d0845fc24b1ad7df5346c7cc9..ca228085e07254aa23937219c7ef2b3330ca8fe0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -952,6 +952,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -950,6 +950,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); diff --git a/patches/server/0425-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0425-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index e2ed8544dc..ad01a02411 100644 --- a/patches/server/0425-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0425-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 da40ae8799de108b1d3913c3c27ed4f9273fb303..7f8f242a746d542192bf59fc17e43d3544e5a442 100644 +index f4b14d77d5c256852677bd9bc6dbda2bbe5367e3..38efde791c99dd22de71183676d0301a1d5a14e0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1900,9 +1900,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1886,9 +1886,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/0428-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch b/patches/server/0428-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch index a2d751fb31..9c9de12eb8 100644 --- a/patches/server/0428-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch +++ b/patches/server/0428-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch @@ -42,7 +42,7 @@ index 674a6492e2eb10cfd29989643eedcea08b2d5218..dff475b327d6edaa4dcb9bc09029237f // Paper start diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 7f8f242a746d542192bf59fc17e43d3544e5a442..80018a94c12b7963c87b3960b71d88d8ac50ff09 100644 +index 38efde791c99dd22de71183676d0301a1d5a14e0..63e264c862053874585b0f6aad2f89389c2dadcb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -181,11 +181,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -135,15 +135,15 @@ index 7f8f242a746d542192bf59fc17e43d3544e5a442..80018a94c12b7963c87b3960b71d88d8 } else { holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this); // Paper start -@@ -640,6 +690,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -632,6 +682,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); if (playerchunk != null) { + playerchunk.onChunkRemove(); // Paper this.pendingUnloads.put(j, playerchunk); this.modified = true; - this.scheduleUnload(j, playerchunk); // Paper - Move up - don't leak chunks -@@ -1384,43 +1435,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + ++i; +@@ -1370,43 +1421,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch index ef2dfbe246..89223bf280 100644 --- a/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/0429-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172f664414b 100644 +index 63e264c862053874585b0f6aad2f89389c2dadcb..2c9cd3619b0759905637eff746a761ebe89a38d8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -70,6 +70,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEntityLinkPacket; @@ -126,7 +126,7 @@ index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172 // Paper start - optimise ChunkMap#anyPlayerCloseEnoughForSpawning this.playerChunkTickRangeMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, (ServerPlayer player, int rangeX, int rangeZ, int currPosX, int currPosZ, int prevPosX, int prevPosZ, -@@ -1558,17 +1636,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1544,17 +1622,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -145,7 +145,7 @@ index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172 int i = SectionPos.blockToSectionCoord(player.getBlockX()); int j = SectionPos.blockToSectionCoord(player.getBlockZ()); -@@ -1695,7 +1763,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1681,7 +1749,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); @@ -154,7 +154,7 @@ index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1739,7 +1807,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1725,7 +1793,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172 List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1815,23 +1913,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1801,23 +1899,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider DebugPackets.sendPoiPacketsForChunk(this.level, chunk.getPos()); List<Entity> list = Lists.newArrayList(); List<Entity> list1 = Lists.newArrayList(); @@ -236,7 +236,7 @@ index 80018a94c12b7963c87b3960b71d88d8ac50ff09..2ff9c1f1c41494c282b43eafeb719172 Iterator iterator; Entity entity1; -@@ -1907,6 +2013,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1893,6 +1999,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of(entity); } diff --git a/patches/server/0430-Optimize-ServerLevels-chunk-level-checking-methods.patch b/patches/server/0430-Optimize-ServerLevels-chunk-level-checking-methods.patch index e10d972ecc..ef41103791 100644 --- a/patches/server/0430-Optimize-ServerLevels-chunk-level-checking-methods.patch +++ b/patches/server/0430-Optimize-ServerLevels-chunk-level-checking-methods.patch @@ -8,10 +8,10 @@ so inline where possible, and avoid the abstraction of the Either class. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 01fca7eb1b12948d475f794e5a319ada72f0eb38..2fed7a347844a24a1095a654f27c1494a53eef51 100644 +index 5c5f9cf3539aeba4911d27111b0580d99a61f577..42d7802e787d1e2722bf94487f9bf8383aeef660 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2165,19 +2165,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2169,19 +2169,22 @@ public class ServerLevel extends Level implements WorldGenLevel { } private boolean isPositionTickingWithEntitiesLoaded(long chunkPos) { diff --git a/patches/server/0438-Fix-sand-duping.patch b/patches/server/0438-Fix-sand-duping.patch index 59c437cfea..c68919d4ee 100644 --- a/patches/server/0438-Fix-sand-duping.patch +++ b/patches/server/0438-Fix-sand-duping.patch @@ -7,10 +7,10 @@ If the falling block dies during teleportation (entity#move), then we need to detect that by placing a check after the move. diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 2723816204ee61ea3fda9279369df030b8d70a13..c267bc75a5a2a410d941accbe8c41e3422a634a5 100644 +index f12eafb49c2536f91f4716188c931ad97264c113..e234373432f34f237f884f7054c0d80829228522 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -119,6 +119,11 @@ public class FallingBlockEntity extends Entity { +@@ -120,6 +120,11 @@ public class FallingBlockEntity extends Entity { @Override public void tick() { @@ -22,7 +22,7 @@ index 2723816204ee61ea3fda9279369df030b8d70a13..c267bc75a5a2a410d941accbe8c41e34 if (this.blockState.isAir()) { this.discard(); } else { -@@ -131,6 +136,12 @@ public class FallingBlockEntity extends Entity { +@@ -132,6 +137,12 @@ public class FallingBlockEntity extends Entity { this.move(MoverType.SELF, this.getDeltaMovement()); diff --git a/patches/server/0446-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0446-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index e1eb2923ff..560761824a 100644 --- a/patches/server/0446-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0446-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,10 +8,10 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4658883ffc150e38d29d5387784587e6299fab65..81f611fef60518da5ee1bc34dcd7b8688818b096 100644 +index ca228085e07254aa23937219c7ef2b3330ca8fe0..03ef045c166c92efaeeaf655178b9729549e2296 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -822,7 +822,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -820,7 +820,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa chunkproviderserver.getLightEngine().setTaskPerBatch(worldserver.paperConfig.lightQueueSize); // Paper - increase light queue size // CraftBukkit start // this.updateMobSpawningFlags(); @@ -20,7 +20,7 @@ index 4658883ffc150e38d29d5387784587e6299fab65..81f611fef60518da5ee1bc34dcd7b868 this.forceTicks = false; // CraftBukkit end -@@ -1737,11 +1737,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1733,11 +1733,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } @@ -40,7 +40,7 @@ index 4658883ffc150e38d29d5387784587e6299fab65..81f611fef60518da5ee1bc34dcd7b868 } } -@@ -1755,7 +1758,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1751,7 +1754,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); diff --git a/patches/server/0452-incremental-chunk-and-player-saving.patch b/patches/server/0452-incremental-chunk-and-player-saving.patch index b3e2ede950..e8198919a1 100644 --- a/patches/server/0452-incremental-chunk-and-player-saving.patch +++ b/patches/server/0452-incremental-chunk-and-player-saving.patch @@ -50,10 +50,10 @@ index 64ceb8609891f59f4cf3b54844a25402bab32c26..213e9db18d1e0eede0e825797a3d3c15 config.addDefault("world-settings.default." + path, def); return config.getBoolean("world-settings." + worldName + "." + path, config.getBoolean("world-settings.default." + path)); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 81f611fef60518da5ee1bc34dcd7b8688818b096..2d1163fb234a2327373099dbfb569c3b8af9fa46 100644 +index 03ef045c166c92efaeeaf655178b9729549e2296..851d63ba918f1fb2ffb975b0b46c8797e2b3b903 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -900,7 +900,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -898,7 +898,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa try { this.isSaving = true; @@ -62,7 +62,7 @@ index 81f611fef60518da5ee1bc34dcd7b8688818b096..2d1163fb234a2327373099dbfb569c3b flag3 = this.saveAllChunks(suppressLogs, flush, force); } finally { this.isSaving = false; -@@ -1443,13 +1443,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1440,13 +1440,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } @@ -165,7 +165,7 @@ index dff475b327d6edaa4dcb9bc09029237f8f659846..05d2790b80a6d2e1dc6b8d2375f783be 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 2ff9c1f1c41494c282b43eafeb719172f664414b..85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc 100644 +index 2c9cd3619b0759905637eff746a761ebe89a38d8..1614b056d9e0c9e6b62d6c6a8926e87b2f3ad131 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -104,6 +104,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureMana @@ -241,7 +241,7 @@ index 2ff9c1f1c41494c282b43eafeb719172f664414b..85a05c9e59ae1909e6d4ce7a2e45b163 protected void saveAllChunks(boolean flush) { if (flush) { List<ChunkHolder> list = (List) this.visibleChunkMap.values().stream().filter(ChunkHolder::wasAccessibleSinceLastSave).peek(ChunkHolder::refreshAccessibility).collect(Collectors.toList()); -@@ -792,13 +851,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -778,13 +837,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } int l = 0; @@ -256,7 +256,7 @@ index 2ff9c1f1c41494c282b43eafeb719172f664414b..85a05c9e59ae1909e6d4ce7a2e45b163 } -@@ -836,6 +889,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -822,6 +875,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.level.unload(chunk); } @@ -264,7 +264,7 @@ index 2ff9c1f1c41494c282b43eafeb719172f664414b..85a05c9e59ae1909e6d4ce7a2e45b163 this.lightEngine.updateChunkStatus(ichunkaccess.getPos()); this.lightEngine.tryScheduleUpdate(); -@@ -1246,6 +1300,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1232,6 +1286,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider asyncSaveData, chunk); chunk.setUnsaved(false); @@ -272,7 +272,7 @@ index 2ff9c1f1c41494c282b43eafeb719172f664414b..85a05c9e59ae1909e6d4ce7a2e45b163 } // Paper end -@@ -1255,6 +1310,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1241,6 +1296,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!chunk.isUnsaved()) { return false; } else { diff --git a/patches/server/0466-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/patches/server/0466-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index 1b34693479..ac9fef7627 100644 --- a/patches/server/0466-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/patches/server/0466-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -360,7 +360,7 @@ index 05d2790b80a6d2e1dc6b8d2375f783be4eff2343..6ba7e2713452c4c6f48a1a825ef27b50 return this.isEntityTickingReady; } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406ec7bc5ac 100644 +index 1614b056d9e0c9e6b62d6c6a8926e87b2f3ad131..c6ea30c9e91382297a5340096540f1ebc914fc35 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -131,6 +131,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -448,7 +448,7 @@ index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406 list1.add(playerchunk); list.add(completablefuture); -@@ -930,11 +980,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -916,11 +966,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (requiredStatus == ChunkStatus.EMPTY) { return this.scheduleChunkLoad(chunkcoordintpair); } else { @@ -469,7 +469,7 @@ index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406 if (optional.isPresent() && ((ChunkAccess) optional.get()).getStatus().isOrAfter(requiredStatus)) { CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = requiredStatus.load(this.level, this.structureManager, this.lightEngine, (ichunkaccess) -> { -@@ -946,6 +1004,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -932,6 +990,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } else { return this.scheduleChunkGeneration(holder, requiredStatus); } @@ -477,7 +477,7 @@ index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406 } } -@@ -1002,14 +1061,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -988,14 +1047,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; CompletableFuture<CompoundTag> chunkSaveFuture = this.level.asyncChunkTaskManager.getChunkSaveFuture(pos.x, pos.z); @@ -507,7 +507,7 @@ index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406 return ret; // Paper end } -@@ -1061,7 +1130,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1047,7 +1116,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.releaseLightTicket(chunkcoordintpair); return CompletableFuture.completedFuture(Either.right(playerchunk_failure)); }); @@ -519,7 +519,7 @@ index 85a05c9e59ae1909e6d4ce7a2e45b16366a1b7dc..17af44ebe972158a4fa7b0cb5ea67406 } protected void releaseLightTicket(ChunkPos pos) { -@@ -1145,7 +1217,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1131,7 +1203,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider long i = chunkHolder.getPos().toLong(); Objects.requireNonNull(chunkHolder); diff --git a/patches/server/0484-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0484-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 4a7aa73b9c..77a8845bd3 100644 --- a/patches/server/0484-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0484-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,10 +5,10 @@ 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 2182d17d463cea2ff999c5bc61eb31f4317362d8..f8a892110339ef63b5bdc31b64c4a40833685526 100644 +index c77f464b772e72c23fe00e99bc0fee24d46fb16b..b42637a2e9594cc2a30f910ef08399c11607e094 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1751,6 +1751,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1755,6 +1755,7 @@ public class ServerLevel extends Level implements WorldGenLevel { //ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(this.worldData.a(), 0, this.worldData.c())); this.levelData.setSpawn(pos, angle); diff --git a/patches/server/0486-Improve-Chunk-Status-Transition-Speed.patch b/patches/server/0486-Improve-Chunk-Status-Transition-Speed.patch index cefa980de0..ce941b1f3f 100644 --- a/patches/server/0486-Improve-Chunk-Status-Transition-Speed.patch +++ b/patches/server/0486-Improve-Chunk-Status-Transition-Speed.patch @@ -54,7 +54,7 @@ index 6ba7e2713452c4c6f48a1a825ef27b500140aa16..cd4328bd606d778ebb45f36af8cf23d8 public ChunkHolder(ChunkPos pos, int level, LevelHeightAccessor world, LevelLightEngine lightingProvider, ChunkHolder.LevelChangeListener levelUpdateListener, ChunkHolder.PlayerProvider playersWatchingChunkProvider) { this.futures = new AtomicReferenceArray(ChunkHolder.CHUNK_STATUSES.size()); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 17af44ebe972158a4fa7b0cb5ea67406ec7bc5ac..9d9312cb8e9681428f7ab1b1e6eb803fc558d651 100644 +index c6ea30c9e91382297a5340096540f1ebc914fc35..104e7d0c18b032ee8198c4de25a57676d0f64745 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -691,7 +691,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -66,7 +66,7 @@ index 17af44ebe972158a4fa7b0cb5ea67406ec7bc5ac..9d9312cb8e9681428f7ab1b1e6eb803f } @Nullable -@@ -1101,6 +1101,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1087,6 +1087,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return "chunkGenerate " + requiredStatus.getName(); }); Executor executor = (runnable) -> { diff --git a/patches/server/0496-Add-methods-to-get-translation-keys.patch b/patches/server/0496-Add-methods-to-get-translation-keys.patch index a6fb1b05f7..84393fcfd6 100644 --- a/patches/server/0496-Add-methods-to-get-translation-keys.patch +++ b/patches/server/0496-Add-methods-to-get-translation-keys.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add methods to get translation keys Co-authored-by: MeFisto94 <[email protected]> diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 7eb8f37f493a83058a6e96f2e134a204b3304015..5fbfa060fc476236face04af724356dc5a21b5b5 100644 +index 945553bfe218a16ebe4abbb11e0723b6d8fc4910..e116ccfa4878636073cc4cdcf680683cda88d314 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -626,5 +626,15 @@ public class CraftBlock implements Block { +@@ -663,5 +663,15 @@ public class CraftBlock implements Block { public com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup() { return new com.destroystokyo.paper.block.CraftBlockSoundGroup(getNMS().getBlock().defaultBlockState().getSoundType()); } diff --git a/patches/server/0498-Cache-block-data-strings.patch b/patches/server/0498-Cache-block-data-strings.patch index cb029f98bc..4d0cb9354d 100644 --- a/patches/server/0498-Cache-block-data-strings.patch +++ b/patches/server/0498-Cache-block-data-strings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2d1163fb234a2327373099dbfb569c3b8af9fa46..583031b2d26f9410306cbacd158fb6a21f0f24b5 100644 +index 851d63ba918f1fb2ffb975b0b46c8797e2b3b903..7e4c9fb177211afc1fbbede3393cc7de8d9014a9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2035,6 +2035,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2031,6 +2031,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.getPlayerList().reloadResources(); this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary()); this.structureManager.onResourceManagerReload(this.resources.resourceManager); diff --git a/patches/server/0502-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0502-Extend-block-drop-capture-to-capture-all-items-added.patch index 26250fd153..04dc0dd436 100644 --- a/patches/server/0502-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0502-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,10 +6,10 @@ 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 f8a892110339ef63b5bdc31b64c4a40833685526..6e3eb9624d6febc995cf428d9d0136718e6b7f4a 100644 +index b42637a2e9594cc2a30f910ef08399c11607e094..83c48cb9640ad1a300538bf176e1584c8a0dc539 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1263,6 +1263,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1266,6 +1266,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { @@ -19,10 +19,9 @@ index f8a892110339ef63b5bdc31b64c4a40833685526..6e3eb9624d6febc995cf428d9d013671 + return true; + } + // Paper end -+ - if (!CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { + // SPIGOT-6415: Don't call spawn event when reason is null. For example when an entity teleports to a new world. + if (spawnReason != null && !CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { 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 176e5bbac94cf39805dcacfcae3a3daa98b793b7..d006964cb6c4c3cd843064ab685700c67df8c238 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/patches/server/0507-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0507-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch index 9305c28388..9879dd70b5 100644 --- a/patches/server/0507-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch +++ b/patches/server/0507-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 583031b2d26f9410306cbacd158fb6a21f0f24b5..de024bf476e07558a249e2734be1f6ef6810ddd9 100644 +index 7e4c9fb177211afc1fbbede3393cc7de8d9014a9..98d896db95953a91d31830a23b23265fa9f2c795 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2101,13 +2101,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2097,13 +2097,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.isEnforceWhitelist()) { PlayerList playerlist = source.getServer().getPlayerList(); UserWhiteList whitelist = playerlist.getWhiteList(); diff --git a/patches/server/0511-Optimise-getType-calls.patch b/patches/server/0511-Optimise-getType-calls.patch index 3db112812d..6653f476f0 100644 --- a/patches/server/0511-Optimise-getType-calls.patch +++ b/patches/server/0511-Optimise-getType-calls.patch @@ -41,10 +41,10 @@ index 8001245c4ba619cd357a194d60fdc2efe186efb3..07fa4e4ae5f2cfb4447a608dc645c0b7 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 5fbfa060fc476236face04af724356dc5a21b5b5..17cfa5bd58417c541e2d922c7d7b57676246f0d8 100644 +index e116ccfa4878636073cc4cdcf680683cda88d314..4bbaf22f449af42eba1307604e3860ea8b60a38c 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -217,7 +217,7 @@ public class CraftBlock implements Block { +@@ -224,7 +224,7 @@ public class CraftBlock implements Block { @Override public Material getType() { diff --git a/patches/server/0524-Item-no-age-no-player-pickup.patch b/patches/server/0524-Item-no-age-no-player-pickup.patch index a121c378e3..13b456555a 100644 --- a/patches/server/0524-Item-no-age-no-player-pickup.patch +++ b/patches/server/0524-Item-no-age-no-player-pickup.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item no age & no player pickup diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index 0d262c99c7e9ef06e297612b1802c493700f64ae..342345eb04d00efb58392ccf209e3c51c1064173 100644 +index 30c954efba587d69ff55df509339f03e7d5a476e..1d90219c3a0e86786a9497d4c078c2d4077ab6cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -10,6 +10,12 @@ import org.bukkit.entity.Item; @@ -21,7 +21,7 @@ index 0d262c99c7e9ef06e297612b1802c493700f64ae..342345eb04d00efb58392ccf209e3c51 private final ItemEntity item; public CraftItem(CraftServer server, Entity entity, ItemEntity item) { -@@ -59,6 +65,26 @@ public class CraftItem extends CraftEntity implements Item { +@@ -76,6 +82,26 @@ public class CraftItem extends CraftEntity implements Item { public void setCanMobPickup(boolean canMobPickup) { item.canMobPickup = canMobPickup; } diff --git a/patches/server/0531-Add-Destroy-Speed-API.patch b/patches/server/0531-Add-Destroy-Speed-API.patch index cfd4fa1a5f..c38a358b78 100644 --- a/patches/server/0531-Add-Destroy-Speed-API.patch +++ b/patches/server/0531-Add-Destroy-Speed-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Destroy Speed API Co-authored-by: Jake Potrebic <[email protected]> diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 17cfa5bd58417c541e2d922c7d7b57676246f0d8..437daff6408357a4a19420422100914b3308b465 100644 +index 4bbaf22f449af42eba1307604e3860ea8b60a38c..25794fca0c10b262a696ecec9c736a991e8f357d 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -636,5 +636,26 @@ public class CraftBlock implements Block { +@@ -673,5 +673,26 @@ public class CraftBlock implements Block { public String translationKey() { return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); } diff --git a/patches/server/0550-Additional-Block-Material-API-s.patch b/patches/server/0550-Additional-Block-Material-API-s.patch index 8d23c9d902..c37be6c6ce 100644 --- a/patches/server/0550-Additional-Block-Material-API-s.patch +++ b/patches/server/0550-Additional-Block-Material-API-s.patch @@ -9,10 +9,10 @@ process to do this in the Bukkit API Adds API for buildable, replaceable, burnable too. diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 437daff6408357a4a19420422100914b3308b465..0be0ddcb8ea184683c1d0c619a932f3b03064941 100644 +index 25794fca0c10b262a696ecec9c736a991e8f357d..3430bf2c05f9dc47a7483327bee4c04e4d87349e 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -456,6 +456,25 @@ public class CraftBlock implements Block { +@@ -463,6 +463,25 @@ public class CraftBlock implements Block { return this.getNMS().getMaterial().isLiquid(); } diff --git a/patches/server/0563-Added-ServerResourcesReloadedEvent.patch b/patches/server/0563-Added-ServerResourcesReloadedEvent.patch index 3ea83769b9..32592e509b 100644 --- a/patches/server/0563-Added-ServerResourcesReloadedEvent.patch +++ b/patches/server/0563-Added-ServerResourcesReloadedEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index de024bf476e07558a249e2734be1f6ef6810ddd9..670180dd48a8e04b76c65242d2b316d52ae9090f 100644 +index 98d896db95953a91d31830a23b23265fa9f2c795..9abe6de575509d930c3f055e8dc5a14de5f1f49d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2004,7 +2004,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2000,7 +2000,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa return this.functionManager; } @@ -22,7 +22,7 @@ index de024bf476e07558a249e2734be1f6ef6810ddd9..670180dd48a8e04b76c65242d2b316d5 RegistryAccess.Frozen iregistrycustom_dimension = this.registryAccess(); CompletableFuture<Void> completablefuture = CompletableFuture.supplyAsync(() -> { Stream<String> stream = dataPacks.stream(); // CraftBukkit - decompile error -@@ -2030,6 +2036,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2026,6 +2032,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.packRepository.setSelected(dataPacks); this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); this.resources.managers.updateRegistryTags(this.registryAccess()); diff --git a/patches/server/0571-Remove-stale-POIs.patch b/patches/server/0571-Remove-stale-POIs.patch index 59efbc0b2b..6ea7a5b8fe 100644 --- a/patches/server/0571-Remove-stale-POIs.patch +++ b/patches/server/0571-Remove-stale-POIs.patch @@ -5,10 +5,10 @@ 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 6e3eb9624d6febc995cf428d9d0136718e6b7f4a..4797737c8085012bb898da0313a9ef9bf44e723d 100644 +index 83c48cb9640ad1a300538bf176e1584c8a0dc539..f408d59f2b829765e915dfdb09733407012c8524 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1831,6 +1831,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1834,6 +1834,11 @@ public class ServerLevel extends Level implements WorldGenLevel { }); optional1.ifPresent((villageplacetype) -> { this.getServer().execute(() -> { diff --git a/patches/server/0574-Add-PaperRegistry.patch b/patches/server/0574-Add-PaperRegistry.patch index 07bb4192a0..ce5b0c9aa6 100644 --- a/patches/server/0574-Add-PaperRegistry.patch +++ b/patches/server/0574-Add-PaperRegistry.patch @@ -171,10 +171,10 @@ index 0000000000000000000000000000000000000000..6f39e343147803e15e7681c993b8797a +public record RegistryKey<API extends Keyed, MINECRAFT>(Class<API> apiClass, ResourceKey<? extends Registry<MINECRAFT>> resourceKey) { +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 670180dd48a8e04b76c65242d2b316d52ae9090f..14b1524fcd27341eb8257f3925b94715bd4da152 100644 +index 9abe6de575509d930c3f055e8dc5a14de5f1f49d..696d382283f94335f6e23eb12c6fa209c51cff8c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2036,6 +2036,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2032,6 +2032,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.packRepository.setSelected(dataPacks); this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); this.resources.managers.updateRegistryTags(this.registryAccess()); diff --git a/patches/server/0575-Add-StructuresLocateEvent.patch b/patches/server/0575-Add-StructuresLocateEvent.patch index f5c3398594..b42b98e3db 100644 --- a/patches/server/0575-Add-StructuresLocateEvent.patch +++ b/patches/server/0575-Add-StructuresLocateEvent.patch @@ -72,10 +72,10 @@ index 0000000000000000000000000000000000000000..41f6c2e1e60fc32e6393097711412ca2 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 14b1524fcd27341eb8257f3925b94715bd4da152..eafa494d9c4d9fac40b62c439dbdae5bf70fd3a1 100644 +index 696d382283f94335f6e23eb12c6fa209c51cff8c..e74885c51c2970af13d847ec34a415e5aa18b01c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2036,7 +2036,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2032,7 +2032,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.packRepository.setSelected(dataPacks); this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); this.resources.managers.updateRegistryTags(this.registryAccess()); diff --git a/patches/server/0588-EntityMoveEvent.patch b/patches/server/0588-EntityMoveEvent.patch index 65856e82cd..53db38d2a5 100644 --- a/patches/server/0588-EntityMoveEvent.patch +++ b/patches/server/0588-EntityMoveEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eafa494d9c4d9fac40b62c439dbdae5bf70fd3a1..9fb306fdb2071ffcd16e9bb83da75c8923f2ba8e 100644 +index e74885c51c2970af13d847ec34a415e5aa18b01c..445efad6a35b819dcb845524a28055a90da6e7f6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1539,6 +1539,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1535,6 +1535,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/patches/server/0589-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0589-added-option-to-disable-pathfinding-updates-on-block.patch index 3206f89517..044e23afdd 100644 --- a/patches/server/0589-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0589-added-option-to-disable-pathfinding-updates-on-block.patch @@ -21,10 +21,10 @@ index 4ab8e20efc54e7094e3e0f98109c95252d5e7c01..cdcb877e374bcd2dd944c754bfc91e23 public boolean phantomOnlyAttackInsomniacs = true; private void phantomSettings() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3b5eceaf3a40fee6430864e849d403f5e3c5f9b4..1b678f60ae054f6d9c97ba17f5ffe258d65cccb1 100644 +index 349f92a10e80f091abca6d86b869800d8c5ea787..773c7b0fe682fa17363f0a7841a77010b0b38b71 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1403,6 +1403,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1406,6 +1406,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.getChunkSource().blockChanged(pos); @@ -32,7 +32,7 @@ index 3b5eceaf3a40fee6430864e849d403f5e3c5f9b4..1b678f60ae054f6d9c97ba17f5ffe258 VoxelShape voxelshape = oldState.getCollisionShape(this, pos); VoxelShape voxelshape1 = newState.getCollisionShape(this, pos); -@@ -1444,6 +1445,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1447,6 +1448,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0596-Add-support-for-hex-color-codes-in-console.patch b/patches/server/0596-Add-support-for-hex-color-codes-in-console.patch index 96353575f3..cd8f46da31 100644 --- a/patches/server/0596-Add-support-for-hex-color-codes-in-console.patch +++ b/patches/server/0596-Add-support-for-hex-color-codes-in-console.patch @@ -270,10 +270,10 @@ index 0000000000000000000000000000000000000000..ea83ee8762c126c449993a7497257b0b + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fb306fdb2071ffcd16e9bb83da75c8923f2ba8e..7aba7d63727f6c7bbc074b5df5421ea449224ba4 100644 +index 445efad6a35b819dcb845524a28055a90da6e7f6..2914355be3f6c45b2dbd7ceb0ea65c7f22255a6d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1716,7 +1716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1712,7 +1712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @Override public void sendMessage(Component message, UUID sender) { diff --git a/patches/server/0607-Add-Block-isValidTool.patch b/patches/server/0607-Add-Block-isValidTool.patch index 8442851de2..aa6d01211e 100644 --- a/patches/server/0607-Add-Block-isValidTool.patch +++ b/patches/server/0607-Add-Block-isValidTool.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Block#isValidTool diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 0be0ddcb8ea184683c1d0c619a932f3b03064941..55f830598e67943674aa54ddfefc02bb3a3a3dcc 100644 +index 3430bf2c05f9dc47a7483327bee4c04e4d87349e..56fd99224edf9041104a540fd14ba3468af4805e 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -676,5 +676,9 @@ public class CraftBlock implements Block { +@@ -713,5 +713,9 @@ public class CraftBlock implements Block { } return speed; } diff --git a/patches/server/0615-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0615-forced-whitelist-use-configurable-kick-message.patch index 4a57708ea9..1335c9be51 100644 --- a/patches/server/0615-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0615-forced-whitelist-use-configurable-kick-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fb306fdb2071ffcd16e9bb83da75c8923f2ba8e..abb6b8f3b69826d69956a248770fc7b87745ba9a 100644 +index 445efad6a35b819dcb845524a28055a90da6e7f6..0e888c2d64cddb8b44e0572cea07fbb3cf0e6987 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -73,7 +73,6 @@ import net.minecraft.gametest.framework.GameTestTicker; @@ -16,7 +16,7 @@ index 9fb306fdb2071ffcd16e9bb83da75c8923f2ba8e..abb6b8f3b69826d69956a248770fc7b8 import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; import net.minecraft.network.protocol.game.ClientboundSetTimePacket; import net.minecraft.network.protocol.status.ServerStatus; -@@ -2118,7 +2117,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2114,7 +2113,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa ServerPlayer entityplayer = (ServerPlayer) iterator.next(); if (!whitelist.isWhiteListed(entityplayer.getGameProfile()) && !this.getPlayerList().isOp(entityplayer.getGameProfile())) { // Paper - Fix kicking ops when whitelist is reloaded (MC-171420) diff --git a/patches/server/0625-Fix-duplicating-give-items-on-item-drop-cancel.patch b/patches/server/0625-Fix-duplicating-give-items-on-item-drop-cancel.patch deleted file mode 100644 index 1fdb5f16ee..0000000000 --- a/patches/server/0625-Fix-duplicating-give-items-on-item-drop-cancel.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Alphaesia <[email protected]> -Date: Fri, 23 Apr 2021 09:57:56 +1200 -Subject: [PATCH] Fix duplicating /give items on item drop cancel - -Fixes SPIGOT-2942 (Give command fires PlayerDropItemEvent, cancelling it causes item duplication). - -For every stack of items to give, /give puts the item stack straight -into the player's inventory. However, it also summons a "fake item" -at the player's location. When the PlayerDropItemEvent for this fake -item is cancelled, the server attempts to put the item back into the -player's inventory. The result is that the fake item, which is never -meant to be obtained, is combined with the real items injected directly -into the player's inventory. This means more items than the amount -specified in /give are given to the player - one for every stack of -items given. (e.g. /give @s dirt 1 gives you 2 dirt). - -While this isn't a big issue for general building usage, it can affect -e.g. adventure maps where the number of items the player receives is -important (and you want to restrict the player from throwing items). - -If there are any overflow items that didn't make it into the inventory -(insufficient space), those items are dropped as a real item instead -of a fake one. While cancelling this drop would also result in the -server attempting to put those items into the inventory, since it is -full this has no effect. - -Just ignoring cancellation of the PlayerDropItemEvent seems like the -cleanest and least intrusive way to fix it. - -diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java -index 58941830a4bd024fcdb97df47783c82062e9167f..a0dc380e90415de9068ea408d62a1605c82631df 100644 ---- a/src/main/java/net/minecraft/server/commands/GiveCommand.java -+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java -@@ -47,7 +47,7 @@ public class GiveCommand { - boolean bl = serverPlayer.getInventory().add(itemStack); - if (bl && itemStack.isEmpty()) { - itemStack.setCount(1); -- ItemEntity itemEntity2 = serverPlayer.drop(itemStack, false); -+ ItemEntity itemEntity2 = serverPlayer.drop(itemStack, false, false, true); // Paper - Fix duplicating /give items on item drop cancel - if (itemEntity2 != null) { - itemEntity2.makeFakeItem(); - } -diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4e604e902145ea91811e8e7769952024fcbd1a3d..0a486c8c4ad6abfdca804887e5db1487f53c1098 100644 ---- a/src/main/java/net/minecraft/world/entity/player/Player.java -+++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -693,6 +693,13 @@ public abstract class Player extends LivingEntity { - - @Nullable - public ItemEntity drop(ItemStack stack, boolean throwRandomly, boolean retainOwnership) { -+ // Paper start - Fix duplicating /give items on item drop cancel -+ return this.drop(stack, throwRandomly, retainOwnership, false); -+ } -+ -+ @Nullable -+ public ItemEntity drop(ItemStack stack, boolean throwRandomly, boolean retainOwnership, boolean alwaysSucceed) { -+ // Paper end - if (stack.isEmpty()) { - return null; - } else { -@@ -734,7 +741,7 @@ public abstract class Player extends LivingEntity { - PlayerDropItemEvent event = new PlayerDropItemEvent(player, drop); - this.level.getCraftServer().getPluginManager().callEvent(event); - -- if (event.isCancelled()) { -+ if (event.isCancelled() && !alwaysSucceed) { // Paper - Fix duplicating /give items on item drop cancel - org.bukkit.inventory.ItemStack cur = player.getInventory().getItemInHand(); - if (retainOwnership && (cur == null || cur.getAmount() == 0)) { - // The complete stack was dropped diff --git a/patches/server/0626-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0625-add-consumeFuel-to-FurnaceBurnEvent.patch index ffb9062039..ffb9062039 100644 --- a/patches/server/0626-add-consumeFuel-to-FurnaceBurnEvent.patch +++ b/patches/server/0625-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0627-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0626-add-get-set-drop-chance-to-EntityEquipment.patch index 9720fcdaf4..9720fcdaf4 100644 --- a/patches/server/0627-add-get-set-drop-chance-to-EntityEquipment.patch +++ b/patches/server/0626-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0628-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0627-fix-PigZombieAngerEvent-cancellation.patch index 9b69dc24f2..9b69dc24f2 100644 --- a/patches/server/0628-fix-PigZombieAngerEvent-cancellation.patch +++ b/patches/server/0627-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0629-Fix-checkReach-check-for-Shulker-boxes.patch b/patches/server/0628-Fix-checkReach-check-for-Shulker-boxes.patch index e63651a68f..e63651a68f 100644 --- a/patches/server/0629-Fix-checkReach-check-for-Shulker-boxes.patch +++ b/patches/server/0628-Fix-checkReach-check-for-Shulker-boxes.patch diff --git a/patches/server/0630-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0629-fix-PlayerItemHeldEvent-firing-twice.patch index 7a332176ff..7a332176ff 100644 --- a/patches/server/0630-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0629-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0631-Added-PlayerDeepSleepEvent.patch b/patches/server/0630-Added-PlayerDeepSleepEvent.patch index 00b71569b1..77e3bcfdaa 100644 --- a/patches/server/0631-Added-PlayerDeepSleepEvent.patch +++ b/patches/server/0630-Added-PlayerDeepSleepEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Added PlayerDeepSleepEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 0a486c8c4ad6abfdca804887e5db1487f53c1098..f4c861c86b718d67ae13ac02c6d1f20433312725 100644 +index 49648e258c6e72ac921f69114e1e36a926749d46..de0b885ebafecb37ef8be127362f76d487ff92ae 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -246,6 +246,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0632-More-World-API.patch b/patches/server/0631-More-World-API.patch index 3fac16090a..3fac16090a 100644 --- a/patches/server/0632-More-World-API.patch +++ b/patches/server/0631-More-World-API.patch diff --git a/patches/server/0633-Added-PlayerBedFailEnterEvent.patch b/patches/server/0632-Added-PlayerBedFailEnterEvent.patch index 95b8821728..95b8821728 100644 --- a/patches/server/0633-Added-PlayerBedFailEnterEvent.patch +++ b/patches/server/0632-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0634-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0633-Implement-methods-to-convert-between-Component-and-B.patch index ad3e98c8b5..ad3e98c8b5 100644 --- a/patches/server/0634-Implement-methods-to-convert-between-Component-and-B.patch +++ b/patches/server/0633-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0635-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0634-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch index 576aa63f5a..576aa63f5a 100644 --- a/patches/server/0635-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ b/patches/server/0634-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch diff --git a/patches/server/0636-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0635-Introduce-beacon-activation-deactivation-events.patch index 4858e0f40b..4858e0f40b 100644 --- a/patches/server/0636-Introduce-beacon-activation-deactivation-events.patch +++ b/patches/server/0635-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0637-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0636-add-RespawnFlags-to-PlayerRespawnEvent.patch index 5fff43eeb8..5fff43eeb8 100644 --- a/patches/server/0637-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0636-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/server/0638-Add-Channel-initialization-listeners.patch b/patches/server/0637-Add-Channel-initialization-listeners.patch index 1f7fe2772b..1f7fe2772b 100644 --- a/patches/server/0638-Add-Channel-initialization-listeners.patch +++ b/patches/server/0637-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0639-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0638-Send-empty-commands-if-tab-completion-is-disabled.patch index 2b52bb5343..2b52bb5343 100644 --- a/patches/server/0639-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0638-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0640-Add-more-WanderingTrader-API.patch b/patches/server/0639-Add-more-WanderingTrader-API.patch index 65d351d6df..65d351d6df 100644 --- a/patches/server/0640-Add-more-WanderingTrader-API.patch +++ b/patches/server/0639-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0641-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0640-Add-EntityBlockStorage-clearEntities.patch index 4742b14dac..4742b14dac 100644 --- a/patches/server/0641-Add-EntityBlockStorage-clearEntities.patch +++ b/patches/server/0640-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0642-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0641-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch index b53cff9d00..b53cff9d00 100644 --- a/patches/server/0642-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch +++ b/patches/server/0641-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0643-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0642-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch index 0b88624654..0b88624654 100644 --- a/patches/server/0643-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0642-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/server/0644-Inventory-close.patch b/patches/server/0643-Inventory-close.patch index e7f478324a..e7f478324a 100644 --- a/patches/server/0644-Inventory-close.patch +++ b/patches/server/0643-Inventory-close.patch diff --git a/patches/server/0645-call-PortalCreateEvent-players-and-end-platform.patch b/patches/server/0644-call-PortalCreateEvent-players-and-end-platform.patch index ea0c797028..ea0c797028 100644 --- a/patches/server/0645-call-PortalCreateEvent-players-and-end-platform.patch +++ b/patches/server/0644-call-PortalCreateEvent-players-and-end-platform.patch diff --git a/patches/server/0646-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0645-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch index 9fc439f344..9fc439f344 100644 --- a/patches/server/0646-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch +++ b/patches/server/0645-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0647-Fix-CraftPotionBrewer-cache.patch b/patches/server/0646-Fix-CraftPotionBrewer-cache.patch index 2d8295382f..2d8295382f 100644 --- a/patches/server/0647-Fix-CraftPotionBrewer-cache.patch +++ b/patches/server/0646-Fix-CraftPotionBrewer-cache.patch diff --git a/patches/server/0648-Add-basic-Datapack-API.patch b/patches/server/0647-Add-basic-Datapack-API.patch index 70549c3014..70549c3014 100644 --- a/patches/server/0648-Add-basic-Datapack-API.patch +++ b/patches/server/0647-Add-basic-Datapack-API.patch diff --git a/patches/server/0649-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0648-Add-environment-variable-to-disable-server-gui.patch index a8785b7a29..a8785b7a29 100644 --- a/patches/server/0649-Add-environment-variable-to-disable-server-gui.patch +++ b/patches/server/0648-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0650-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0649-additions-to-PlayerGameModeChangeEvent.patch index 769f85c58f..769f85c58f 100644 --- a/patches/server/0650-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0649-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0651-ItemStack-repair-check-API.patch b/patches/server/0650-ItemStack-repair-check-API.patch index 4663820353..4663820353 100644 --- a/patches/server/0651-ItemStack-repair-check-API.patch +++ b/patches/server/0650-ItemStack-repair-check-API.patch diff --git a/patches/server/0652-More-Enchantment-API.patch b/patches/server/0651-More-Enchantment-API.patch index be8a7f96c7..be8a7f96c7 100644 --- a/patches/server/0652-More-Enchantment-API.patch +++ b/patches/server/0651-More-Enchantment-API.patch diff --git a/patches/server/0653-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0652-Fix-and-optimise-world-force-upgrading.patch index b110c0d528..f7e34581ab 100644 --- a/patches/server/0653-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0652-Fix-and-optimise-world-force-upgrading.patch @@ -272,10 +272,10 @@ index 69dc1271be0a3f3f2fb4ce15981ed25d24dce785..1e0d261439255091a6f61485c0747231 Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, generatorOptions, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index abb6b8f3b69826d69956a248770fc7b87745ba9a..5a2c5dc61580ff343ca96561fa56400c31995529 100644 +index 0e888c2d64cddb8b44e0572cea07fbb3cf0e6987..4a92ea5d6db5873277708d9fba6e1dd04205da78 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -557,11 +557,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -555,11 +555,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa worlddata = new PrimaryLevelData(worldsettings, generatorsettings, Lifecycle.stable()); } worlddata.checkName(name); // CraftBukkit - Migration did not rewrite the level.dat; This forces 1.8 to take the last loaded world as respawn (in this case the end) @@ -288,7 +288,7 @@ index abb6b8f3b69826d69956a248770fc7b87745ba9a..5a2c5dc61580ff343ca96561fa56400c ServerLevelData iworlddataserver = worlddata; WorldGenSettings generatorsettings = worlddata.worldGenSettings(); -@@ -593,6 +589,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -591,6 +587,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } diff --git a/patches/server/0654-Add-Mob-lookAt-API.patch b/patches/server/0653-Add-Mob-lookAt-API.patch index 26b90782d2..26b90782d2 100644 --- a/patches/server/0654-Add-Mob-lookAt-API.patch +++ b/patches/server/0653-Add-Mob-lookAt-API.patch diff --git a/patches/server/0655-Add-Unix-domain-socket-support.patch b/patches/server/0654-Add-Unix-domain-socket-support.patch index 85d133844f..85d133844f 100644 --- a/patches/server/0655-Add-Unix-domain-socket-support.patch +++ b/patches/server/0654-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0656-Add-EntityInsideBlockEvent.patch b/patches/server/0655-Add-EntityInsideBlockEvent.patch index 2c221ccdeb..2c221ccdeb 100644 --- a/patches/server/0656-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0655-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0657-Attributes-API-for-item-defaults.patch b/patches/server/0656-Attributes-API-for-item-defaults.patch index dd2a25bfc9..dd2a25bfc9 100644 --- a/patches/server/0657-Attributes-API-for-item-defaults.patch +++ b/patches/server/0656-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0658-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch index 74ac72ae3b..74ac72ae3b 100644 --- a/patches/server/0658-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0659-More-Lidded-Block-API.patch b/patches/server/0658-More-Lidded-Block-API.patch index 5b7c8a3b64..5b7c8a3b64 100644 --- a/patches/server/0659-More-Lidded-Block-API.patch +++ b/patches/server/0658-More-Lidded-Block-API.patch diff --git a/patches/server/0660-Limit-item-frame-cursors-on-maps.patch b/patches/server/0659-Limit-item-frame-cursors-on-maps.patch index 97ce04c935..97ce04c935 100644 --- a/patches/server/0660-Limit-item-frame-cursors-on-maps.patch +++ b/patches/server/0659-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0661-Add-PlayerKickEvent-causes.patch b/patches/server/0660-Add-PlayerKickEvent-causes.patch index 9d07cf1b03..3823cfc3c7 100644 --- a/patches/server/0661-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0660-Add-PlayerKickEvent-causes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5a2c5dc61580ff343ca96561fa56400c31995529..ce40b5999e97b1bc56342876861b5bdad18d6cd6 100644 +index 4a92ea5d6db5873277708d9fba6e1dd04205da78..65d5d96a687712d87bbc61d85f80438811bae07d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2121,7 +2121,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2117,7 +2117,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa ServerPlayer entityplayer = (ServerPlayer) iterator.next(); if (!whitelist.isWhiteListed(entityplayer.getGameProfile()) && !this.getPlayerList().isOp(entityplayer.getGameProfile())) { // Paper - Fix kicking ops when whitelist is reloaded (MC-171420) diff --git a/patches/server/0662-Add-PufferFishStateChangeEvent.patch b/patches/server/0661-Add-PufferFishStateChangeEvent.patch index e15126884a..e15126884a 100644 --- a/patches/server/0662-Add-PufferFishStateChangeEvent.patch +++ b/patches/server/0661-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0663-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch index 2d2d6ea63a..2d2d6ea63a 100644 --- a/patches/server/0663-Fix-PlayerBucketEmptyEvent-result-itemstack.patch +++ b/patches/server/0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0664-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch b/patches/server/0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch index 670063cc65..670063cc65 100644 --- a/patches/server/0664-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch +++ b/patches/server/0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch diff --git a/patches/server/0665-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0664-Add-option-to-fix-items-merging-through-walls.patch index 3855ef8543..3855ef8543 100644 --- a/patches/server/0665-Add-option-to-fix-items-merging-through-walls.patch +++ b/patches/server/0664-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0666-Add-BellRevealRaiderEvent.patch b/patches/server/0665-Add-BellRevealRaiderEvent.patch index 587e0f0400..587e0f0400 100644 --- a/patches/server/0666-Add-BellRevealRaiderEvent.patch +++ b/patches/server/0665-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0667-Fix-invulnerable-end-crystals.patch b/patches/server/0666-Fix-invulnerable-end-crystals.patch index e4866ecc06..e4866ecc06 100644 --- a/patches/server/0667-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0666-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0668-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0667-Add-ElderGuardianAppearanceEvent.patch index 540926f9ef..540926f9ef 100644 --- a/patches/server/0668-Add-ElderGuardianAppearanceEvent.patch +++ b/patches/server/0667-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0669-Fix-dangerous-end-portal-logic.patch b/patches/server/0668-Fix-dangerous-end-portal-logic.patch index 1be4e84ec5..1be4e84ec5 100644 --- a/patches/server/0669-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0668-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0670-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch index c3c7f53663..c3c7f53663 100644 --- a/patches/server/0670-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch +++ b/patches/server/0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0671-Make-item-validations-configurable.patch b/patches/server/0670-Make-item-validations-configurable.patch index b10a52f5e4..b10a52f5e4 100644 --- a/patches/server/0671-Make-item-validations-configurable.patch +++ b/patches/server/0670-Make-item-validations-configurable.patch diff --git a/patches/server/0672-Line-Of-Sight-Changes.patch b/patches/server/0671-Line-Of-Sight-Changes.patch index 28e1141d0b..28e1141d0b 100644 --- a/patches/server/0672-Line-Of-Sight-Changes.patch +++ b/patches/server/0671-Line-Of-Sight-Changes.patch diff --git a/patches/server/0673-add-per-world-spawn-limits.patch b/patches/server/0672-add-per-world-spawn-limits.patch index adf5a71947..adf5a71947 100644 --- a/patches/server/0673-add-per-world-spawn-limits.patch +++ b/patches/server/0672-add-per-world-spawn-limits.patch diff --git a/patches/server/0674-Fix-PotionSplashEvent-for-water-splash-potions.patch b/patches/server/0673-Fix-PotionSplashEvent-for-water-splash-potions.patch index 56f02dad6e..56f02dad6e 100644 --- a/patches/server/0674-Fix-PotionSplashEvent-for-water-splash-potions.patch +++ b/patches/server/0673-Fix-PotionSplashEvent-for-water-splash-potions.patch diff --git a/patches/server/0675-Add-more-LimitedRegion-API.patch b/patches/server/0674-Add-more-LimitedRegion-API.patch index e9e7611f99..e9e7611f99 100644 --- a/patches/server/0675-Add-more-LimitedRegion-API.patch +++ b/patches/server/0674-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0676-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0675-Fix-PlayerDropItemEvent-using-wrong-item.patch index 6ae023df0a..55b44190bb 100644 --- a/patches/server/0676-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0675-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -18,7 +18,7 @@ index f1661e228ed982f38e0bc3e9e0c1720608e0b4a4..ca9a30a279e7d12c63b351e437fb9dcc this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f4c861c86b718d67ae13ac02c6d1f20433312725..be2f492343770af9d360c4e7ed7495d196b2424c 100644 +index de0b885ebafecb37ef8be127362f76d487ff92ae..909f5c26ca149687c03688c33c241e549f19a3e9 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -713,6 +713,11 @@ public abstract class Player extends LivingEntity { @@ -26,10 +26,10 @@ index f4c861c86b718d67ae13ac02c6d1f20433312725..be2f492343770af9d360c4e7ed7495d1 double d0 = this.getEyeY() - 0.30000001192092896D; + // Paper start -+ ItemStack tmp = stack.copy(); -+ stack.setCount(0); -+ stack = tmp; ++ ItemStack tmp = itemstack.copy(); ++ itemstack.setCount(0); ++ itemstack = tmp; + // Paper end - ItemEntity entityitem = new ItemEntity(this.level, this.getX(), d0, this.getZ(), stack); + ItemEntity entityitem = new ItemEntity(this.level, this.getX(), d0, this.getZ(), itemstack); entityitem.setPickUpDelay(40); diff --git a/patches/server/0677-Missing-Entity-Behavior-API.patch b/patches/server/0676-Missing-Entity-Behavior-API.patch index b1edabe7e5..b1edabe7e5 100644 --- a/patches/server/0677-Missing-Entity-Behavior-API.patch +++ b/patches/server/0676-Missing-Entity-Behavior-API.patch diff --git a/patches/server/0678-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 61eab94f77..61eab94f77 100644 --- a/patches/server/0678-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch new file mode 100644 index 0000000000..7b6806a054 --- /dev/null +++ b/patches/server/0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jason Penilla <[email protected]> +Date: Mon, 28 Jun 2021 18:16:52 -0700 +Subject: [PATCH] Fix return value of Block#applyBoneMeal always being false + + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +index 56fd99224edf9041104a540fd14ba3468af4805e..6c29efdb641c5d768a8bbf410da2a059e7d3e90a 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +@@ -558,7 +558,7 @@ public class CraftBlock implements Block { + } + } + +- return result == InteractionResult.SUCCESS && (event == null || !event.isCancelled()); ++ return result == InteractionResult.CONSUME && (event == null || !event.isCancelled()); // Paper - CONSUME is returned on success server-side (see BoneMealItem.applyBoneMeal and InteractionResult.sidedSuccess(boolean)) + } + + @Override diff --git a/patches/server/0679-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0679-Fix-return-value-of-Block-applyBoneMeal-always-being.patch deleted file mode 100644 index 179e878420..0000000000 --- a/patches/server/0679-Fix-return-value-of-Block-applyBoneMeal-always-being.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jason Penilla <[email protected]> -Date: Mon, 28 Jun 2021 18:16:52 -0700 -Subject: [PATCH] Fix return value of Block#applyBoneMeal always being false - - -diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 55f830598e67943674aa54ddfefc02bb3a3a3dcc..bb1f39fb215bbd422d6bb9ed0928d4d749d61dab 100644 ---- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -521,7 +521,7 @@ public class CraftBlock implements Block { - Direction direction = CraftBlock.blockFaceToNotch(face); - UseOnContext context = new UseOnContext(this.getCraftWorld().getHandle(), null, InteractionHand.MAIN_HAND, Items.BONE_MEAL.getDefaultInstance(), new BlockHitResult(Vec3.ZERO, direction, this.getPosition(), false)); - -- return BoneMealItem.applyBonemeal(context) == InteractionResult.SUCCESS; -+ return BoneMealItem.applyBonemeal(context) == InteractionResult.CONSUME; // Paper - CONSUME is returned on success server-side (see BoneMealItem.applyBoneMeal and InteractionResult.sidedSuccess(boolean)) - } - - @Override diff --git a/patches/server/0680-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0679-Use-getChunkIfLoadedImmediately-in-places.patch index 99213d6d81..99213d6d81 100644 --- a/patches/server/0680-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0679-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0681-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0680-Fix-commands-from-signs-not-firing-command-events.patch index 386073e2a7..386073e2a7 100644 --- a/patches/server/0681-Fix-commands-from-signs-not-firing-command-events.patch +++ b/patches/server/0680-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0682-Adds-PlayerArmSwingEvent.patch b/patches/server/0681-Adds-PlayerArmSwingEvent.patch index 0ac17873c1..0ac17873c1 100644 --- a/patches/server/0682-Adds-PlayerArmSwingEvent.patch +++ b/patches/server/0681-Adds-PlayerArmSwingEvent.patch diff --git a/patches/server/0683-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0682-Fixes-kick-event-leave-message-not-being-sent.patch index 316e9e0de5..316e9e0de5 100644 --- a/patches/server/0683-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0682-Fixes-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0684-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0683-Add-config-for-mobs-immune-to-default-effects.patch index a5538750c3..a5538750c3 100644 --- a/patches/server/0684-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0683-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0685-Fix-incorrect-message-for-outdated-client.patch b/patches/server/0684-Fix-incorrect-message-for-outdated-client.patch index 1b0f3a3869..1b0f3a3869 100644 --- a/patches/server/0685-Fix-incorrect-message-for-outdated-client.patch +++ b/patches/server/0684-Fix-incorrect-message-for-outdated-client.patch diff --git a/patches/server/0686-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0685-Don-t-apply-cramming-damage-to-players.patch index 12bca847ff..12bca847ff 100644 --- a/patches/server/0686-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0685-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0687-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0686-Rate-options-and-timings-for-sensors-and-behaviors.patch index 74cf0c5264..74cf0c5264 100644 --- a/patches/server/0687-Rate-options-and-timings-for-sensors-and-behaviors.patch +++ b/patches/server/0686-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0688-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch index 8e69a76f25..8e69a76f25 100644 --- a/patches/server/0688-Add-a-bunch-of-missing-forceDrop-toggles.patch +++ b/patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch diff --git a/patches/server/0689-Stinger-API.patch b/patches/server/0688-Stinger-API.patch index 33f8959315..33f8959315 100644 --- a/patches/server/0689-Stinger-API.patch +++ b/patches/server/0688-Stinger-API.patch diff --git a/patches/server/0690-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch index 8d4fe001d2..8d4fe001d2 100644 --- a/patches/server/0690-Fix-incosistency-issue-with-empty-map-items-in-CB.patch +++ b/patches/server/0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0691-Add-System.out-err-catcher.patch b/patches/server/0690-Add-System.out-err-catcher.patch index dde83aa3c8..dde83aa3c8 100644 --- a/patches/server/0691-Add-System.out-err-catcher.patch +++ b/patches/server/0690-Add-System.out-err-catcher.patch diff --git a/patches/server/0692-Fix-test-not-bootstrapping.patch b/patches/server/0691-Fix-test-not-bootstrapping.patch index 5d0466c3b3..5d0466c3b3 100644 --- a/patches/server/0692-Fix-test-not-bootstrapping.patch +++ b/patches/server/0691-Fix-test-not-bootstrapping.patch diff --git a/patches/server/0693-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch index 10cd90749d..10cd90749d 100644 --- a/patches/server/0693-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch +++ b/patches/server/0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0694-Improve-boat-collision-performance.patch b/patches/server/0693-Improve-boat-collision-performance.patch index 24fc315296..24fc315296 100644 --- a/patches/server/0694-Improve-boat-collision-performance.patch +++ b/patches/server/0693-Improve-boat-collision-performance.patch diff --git a/patches/server/0695-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch index 44c6dff957..44c6dff957 100644 --- a/patches/server/0695-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0696-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0695-Allow-skipping-writing-of-comments-to-server.propert.patch index 6395f3f4a8..6395f3f4a8 100644 --- a/patches/server/0696-Allow-skipping-writing-of-comments-to-server.propert.patch +++ b/patches/server/0695-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0697-Add-PlayerSetSpawnEvent.patch b/patches/server/0696-Add-PlayerSetSpawnEvent.patch index 5af986d650..5af986d650 100644 --- a/patches/server/0697-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0696-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0698-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0697-Make-hoppers-respect-inventory-max-stack-size.patch index ea86736121..ea86736121 100644 --- a/patches/server/0698-Make-hoppers-respect-inventory-max-stack-size.patch +++ b/patches/server/0697-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0699-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0698-Optimize-entity-tracker-passenger-checks.patch index cf8b4494f3..cf8b4494f3 100644 --- a/patches/server/0699-Optimize-entity-tracker-passenger-checks.patch +++ b/patches/server/0698-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0700-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0699-Config-option-for-Piglins-guarding-chests.patch index ca40719e13..ca40719e13 100644 --- a/patches/server/0700-Config-option-for-Piglins-guarding-chests.patch +++ b/patches/server/0699-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0701-Added-EntityDamageItemEvent.patch b/patches/server/0700-Added-EntityDamageItemEvent.patch index 0f5056e7ce..0f5056e7ce 100644 --- a/patches/server/0701-Added-EntityDamageItemEvent.patch +++ b/patches/server/0700-Added-EntityDamageItemEvent.patch diff --git a/patches/server/0702-Optimize-indirect-passenger-iteration.patch b/patches/server/0701-Optimize-indirect-passenger-iteration.patch index 3f6f8f2a1f..3f6f8f2a1f 100644 --- a/patches/server/0702-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0701-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0703-Fix-block-drops-position-losing-precision-millions-o.patch b/patches/server/0702-Fix-block-drops-position-losing-precision-millions-o.patch index a32af5a891..a32af5a891 100644 --- a/patches/server/0703-Fix-block-drops-position-losing-precision-millions-o.patch +++ b/patches/server/0702-Fix-block-drops-position-losing-precision-millions-o.patch diff --git a/patches/server/0704-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0703-Configurable-item-frame-map-cursor-update-interval.patch index ad55f5c5ec..ad55f5c5ec 100644 --- a/patches/server/0704-Configurable-item-frame-map-cursor-update-interval.patch +++ b/patches/server/0703-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0705-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0704-Make-EntityUnleashEvent-cancellable.patch index 2d8246afff..2d8246afff 100644 --- a/patches/server/0705-Make-EntityUnleashEvent-cancellable.patch +++ b/patches/server/0704-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0706-Clear-bucket-NBT-after-dispense.patch b/patches/server/0705-Clear-bucket-NBT-after-dispense.patch index 50f3155d75..50f3155d75 100644 --- a/patches/server/0706-Clear-bucket-NBT-after-dispense.patch +++ b/patches/server/0705-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0707-Respect-despawn-rate-in-item-merge-check.patch b/patches/server/0706-Respect-despawn-rate-in-item-merge-check.patch index 8967390e3e..8967390e3e 100644 --- a/patches/server/0707-Respect-despawn-rate-in-item-merge-check.patch +++ b/patches/server/0706-Respect-despawn-rate-in-item-merge-check.patch diff --git a/patches/server/0708-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0707-Change-EnderEye-target-without-changing-other-things.patch index e4af6267df..e4af6267df 100644 --- a/patches/server/0708-Change-EnderEye-target-without-changing-other-things.patch +++ b/patches/server/0707-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0709-Add-BlockBreakBlockEvent.patch b/patches/server/0708-Add-BlockBreakBlockEvent.patch index b7f264d94f..b7f264d94f 100644 --- a/patches/server/0709-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0708-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0710-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch index 14e666a79e..14e666a79e 100644 --- a/patches/server/0710-Option-to-prevent-NBT-copy-in-smithing-recipes.patch +++ b/patches/server/0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0711-More-CommandBlock-API.patch b/patches/server/0710-More-CommandBlock-API.patch index daf682f8a0..daf682f8a0 100644 --- a/patches/server/0711-More-CommandBlock-API.patch +++ b/patches/server/0710-More-CommandBlock-API.patch diff --git a/patches/server/0712-Add-missing-team-sidebar-display-slots.patch b/patches/server/0711-Add-missing-team-sidebar-display-slots.patch index 5581728a48..5581728a48 100644 --- a/patches/server/0712-Add-missing-team-sidebar-display-slots.patch +++ b/patches/server/0711-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0713-Add-back-EntityPortalExitEvent.patch b/patches/server/0712-Add-back-EntityPortalExitEvent.patch index a44e713ebd..a44e713ebd 100644 --- a/patches/server/0713-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0712-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0714-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch index 742d7716ff..742d7716ff 100644 --- a/patches/server/0714-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0715-Get-entity-default-attributes.patch b/patches/server/0714-Get-entity-default-attributes.patch index 6ae983a717..6ae983a717 100644 --- a/patches/server/0715-Get-entity-default-attributes.patch +++ b/patches/server/0714-Get-entity-default-attributes.patch diff --git a/patches/server/0716-Left-handed-API.patch b/patches/server/0715-Left-handed-API.patch index dd1acc7723..dd1acc7723 100644 --- a/patches/server/0716-Left-handed-API.patch +++ b/patches/server/0715-Left-handed-API.patch diff --git a/patches/server/0717-Add-advancement-display-API.patch b/patches/server/0716-Add-advancement-display-API.patch index c2bd6b94c0..c2bd6b94c0 100644 --- a/patches/server/0717-Add-advancement-display-API.patch +++ b/patches/server/0716-Add-advancement-display-API.patch diff --git a/patches/server/0718-Add-ItemFactory-getMonsterEgg-API.patch b/patches/server/0717-Add-ItemFactory-getMonsterEgg-API.patch index f22d19fef2..f22d19fef2 100644 --- a/patches/server/0718-Add-ItemFactory-getMonsterEgg-API.patch +++ b/patches/server/0717-Add-ItemFactory-getMonsterEgg-API.patch diff --git a/patches/server/0719-Add-critical-damage-API.patch b/patches/server/0718-Add-critical-damage-API.patch index ca4be99b06..1eb7eeb9dd 100644 --- a/patches/server/0719-Add-critical-damage-API.patch +++ b/patches/server/0718-Add-critical-damage-API.patch @@ -29,10 +29,10 @@ index 80d19af2ad423bd3de0e039c5bb8f97af536aaa9..a828cad27fcd39f8bfbaefa97052a2a3 public static DamageSource sting(LivingEntity attacker) { return new EntityDamageSource("sting", attacker); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index be2f492343770af9d360c4e7ed7495d196b2424c..3b235e98072664047c352dbb07fdcf2bd8553970 100644 +index 909f5c26ca149687c03688c33c241e549f19a3e9..8c74787c81d2b72a8b1c9dfff0a9db38ab13c973 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1227,7 +1227,7 @@ public abstract class Player extends LivingEntity { +@@ -1230,7 +1230,7 @@ public abstract class Player extends LivingEntity { flag1 = true; } @@ -41,7 +41,7 @@ index be2f492343770af9d360c4e7ed7495d196b2424c..3b235e98072664047c352dbb07fdcf2b flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper flag2 = flag2 && !this.isSprinting(); -@@ -1267,7 +1267,7 @@ public abstract class Player extends LivingEntity { +@@ -1270,7 +1270,7 @@ public abstract class Player extends LivingEntity { } Vec3 vec3d = target.getDeltaMovement(); @@ -50,7 +50,7 @@ index be2f492343770af9d360c4e7ed7495d196b2424c..3b235e98072664047c352dbb07fdcf2b if (flag5) { if (i > 0) { -@@ -1295,7 +1295,7 @@ public abstract class Player extends LivingEntity { +@@ -1298,7 +1298,7 @@ public abstract class Player extends LivingEntity { if (entityliving != this && entityliving != target && !this.isAlliedTo((Entity) entityliving) && (!(entityliving instanceof ArmorStand) || !((ArmorStand) entityliving).isMarker()) && this.distanceToSqr((Entity) entityliving) < 9.0D) { // CraftBukkit start - Only apply knockback if the damage hits diff --git a/patches/server/0720-Fix-issues-with-mob-conversion.patch b/patches/server/0719-Fix-issues-with-mob-conversion.patch index 69feb4b3a4..69feb4b3a4 100644 --- a/patches/server/0720-Fix-issues-with-mob-conversion.patch +++ b/patches/server/0719-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0721-Add-isCollidable-methods-to-various-places.patch b/patches/server/0720-Add-isCollidable-methods-to-various-places.patch index 6e08b33501..1497c827c3 100644 --- a/patches/server/0721-Add-isCollidable-methods-to-various-places.patch +++ b/patches/server/0720-Add-isCollidable-methods-to-various-places.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add isCollidable methods to various places diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index bb1f39fb215bbd422d6bb9ed0928d4d749d61dab..88c8817a85546ff92424b1164abcd74a15ff0917 100644 +index 6c29efdb641c5d768a8bbf410da2a059e7d3e90a..0b2e33fb16f832e0ddfe5e39a8a16caf98521098 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -473,6 +473,11 @@ public class CraftBlock implements Block { +@@ -480,6 +480,11 @@ public class CraftBlock implements Block { public boolean isSolid() { return getNMS().getMaterial().blocksMotion(); } diff --git a/patches/server/0722-Goat-ram-API.patch b/patches/server/0721-Goat-ram-API.patch index f1fcff3a29..f1fcff3a29 100644 --- a/patches/server/0722-Goat-ram-API.patch +++ b/patches/server/0721-Goat-ram-API.patch diff --git a/patches/server/0723-Add-API-for-resetting-a-single-score.patch b/patches/server/0722-Add-API-for-resetting-a-single-score.patch index c2e1fd93b9..c2e1fd93b9 100644 --- a/patches/server/0723-Add-API-for-resetting-a-single-score.patch +++ b/patches/server/0722-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0724-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0723-Add-Raw-Byte-Entity-Serialization.patch index d7e938d57a..d7e938d57a 100644 --- a/patches/server/0724-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0723-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0725-Vanilla-command-permission-fixes.patch b/patches/server/0724-Vanilla-command-permission-fixes.patch index d9b53520f4..d9b53520f4 100644 --- a/patches/server/0725-Vanilla-command-permission-fixes.patch +++ b/patches/server/0724-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0726-Make-CallbackExecutor-strict-again.patch b/patches/server/0725-Make-CallbackExecutor-strict-again.patch index d2fcbba34f..9360912a3d 100644 --- a/patches/server/0726-Make-CallbackExecutor-strict-again.patch +++ b/patches/server/0725-Make-CallbackExecutor-strict-again.patch @@ -10,7 +10,7 @@ schedules. Effectively, use the callback executor as a tool of finding issues rather than hiding these issues. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9d9312cb8e9681428f7ab1b1e6eb803fc558d651..edb35a483ae44073d560df1fe949aad60bf3d39d 100644 +index 104e7d0c18b032ee8198c4de25a57676d0f64745..d53ff732a503eab3aea0384475f8a56d3076828d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -164,17 +164,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0727-Do-not-allow-the-server-to-unload-chunks-at-request-.patch b/patches/server/0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch index d2c7c618d7..d2c7c618d7 100644 --- a/patches/server/0727-Do-not-allow-the-server-to-unload-chunks-at-request-.patch +++ b/patches/server/0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch diff --git a/patches/server/0728-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index b4e5807041..62e9ac7bb2 100644 --- a/patches/server/0728-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -9,10 +9,10 @@ chunk through it. This should also be OK from a leak prevention/ state desync POV because the TE is getting unloaded anyways. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7eeb80e708da11cc0ec41e4eeee53fb370ac17b1..02b6cdc6b0b90fba7523f5eafb1b5641d6eceb66 100644 +index 990c16b52ac80df180086d045d56923bb2d69b1e..3d00c1bcd5acbeee09f1854076545a1d3628d27e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1309,9 +1309,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1312,9 +1312,13 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { @@ -51,7 +51,7 @@ index 55bdc0abb1fe42c02479678c3840d1d4da3253ae..1a2dd16ec1f189c3b53a57c0224a15f4 public void doCloseContainer() { this.containerMenu.removed(this); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 3b235e98072664047c352dbb07fdcf2bd8553970..9c767096ca950d55d6002282c7a3fe2884bcd630 100644 +index 8c74787c81d2b72a8b1c9dfff0a9db38ab13c973..2483d7df7f1bf94344afd38b37602c645a4a2dff 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -497,6 +497,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0729-Correctly-handle-recursion-for-chunkholder-updates.patch b/patches/server/0728-Correctly-handle-recursion-for-chunkholder-updates.patch index 48e805996a..48e805996a 100644 --- a/patches/server/0729-Correctly-handle-recursion-for-chunkholder-updates.patch +++ b/patches/server/0728-Correctly-handle-recursion-for-chunkholder-updates.patch diff --git a/patches/server/0730-Separate-lookup-locking-from-state-access-in-UserCac.patch b/patches/server/0729-Separate-lookup-locking-from-state-access-in-UserCac.patch index 86c0e502fd..86c0e502fd 100644 --- a/patches/server/0730-Separate-lookup-locking-from-state-access-in-UserCac.patch +++ b/patches/server/0729-Separate-lookup-locking-from-state-access-in-UserCac.patch diff --git a/patches/server/0731-Fix-chunks-refusing-to-unload-at-low-TPS.patch b/patches/server/0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch index 0ea9e0770d..9faff94627 100644 --- a/patches/server/0731-Fix-chunks-refusing-to-unload-at-low-TPS.patch +++ b/patches/server/0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch @@ -10,10 +10,10 @@ chunk future to complete. We can simply schedule to the immediate executor to get this effect, rather than the main mailbox. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index edb35a483ae44073d560df1fe949aad60bf3d39d..fdfac353fe9cf8509a08b5157ed0762c3a12f3e3 100644 +index d53ff732a503eab3aea0384475f8a56d3076828d..971a31641ec33a80f45e507944fa4cd90bfc466a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1314,9 +1314,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1300,9 +1300,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return chunk; }); diff --git a/patches/server/0732-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/server/0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch index 477937d99b..a1d6ef4207 100644 --- a/patches/server/0732-Do-not-allow-ticket-level-changes-while-unloading-pl.patch +++ b/patches/server/0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch @@ -8,7 +8,7 @@ Sync loading the chunk at this stage would cause it to load older data, as well as screwing our region state. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index fdfac353fe9cf8509a08b5157ed0762c3a12f3e3..33eebcd8f3459fcdc51c0a327563a1abc3c1d432 100644 +index 971a31641ec33a80f45e507944fa4cd90bfc466a..5d60fa26e9f5d3c9c57a61c509d5b924bbed3281 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -313,6 +313,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -27,7 +27,7 @@ index fdfac353fe9cf8509a08b5157ed0762c3a12f3e3..33eebcd8f3459fcdc51c0a327563a1ab if (k > ChunkMap.MAX_CHUNK_DISTANCE && level > ChunkMap.MAX_CHUNK_DISTANCE) { return holder; } else { -@@ -924,6 +926,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -910,6 +912,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (completablefuture1 != completablefuture) { this.scheduleUnload(pos, holder); } else { @@ -40,7 +40,7 @@ index fdfac353fe9cf8509a08b5157ed0762c3a12f3e3..33eebcd8f3459fcdc51c0a327563a1ab // Paper start boolean removed; if ((removed = this.pendingUnloads.remove(pos, holder)) && ichunkaccess != null) { -@@ -961,6 +969,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -947,6 +955,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.regionManagers.get(index).removeChunk(holder.pos.x, holder.pos.z); } } // Paper end diff --git a/patches/server/0733-Do-not-allow-ticket-level-changes-when-updating-chun.patch b/patches/server/0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch index d0f51016fc..d0f51016fc 100644 --- a/patches/server/0733-Do-not-allow-ticket-level-changes-when-updating-chun.patch +++ b/patches/server/0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch diff --git a/patches/server/0734-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 7654abc8b4..7654abc8b4 100644 --- a/patches/server/0734-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch diff --git a/patches/server/0735-Log-when-the-async-catcher-is-tripped.patch b/patches/server/0734-Log-when-the-async-catcher-is-tripped.patch index bede76faf6..bede76faf6 100644 --- a/patches/server/0735-Log-when-the-async-catcher-is-tripped.patch +++ b/patches/server/0734-Log-when-the-async-catcher-is-tripped.patch diff --git a/patches/server/0736-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch index f36284ae0c..f36284ae0c 100644 --- a/patches/server/0736-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0737-Prevent-unload-calls-removing-tickets-for-sync-loads.patch b/patches/server/0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch index e2c4416234..e2c4416234 100644 --- a/patches/server/0737-Prevent-unload-calls-removing-tickets-for-sync-loads.patch +++ b/patches/server/0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch diff --git a/patches/server/0738-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0737-Sanitize-ResourceLocation-error-logging.patch index ff7e0b7826..ff7e0b7826 100644 --- a/patches/server/0738-Sanitize-ResourceLocation-error-logging.patch +++ b/patches/server/0737-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0739-Optimise-general-POI-access.patch b/patches/server/0738-Optimise-general-POI-access.patch index 7fa35796de..7fa35796de 100644 --- a/patches/server/0739-Optimise-general-POI-access.patch +++ b/patches/server/0738-Optimise-general-POI-access.patch diff --git a/patches/server/0740-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0739-Allow-controlled-flushing-for-network-manager.patch index 9b061bed55..9b061bed55 100644 --- a/patches/server/0740-Allow-controlled-flushing-for-network-manager.patch +++ b/patches/server/0739-Allow-controlled-flushing-for-network-manager.patch diff --git a/patches/server/0741-Add-more-async-catchers.patch b/patches/server/0740-Add-more-async-catchers.patch index f0813b3370..f0813b3370 100644 --- a/patches/server/0741-Add-more-async-catchers.patch +++ b/patches/server/0740-Add-more-async-catchers.patch diff --git a/patches/server/0742-Rewrite-entity-bounding-box-lookup-calls.patch b/patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch index 0a840e45df..0a840e45df 100644 --- a/patches/server/0742-Rewrite-entity-bounding-box-lookup-calls.patch +++ b/patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch diff --git a/patches/server/0743-Optimise-chunk-tick-iteration.patch b/patches/server/0742-Optimise-chunk-tick-iteration.patch index 4e6d8f0cb1..6d81aa8739 100644 --- a/patches/server/0743-Optimise-chunk-tick-iteration.patch +++ b/patches/server/0742-Optimise-chunk-tick-iteration.patch @@ -70,7 +70,7 @@ index fbfbe9adeca7364e6346c887616890bf968f38a1..bd43fbc8a93afa7604aa467392520ed7 int i = 0; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 33eebcd8f3459fcdc51c0a327563a1abc3c1d432..9b2c5fe2389c6baa239de4f7b479d9ca273e59cf 100644 +index 5d60fa26e9f5d3c9c57a61c509d5b924bbed3281..ef28e0f57ba593265a3eca4d3f21d0b1b51e8740 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -159,6 +159,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0744-Execute-chunk-tasks-mid-tick.patch b/patches/server/0743-Execute-chunk-tasks-mid-tick.patch index 3705f009e8..acf3980fc3 100644 --- a/patches/server/0744-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0743-Execute-chunk-tasks-mid-tick.patch @@ -19,10 +19,10 @@ index b27021a42cbed3f0648a8d0903d00d03922ae221..eada966d7f108a6081be7a848f5c1dfc private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ce40b5999e97b1bc56342876861b5bdad18d6cd6..ee33fd892e97e1ffea259a4f7974675923377d6b 100644 +index 65d5d96a687712d87bbc61d85f80438811bae07d..a279368fe144bd41d15e5fe5e565412f8b4ef9f7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1346,6 +1346,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1344,6 +1344,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa private boolean pollTaskInternal() { if (super.pollTask()) { @@ -30,7 +30,7 @@ index ce40b5999e97b1bc56342876861b5bdad18d6cd6..ee33fd892e97e1ffea259a4f79746759 return true; } else { if (this.haveTime()) { -@@ -2669,4 +2670,74 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2665,4 +2666,74 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } // Paper end diff --git a/patches/server/0745-Do-not-copy-visible-chunks.patch b/patches/server/0744-Do-not-copy-visible-chunks.patch index fdcf7f41ba..6a9cf7d61e 100644 --- a/patches/server/0745-Do-not-copy-visible-chunks.patch +++ b/patches/server/0744-Do-not-copy-visible-chunks.patch @@ -35,7 +35,7 @@ index b3516862d796c2d9fcc1c67a6073445403d73088..b61abf227a04b4565c2525e5f469db30 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 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a53d4ca46 100644 +index ef28e0f57ba593265a3eca4d3f21d0b1b51e8740..f4c1316ae1cadc1a7a7fed16e0e99704662c41e8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -123,9 +123,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -120,7 +120,7 @@ index 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a } } -@@ -873,7 +880,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -873,14 +880,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public boolean hasWork() { @@ -128,17 +128,16 @@ index 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a + return this.lightEngine.hasLightWork() || !this.pendingUnloads.isEmpty() || !this.updatingChunks.getUpdatingValuesCopy().isEmpty() || this.poiManager.hasWork() || !this.toDrop.isEmpty() || !this.unloadQueue.isEmpty() || this.queueSorter.hasWork() || this.distanceManager.hasTickets(); // Paper } - private static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.90; // Spigot // Paper - unload more -@@ -888,7 +895,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - while (longiterator.hasNext()) { // Spigot + private void processUnloads(BooleanSupplier shouldKeepTicking) { + LongIterator longiterator = this.toDrop.iterator(); + for (int i = 0; longiterator.hasNext() && (shouldKeepTicking.getAsBoolean() || i < 200 || this.toDrop.size() > 2000); longiterator.remove()) { long j = longiterator.nextLong(); - longiterator.remove(); // Spigot - ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); + ChunkHolder playerchunk = this.updatingChunks.queueRemove(j); // Paper - Don't copy if (playerchunk != null) { playerchunk.onChunkRemove(); // Paper -@@ -989,7 +996,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -975,7 +982,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (!this.modified) { return false; } else { @@ -152,7 +151,7 @@ index 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a this.modified = false; return true; } -@@ -1479,7 +1491,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1465,7 +1477,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.viewDistance = j; this.distanceManager.updatePlayerTickets(this.viewDistance + 1); @@ -161,7 +160,7 @@ index 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a while (objectiterator.hasNext()) { ChunkHolder playerchunk = (ChunkHolder) objectiterator.next(); -@@ -1522,7 +1534,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1508,7 +1520,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public int size() { @@ -170,7 +169,7 @@ index 9b2c5fe2389c6baa239de4f7b479d9ca273e59cf..c19395ab43b956787bf0e59ae242ff3a } public DistanceManager getDistanceManager() { -@@ -1530,13 +1542,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1516,13 +1528,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected Iterable<ChunkHolder> getChunks() { diff --git a/patches/server/0746-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0745-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index 5459269b64..5459269b64 100644 --- a/patches/server/0746-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/0745-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0747-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0746-Custom-table-implementation-for-blockstate-state-loo.patch index 9b556d7fe8..9b556d7fe8 100644 --- a/patches/server/0747-Custom-table-implementation-for-blockstate-state-loo.patch +++ b/patches/server/0746-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0748-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0747-Detail-more-information-in-watchdog-dumps.patch index 7d2d44d42b..7d2d44d42b 100644 --- a/patches/server/0748-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0747-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/0749-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0748-Manually-inline-methods-in-BlockPosition.patch index 6668339cba..6668339cba 100644 --- a/patches/server/0749-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0748-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0750-Distance-manager-tick-timings.patch b/patches/server/0749-Distance-manager-tick-timings.patch index 69c8bf095e..69c8bf095e 100644 --- a/patches/server/0750-Distance-manager-tick-timings.patch +++ b/patches/server/0749-Distance-manager-tick-timings.patch diff --git a/patches/server/0751-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0750-Name-craft-scheduler-threads-according-to-the-plugin.patch index 7d081ee195..7d081ee195 100644 --- a/patches/server/0751-Name-craft-scheduler-threads-according-to-the-plugin.patch +++ b/patches/server/0750-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0752-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0751-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index c3f6182749..c3f6182749 100644 --- a/patches/server/0752-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0751-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0753-Add-packet-limiter-config.patch b/patches/server/0752-Add-packet-limiter-config.patch index cd072e69e2..cd072e69e2 100644 --- a/patches/server/0753-Add-packet-limiter-config.patch +++ b/patches/server/0752-Add-packet-limiter-config.patch diff --git a/patches/server/0754-Lag-compensate-block-breaking.patch b/patches/server/0753-Lag-compensate-block-breaking.patch index 985f81e240..985f81e240 100644 --- a/patches/server/0754-Lag-compensate-block-breaking.patch +++ b/patches/server/0753-Lag-compensate-block-breaking.patch diff --git a/patches/server/0755-Use-correct-LevelStem-registry-when-loading-default-.patch b/patches/server/0754-Use-correct-LevelStem-registry-when-loading-default-.patch index 53e2e20e8f..9bc3b8153a 100644 --- a/patches/server/0755-Use-correct-LevelStem-registry-when-loading-default-.patch +++ b/patches/server/0754-Use-correct-LevelStem-registry-when-loading-default-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use correct LevelStem registry when loading default diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ee33fd892e97e1ffea259a4f7974675923377d6b..dff3ce704d44d13a250b9a6ae1ec1768e4a8187a 100644 +index a279368fe144bd41d15e5fe5e565412f8b4ef9f7..f877b956859643b4f3d969992f2e515dc490f90c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -565,7 +565,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -563,7 +563,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa long i = generatorsettings.seed(); long j = BiomeManager.obfuscateSeed(i); List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver)); diff --git a/patches/server/0756-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0755-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch index c5bd6526f7..c5bd6526f7 100644 --- a/patches/server/0756-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch +++ b/patches/server/0755-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0757-Consolidate-flush-calls-for-entity-tracker-packets.patch b/patches/server/0756-Consolidate-flush-calls-for-entity-tracker-packets.patch index 4669941fb1..4669941fb1 100644 --- a/patches/server/0757-Consolidate-flush-calls-for-entity-tracker-packets.patch +++ b/patches/server/0756-Consolidate-flush-calls-for-entity-tracker-packets.patch diff --git a/patches/server/0758-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0757-Don-t-lookup-fluid-state-when-raytracing.patch index eef7de0e32..eef7de0e32 100644 --- a/patches/server/0758-Don-t-lookup-fluid-state-when-raytracing.patch +++ b/patches/server/0757-Don-t-lookup-fluid-state-when-raytracing.patch diff --git a/patches/server/0759-Time-scoreboard-search.patch b/patches/server/0758-Time-scoreboard-search.patch index 48469b83af..48469b83af 100644 --- a/patches/server/0759-Time-scoreboard-search.patch +++ b/patches/server/0758-Time-scoreboard-search.patch diff --git a/patches/server/0760-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0759-Send-full-pos-packets-for-hard-colliding-entities.patch index d9e0872338..d9e0872338 100644 --- a/patches/server/0760-Send-full-pos-packets-for-hard-colliding-entities.patch +++ b/patches/server/0759-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0761-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0760-Do-not-run-raytrace-logic-for-AIR.patch index baedf55a9d..baedf55a9d 100644 --- a/patches/server/0761-Do-not-run-raytrace-logic-for-AIR.patch +++ b/patches/server/0760-Do-not-run-raytrace-logic-for-AIR.patch diff --git a/patches/server/0762-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0761-Oprimise-map-impl-for-tracked-players.patch index 7ee2e496b9..91de4460ec 100644 --- a/patches/server/0762-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0761-Oprimise-map-impl-for-tracked-players.patch @@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c19395ab43b956787bf0e59ae242ff3a53d4ca46..af9b1fe737ab430861b4d0de33eec1325964c3a5 100644 +index f4c1316ae1cadc1a7a7fed16e0e99704662c41e8..b0aaeb601c8d9df50bf612985bbcbef8a082551f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -110,6 +110,7 @@ import org.apache.commons.lang3.mutable.MutableObject; @@ -18,7 +18,7 @@ index c19395ab43b956787bf0e59ae242ff3a53d4ca46..af9b1fe737ab430861b4d0de33eec132 public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider { -@@ -2169,7 +2170,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2155,7 +2156,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final Entity entity; private final int range; SectionPos lastSectionPos; diff --git a/patches/server/0763-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0762-Optimise-BlockSoil-nearby-water-lookup.patch index f3fe0f0f17..f3fe0f0f17 100644 --- a/patches/server/0763-Optimise-BlockSoil-nearby-water-lookup.patch +++ b/patches/server/0762-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0764-Allow-removal-addition-of-entities-to-entity-ticklis.patch b/patches/server/0763-Allow-removal-addition-of-entities-to-entity-ticklis.patch index d68c8524e7..d68c8524e7 100644 --- a/patches/server/0764-Allow-removal-addition-of-entities-to-entity-ticklis.patch +++ b/patches/server/0763-Allow-removal-addition-of-entities-to-entity-ticklis.patch diff --git a/patches/server/0765-Optimise-random-block-ticking.patch b/patches/server/0764-Optimise-random-block-ticking.patch index 1d0d60fbe6..1d0d60fbe6 100644 --- a/patches/server/0765-Optimise-random-block-ticking.patch +++ b/patches/server/0764-Optimise-random-block-ticking.patch diff --git a/patches/server/0766-Optimise-non-flush-packet-sending.patch b/patches/server/0765-Optimise-non-flush-packet-sending.patch index f4d6e1b6b4..f4d6e1b6b4 100644 --- a/patches/server/0766-Optimise-non-flush-packet-sending.patch +++ b/patches/server/0765-Optimise-non-flush-packet-sending.patch diff --git a/patches/server/0767-Optimise-nearby-player-lookups.patch b/patches/server/0766-Optimise-nearby-player-lookups.patch index 6f6a160a7e..ac5756d263 100644 --- a/patches/server/0767-Optimise-nearby-player-lookups.patch +++ b/patches/server/0766-Optimise-nearby-player-lookups.patch @@ -39,7 +39,7 @@ index bd43fbc8a93afa7604aa467392520ed7b30a1d83..1a7fc533afced7235162f81b2de8148c // Paper end - optimise anyPlayerCloseEnoughForSpawning long lastAutoSaveTime; // Paper - incremental autosave diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index af9b1fe737ab430861b4d0de33eec1325964c3a5..43373e6bbe20e467043e750e0d7a11cd5a0ea1bc 100644 +index b0aaeb601c8d9df50bf612985bbcbef8a082551f..bc6a4bfe7df804ee22791fb767f059a541a3900f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -164,6 +164,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0768-Optimise-WorldServer-notify.patch b/patches/server/0767-Optimise-WorldServer-notify.patch index a84a979c64..dfd4370097 100644 --- a/patches/server/0768-Optimise-WorldServer-notify.patch +++ b/patches/server/0767-Optimise-WorldServer-notify.patch @@ -8,7 +8,7 @@ Instead, only iterate over navigators in the current region that are eligible for repathing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 43373e6bbe20e467043e750e0d7a11cd5a0ea1bc..952286cca1ce9e893f4a9e5939c552efe975abb4 100644 +index bc6a4bfe7df804ee22791fb767f059a541a3900f..a578ff8a88ef944516150303e96f8b49bc797f64 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -301,15 +301,81 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -110,7 +110,7 @@ index 43373e6bbe20e467043e750e0d7a11cd5a0ea1bc..952286cca1ce9e893f4a9e5939c552ef } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ea665ae89b0963e5605ff0bc87f906fdddeb2c9a..ca9c43f48ab269430accbefe0ed470bc62efade9 100644 +index 3d4671dfa6ab878aa0fd076797de482fa8cb9b51..0a11eeaefe39d637fe2f9243b0f8a4b2d9734446 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1096,6 +1096,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -121,7 +121,7 @@ index ea665ae89b0963e5605ff0bc87f906fdddeb2c9a..ca9c43f48ab269430accbefe0ed470bc try { if (currentlyTickingEntity.get() == null) { currentlyTickingEntity.lazySet(entity); -@@ -1548,9 +1549,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1551,9 +1552,18 @@ public class ServerLevel extends Level implements WorldGenLevel { if (Shapes.joinIsNotEmpty(voxelshape, voxelshape1, BooleanOp.NOT_SAME)) { List<PathNavigation> list = new ObjectArrayList(); @@ -142,7 +142,7 @@ index ea665ae89b0963e5605ff0bc87f906fdddeb2c9a..ca9c43f48ab269430accbefe0ed470bc // CraftBukkit start - fix SPIGOT-6362 Mob entityinsentient; try { -@@ -1572,16 +1582,23 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1575,16 +1585,23 @@ public class ServerLevel extends Level implements WorldGenLevel { try { this.isUpdatingNavigations = true; @@ -169,7 +169,7 @@ index ea665ae89b0963e5605ff0bc87f906fdddeb2c9a..ca9c43f48ab269430accbefe0ed470bc } } // Paper -@@ -2381,10 +2398,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2384,10 +2401,12 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTickingStart(Entity entity) { ServerLevel.this.entityTickList.add(entity); diff --git a/patches/server/0769-Remove-streams-for-villager-AI.patch b/patches/server/0768-Remove-streams-for-villager-AI.patch index 8257c2de40..8257c2de40 100644 --- a/patches/server/0769-Remove-streams-for-villager-AI.patch +++ b/patches/server/0768-Remove-streams-for-villager-AI.patch diff --git a/patches/server/0770-Rewrite-dataconverter-system.patch b/patches/server/0769-Rewrite-dataconverter-system.patch index 89bdb29386..89bdb29386 100644 --- a/patches/server/0770-Rewrite-dataconverter-system.patch +++ b/patches/server/0769-Rewrite-dataconverter-system.patch diff --git a/patches/server/0771-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0770-Use-Velocity-compression-and-cipher-natives.patch index cb29c8b7b1..cb29c8b7b1 100644 --- a/patches/server/0771-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0770-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/0772-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0771-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch index 5103d7a24c..5103d7a24c 100644 --- a/patches/server/0772-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch +++ b/patches/server/0771-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch diff --git a/patches/server/0773-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch b/patches/server/0772-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch index 5c0a433617..5c0a433617 100644 --- a/patches/server/0773-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch +++ b/patches/server/0772-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch diff --git a/patches/server/0774-Async-catch-modifications-to-critical-entity-state.patch b/patches/server/0773-Async-catch-modifications-to-critical-entity-state.patch index 305329fc53..305329fc53 100644 --- a/patches/server/0774-Async-catch-modifications-to-critical-entity-state.patch +++ b/patches/server/0773-Async-catch-modifications-to-critical-entity-state.patch diff --git a/patches/server/0775-Fix-Bukkit-NamespacedKey-shenanigans.patch b/patches/server/0774-Fix-Bukkit-NamespacedKey-shenanigans.patch index 8f152dd0e7..8f152dd0e7 100644 --- a/patches/server/0775-Fix-Bukkit-NamespacedKey-shenanigans.patch +++ b/patches/server/0774-Fix-Bukkit-NamespacedKey-shenanigans.patch diff --git a/patches/server/0776-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0775-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 52fbf4f871..cbc189593a 100644 --- a/patches/server/0776-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0775-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ca9c43f48ab269430accbefe0ed470bc62efade9..2187331d2f3c4f14281dde6f01422fc4d5458e0e 100644 +index 0a11eeaefe39d637fe2f9243b0f8a4b2d9734446..1e2c430a8df6afde91e3c5169d2d7b501acdec7f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2482,6 +2482,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2485,6 +2485,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0777-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0776-Check-requirement-before-suggesting-root-nodes.patch index da19d3f1ca..da19d3f1ca 100644 --- a/patches/server/0777-Check-requirement-before-suggesting-root-nodes.patch +++ b/patches/server/0776-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0778-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0777-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index 5f48d6b3b1..5f48d6b3b1 100644 --- a/patches/server/0778-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0777-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0779-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0778-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch index 31e987614a..31e987614a 100644 --- a/patches/server/0779-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch +++ b/patches/server/0778-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0780-Ensure-valid-vehicle-status.patch b/patches/server/0779-Ensure-valid-vehicle-status.patch index 5715c2ca86..5715c2ca86 100644 --- a/patches/server/0780-Ensure-valid-vehicle-status.patch +++ b/patches/server/0779-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0781-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0780-Prevent-softlocked-end-exit-portal-generation.patch index 855c2ec833..855c2ec833 100644 --- a/patches/server/0781-Prevent-softlocked-end-exit-portal-generation.patch +++ b/patches/server/0780-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0782-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0781-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch index 2ce994e362..2ce994e362 100644 --- a/patches/server/0782-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch +++ b/patches/server/0781-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0783-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0782-Don-t-log-debug-logging-being-disabled.patch index 5bec880eb8..5bec880eb8 100644 --- a/patches/server/0783-Don-t-log-debug-logging-being-disabled.patch +++ b/patches/server/0782-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0784-Mark-fish-and-axolotls-from-buckets-as-persistent.patch b/patches/server/0783-Mark-fish-and-axolotls-from-buckets-as-persistent.patch index a29e839964..a29e839964 100644 --- a/patches/server/0784-Mark-fish-and-axolotls-from-buckets-as-persistent.patch +++ b/patches/server/0783-Mark-fish-and-axolotls-from-buckets-as-persistent.patch diff --git a/patches/server/0785-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0784-fix-various-menus-with-empty-level-accesses.patch index 3bda24b9c6..3bda24b9c6 100644 --- a/patches/server/0785-fix-various-menus-with-empty-level-accesses.patch +++ b/patches/server/0784-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0786-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch b/patches/server/0785-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch index dad671a3bd..6e988a6c7e 100644 --- a/patches/server/0786-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch +++ b/patches/server/0785-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch @@ -12,7 +12,7 @@ time to save, as flush saving performs a full flush at the end anyways. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 952286cca1ce9e893f4a9e5939c552efe975abb4..9ba13ee1df980b9bd5318cefeb3412a8923b66a3 100644 +index a578ff8a88ef944516150303e96f8b49bc797f64..9999f9743184ba929635d625c60836c046ededd4 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -928,6 +928,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0787-Preserve-overstacked-loot.patch b/patches/server/0786-Preserve-overstacked-loot.patch index 57bfd046f8..57bfd046f8 100644 --- a/patches/server/0787-Preserve-overstacked-loot.patch +++ b/patches/server/0786-Preserve-overstacked-loot.patch diff --git a/patches/server/0788-Update-head-rotation-in-missing-places.patch b/patches/server/0787-Update-head-rotation-in-missing-places.patch index 2dd4efaae9..2dd4efaae9 100644 --- a/patches/server/0788-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0787-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0789-prevent-unintended-light-block-manipulation.patch b/patches/server/0788-prevent-unintended-light-block-manipulation.patch index 08bd6164f5..08bd6164f5 100644 --- a/patches/server/0789-prevent-unintended-light-block-manipulation.patch +++ b/patches/server/0788-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0790-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch b/patches/server/0789-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch index 89603862f0..89603862f0 100644 --- a/patches/server/0790-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch +++ b/patches/server/0789-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch diff --git a/patches/server/0791-Fix-CraftCriteria-defaults-map.patch b/patches/server/0790-Fix-CraftCriteria-defaults-map.patch index 11fce3ca24..11fce3ca24 100644 --- a/patches/server/0791-Fix-CraftCriteria-defaults-map.patch +++ b/patches/server/0790-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0792-Fix-upstreams-block-state-factories.patch b/patches/server/0791-Fix-upstreams-block-state-factories.patch index 4a88c25608..4a88c25608 100644 --- a/patches/server/0792-Fix-upstreams-block-state-factories.patch +++ b/patches/server/0791-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0793-Add-config-option-for-logging-player-ip-addresses.patch b/patches/server/0792-Add-config-option-for-logging-player-ip-addresses.patch index dab95bb75b..dab95bb75b 100644 --- a/patches/server/0793-Add-config-option-for-logging-player-ip-addresses.patch +++ b/patches/server/0792-Add-config-option-for-logging-player-ip-addresses.patch diff --git a/patches/server/0794-Configurable-feature-seeds.patch b/patches/server/0793-Configurable-feature-seeds.patch index 31778d1a17..31778d1a17 100644 --- a/patches/server/0794-Configurable-feature-seeds.patch +++ b/patches/server/0793-Configurable-feature-seeds.patch diff --git a/patches/server/0795-VanillaCommandWrapper-didnt-account-for-entity-sende.patch b/patches/server/0794-VanillaCommandWrapper-didnt-account-for-entity-sende.patch index 6e33709dbe..6e33709dbe 100644 --- a/patches/server/0795-VanillaCommandWrapper-didnt-account-for-entity-sende.patch +++ b/patches/server/0794-VanillaCommandWrapper-didnt-account-for-entity-sende.patch diff --git a/patches/server/0796-Add-root-admin-user-detection.patch b/patches/server/0795-Add-root-admin-user-detection.patch index 86c355de50..86c355de50 100644 --- a/patches/server/0796-Add-root-admin-user-detection.patch +++ b/patches/server/0795-Add-root-admin-user-detection.patch diff --git a/patches/server/0797-Always-allow-item-changing-in-Fireball.patch b/patches/server/0796-Always-allow-item-changing-in-Fireball.patch index fe4cbf2ef1..fe4cbf2ef1 100644 --- a/patches/server/0797-Always-allow-item-changing-in-Fireball.patch +++ b/patches/server/0796-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0798-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0797-don-t-attempt-to-teleport-dead-entities.patch index 0d78c1bee5..0d78c1bee5 100644 --- a/patches/server/0798-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0797-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0799-Fix-anvil-prepare-event-not-working-with-zero-xp.patch b/patches/server/0798-Fix-anvil-prepare-event-not-working-with-zero-xp.patch index efa5aa2399..efa5aa2399 100644 --- a/patches/server/0799-Fix-anvil-prepare-event-not-working-with-zero-xp.patch +++ b/patches/server/0798-Fix-anvil-prepare-event-not-working-with-zero-xp.patch diff --git a/patches/server/0800-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0799-Prevent-excessive-velocity-through-repeated-crits.patch index 4304993831..4304993831 100644 --- a/patches/server/0800-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0799-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0801-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0800-Remove-client-side-code-using-deprecated-for-removal.patch index a11975f1ad..a11975f1ad 100644 --- a/patches/server/0801-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0800-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0802-Rewrite-the-light-engine.patch b/patches/server/0801-Rewrite-the-light-engine.patch index f0e4f7552d..e0442546ff 100644 --- a/patches/server/0802-Rewrite-the-light-engine.patch +++ b/patches/server/0801-Rewrite-the-light-engine.patch @@ -4432,7 +4432,7 @@ index 1a7fc533afced7235162f81b2de8148cef05414a..36b6e7295cf7484675c8c2b9624c1f6f private final DebugBuffer<ChunkHolder.ChunkSaveDebug> chunkToSaveHistory; public int oldTicketLevel; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9ba13ee1df980b9bd5318cefeb3412a8923b66a3..78aab9174f8359ffc38fb5a79930e541b5cd419e 100644 +index 9999f9743184ba929635d625c60836c046ededd4..727ee42ec573fd1d008f526f49d0e63396ef0a9d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -133,7 +133,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0803-Always-parse-protochunk-light-sources-unless-it-is-m.patch b/patches/server/0802-Always-parse-protochunk-light-sources-unless-it-is-m.patch index a1b655d7c1..a1b655d7c1 100644 --- a/patches/server/0803-Always-parse-protochunk-light-sources-unless-it-is-m.patch +++ b/patches/server/0802-Always-parse-protochunk-light-sources-unless-it-is-m.patch diff --git a/patches/server/0804-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0803-Fix-removing-recipes-from-RecipeIterator.patch index 5784fd4dc3..5784fd4dc3 100644 --- a/patches/server/0804-Fix-removing-recipes-from-RecipeIterator.patch +++ b/patches/server/0803-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0805-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0804-Prevent-sending-oversized-item-data-in-equipment-and.patch index e35fbc79b1..e35fbc79b1 100644 --- a/patches/server/0805-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0804-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0806-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0805-Hide-unnecessary-itemmeta-from-clients.patch index 7290d9ffe1..7290d9ffe1 100644 --- a/patches/server/0806-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0805-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0807-Fix-kelp-modifier-changing-growth-for-other-crops.patch b/patches/server/0806-Fix-kelp-modifier-changing-growth-for-other-crops.patch index da0f208d4e..da0f208d4e 100644 --- a/patches/server/0807-Fix-kelp-modifier-changing-growth-for-other-crops.patch +++ b/patches/server/0806-Fix-kelp-modifier-changing-growth-for-other-crops.patch diff --git a/patches/server/0808-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0807-Prevent-ContainerOpenersCounter-openCount-from-going.patch index 0e41fd2743..0e41fd2743 100644 --- a/patches/server/0808-Prevent-ContainerOpenersCounter-openCount-from-going.patch +++ b/patches/server/0807-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0809-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0808-Add-PlayerItemFrameChangeEvent.patch index 464f2144c1..464f2144c1 100644 --- a/patches/server/0809-Add-PlayerItemFrameChangeEvent.patch +++ b/patches/server/0808-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0810-Add-player-health-update-API.patch b/patches/server/0809-Add-player-health-update-API.patch index 9f6cac922a..9f6cac922a 100644 --- a/patches/server/0810-Add-player-health-update-API.patch +++ b/patches/server/0809-Add-player-health-update-API.patch diff --git a/patches/server/0811-Optimize-HashMapPalette.patch b/patches/server/0810-Optimize-HashMapPalette.patch index ef1880895f..ef1880895f 100644 --- a/patches/server/0811-Optimize-HashMapPalette.patch +++ b/patches/server/0810-Optimize-HashMapPalette.patch diff --git a/patches/server/0812-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0811-Allow-delegation-to-vanilla-chunk-gen.patch index 13bdd0f1d7..13bdd0f1d7 100644 --- a/patches/server/0812-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0811-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0813-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0812-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch index 99a5334c59..99a5334c59 100644 --- a/patches/server/0813-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch +++ b/patches/server/0812-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch diff --git a/patches/server/0814-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0813-Optimise-collision-checking-in-player-move-packet-ha.patch index f33b2ef6aa..f33b2ef6aa 100644 --- a/patches/server/0814-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0813-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/0815-Actually-unload-POI-data.patch b/patches/server/0814-Actually-unload-POI-data.patch index b23193ed6b..8a61aa29f6 100644 --- a/patches/server/0815-Actually-unload-POI-data.patch +++ b/patches/server/0814-Actually-unload-POI-data.patch @@ -10,7 +10,7 @@ This patch also prevents the saving/unloading of POI data when world saving is disabled. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 78aab9174f8359ffc38fb5a79930e541b5cd419e..a29b97f941eadb1ede5db805d32f2917469cccb9 100644 +index 727ee42ec573fd1d008f526f49d0e63396ef0a9d..0e6bc8f7b31581fe0e7adb13119b30295aeac48d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -848,6 +848,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -21,16 +21,16 @@ index 78aab9174f8359ffc38fb5a79930e541b5cd419e..a29b97f941eadb1ede5db805d32f2917 this.updatingChunks.queueUpdate(pos, holder); // Paper - Don't copy this.modified = true; -@@ -997,7 +998,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - return this.lightEngine.hasLightWork() || !this.pendingUnloads.isEmpty() || !this.updatingChunks.getUpdatingValuesCopy().isEmpty() || this.poiManager.hasWork() || !this.toDrop.isEmpty() || !this.unloadQueue.isEmpty() || this.queueSorter.hasWork() || this.distanceManager.hasTickets(); // Paper - } - -- private static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.90; // Spigot // Paper - unload more -+ public static final double UNLOAD_QUEUE_RESIZE_FACTOR = 0.90; // Spigot // Paper - unload more +@@ -999,7 +1000,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private void processUnloads(BooleanSupplier shouldKeepTicking) { LongIterator longiterator = this.toDrop.iterator(); -@@ -1061,6 +1062,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +- for (int i = 0; longiterator.hasNext() && (shouldKeepTicking.getAsBoolean() || i < 200 || this.toDrop.size() > 2000); longiterator.remove()) { ++ for (int i = 0; longiterator.hasNext() && (shouldKeepTicking.getAsBoolean() || i < 200 || this.toDrop.size() > 2000); longiterator.remove()) { // Paper - diff on change + long j = longiterator.nextLong(); + ChunkHolder playerchunk = this.updatingChunks.queueRemove(j); // Paper - Don't copy + +@@ -1047,6 +1048,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.regionManagers.get(index).removeChunk(holder.pos.x, holder.pos.z); } // Paper end @@ -38,7 +38,7 @@ index 78aab9174f8359ffc38fb5a79930e541b5cd419e..a29b97f941eadb1ede5db805d32f2917 if (ichunkaccess instanceof LevelChunk) { ((LevelChunk) ichunkaccess).setLoaded(false); } -@@ -1090,6 +1092,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1076,6 +1078,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider for (int index = 0, len = this.regionManagers.size(); index < len; ++index) { this.regionManagers.get(index).removeChunk(holder.pos.x, holder.pos.z); } @@ -46,7 +46,7 @@ index 78aab9174f8359ffc38fb5a79930e541b5cd419e..a29b97f941eadb1ede5db805d32f2917 } // Paper end } finally { this.unloadingPlayerChunk = unloadingBefore; } // Paper - do not allow ticket level changes while unloading chunks -@@ -1166,6 +1169,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1152,6 +1155,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } this.poiManager.loadInData(pos, chunkHolder.poiData); chunkHolder.tasks.forEach(Runnable::run); @@ -55,7 +55,7 @@ index 78aab9174f8359ffc38fb5a79930e541b5cd419e..a29b97f941eadb1ede5db805d32f2917 if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.level.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java -index 8a569e3300543cb171c3befae59969628adc424c..bbd9fdaa4b12543307b144da72b0604eae638cbb 100644 +index 8a569e3300543cb171c3befae59969628adc424c..54013682ee07cfe34f47070b6460c21ff420130f 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java @@ -1,5 +1,6 @@ @@ -169,9 +169,9 @@ index 8a569e3300543cb171c3befae59969628adc424c..bbd9fdaa4b12543307b144da72b0604e + net.minecraft.server.level.ServerChunkCache chunkProvider = this.world.getChunkSource(); + net.minecraft.server.level.ChunkMap playerChunkMap = chunkProvider.chunkMap; + // copied target determination from PlayerChunkMap -+ int target = Math.min(this.queuedUnloads.size() - 100, (int) (this.queuedUnloads.size() * net.minecraft.server.level.ChunkMap.UNLOAD_QUEUE_RESIZE_FACTOR)); // Paper - Make more aggressive -+ for (java.util.Iterator<QueuedUnload> iterator = this.queuedUnloads.iterator(); -+ iterator.hasNext() && (this.queuedUnloads.size() > target || canSleepForTick.getAsBoolean());) { ++ ++ java.util.Iterator<QueuedUnload> iterator = this.queuedUnloads.iterator(); ++ for (int i = 0; iterator.hasNext() && (i < 200 || this.queuedUnloads.size() > 2000 || canSleepForTick.getAsBoolean()); i++) { + QueuedUnload unload = iterator.next(); + if (unload.unloadTick > currentTick) { + break; diff --git a/patches/server/0816-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch index c03eefb28c..c03eefb28c 100644 --- a/patches/server/0816-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch +++ b/patches/server/0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0817-Update-Log4j.patch b/patches/server/0816-Update-Log4j.patch index 1b301675ed..1b301675ed 100644 --- a/patches/server/0817-Update-Log4j.patch +++ b/patches/server/0816-Update-Log4j.patch diff --git a/patches/server/0818-Add-more-Campfire-API.patch b/patches/server/0817-Add-more-Campfire-API.patch index 75cef9d65b..75cef9d65b 100644 --- a/patches/server/0818-Add-more-Campfire-API.patch +++ b/patches/server/0817-Add-more-Campfire-API.patch diff --git a/patches/server/0819-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index 324e828c7c..324e828c7c 100644 --- a/patches/server/0819-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0820-Fix-tripwire-state-inconsistency.patch b/patches/server/0819-Fix-tripwire-state-inconsistency.patch index ef3e8540d4..ef3e8540d4 100644 --- a/patches/server/0820-Fix-tripwire-state-inconsistency.patch +++ b/patches/server/0819-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0821-Fix-fluid-logging-on-Block-breakNaturally.patch b/patches/server/0820-Fix-fluid-logging-on-Block-breakNaturally.patch index 3d1428bea5..b87c2849f5 100644 --- a/patches/server/0821-Fix-fluid-logging-on-Block-breakNaturally.patch +++ b/patches/server/0820-Fix-fluid-logging-on-Block-breakNaturally.patch @@ -7,10 +7,10 @@ Leaves fluid if the block broken was fluid-logged which is what happens if a player breaks a fluid-logged block diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 88c8817a85546ff92424b1164abcd74a15ff0917..c18edb2c0680a336f11fab30d1d985192dc1393e 100644 +index 0b2e33fb16f832e0ddfe5e39a8a16caf98521098..68eaae018646c541c8553ded80c5cafdfc5ae63f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -508,6 +508,7 @@ public class CraftBlock implements Block { +@@ -515,6 +515,7 @@ public class CraftBlock implements Block { net.minecraft.world.level.block.state.BlockState iblockdata = this.getNMS(); net.minecraft.world.level.block.Block block = iblockdata.getBlock(); net.minecraft.world.item.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); @@ -18,7 +18,7 @@ index 88c8817a85546ff92424b1164abcd74a15ff0917..c18edb2c0680a336f11fab30d1d98519 boolean result = false; // Modelled off EntityHuman#hasBlock -@@ -518,7 +519,7 @@ public class CraftBlock implements Block { +@@ -525,7 +526,7 @@ public class CraftBlock implements Block { } // SPIGOT-6778: Directly call setBlock instead of setTypeAndData, so that the tile entiy is not removed and custom remove logic is run. diff --git a/patches/server/0822-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0821-Forward-CraftEntity-in-teleport-command.patch index 9eec59ce99..9eec59ce99 100644 --- a/patches/server/0822-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0821-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0823-Improve-scoreboard-entries.patch b/patches/server/0822-Improve-scoreboard-entries.patch index ee3bcefafe..ee3bcefafe 100644 --- a/patches/server/0823-Improve-scoreboard-entries.patch +++ b/patches/server/0822-Improve-scoreboard-entries.patch diff --git a/patches/server/0824-Entity-powdered-snow-API.patch b/patches/server/0823-Entity-powdered-snow-API.patch index 7df19b80b9..7df19b80b9 100644 --- a/patches/server/0824-Entity-powdered-snow-API.patch +++ b/patches/server/0823-Entity-powdered-snow-API.patch diff --git a/patches/server/0825-Add-API-for-item-entity-health.patch b/patches/server/0824-Add-API-for-item-entity-health.patch index c475b8fda1..d923270a18 100644 --- a/patches/server/0825-Add-API-for-item-entity-health.patch +++ b/patches/server/0824-Add-API-for-item-entity-health.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add API for item entity health diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index 342345eb04d00efb58392ccf209e3c51c1064173..8d56f0ab748373e55c0166b92382c126fe8e5381 100644 +index 1d90219c3a0e86786a9497d4c078c2d4077ab6cd..fea44ba6a6584b4a510af6a58cab07eecec6b68b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -@@ -85,6 +85,21 @@ public class CraftItem extends CraftEntity implements Item { +@@ -102,6 +102,21 @@ public class CraftItem extends CraftEntity implements Item { public void setWillAge(boolean willAge) { item.age = willAge ? 0 : NO_AGE_TIME; } diff --git a/patches/server/0826-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0825-Fix-entity-type-tags-suggestions-in-selectors.patch index d3dad4267f..d3dad4267f 100644 --- a/patches/server/0826-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0825-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0827-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0826-Configurable-max-block-light-for-monster-spawning.patch index 9adc6a2a1c..9adc6a2a1c 100644 --- a/patches/server/0827-Configurable-max-block-light-for-monster-spawning.patch +++ b/patches/server/0826-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0828-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index 8ed1ba062d..8ed1ba062d 100644 --- a/patches/server/0828-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0829-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0828-Load-effect-amplifiers-greater-than-127-correctly.patch index 83f5b4740d..83f5b4740d 100644 --- a/patches/server/0829-Load-effect-amplifiers-greater-than-127-correctly.patch +++ b/patches/server/0828-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0830-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch index 9f3ee548ee..9f3ee548ee 100644 --- a/patches/server/0830-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch +++ b/patches/server/0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0831-Fix-bees-aging-inside-hives.patch b/patches/server/0830-Fix-bees-aging-inside-hives.patch index c9303da67b..c9303da67b 100644 --- a/patches/server/0831-Fix-bees-aging-inside-hives.patch +++ b/patches/server/0830-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0832-Bucketable-API.patch b/patches/server/0831-Bucketable-API.patch index ff1194970a..ff1194970a 100644 --- a/patches/server/0832-Bucketable-API.patch +++ b/patches/server/0831-Bucketable-API.patch diff --git a/patches/server/0833-Check-player-world-in-endPortalSoundRadius.patch b/patches/server/0832-Check-player-world-in-endPortalSoundRadius.patch index a632d3d594..a632d3d594 100644 --- a/patches/server/0833-Check-player-world-in-endPortalSoundRadius.patch +++ b/patches/server/0832-Check-player-world-in-endPortalSoundRadius.patch diff --git a/patches/server/0834-Validate-usernames.patch b/patches/server/0833-Validate-usernames.patch index 91f5741e38..91f5741e38 100644 --- a/patches/server/0834-Validate-usernames.patch +++ b/patches/server/0833-Validate-usernames.patch diff --git a/patches/server/0835-Fix-saving-configs-with-more-long-comments.patch b/patches/server/0834-Fix-saving-configs-with-more-long-comments.patch index 7d52b01085..7d52b01085 100644 --- a/patches/server/0835-Fix-saving-configs-with-more-long-comments.patch +++ b/patches/server/0834-Fix-saving-configs-with-more-long-comments.patch diff --git a/patches/server/0836-Make-water-animal-spawn-height-configurable.patch b/patches/server/0835-Make-water-animal-spawn-height-configurable.patch index 39b751fcef..39b751fcef 100644 --- a/patches/server/0836-Make-water-animal-spawn-height-configurable.patch +++ b/patches/server/0835-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0837-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index ba7ebe0dba..9f61505995 100644 --- a/patches/server/0837-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index dff3ce704d44d13a250b9a6ae1ec1768e4a8187a..4eafa147edad4fe66fb419635c320a01186e7fea 100644 +index f877b956859643b4f3d969992f2e515dc490f90c..88db383a1527301332e8a047066afa5ed827db32 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -584,7 +584,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -582,7 +582,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa chunkgenerator = worlddimension.generator(); } diff --git a/patches/server/0838-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0837-Add-config-option-for-worlds-affected-by-time-cmd.patch index 46c8e7935a..46c8e7935a 100644 --- a/patches/server/0838-Add-config-option-for-worlds-affected-by-time-cmd.patch +++ b/patches/server/0837-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0839-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0838-Add-new-overload-to-PersistentDataContainer-has.patch index d19f7179e1..d19f7179e1 100644 --- a/patches/server/0839-Add-new-overload-to-PersistentDataContainer-has.patch +++ b/patches/server/0838-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/server/0840-Multiple-Entries-with-Scoreboards.patch b/patches/server/0839-Multiple-Entries-with-Scoreboards.patch index 2f9e8e9118..2f9e8e9118 100644 --- a/patches/server/0840-Multiple-Entries-with-Scoreboards.patch +++ b/patches/server/0839-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0841-Reset-placed-block-on-exception.patch b/patches/server/0840-Reset-placed-block-on-exception.patch index 7666ecdfe1..7666ecdfe1 100644 --- a/patches/server/0841-Reset-placed-block-on-exception.patch +++ b/patches/server/0840-Reset-placed-block-on-exception.patch diff --git a/patches/server/0842-Add-configurable-height-for-slime-spawn.patch b/patches/server/0841-Add-configurable-height-for-slime-spawn.patch index 0e03810577..0e03810577 100644 --- a/patches/server/0842-Add-configurable-height-for-slime-spawn.patch +++ b/patches/server/0841-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0843-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0842-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index a834180d50..a834180d50 100644 --- a/patches/server/0843-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0842-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/server/0844-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0843-Fix-xp-reward-for-baby-zombies.patch index 0c5733a372..0c5733a372 100644 --- a/patches/server/0844-Fix-xp-reward-for-baby-zombies.patch +++ b/patches/server/0843-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0845-Kick-on-main-for-illegal-chars.patch b/patches/server/0844-Kick-on-main-for-illegal-chars.patch index f5c7e34afc..f5c7e34afc 100644 --- a/patches/server/0845-Kick-on-main-for-illegal-chars.patch +++ b/patches/server/0844-Kick-on-main-for-illegal-chars.patch diff --git a/patches/server/0846-Multi-Block-Change-API-Implementation.patch b/patches/server/0845-Multi-Block-Change-API-Implementation.patch index 97bf93afe6..97bf93afe6 100644 --- a/patches/server/0846-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0845-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0847-Fix-NotePlayEvent.patch b/patches/server/0846-Fix-NotePlayEvent.patch index 3d7aa4d732..3d7aa4d732 100644 --- a/patches/server/0847-Fix-NotePlayEvent.patch +++ b/patches/server/0846-Fix-NotePlayEvent.patch diff --git a/patches/server/0848-Freeze-Tick-Lock-API.patch b/patches/server/0847-Freeze-Tick-Lock-API.patch index e3599f4743..e3599f4743 100644 --- a/patches/server/0848-Freeze-Tick-Lock-API.patch +++ b/patches/server/0847-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0849-Dolphin-API.patch b/patches/server/0848-Dolphin-API.patch index 4bb12a6785..4bb12a6785 100644 --- a/patches/server/0849-Dolphin-API.patch +++ b/patches/server/0848-Dolphin-API.patch diff --git a/patches/server/0850-More-PotionEffectType-API.patch b/patches/server/0849-More-PotionEffectType-API.patch index 14fb482187..14fb482187 100644 --- a/patches/server/0850-More-PotionEffectType-API.patch +++ b/patches/server/0849-More-PotionEffectType-API.patch diff --git a/patches/server/0851-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0850-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch index 3b79f9947c..3b79f9947c 100644 --- a/patches/server/0851-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch +++ b/patches/server/0850-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0852-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0851-API-for-creating-command-sender-which-forwards-feedb.patch index aa0eae89a4..aa0eae89a4 100644 --- a/patches/server/0852-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0851-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0853-Add-config-for-stronghold-seed.patch b/patches/server/0852-Add-config-for-stronghold-seed.patch index 97945d92cf..97945d92cf 100644 --- a/patches/server/0853-Add-config-for-stronghold-seed.patch +++ b/patches/server/0852-Add-config-for-stronghold-seed.patch diff --git a/patches/server/0854-Implement-regenerateChunk.patch b/patches/server/0853-Implement-regenerateChunk.patch index 21a5aa32b4..21a5aa32b4 100644 --- a/patches/server/0854-Implement-regenerateChunk.patch +++ b/patches/server/0853-Implement-regenerateChunk.patch diff --git a/patches/server/0855-Log-exceptions-thrown-during-chat-processing.patch b/patches/server/0854-Log-exceptions-thrown-during-chat-processing.patch index 76bdbcdd9c..76bdbcdd9c 100644 --- a/patches/server/0855-Log-exceptions-thrown-during-chat-processing.patch +++ b/patches/server/0854-Log-exceptions-thrown-during-chat-processing.patch diff --git a/patches/server/0856-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0855-Fix-cancelled-powdered-snow-bucket-placement.patch index 9a95fdb1d3..9a95fdb1d3 100644 --- a/patches/server/0856-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0855-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0857-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0856-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 82fcd35c3f..82fcd35c3f 100644 --- a/patches/server/0857-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0856-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0858-Add-GameEvent-tags.patch b/patches/server/0857-Add-GameEvent-tags.patch index ad8dc46e85..ad8dc46e85 100644 --- a/patches/server/0858-Add-GameEvent-tags.patch +++ b/patches/server/0857-Add-GameEvent-tags.patch diff --git a/patches/server/0859-Replace-player-chunk-loader-system.patch b/patches/server/0858-Replace-player-chunk-loader-system.patch index 291f0bb8be..a23dcdd0a8 100644 --- a/patches/server/0859-Replace-player-chunk-loader-system.patch +++ b/patches/server/0858-Replace-player-chunk-loader-system.patch @@ -1381,7 +1381,7 @@ index 36b6e7295cf7484675c8c2b9624c1f6fea7aed1d..38db3905f47fefb5c958fa24aef2313e 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 a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993e65b2ad0 100644 +index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb821af528f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -217,6 +217,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -1434,7 +1434,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 } // Paper end // Paper start -@@ -1435,11 +1439,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1421,11 +1425,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider completablefuture1.thenAcceptAsync((either) -> { either.ifLeft((chunk) -> { this.tickingGenerated.getAndIncrement(); @@ -1447,7 +1447,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 }); }, (runnable) -> { this.mainThreadMailbox.tell(ChunkTaskPriorityQueueSorter.message(holder, runnable)); -@@ -1608,33 +1608,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1594,33 +1594,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int k = this.viewDistance; this.viewDistance = j; @@ -1490,7 +1490,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 if (chunk != null) { this.playerLoadedChunk(player, packet, chunk); -@@ -1665,7 +1656,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1651,7 +1642,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider void dumpChunks(Writer writer) throws IOException { CsvOutput csvwriter = CsvOutput.builder().addColumn("x").addColumn("z").addColumn("level").addColumn("in_memory").addColumn("status").addColumn("full_status").addColumn("accessible_ready").addColumn("ticking_ready").addColumn("entity_ticking_ready").addColumn("ticket").addColumn("spawning").addColumn("block_entity_count").addColumn("ticking_ticket").addColumn("ticking_level").addColumn("block_ticks").addColumn("fluid_ticks").build(writer); @@ -1499,7 +1499,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 ObjectBidirectionalIterator objectbidirectionaliterator = this.updatingChunks.getVisibleMap().clone().long2ObjectEntrySet().fastIterator(); // Paper while (objectbidirectionaliterator.hasNext()) { -@@ -1681,7 +1672,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1667,7 +1658,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit - decompile error csvwriter.writeRow(chunkcoordintpair.x, chunkcoordintpair.z, playerchunk.getTicketLevel(), optional.isPresent(), optional.map(ChunkAccess::getStatus).orElse(null), optional1.map(LevelChunk::getFullStatus).orElse(null), ChunkMap.printFuture(playerchunk.getFullChunkFuture()), ChunkMap.printFuture(playerchunk.getTickingChunkFuture()), ChunkMap.printFuture(playerchunk.getEntityTickingChunkFuture()), this.distanceManager.getTicketDebugString(i), this.anyPlayerCloseEnoughForSpawning(chunkcoordintpair), optional1.map((chunk) -> { return chunk.getBlockEntities().size(); @@ -1508,7 +1508,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 return chunk.getBlockTicks().count(); }).orElse(0), optional1.map((chunk) -> { return chunk.getFluidTicks().count(); -@@ -1898,15 +1889,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1884,15 +1875,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.removePlayerFromDistanceMaps(player); // Paper - distance maps } @@ -1525,7 +1525,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 } -@@ -1914,7 +1897,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1900,7 +1883,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider SectionPos sectionposition = SectionPos.of((Entity) player); player.setLastSectionPos(sectionposition); @@ -1534,7 +1534,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 return sectionposition; } -@@ -1959,65 +1942,40 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1945,65 +1928,40 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int k1; int l1; @@ -1622,7 +1622,7 @@ index a29b97f941eadb1ede5db805d32f2917469cccb9..eb469eabf7a5888a4249a6267de0c993 } public void addEntity(Entity entity) { -@@ -2386,7 +2344,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2372,7 +2330,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider double vec3d_dx = player.getX() - this.entity.getX(); double vec3d_dz = player.getZ() - this.entity.getZ(); // Paper end - remove allocation of Vec3D here @@ -1874,7 +1874,7 @@ index cd6eb305f4d36be923f6c5f0dd85e449d0f94c8f..5793154c0deca7fc570bbe858c6bea0d return true; } else { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2187331d2f3c4f14281dde6f01422fc4d5458e0e..af7e4ce201a471d2f59d16c0810bb08cc586363b 100644 +index 1e2c430a8df6afde91e3c5169d2d7b501acdec7f..1347ea594d3e771f02a73d95454388d4533c8be8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -658,7 +658,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1898,7 +1898,7 @@ index 2187331d2f3c4f14281dde6f01422fc4d5458e0e..af7e4ce201a471d2f59d16c0810bb08c } protected void tickTime() { -@@ -2370,7 +2373,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2373,7 +2376,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private boolean isPositionTickingWithEntitiesLoaded(long chunkPos) { // Paper start - optimize is ticking ready type functions ChunkHolder chunkHolder = this.chunkSource.chunkMap.getVisibleChunkIfPresent(chunkPos); diff --git a/patches/server/0860-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 17181993c9..5421744dc3 100644 --- a/patches/server/0860-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4eafa147edad4fe66fb419635c320a01186e7fea..b69af9a2f1a0e3d578aaade1fb040d3d4230a941 100644 +index 88db383a1527301332e8a047066afa5ed827db32..dc94d0a99af26a61b1309ea556b0df2d5f525ea3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1356,6 +1356,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1354,6 +1354,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.executeMidTickTasks(); // Paper - execute chunk tasks mid tick return true; } else { @@ -20,7 +20,7 @@ index 4eafa147edad4fe66fb419635c320a01186e7fea..b69af9a2f1a0e3d578aaade1fb040d3d if (this.haveTime()) { Iterator iterator = this.getAllLevels().iterator(); -@@ -1363,12 +1364,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1361,12 +1362,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa ServerLevel worldserver = (ServerLevel) iterator.next(); if (worldserver.getChunkSource().pollTask()) { diff --git a/patches/server/0861-Replace-ticket-level-propagator.patch b/patches/server/0860-Replace-ticket-level-propagator.patch index 03d6ba0cb1..03d6ba0cb1 100644 --- a/patches/server/0861-Replace-ticket-level-propagator.patch +++ b/patches/server/0860-Replace-ticket-level-propagator.patch diff --git a/patches/server/0862-Furnace-RecipesUsed-API.patch b/patches/server/0861-Furnace-RecipesUsed-API.patch index 2e6cf1c2fe..2e6cf1c2fe 100644 --- a/patches/server/0862-Furnace-RecipesUsed-API.patch +++ b/patches/server/0861-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0863-Configurable-sculk-sensor-listener-range.patch b/patches/server/0862-Configurable-sculk-sensor-listener-range.patch index 2e9adfa399..2e9adfa399 100644 --- a/patches/server/0863-Configurable-sculk-sensor-listener-range.patch +++ b/patches/server/0862-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0864-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0863-Add-missing-block-data-mins-and-maxes.patch index 6f3d051671..6f3d051671 100644 --- a/patches/server/0864-Add-missing-block-data-mins-and-maxes.patch +++ b/patches/server/0863-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0865-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0864-Option-to-have-default-CustomSpawners-in-custom-worl.patch index 46cd5e1db7..a3e598bfc4 100644 --- a/patches/server/0865-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0864-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -24,10 +24,10 @@ index 9bff729df7156b071b08913549838024bb17c3c9..88a4dda44e59fbe6215d7ac2e5af0c54 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b69af9a2f1a0e3d578aaade1fb040d3d4230a941..7ca233fa8a76a0734964957fcd8e09e7a44a39e8 100644 +index dc94d0a99af26a61b1309ea556b0df2d5f525ea3..dca58725c490bbfef0c50bdd38b58a93622422e2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -619,7 +619,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -617,7 +617,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.commandStorage = new CommandStorage(worldpersistentdata); } else { ChunkProgressListener worldloadlistener = this.progressListenerFactory.create(11); diff --git a/patches/server/0866-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0865-Put-world-into-worldlist-before-initing-the-world.patch index b277ac14c6..31c73d119d 100644 --- a/patches/server/0866-Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/0865-Put-world-into-worldlist-before-initing-the-world.patch @@ -7,10 +7,10 @@ Some parts of legacy conversion will need the overworld to get the legacy structure data storage diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7ca233fa8a76a0734964957fcd8e09e7a44a39e8..05b834a99649e3f3e8e7759234006b1c0b799629 100644 +index dca58725c490bbfef0c50bdd38b58a93622422e2..93a4b1f94e86aa2b747a8c511de0ff6b11cf7f36 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -631,9 +631,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -629,9 +629,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } worlddata.setModdedInfo(this.getServerModName(), this.getModdedStatus().shouldReportAsModified()); diff --git a/patches/server/0867-Fix-Entity-Position-Desync.patch b/patches/server/0866-Fix-Entity-Position-Desync.patch index 32aeaec69d..32aeaec69d 100644 --- a/patches/server/0867-Fix-Entity-Position-Desync.patch +++ b/patches/server/0866-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0868-Custom-Potion-Mixes.patch b/patches/server/0867-Custom-Potion-Mixes.patch index 31003aba09..74ebe6704e 100644 --- a/patches/server/0868-Custom-Potion-Mixes.patch +++ b/patches/server/0867-Custom-Potion-Mixes.patch @@ -24,10 +24,10 @@ index 0000000000000000000000000000000000000000..6b0bed550763f34e18c9e92f9a47ec0c + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 05b834a99649e3f3e8e7759234006b1c0b799629..85b3bf7718e51ffa52799c0748843aaad3fd3813 100644 +index 93a4b1f94e86aa2b747a8c511de0ff6b11cf7f36..2285fb8bc025fafc0531f2ce1b658c3a458e02d0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2059,6 +2059,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2055,6 +2055,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.worldData.setDataPackConfig(MinecraftServer.getSelectedPacks(this.packRepository)); this.resources.managers.updateRegistryTags(this.registryAccess()); io.papermc.paper.registry.PaperRegistry.clearCaches(); // Paper diff --git a/patches/server/0869-Fix-Fluid-tags-isTagged-method.patch b/patches/server/0868-Fix-Fluid-tags-isTagged-method.patch index 95eeab8b2f..95eeab8b2f 100644 --- a/patches/server/0869-Fix-Fluid-tags-isTagged-method.patch +++ b/patches/server/0868-Fix-Fluid-tags-isTagged-method.patch diff --git a/patches/server/0870-Fix-World-locateNearestStructure.patch b/patches/server/0869-Fix-World-locateNearestStructure.patch index 79fdc88050..747ca89c54 100644 --- a/patches/server/0870-Fix-World-locateNearestStructure.patch +++ b/patches/server/0869-Fix-World-locateNearestStructure.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix World#locateNearestStructure impl needs to be changed to reflect that diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 85b3bf7718e51ffa52799c0748843aaad3fd3813..17e87875a95495940899b862eabf98b3d6a365da 100644 +index 2285fb8bc025fafc0531f2ce1b658c3a458e02d0..edceca7fe37c9b10a80829182c0b3af82b3d163d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2060,6 +2060,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2056,6 +2056,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.resources.managers.updateRegistryTags(this.registryAccess()); io.papermc.paper.registry.PaperRegistry.clearCaches(); // Paper net.minecraft.world.item.alchemy.PotionBrewing.reload(); // Paper @@ -23,10 +23,10 @@ index 85b3bf7718e51ffa52799c0748843aaad3fd3813..17e87875a95495940899b862eabf98b3 if (Thread.currentThread() != this.serverThread) return; // Paper //this.getPlayerList().saveAll(); // Paper - we don't need to do this diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index af7e4ce201a471d2f59d16c0810bb08cc586363b..5181f061c73c120c8e9ef30b7da1945c8f57b418 100644 +index 1347ea594d3e771f02a73d95454388d4533c8be8..60e5a9e11ab7f4c2af4e9a2c9066cce02b544af8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1790,7 +1790,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1793,7 +1793,16 @@ public class ServerLevel extends Level implements WorldGenLevel { if (optional.isEmpty()) { return null; } else { diff --git a/patches/server/0871-Force-close-world-loading-screen.patch b/patches/server/0870-Force-close-world-loading-screen.patch index 24a6fd821f..24a6fd821f 100644 --- a/patches/server/0871-Force-close-world-loading-screen.patch +++ b/patches/server/0870-Force-close-world-loading-screen.patch diff --git a/patches/server/0872-Fix-falling-block-spawn-methods.patch b/patches/server/0871-Fix-falling-block-spawn-methods.patch index 5ff117ee09..5ff117ee09 100644 --- a/patches/server/0872-Fix-falling-block-spawn-methods.patch +++ b/patches/server/0871-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0873-Expose-furnace-minecart-push-values.patch b/patches/server/0872-Expose-furnace-minecart-push-values.patch index 4086d94249..4086d94249 100644 --- a/patches/server/0873-Expose-furnace-minecart-push-values.patch +++ b/patches/server/0872-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0874-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0873-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch index b95d6ace5a..b95d6ace5a 100644 --- a/patches/server/0874-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch +++ b/patches/server/0873-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0875-Fix-save-problems-on-shutdown.patch b/patches/server/0874-Fix-save-problems-on-shutdown.patch index 51a0ce45a7..ea6cc1f913 100644 --- a/patches/server/0875-Fix-save-problems-on-shutdown.patch +++ b/patches/server/0874-Fix-save-problems-on-shutdown.patch @@ -12,10 +12,10 @@ Subject: [PATCH] Fix save problems on shutdown processed so that the main process queue can be drained diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 17e87875a95495940899b862eabf98b3d6a365da..39b7c78b032ed6fc29ac765020d5a38858bf2a3a 100644 +index edceca7fe37c9b10a80829182c0b3af82b3d163d..32099b8ca18f298812e15285a8e04039eca1375d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -998,6 +998,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -996,6 +996,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } } @@ -29,7 +29,7 @@ index 17e87875a95495940899b862eabf98b3d6a365da..39b7c78b032ed6fc29ac765020d5a388 while (this.levels.values().stream().anyMatch((worldserver1) -> { return worldserver1.getChunkSource().chunkMap.hasWork(); })) { -@@ -1010,9 +1017,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1008,9 +1015,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa worldserver.getChunkSource().tick(() -> { return true; }, false); @@ -42,7 +42,7 @@ index 17e87875a95495940899b862eabf98b3d6a365da..39b7c78b032ed6fc29ac765020d5a388 } this.saveAllChunks(false, true, false); -@@ -1308,6 +1317,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1306,6 +1315,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } private boolean haveTime() { diff --git a/patches/server/0876-More-Projectile-API.patch b/patches/server/0875-More-Projectile-API.patch index 94ead9690b..94ead9690b 100644 --- a/patches/server/0876-More-Projectile-API.patch +++ b/patches/server/0875-More-Projectile-API.patch diff --git a/patches/server/0877-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0876-Fix-swamp-hut-cat-generation-deadlock.patch index c928ada21b..c928ada21b 100644 --- a/patches/server/0877-Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/server/0876-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0878-Fix-CreativeCategory-API.patch b/patches/server/0877-Fix-CreativeCategory-API.patch index 6835fb2350..6835fb2350 100644 --- a/patches/server/0878-Fix-CreativeCategory-API.patch +++ b/patches/server/0877-Fix-CreativeCategory-API.patch diff --git a/work/Bukkit b/work/Bukkit -Subproject e25c6a75523b5122f539a5a59dcf0275c3213a5 +Subproject 881e06e5db821ef829b41e372bbcafa1df9670a diff --git a/work/CraftBukkit b/work/CraftBukkit -Subproject 808cb7ca5c135e65e2d23e8ab59ee891b5bc53d +Subproject 9ed7e4fbe4c0cd2076a52d65a9ea8ae810d0e17 diff --git a/work/Spigot b/work/Spigot -Subproject fb0dd5f518e866748a20ee2c753edc3c6b9392d +Subproject ffceeae314d56fe07395e3e8f8262c0484d2bbd |