From 4f5b97a2c62eae760a42ff8fffb50de5335f6e75 Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Sun, 3 Oct 2021 12:20:31 +0200 Subject: [PATCH] Add more datapack API --- build-data/paper.at | 4 + ...pack-API.patch => 0295-Datapack-API.patch} | 37 ++- ...ment-variable-to-disable-server-gui.patch} | 0 .../0646-Fix-CraftPotionBrewer-cache.patch | 44 --- .../server/0647-Add-basic-Datapack-API.patch | 125 --------- ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0648-ItemStack-repair-check-API.patch} | 0 ....patch => 0649-More-Enchantment-API.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 8 +- ...PI.patch => 0651-Add-Mob-lookAt-API.patch} | 0 patches/server/0652-Datapack-API.patch | 257 ++++++++++++++++++ ...0653-Add-Unix-domain-socket-support.patch} | 0 ... => 0654-Add-EntityInsideBlockEvent.patch} | 0 ...55-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 2 +- ...patch => 0657-More-Lidded-Block-API.patch} | 0 ...58-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0659-Add-PlayerKickEvent-causes.patch} | 0 ...0660-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ReentrantLo.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0664-Add-BellRevealRaiderEvent.patch} | 0 ... 0665-Fix-invulnerable-end-crystals.patch} | 0 ...66-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0667-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 2 +- ...patch => 0670-Line-Of-Sight-Changes.patch} | 0 ... => 0671-add-per-world-spawn-limits.patch} | 0 ...plashEvent-for-water-splash-potions.patch} | 0 ... => 0673-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...=> 0675-Missing-Entity-Behavior-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...ch => 0680-Adds-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...correct-message-for-outdated-client.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ...-bunch-of-missing-forceDrop-toggles.patch} | 2 +- ...inger-API.patch => 0687-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0689-Add-System.out-err-catcher.patch} | 2 +- ... => 0690-Fix-test-not-bootstrapping.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0695-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...=> 0699-Added-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...osition-losing-precision-millions-o.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...704-Clear-bucket-NBT-after-dispense.patch} | 0 ...ct-despawn-rate-in-item-merge-check.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0707-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0709-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0711-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 2 +- ... 0713-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0714-Left-handed-API.patch} | 0 ...=> 0715-Add-advancement-display-API.patch} | 0 ...6-Add-ItemFactory-getMonsterEgg-API.patch} | 0 ...tch => 0717-Add-critical-damage-API.patch} | 0 ...0718-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0720-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...2-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...23-Vanilla-command-permission-fixes.patch} | 0 ...-Make-CallbackExecutor-strict-again.patch} | 0 ...server-to-unload-chunks-at-request-.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...e-recursion-for-chunkholder-updates.patch} | 0 ...28-Fix-GameProfileCache-concurrency.patch} | 0 ...hunks-refusing-to-unload-at-low-TPS.patch} | 0 ...et-level-changes-while-unloading-pl.patch} | 0 ...et-level-changes-when-updating-chun.patch} | 0 ...profile-lookups-to-worldgen-threads.patch} | 2 +- ...g-when-the-async-catcher-is-tripped.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 2 +- ...lls-removing-tickets-for-sync-loads.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0737-Optimise-general-POI-access.patch} | 0 ...rolled-flushing-for-network-manager.patch} | 0 ...tch => 0739-Add-more-async-catchers.patch} | 0 ...te-entity-bounding-box-lookup-calls.patch} | 2 +- ... 0741-Optimise-chunk-tick-iteration.patch} | 0 ...> 0742-Execute-chunk-tasks-mid-tick.patch} | 4 +- ... => 0743-Do-not-copy-visible-chunks.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ...lly-inline-methods-in-BlockPosition.patch} | 0 ... 0748-Distance-manager-tick-timings.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...h => 0751-Add-packet-limiter-config.patch} | 0 ... 0752-Lag-compensate-block-breaking.patch} | 0 ...Stem-registry-when-loading-default-.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...sh-calls-for-entity-tracker-packets.patch} | 0 ...-lookup-fluid-state-when-raytracing.patch} | 0 ...atch => 0757-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...9-Do-not-run-raytrace-logic-for-AIR.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...ition-of-entities-to-entity-ticklis.patch} | 0 ... 0763-Optimise-random-block-ticking.patch} | 0 ...4-Optimise-non-flush-packet-sending.patch} | 0 ...0765-Optimise-nearby-player-lookups.patch} | 2 +- ...=> 0766-Optimise-WorldServer-notify.patch} | 4 +- ...0767-Remove-streams-for-villager-AI.patch} | 0 ...> 0768-Rewrite-dataconverter-system.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...hread-worker-count-for-low-core-cou.patch} | 0 ...tity-loads-in-CraftChunk-getEntitie.patch} | 0 ...ifications-to-critical-entity-state.patch} | 0 ...ix-Bukkit-NamespacedKey-shenanigans.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 2 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 2 +- ...=> 0778-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...axolotls-from-buckets-as-persistent.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...-O-threads-with-chunk-data-while-fl.patch} | 0 ...h => 0785-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...piglins-and-hoglins-towards-mob-cap.patch} | 0 ...0789-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 2 +- ...ion-for-logging-player-ip-addresses.patch} | 2 +- ... => 0792-Configurable-feature-seeds.patch} | 0 ...pper-didnt-account-for-entity-sende.patch} | 0 ... 0794-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...pare-event-not-working-with-zero-xp.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...ch => 0800-Rewrite-the-light-engine.patch} | 0 ...ochunk-light-sources-unless-it-is-m.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...ier-changing-growth-for-other-crops.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0807-Add-PlayerItemFrameChangeEvent.patch} | 0 ...> 0808-Add-player-health-update-API.patch} | 0 ...tch => 0809-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...ingle-and-multi-AABB-VoxelShapes-an.patch} | 0 ...n-checking-in-player-move-packet-ha.patch} | 0 ...ch => 0813-Actually-unload-POI-data.patch} | 28 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...te-Log4j.patch => 0815-Update-Log4j.patch} | 0 ...patch => 0816-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...18-Fix-tripwire-state-inconsistency.patch} | 0 ...uid-logging-on-Block-breakNaturally.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0821-Improve-scoreboard-entries.patch} | 0 ...ch => 0822-Entity-powdered-snow-API.patch} | 0 ...0823-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0829-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0830-Bucketable-API.patch} | 0 ...layer-world-in-endPortalSoundRadius.patch} | 0 ...es.patch => 0832-Validate-usernames.patch} | 0 ...ing-configs-with-more-long-comments.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 4 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...load-to-PersistentDataContainer-has.patch} | 0 ...8-Multiple-Entries-with-Scoreboards.patch} | 0 ...839-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...ostname-to-AsyncPlayerPreLoginEvent.patch} | 0 ...0842-Fix-xp-reward-for-baby-zombies.patch} | 0 ...0843-Kick-on-main-for-illegal-chars.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0845-Fix-NotePlayEvent.patch} | 0 ....patch => 0846-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0847-Dolphin-API.patch} | 0 ...h => 0848-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...0851-Add-config-for-stronghold-seed.patch} | 0 ...h => 0852-Implement-regenerateChunk.patch} | 0 ...tions-thrown-during-chat-processing.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0856-Add-GameEvent-tags.patch} | 2 +- ...-Replace-player-chunk-loader-system.patch} | 22 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...859-Replace-ticket-level-propagator.patch} | 0 ...tch => 0860-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0865-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0866-Custom-Potion-Mixes.patch} | 4 +- ...0867-Fix-Fluid-tags-isTagged-method.patch} | 0 ...68-Fix-World-locateNearestStructure.patch} | 4 +- ...69-Force-close-world-loading-screen.patch} | 0 ...870-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ... 0873-Fix-save-problems-on-shutdown.patch} | 4 +- ...I.patch => 0874-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0877-Implement-getComputedBiome-API.patch} | 0 ...> 0878-Make-some-itemstacks-nonnull.patch} | 0 ...alid-GameProfiles-on-skull-blocks-i.patch} | 0 ...880-Implement-enchantWithLevels-API.patch} | 0 ...h => 0881-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0882-Buffer-OOB-setBlock-calls.patch} | 0 241 files changed, 360 insertions(+), 237 deletions(-) rename patches/api/{0295-Add-basic-Datapack-API.patch => 0295-Datapack-API.patch} (66%) rename patches/server/{0648-Add-environment-variable-to-disable-server-gui.patch => 0646-Add-environment-variable-to-disable-server-gui.patch} (100%) delete mode 100644 patches/server/0646-Fix-CraftPotionBrewer-cache.patch delete mode 100644 patches/server/0647-Add-basic-Datapack-API.patch rename patches/server/{0649-additions-to-PlayerGameModeChangeEvent.patch => 0647-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0650-ItemStack-repair-check-API.patch => 0648-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0651-More-Enchantment-API.patch => 0649-More-Enchantment-API.patch} (100%) rename patches/server/{0652-Fix-and-optimise-world-force-upgrading.patch => 0650-Fix-and-optimise-world-force-upgrading.patch} (98%) rename patches/server/{0653-Add-Mob-lookAt-API.patch => 0651-Add-Mob-lookAt-API.patch} (100%) create mode 100644 patches/server/0652-Datapack-API.patch rename patches/server/{0654-Add-Unix-domain-socket-support.patch => 0653-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0655-Add-EntityInsideBlockEvent.patch => 0654-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0656-Attributes-API-for-item-defaults.patch => 0655-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0657-Add-cause-to-Weather-ThunderChangeEvents.patch => 0656-Add-cause-to-Weather-ThunderChangeEvents.patch} (98%) rename patches/server/{0658-More-Lidded-Block-API.patch => 0657-More-Lidded-Block-API.patch} (100%) rename patches/server/{0659-Limit-item-frame-cursors-on-maps.patch => 0658-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0660-Add-PlayerKickEvent-causes.patch => 0659-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0661-Add-PufferFishStateChangeEvent.patch => 0660-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0661-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch => 0662-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch} (100%) rename patches/server/{0664-Add-option-to-fix-items-merging-through-walls.patch => 0663-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0665-Add-BellRevealRaiderEvent.patch => 0664-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0666-Fix-invulnerable-end-crystals.patch => 0665-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0667-Add-ElderGuardianAppearanceEvent.patch => 0666-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0668-Fix-dangerous-end-portal-logic.patch => 0667-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0668-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0670-Make-item-validations-configurable.patch => 0669-Make-item-validations-configurable.patch} (98%) rename patches/server/{0671-Line-Of-Sight-Changes.patch => 0670-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0672-add-per-world-spawn-limits.patch => 0671-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0673-Fix-PotionSplashEvent-for-water-splash-potions.patch => 0672-Fix-PotionSplashEvent-for-water-splash-potions.patch} (100%) rename patches/server/{0674-Add-more-LimitedRegion-API.patch => 0673-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0675-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0674-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0676-Missing-Entity-Behavior-API.patch => 0675-Missing-Entity-Behavior-API.patch} (100%) rename patches/server/{0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0676-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0677-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0679-Use-getChunkIfLoadedImmediately-in-places.patch => 0678-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0680-Fix-commands-from-signs-not-firing-command-events.patch => 0679-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0681-Adds-PlayerArmSwingEvent.patch => 0680-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0682-Fixes-kick-event-leave-message-not-being-sent.patch => 0681-Fixes-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/server/{0683-Add-config-for-mobs-immune-to-default-effects.patch => 0682-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0684-Fix-incorrect-message-for-outdated-client.patch => 0683-Fix-incorrect-message-for-outdated-client.patch} (100%) rename patches/server/{0685-Don-t-apply-cramming-damage-to-players.patch => 0684-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0686-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0685-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0687-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0686-Add-a-bunch-of-missing-forceDrop-toggles.patch} (96%) rename patches/server/{0688-Stinger-API.patch => 0687-Stinger-API.patch} (100%) rename patches/server/{0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0688-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0690-Add-System.out-err-catcher.patch => 0689-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0691-Fix-test-not-bootstrapping.patch => 0690-Fix-test-not-bootstrapping.patch} (100%) rename patches/server/{0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0691-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0693-Improve-boat-collision-performance.patch => 0692-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0694-Prevent-AFK-kick-while-watching-end-credits.patch => 0693-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0695-Allow-skipping-writing-of-comments-to-server.propert.patch => 0694-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0696-Add-PlayerSetSpawnEvent.patch => 0695-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/server/{0697-Make-hoppers-respect-inventory-max-stack-size.patch => 0696-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0698-Optimize-entity-tracker-passenger-checks.patch => 0697-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0699-Config-option-for-Piglins-guarding-chests.patch => 0698-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0700-Added-EntityDamageItemEvent.patch => 0699-Added-EntityDamageItemEvent.patch} (100%) rename patches/server/{0701-Optimize-indirect-passenger-iteration.patch => 0700-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0702-Fix-block-drops-position-losing-precision-millions-o.patch => 0701-Fix-block-drops-position-losing-precision-millions-o.patch} (100%) rename patches/server/{0703-Configurable-item-frame-map-cursor-update-interval.patch => 0702-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0704-Make-EntityUnleashEvent-cancellable.patch => 0703-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/server/{0705-Clear-bucket-NBT-after-dispense.patch => 0704-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0706-Respect-despawn-rate-in-item-merge-check.patch => 0705-Respect-despawn-rate-in-item-merge-check.patch} (100%) rename patches/server/{0707-Change-EnderEye-target-without-changing-other-things.patch => 0706-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0708-Add-BlockBreakBlockEvent.patch => 0707-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0708-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0710-More-CommandBlock-API.patch => 0709-More-CommandBlock-API.patch} (100%) rename patches/server/{0711-Add-missing-team-sidebar-display-slots.patch => 0710-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0712-Add-back-EntityPortalExitEvent.patch => 0711-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0713-Add-methods-to-find-targets-for-lightning-strikes.patch => 0712-Add-methods-to-find-targets-for-lightning-strikes.patch} (96%) rename patches/server/{0714-Get-entity-default-attributes.patch => 0713-Get-entity-default-attributes.patch} (100%) rename patches/server/{0715-Left-handed-API.patch => 0714-Left-handed-API.patch} (100%) rename patches/server/{0716-Add-advancement-display-API.patch => 0715-Add-advancement-display-API.patch} (100%) rename patches/server/{0717-Add-ItemFactory-getMonsterEgg-API.patch => 0716-Add-ItemFactory-getMonsterEgg-API.patch} (100%) rename patches/server/{0718-Add-critical-damage-API.patch => 0717-Add-critical-damage-API.patch} (100%) rename patches/server/{0719-Fix-issues-with-mob-conversion.patch => 0718-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0720-Add-isCollidable-methods-to-various-places.patch => 0719-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0721-Goat-ram-API.patch => 0720-Goat-ram-API.patch} (100%) rename patches/server/{0722-Add-API-for-resetting-a-single-score.patch => 0721-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0723-Add-Raw-Byte-Entity-Serialization.patch => 0722-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0724-Vanilla-command-permission-fixes.patch => 0723-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0725-Make-CallbackExecutor-strict-again.patch => 0724-Make-CallbackExecutor-strict-again.patch} (100%) rename patches/server/{0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch => 0725-Do-not-allow-the-server-to-unload-chunks-at-request-.patch} (100%) rename patches/server/{0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0726-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0728-Correctly-handle-recursion-for-chunkholder-updates.patch => 0727-Correctly-handle-recursion-for-chunkholder-updates.patch} (100%) rename patches/server/{0729-Fix-GameProfileCache-concurrency.patch => 0728-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch => 0729-Fix-chunks-refusing-to-unload-at-low-TPS.patch} (100%) rename patches/server/{0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch => 0730-Do-not-allow-ticket-level-changes-while-unloading-pl.patch} (100%) rename patches/server/{0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch => 0731-Do-not-allow-ticket-level-changes-when-updating-chun.patch} (100%) rename patches/server/{0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch => 0732-Do-not-submit-profile-lookups-to-worldgen-threads.patch} (97%) rename patches/server/{0734-Log-when-the-async-catcher-is-tripped.patch => 0733-Log-when-the-async-catcher-is-tripped.patch} (100%) rename patches/server/{0735-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0734-Add-paper-mobcaps-and-paper-playermobcaps.patch} (99%) rename patches/server/{0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch => 0735-Prevent-unload-calls-removing-tickets-for-sync-loads.patch} (100%) rename patches/server/{0737-Sanitize-ResourceLocation-error-logging.patch => 0736-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0738-Optimise-general-POI-access.patch => 0737-Optimise-general-POI-access.patch} (100%) rename patches/server/{0739-Allow-controlled-flushing-for-network-manager.patch => 0738-Allow-controlled-flushing-for-network-manager.patch} (100%) rename patches/server/{0740-Add-more-async-catchers.patch => 0739-Add-more-async-catchers.patch} (100%) rename patches/server/{0741-Rewrite-entity-bounding-box-lookup-calls.patch => 0740-Rewrite-entity-bounding-box-lookup-calls.patch} (99%) rename patches/server/{0742-Optimise-chunk-tick-iteration.patch => 0741-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{0743-Execute-chunk-tasks-mid-tick.patch => 0742-Execute-chunk-tasks-mid-tick.patch} (97%) rename patches/server/{0744-Do-not-copy-visible-chunks.patch => 0743-Do-not-copy-visible-chunks.patch} (100%) rename patches/server/{0745-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0744-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0746-Custom-table-implementation-for-blockstate-state-loo.patch => 0745-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0747-Detail-more-information-in-watchdog-dumps.patch => 0746-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{0748-Manually-inline-methods-in-BlockPosition.patch => 0747-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0749-Distance-manager-tick-timings.patch => 0748-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0750-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0749-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0751-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0750-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0752-Add-packet-limiter-config.patch => 0751-Add-packet-limiter-config.patch} (100%) rename patches/server/{0753-Lag-compensate-block-breaking.patch => 0752-Lag-compensate-block-breaking.patch} (100%) rename patches/server/{0754-Use-correct-LevelStem-registry-when-loading-default-.patch => 0753-Use-correct-LevelStem-registry-when-loading-default-.patch} (100%) rename patches/server/{0755-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0754-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0756-Consolidate-flush-calls-for-entity-tracker-packets.patch => 0755-Consolidate-flush-calls-for-entity-tracker-packets.patch} (100%) rename patches/server/{0757-Don-t-lookup-fluid-state-when-raytracing.patch => 0756-Don-t-lookup-fluid-state-when-raytracing.patch} (100%) rename patches/server/{0758-Time-scoreboard-search.patch => 0757-Time-scoreboard-search.patch} (100%) rename patches/server/{0759-Send-full-pos-packets-for-hard-colliding-entities.patch => 0758-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0760-Do-not-run-raytrace-logic-for-AIR.patch => 0759-Do-not-run-raytrace-logic-for-AIR.patch} (100%) rename patches/server/{0761-Oprimise-map-impl-for-tracked-players.patch => 0760-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0762-Optimise-BlockSoil-nearby-water-lookup.patch => 0761-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0763-Allow-removal-addition-of-entities-to-entity-ticklis.patch => 0762-Allow-removal-addition-of-entities-to-entity-ticklis.patch} (100%) rename patches/server/{0764-Optimise-random-block-ticking.patch => 0763-Optimise-random-block-ticking.patch} (100%) rename patches/server/{0765-Optimise-non-flush-packet-sending.patch => 0764-Optimise-non-flush-packet-sending.patch} (100%) rename patches/server/{0766-Optimise-nearby-player-lookups.patch => 0765-Optimise-nearby-player-lookups.patch} (99%) rename patches/server/{0767-Optimise-WorldServer-notify.patch => 0766-Optimise-WorldServer-notify.patch} (98%) rename patches/server/{0768-Remove-streams-for-villager-AI.patch => 0767-Remove-streams-for-villager-AI.patch} (100%) rename patches/server/{0769-Rewrite-dataconverter-system.patch => 0768-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0770-Use-Velocity-compression-and-cipher-natives.patch => 0769-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{0771-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch => 0770-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch} (100%) rename patches/server/{0772-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch => 0771-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch} (100%) rename patches/server/{0773-Async-catch-modifications-to-critical-entity-state.patch => 0772-Async-catch-modifications-to-critical-entity-state.patch} (100%) rename patches/server/{0774-Fix-Bukkit-NamespacedKey-shenanigans.patch => 0773-Fix-Bukkit-NamespacedKey-shenanigans.patch} (100%) rename patches/server/{0775-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0774-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (94%) rename patches/server/{0776-Check-requirement-before-suggesting-root-nodes.patch => 0775-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0777-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0776-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0778-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0777-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (97%) rename patches/server/{0779-Ensure-valid-vehicle-status.patch => 0778-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0780-Prevent-softlocked-end-exit-portal-generation.patch => 0779-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0781-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0780-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0782-Don-t-log-debug-logging-being-disabled.patch => 0781-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0783-Mark-fish-and-axolotls-from-buckets-as-persistent.patch => 0782-Mark-fish-and-axolotls-from-buckets-as-persistent.patch} (100%) rename patches/server/{0784-fix-various-menus-with-empty-level-accesses.patch => 0783-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0785-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch => 0784-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch} (100%) rename patches/server/{0786-Preserve-overstacked-loot.patch => 0785-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0787-Update-head-rotation-in-missing-places.patch => 0786-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0788-prevent-unintended-light-block-manipulation.patch => 0787-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0789-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch => 0788-Dont-count-named-piglins-and-hoglins-towards-mob-cap.patch} (100%) rename patches/server/{0790-Fix-CraftCriteria-defaults-map.patch => 0789-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0791-Fix-upstreams-block-state-factories.patch => 0790-Fix-upstreams-block-state-factories.patch} (99%) rename patches/server/{0792-Add-config-option-for-logging-player-ip-addresses.patch => 0791-Add-config-option-for-logging-player-ip-addresses.patch} (98%) rename patches/server/{0793-Configurable-feature-seeds.patch => 0792-Configurable-feature-seeds.patch} (100%) rename patches/server/{0794-VanillaCommandWrapper-didnt-account-for-entity-sende.patch => 0793-VanillaCommandWrapper-didnt-account-for-entity-sende.patch} (100%) rename patches/server/{0795-Add-root-admin-user-detection.patch => 0794-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0796-Always-allow-item-changing-in-Fireball.patch => 0795-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0797-don-t-attempt-to-teleport-dead-entities.patch => 0796-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0798-Fix-anvil-prepare-event-not-working-with-zero-xp.patch => 0797-Fix-anvil-prepare-event-not-working-with-zero-xp.patch} (100%) rename patches/server/{0799-Prevent-excessive-velocity-through-repeated-crits.patch => 0798-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0800-Remove-client-side-code-using-deprecated-for-removal.patch => 0799-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0801-Rewrite-the-light-engine.patch => 0800-Rewrite-the-light-engine.patch} (100%) rename patches/server/{0802-Always-parse-protochunk-light-sources-unless-it-is-m.patch => 0801-Always-parse-protochunk-light-sources-unless-it-is-m.patch} (100%) rename patches/server/{0803-Fix-removing-recipes-from-RecipeIterator.patch => 0802-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0804-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0803-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0805-Hide-unnecessary-itemmeta-from-clients.patch => 0804-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0806-Fix-kelp-modifier-changing-growth-for-other-crops.patch => 0805-Fix-kelp-modifier-changing-growth-for-other-crops.patch} (100%) rename patches/server/{0807-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0806-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0808-Add-PlayerItemFrameChangeEvent.patch => 0807-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0809-Add-player-health-update-API.patch => 0808-Add-player-health-update-API.patch} (100%) rename patches/server/{0810-Optimize-HashMapPalette.patch => 0809-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0811-Allow-delegation-to-vanilla-chunk-gen.patch => 0810-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0812-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch => 0811-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch} (100%) rename patches/server/{0813-Optimise-collision-checking-in-player-move-packet-ha.patch => 0812-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{0814-Actually-unload-POI-data.patch => 0813-Actually-unload-POI-data.patch} (91%) rename patches/server/{0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0814-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0816-Update-Log4j.patch => 0815-Update-Log4j.patch} (100%) rename patches/server/{0817-Add-more-Campfire-API.patch => 0816-Add-more-Campfire-API.patch} (100%) rename patches/server/{0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0817-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0819-Fix-tripwire-state-inconsistency.patch => 0818-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0820-Fix-fluid-logging-on-Block-breakNaturally.patch => 0819-Fix-fluid-logging-on-Block-breakNaturally.patch} (100%) rename patches/server/{0821-Forward-CraftEntity-in-teleport-command.patch => 0820-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0822-Improve-scoreboard-entries.patch => 0821-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0823-Entity-powdered-snow-API.patch => 0822-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0824-Add-API-for-item-entity-health.patch => 0823-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0825-Fix-entity-type-tags-suggestions-in-selectors.patch => 0824-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0826-Configurable-max-block-light-for-monster-spawning.patch => 0825-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0826-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0828-Load-effect-amplifiers-greater-than-127-correctly.patch => 0827-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0828-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0830-Fix-bees-aging-inside-hives.patch => 0829-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0831-Bucketable-API.patch => 0830-Bucketable-API.patch} (100%) rename patches/server/{0832-Check-player-world-in-endPortalSoundRadius.patch => 0831-Check-player-world-in-endPortalSoundRadius.patch} (100%) rename patches/server/{0833-Validate-usernames.patch => 0832-Validate-usernames.patch} (100%) rename patches/server/{0834-Fix-saving-configs-with-more-long-comments.patch => 0833-Fix-saving-configs-with-more-long-comments.patch} (100%) rename patches/server/{0835-Make-water-animal-spawn-height-configurable.patch => 0834-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0835-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (97%) rename patches/server/{0837-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0836-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0838-Add-new-overload-to-PersistentDataContainer-has.patch => 0837-Add-new-overload-to-PersistentDataContainer-has.patch} (100%) rename patches/server/{0839-Multiple-Entries-with-Scoreboards.patch => 0838-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0840-Reset-placed-block-on-exception.patch => 0839-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0841-Add-configurable-height-for-slime-spawn.patch => 0840-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0842-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch => 0841-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch} (100%) rename patches/server/{0843-Fix-xp-reward-for-baby-zombies.patch => 0842-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0844-Kick-on-main-for-illegal-chars.patch => 0843-Kick-on-main-for-illegal-chars.patch} (100%) rename patches/server/{0845-Multi-Block-Change-API-Implementation.patch => 0844-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0846-Fix-NotePlayEvent.patch => 0845-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0847-Freeze-Tick-Lock-API.patch => 0846-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0848-Dolphin-API.patch => 0847-Dolphin-API.patch} (100%) rename patches/server/{0849-More-PotionEffectType-API.patch => 0848-More-PotionEffectType-API.patch} (100%) rename patches/server/{0850-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0849-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0851-API-for-creating-command-sender-which-forwards-feedb.patch => 0850-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0852-Add-config-for-stronghold-seed.patch => 0851-Add-config-for-stronghold-seed.patch} (100%) rename patches/server/{0853-Implement-regenerateChunk.patch => 0852-Implement-regenerateChunk.patch} (100%) rename patches/server/{0854-Log-exceptions-thrown-during-chat-processing.patch => 0853-Log-exceptions-thrown-during-chat-processing.patch} (100%) rename patches/server/{0855-Fix-cancelled-powdered-snow-bucket-placement.patch => 0854-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0856-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0855-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (91%) rename patches/server/{0857-Add-GameEvent-tags.patch => 0856-Add-GameEvent-tags.patch} (97%) rename patches/server/{0858-Replace-player-chunk-loader-system.patch => 0857-Replace-player-chunk-loader-system.patch} (99%) rename patches/server/{0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0858-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0860-Replace-ticket-level-propagator.patch => 0859-Replace-ticket-level-propagator.patch} (100%) rename patches/server/{0861-Furnace-RecipesUsed-API.patch => 0860-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0862-Configurable-sculk-sensor-listener-range.patch => 0861-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0863-Add-missing-block-data-mins-and-maxes.patch => 0862-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0864-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0863-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (97%) rename patches/server/{0865-Put-world-into-worldlist-before-initing-the-world.patch => 0864-Put-world-into-worldlist-before-initing-the-world.patch} (91%) rename patches/server/{0866-Fix-Entity-Position-Desync.patch => 0865-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0867-Custom-Potion-Mixes.patch => 0866-Custom-Potion-Mixes.patch} (98%) rename patches/server/{0868-Fix-Fluid-tags-isTagged-method.patch => 0867-Fix-Fluid-tags-isTagged-method.patch} (100%) rename patches/server/{0869-Fix-World-locateNearestStructure.patch => 0868-Fix-World-locateNearestStructure.patch} (96%) rename patches/server/{0870-Force-close-world-loading-screen.patch => 0869-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0871-Fix-falling-block-spawn-methods.patch => 0870-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0872-Expose-furnace-minecart-push-values.patch => 0871-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0873-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0872-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0874-Fix-save-problems-on-shutdown.patch => 0873-Fix-save-problems-on-shutdown.patch} (94%) rename patches/server/{0875-More-Projectile-API.patch => 0874-More-Projectile-API.patch} (100%) rename patches/server/{0876-Fix-swamp-hut-cat-generation-deadlock.patch => 0875-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0877-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0876-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0878-Implement-getComputedBiome-API.patch => 0877-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0879-Make-some-itemstacks-nonnull.patch => 0878-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0880-Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch => 0879-Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch} (100%) rename patches/server/{0881-Implement-enchantWithLevels-API.patch => 0880-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0882-Fix-saving-in-unloadWorld.patch => 0881-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0883-Buffer-OOB-setBlock-calls.patch => 0882-Buffer-OOB-setBlock-calls.patch} (100%) diff --git a/build-data/paper.at b/build-data/paper.at index 4671b6eb7ff6..e22b1a230e85 100644 --- a/build-data/paper.at +++ b/build-data/paper.at @@ -332,3 +332,7 @@ public net.minecraft.world.entity.projectile.FireworkRocketEntity life # More Projectile API public net.minecraft.world.entity.projectile.FishingHook timeUntilLured + +# Datapack API +public net.minecraft.server.packs.repository.PackRepository constructor +public net.minecraft.server.packs.repository.PackRepository sources diff --git a/patches/api/0295-Add-basic-Datapack-API.patch b/patches/api/0295-Datapack-API.patch similarity index 66% rename from patches/api/0295-Add-basic-Datapack-API.patch rename to patches/api/0295-Datapack-API.patch index 6b93de88ee15..05199652e481 100644 --- a/patches/api/0295-Add-basic-Datapack-API.patch +++ b/patches/api/0295-Datapack-API.patch @@ -1,8 +1,9 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Connor Linfoot Date: Sun, 16 May 2021 15:07:34 +0100 -Subject: [PATCH] Add basic Datapack API +Subject: [PATCH] Datapack API +Co-authored-by: Noah van der Aa diff --git a/src/main/java/io/papermc/paper/datapack/Datapack.java b/src/main/java/io/papermc/paper/datapack/Datapack.java new file mode 100644 @@ -44,14 +45,19 @@ index 0000000000000000000000000000000000000000..7b2ab0be10a21e0496ad1d485ff8cb2c +} diff --git a/src/main/java/io/papermc/paper/datapack/DatapackManager.java b/src/main/java/io/papermc/paper/datapack/DatapackManager.java new file mode 100644 -index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f70d08b2a2 +index 0000000000000000000000000000000000000000..a6a7724cf5a1760deed51ea5885fbf3021b41bf7 --- /dev/null +++ b/src/main/java/io/papermc/paper/datapack/DatapackManager.java -@@ -0,0 +1,21 @@ +@@ -0,0 +1,51 @@ +package io.papermc.paper.datapack; + +import org.checkerframework.checker.nullness.qual.NonNull; ++import org.checkerframework.checker.nullness.qual.Nullable; ++import org.jetbrains.annotations.NotNull; + ++import java.io.File; ++import java.io.FileNotFoundException; ++import java.io.IOException; +import java.util.Collection; + +public interface DatapackManager { @@ -68,6 +74,31 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7 + @NonNull + Collection getEnabledPacks(); + ++ /** ++ * Loads a new datapack and enables it. ++ * @param name the name of the pack ++ * @param file the file to load the pack from ++ * @throws FileNotFoundException if the server can't load the pack because a file is missing ++ * @throws IOException if there was an error while reading the pack file ++ * @return the newly loaded pack ++ */ ++ @Nullable ++ default Datapack loadDatapack(@NotNull String name, @NotNull File file) throws FileNotFoundException, IOException { ++ return loadDatapack(name, file, true); ++ } ++ ++ /** ++ * Loads a new datapack and optionally enables it. ++ * @param name the name of the pack ++ * @param file the file to load the pack from ++ * @param enable if the pack should be enabled upon loading ++ * @throws FileNotFoundException if the server can't load the pack because a file is missing ++ * @throws IOException if there was an error while reading the pack file ++ * @return the newly loaded pack ++ */ ++ @Nullable ++ Datapack loadDatapack(@NotNull String name, @NotNull File file, boolean enable) throws FileNotFoundException, IOException; ++ +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java index 8106fd5806fc47cb7138e01d9d5c458153afa3d5..adc8ed72acbb1ca788d44fa9542d287dbbafc669 100644 diff --git a/patches/server/0648-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0646-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0648-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0646-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0646-Fix-CraftPotionBrewer-cache.patch b/patches/server/0646-Fix-CraftPotionBrewer-cache.patch deleted file mode 100644 index 2d8295382f0d..000000000000 --- a/patches/server/0646-Fix-CraftPotionBrewer-cache.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sceri -Date: Fri, 14 May 2021 19:06:51 +0500 -Subject: [PATCH] Fix CraftPotionBrewer cache - - -diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java -index 1e4bc0d9f9d2e45157929af685f116988cbb8c03..8fdc9a3bb2f1b6bdc6c2c96f8ade7e9cd88ea4e0 100644 ---- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java -+++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionBrewer.java -@@ -15,12 +15,18 @@ import org.bukkit.potion.PotionEffectType; - import org.bukkit.potion.PotionType; - - public class CraftPotionBrewer implements PotionBrewer { -- private static final Map> cache = Maps.newHashMap(); -+ private static final Map> cache = Maps.newHashMap(); // Paper - - @Override - public Collection getEffects(PotionType damage, boolean upgraded, boolean extended) { -- if (CraftPotionBrewer.cache.containsKey(damage)) -- return CraftPotionBrewer.cache.get(damage); -+ // Paper start -+ int key = damage.ordinal() << 2; -+ key |= (upgraded ? 1 : 0) << 1; -+ key |= extended ? 1 : 0; -+ -+ if (CraftPotionBrewer.cache.containsKey(key)) -+ return CraftPotionBrewer.cache.get(key); -+ // Paper end - - List mcEffects = Potion.byName(CraftPotionUtil.fromBukkit(new PotionData(damage, extended, upgraded))).getEffects(); - -@@ -29,9 +35,9 @@ public class CraftPotionBrewer implements PotionBrewer { - builder.add(CraftPotionUtil.toBukkit(effect)); - } - -- CraftPotionBrewer.cache.put(damage, builder.build()); -+ CraftPotionBrewer.cache.put(key, builder.build()); // Paper - -- return CraftPotionBrewer.cache.get(damage); -+ return CraftPotionBrewer.cache.get(key); // Paper - } - - @Override diff --git a/patches/server/0647-Add-basic-Datapack-API.patch b/patches/server/0647-Add-basic-Datapack-API.patch deleted file mode 100644 index d235d9f011e3..000000000000 --- a/patches/server/0647-Add-basic-Datapack-API.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Connor Linfoot -Date: Sun, 16 May 2021 15:07:34 +0100 -Subject: [PATCH] Add basic Datapack API - - -diff --git a/src/main/java/io/papermc/paper/datapack/PaperDatapack.java b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java -new file mode 100644 -index 0000000000000000000000000000000000000000..9b7dd8a0fba4547f5268b3f99e21ddbe6b5bf566 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java -@@ -0,0 +1,50 @@ -+package io.papermc.paper.datapack; -+ -+import io.papermc.paper.event.server.ServerResourcesReloadedEvent; -+import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.packs.repository.Pack; -+import java.util.List; -+import java.util.stream.Collectors; -+ -+public class PaperDatapack implements Datapack { -+ private final String name; -+ private final Compatibility compatibility; -+ private final boolean enabled; -+ -+ PaperDatapack(Pack loader, boolean enabled) { -+ this.name = loader.getId(); -+ this.compatibility = Compatibility.valueOf(loader.getCompatibility().name()); -+ this.enabled = enabled; -+ } -+ -+ @Override -+ public String getName() { -+ return name; -+ } -+ -+ @Override -+ public Compatibility getCompatibility() { -+ return compatibility; -+ } -+ -+ @Override -+ public boolean isEnabled() { -+ return enabled; -+ } -+ -+ @Override -+ public void setEnabled(boolean enabled) { -+ if (enabled == this.enabled) { -+ return; -+ } -+ -+ MinecraftServer server = MinecraftServer.getServer(); -+ List enabledKeys = server.getPackRepository().getSelectedPacks().stream().map(Pack::getId).collect(Collectors.toList()); -+ if (enabled) { -+ enabledKeys.add(this.name); -+ } else { -+ enabledKeys.remove(this.name); -+ } -+ server.reloadResources(enabledKeys, ServerResourcesReloadedEvent.Cause.PLUGIN); -+ } -+} -diff --git a/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java b/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java -new file mode 100644 -index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415cf6b298e0 ---- /dev/null -+++ b/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java -@@ -0,0 +1,25 @@ -+package io.papermc.paper.datapack; -+ -+import java.util.Collection; -+import java.util.stream.Collectors; -+import net.minecraft.server.packs.repository.Pack; -+import net.minecraft.server.packs.repository.PackRepository; -+ -+public class PaperDatapackManager implements DatapackManager { -+ private final PackRepository repository; -+ -+ public PaperDatapackManager(PackRepository repository) { -+ this.repository = repository; -+ } -+ -+ @Override -+ public Collection getPacks() { -+ Collection enabledPacks = repository.getSelectedPacks(); -+ return repository.getAvailablePacks().stream().map(loader -> new PaperDatapack(loader, enabledPacks.contains(loader))).collect(Collectors.toList()); -+ } -+ -+ @Override -+ public Collection getEnabledPacks() { -+ return repository.getSelectedPacks().stream().map(loader -> new PaperDatapack(loader, true)).collect(Collectors.toList()); -+ } -+} -diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 555015be2b9f83834b70ecb415aca3807520a6bd..bfa7fb378612b4d25e55da6d1346b72763d39dbb 100644 ---- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java -+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -280,6 +280,7 @@ public final class CraftServer implements Server { - public boolean ignoreVanillaPermissions = false; - private final List playerView; - public int reloadCount; -+ private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper - public static Exception excessiveVelEx; // Paper - Velocity warnings - - static { -@@ -361,6 +362,7 @@ public final class CraftServer implements Server { - TicketType.PLUGIN.timeout = Math.min(20, this.configuration.getInt("chunk-gc.period-in-ticks")); // Paper - cap plugin loads to 1 second - this.minimumAPI = this.configuration.getString("settings.minimum-api"); - this.loadIcon(); -+ datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper - } - - public boolean getCommandBlockOverride(String command) { -@@ -2723,5 +2725,11 @@ public final class CraftServer implements Server { - public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { - return mobGoals; - } -+ -+ @Override -+ public io.papermc.paper.datapack.PaperDatapackManager getDatapackManager() { -+ return datapackManager; -+ } -+ - // Paper end - } diff --git a/patches/server/0649-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0647-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0649-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0647-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0650-ItemStack-repair-check-API.patch b/patches/server/0648-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0650-ItemStack-repair-check-API.patch rename to patches/server/0648-ItemStack-repair-check-API.patch diff --git a/patches/server/0651-More-Enchantment-API.patch b/patches/server/0649-More-Enchantment-API.patch similarity index 100% rename from patches/server/0651-More-Enchantment-API.patch rename to patches/server/0649-More-Enchantment-API.patch diff --git a/patches/server/0652-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0650-Fix-and-optimise-world-force-upgrading.patch similarity index 98% rename from patches/server/0652-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0650-Fix-and-optimise-world-force-upgrading.patch index f7e34581ab8f..ce53544c296f 100644 --- a/patches/server/0652-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0650-Fix-and-optimise-world-force-upgrading.patch @@ -272,7 +272,7 @@ 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 0e888c2d64cddb8b44e0572cea07fbb3cf0e6987..4a92ea5d6db5873277708d9fba6e1dd04205da78 100644 +index 2ec8216d19de795bbe0827f6c9b3f9cdc2ce6760..b8ffd95bbad81521b9f91e83f63188553c09d4bd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -555,11 +555,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); -@@ -1226,6 +1221,14 @@ public final class CraftServer implements Server { +@@ -1224,6 +1219,14 @@ public final class CraftServer implements Server { } } diff --git a/patches/server/0653-Add-Mob-lookAt-API.patch b/patches/server/0651-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0653-Add-Mob-lookAt-API.patch rename to patches/server/0651-Add-Mob-lookAt-API.patch diff --git a/patches/server/0652-Datapack-API.patch b/patches/server/0652-Datapack-API.patch new file mode 100644 index 000000000000..23b1732c90e4 --- /dev/null +++ b/patches/server/0652-Datapack-API.patch @@ -0,0 +1,257 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Connor Linfoot +Date: Sun, 16 May 2021 15:07:34 +0100 +Subject: [PATCH] Datapack API + +Co-authored-by: Noah van der Aa + +diff --git a/src/main/java/io/papermc/paper/datapack/PaperDatapack.java b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java +new file mode 100644 +index 0000000000000000000000000000000000000000..9b7dd8a0fba4547f5268b3f99e21ddbe6b5bf566 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/datapack/PaperDatapack.java +@@ -0,0 +1,50 @@ ++package io.papermc.paper.datapack; ++ ++import io.papermc.paper.event.server.ServerResourcesReloadedEvent; ++import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.packs.repository.Pack; ++import java.util.List; ++import java.util.stream.Collectors; ++ ++public class PaperDatapack implements Datapack { ++ private final String name; ++ private final Compatibility compatibility; ++ private final boolean enabled; ++ ++ PaperDatapack(Pack loader, boolean enabled) { ++ this.name = loader.getId(); ++ this.compatibility = Compatibility.valueOf(loader.getCompatibility().name()); ++ this.enabled = enabled; ++ } ++ ++ @Override ++ public String getName() { ++ return name; ++ } ++ ++ @Override ++ public Compatibility getCompatibility() { ++ return compatibility; ++ } ++ ++ @Override ++ public boolean isEnabled() { ++ return enabled; ++ } ++ ++ @Override ++ public void setEnabled(boolean enabled) { ++ if (enabled == this.enabled) { ++ return; ++ } ++ ++ MinecraftServer server = MinecraftServer.getServer(); ++ List enabledKeys = server.getPackRepository().getSelectedPacks().stream().map(Pack::getId).collect(Collectors.toList()); ++ if (enabled) { ++ enabledKeys.add(this.name); ++ } else { ++ enabledKeys.remove(this.name); ++ } ++ server.reloadResources(enabledKeys, ServerResourcesReloadedEvent.Cause.PLUGIN); ++ } ++} +diff --git a/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java b/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c1c666a92e1f6c2486b2bd0a5acef80f0f33296d +--- /dev/null ++++ b/src/main/java/io/papermc/paper/datapack/PaperDatapackManager.java +@@ -0,0 +1,68 @@ ++package io.papermc.paper.datapack; ++ ++import net.minecraft.server.packs.FilePackResources; ++import net.minecraft.server.packs.FolderPackResources; ++import net.minecraft.server.packs.PackResources; ++import net.minecraft.server.packs.ResourcePackFileNotFoundException; ++import net.minecraft.server.packs.repository.Pack; ++import net.minecraft.server.packs.repository.PackRepository; ++import net.minecraft.server.packs.repository.PackSource; ++import org.apache.commons.lang.Validate; ++import org.jetbrains.annotations.NotNull; ++ ++import java.io.File; ++import java.io.FileNotFoundException; ++import java.io.IOException; ++import java.util.Collection; ++import java.util.function.Supplier; ++import java.util.stream.Collectors; ++ ++public class PaperDatapackManager implements DatapackManager { ++ private final PackRepository repository; ++ ++ public PaperDatapackManager(PackRepository repository) { ++ this.repository = repository; ++ } ++ ++ @NotNull ++ @Override ++ public Collection getPacks() { ++ Collection enabledPacks = repository.getSelectedPacks(); ++ return repository.getAvailablePacks().stream().map(loader -> new PaperDatapack(loader, enabledPacks.contains(loader))).collect(Collectors.toList()); ++ } ++ ++ @NotNull ++ @Override ++ public Collection getEnabledPacks() { ++ return repository.getSelectedPacks().stream().map(loader -> new PaperDatapack(loader, true)).collect(Collectors.toList()); ++ } ++ ++ @Override ++ public Datapack loadDatapack(@NotNull String name, @NotNull File file, boolean enable) throws FileNotFoundException, IOException { ++ Validate.notNull(name, "Name cannot be null"); ++ Validate.notNull(name, "File cannot be null"); ++ Pack pack; ++ try { ++ pack = Pack.createUnsafe(name, false, this.createSupplier(file), this.repository.constructor, Pack.Position.TOP, PackSource.SERVER); ++ } catch (ResourcePackFileNotFoundException e) { ++ throw new FileNotFoundException(String.format("'%s' in DataPack '%s'", file, e.getResource())); ++ } ++ ++ if (pack == null) { ++ return null; ++ } ++ ++ PaperRepositorySource repositorySource = (PaperRepositorySource) this.repository.sources.stream().filter(s -> s instanceof PaperRepositorySource).findFirst().get(); ++ repositorySource.packs.add(pack); ++ ++ Datapack datapack = new PaperDatapack(pack, false); ++ this.repository.reload(); ++ datapack.setEnabled(enable); ++ ++ return datapack; ++ } ++ ++ private Supplier createSupplier(File file) { ++ return file.isDirectory() ? () -> new FolderPackResources(file) : () -> new FilePackResources(file); ++ } ++} +diff --git a/src/main/java/io/papermc/paper/datapack/PaperRepositorySource.java b/src/main/java/io/papermc/paper/datapack/PaperRepositorySource.java +new file mode 100644 +index 0000000000000000000000000000000000000000..bfa9e8cc87b9c40d8430de399edf625a66934e28 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/datapack/PaperRepositorySource.java +@@ -0,0 +1,17 @@ ++package io.papermc.paper.datapack; ++ ++import net.minecraft.server.packs.repository.Pack; ++import net.minecraft.server.packs.repository.RepositorySource; ++ ++import java.util.ArrayList; ++import java.util.List; ++import java.util.function.Consumer; ++ ++public class PaperRepositorySource implements RepositorySource { ++ public List packs = new ArrayList<>(); ++ ++ @Override ++ public void loadPacks(Consumer profileAdder, Pack.PackConstructor factory) { ++ packs.forEach(profileAdder::accept); ++ } ++} +diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java +index 1e0d261439255091a6f61485c0747231fbd5b1db..61f86ffa67bf2fe0646eb71201872e539278c040 100644 +--- a/src/main/java/net/minecraft/server/Main.java ++++ b/src/main/java/net/minecraft/server/Main.java +@@ -177,7 +177,7 @@ public class Main { + Main.LOGGER.warn("Safe mode active, only vanilla datapack will be loaded"); + } + +- PackRepository resourcepackrepository = new PackRepository(PackType.SERVER_DATA, new RepositorySource[]{new ServerPacksSource(), new FolderRepositorySource(convertable_conversionsession.getLevelPath(LevelResource.DATAPACK_DIR).toFile(), PackSource.WORLD)}); ++ PackRepository resourcepackrepository = new PackRepository(PackType.SERVER_DATA, new RepositorySource[]{new ServerPacksSource(), new FolderRepositorySource(convertable_conversionsession.getLevelPath(LevelResource.DATAPACK_DIR).toFile(), PackSource.WORLD), new io.papermc.paper.datapack.PaperRepositorySource()}); // Paper + // CraftBukkit start + File bukkitDataPackFolder = new File(convertable_conversionsession.getLevelPath(LevelResource.DATAPACK_DIR).toFile(), "bukkit"); + if (!bukkitDataPackFolder.exists()) { +diff --git a/src/main/java/net/minecraft/server/packs/ResourcePackFileNotFoundException.java b/src/main/java/net/minecraft/server/packs/ResourcePackFileNotFoundException.java +index 60d8a2aab79163e5f959c15edbe4253bb90d736b..b343c5777f120b76e15a128cce925d5654c034f5 100644 +--- a/src/main/java/net/minecraft/server/packs/ResourcePackFileNotFoundException.java ++++ b/src/main/java/net/minecraft/server/packs/ResourcePackFileNotFoundException.java +@@ -4,7 +4,13 @@ import java.io.File; + import java.io.FileNotFoundException; + + public class ResourcePackFileNotFoundException extends FileNotFoundException { ++ // Paper start ++ private String resource; ++ public String getResource() { return this.resource; } ++ // Paper end ++ + public ResourcePackFileNotFoundException(File packSource, String resource) { + super(String.format("'%s' in ResourcePack '%s'", resource, packSource)); ++ this.resource = resource; // Paper + } + } +diff --git a/src/main/java/net/minecraft/server/packs/repository/Pack.java b/src/main/java/net/minecraft/server/packs/repository/Pack.java +index 2039625263c1918ef3caba9613e5b7c394d2bdb4..bffa0b9284f144d7f3c4ecb30b11d7bc34a5cb59 100644 +--- a/src/main/java/net/minecraft/server/packs/repository/Pack.java ++++ b/src/main/java/net/minecraft/server/packs/repository/Pack.java +@@ -32,6 +32,17 @@ public class Pack implements AutoCloseable { + @Nullable + public static Pack create(String name, boolean alwaysEnabled, Supplier packFactory, Pack.PackConstructor profileFactory, Pack.Position insertionPosition, PackSource packSource) { + try { ++ // Paper start ++ return createUnsafe(name, alwaysEnabled, packFactory, profileFactory, insertionPosition, packSource); ++ } catch (IOException var11) { ++ LOGGER.warn("Couldn't get pack info for: {}", (Object)var11.toString()); ++ return null; ++ } ++ } ++ ++ @Nullable ++ public static Pack createUnsafe(String name, boolean alwaysEnabled, Supplier packFactory, Pack.PackConstructor profileFactory, Pack.Position insertionPosition, PackSource packSource) throws IOException { ++ // Paper end + PackResources packResources = packFactory.get(); + + Pack var8; +@@ -68,10 +79,7 @@ public class Pack implements AutoCloseable { + } + + return var8; +- } catch (IOException var11) { +- LOGGER.warn("Couldn't get pack info for: {}", (Object)var11.toString()); +- return null; +- } ++ // Paper - try catch moved up + } + + public Pack(String name, boolean alwaysEnabled, Supplier packFactory, Component displayName, Component description, PackCompatibility compatibility, Pack.Position direction, boolean pinned, PackSource source) { +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 5647eecea3832d48ed9e112cc31f7b3a156b4cb9..38b3404b4c097bbb654886145c34148fd18a17c8 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -280,6 +280,7 @@ public final class CraftServer implements Server { + public boolean ignoreVanillaPermissions = false; + private final List playerView; + public int reloadCount; ++ private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper + public static Exception excessiveVelEx; // Paper - Velocity warnings + + static { +@@ -361,6 +362,7 @@ public final class CraftServer implements Server { + TicketType.PLUGIN.timeout = Math.min(20, this.configuration.getInt("chunk-gc.period-in-ticks")); // Paper - cap plugin loads to 1 second + this.minimumAPI = this.configuration.getString("settings.minimum-api"); + this.loadIcon(); ++ datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper + } + + public boolean getCommandBlockOverride(String command) { +@@ -2726,5 +2728,11 @@ public final class CraftServer implements Server { + public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { + return mobGoals; + } ++ ++ @Override ++ public io.papermc.paper.datapack.PaperDatapackManager getDatapackManager() { ++ return datapackManager; ++ } ++ + // Paper end + } diff --git a/patches/server/0654-Add-Unix-domain-socket-support.patch b/patches/server/0653-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0654-Add-Unix-domain-socket-support.patch rename to patches/server/0653-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0655-Add-EntityInsideBlockEvent.patch b/patches/server/0654-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0655-Add-EntityInsideBlockEvent.patch rename to patches/server/0654-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0656-Attributes-API-for-item-defaults.patch b/patches/server/0655-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0656-Attributes-API-for-item-defaults.patch rename to patches/server/0655-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0656-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 98% rename from patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0656-Add-cause-to-Weather-ThunderChangeEvents.patch index 74ac72ae3b51..3dba17558ebe 100644 --- a/patches/server/0657-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0656-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1b678f60ae054f6d9c97ba17f5ffe258d65cccb1..3864f6756f07c96607b277e250d906223cf178f6 100644 +index 773c7b0fe682fa17363f0a7841a77010b0b38b71..c37934d1319dcd5e9cbba8d4f08550656354cf30 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -474,8 +474,8 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0658-More-Lidded-Block-API.patch b/patches/server/0657-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0658-More-Lidded-Block-API.patch rename to patches/server/0657-More-Lidded-Block-API.patch diff --git a/patches/server/0659-Limit-item-frame-cursors-on-maps.patch b/patches/server/0658-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0659-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0658-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0660-Add-PlayerKickEvent-causes.patch b/patches/server/0659-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0660-Add-PlayerKickEvent-causes.patch rename to patches/server/0659-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0661-Add-PufferFishStateChangeEvent.patch b/patches/server/0660-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0661-Add-PufferFishStateChangeEvent.patch rename to patches/server/0660-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0661-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0662-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0661-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch b/patches/server/0662-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch similarity index 100% rename from patches/server/0663-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch rename to patches/server/0662-Synchronize-PalettedContainer-instead-of-ReentrantLo.patch diff --git a/patches/server/0664-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0663-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0664-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0663-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0665-Add-BellRevealRaiderEvent.patch b/patches/server/0664-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0665-Add-BellRevealRaiderEvent.patch rename to patches/server/0664-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0666-Fix-invulnerable-end-crystals.patch b/patches/server/0665-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0666-Fix-invulnerable-end-crystals.patch rename to patches/server/0665-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0667-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0666-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0667-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0666-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0668-Fix-dangerous-end-portal-logic.patch b/patches/server/0667-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0668-Fix-dangerous-end-portal-logic.patch rename to patches/server/0667-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0668-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0669-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0668-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0670-Make-item-validations-configurable.patch b/patches/server/0669-Make-item-validations-configurable.patch similarity index 98% rename from patches/server/0670-Make-item-validations-configurable.patch rename to patches/server/0669-Make-item-validations-configurable.patch index b10a52f5e4b5..82a6f237122f 100644 --- a/patches/server/0670-Make-item-validations-configurable.patch +++ b/patches/server/0669-Make-item-validations-configurable.patch @@ -56,7 +56,7 @@ index 0f753f4868141ecc383877ea3a666a383f2e3339..ebb643fc0477409d1efb4e9af5967504 } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 9486dc1c1ec5d997d53277ede2f85e9df153939e..9ce647730d9f7aa121e13f2ba00037fc18625efd 100644 +index 671ac759424eaf9b2573545c6fcbec1f3a0ef731..3b0341fecee0d122d2ddf358bc615daae1c58f8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -357,18 +357,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0671-Line-Of-Sight-Changes.patch b/patches/server/0670-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0671-Line-Of-Sight-Changes.patch rename to patches/server/0670-Line-Of-Sight-Changes.patch diff --git a/patches/server/0672-add-per-world-spawn-limits.patch b/patches/server/0671-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0672-add-per-world-spawn-limits.patch rename to patches/server/0671-add-per-world-spawn-limits.patch diff --git a/patches/server/0673-Fix-PotionSplashEvent-for-water-splash-potions.patch b/patches/server/0672-Fix-PotionSplashEvent-for-water-splash-potions.patch similarity index 100% rename from patches/server/0673-Fix-PotionSplashEvent-for-water-splash-potions.patch rename to patches/server/0672-Fix-PotionSplashEvent-for-water-splash-potions.patch diff --git a/patches/server/0674-Add-more-LimitedRegion-API.patch b/patches/server/0673-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0674-Add-more-LimitedRegion-API.patch rename to patches/server/0673-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0675-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0674-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0675-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0674-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0676-Missing-Entity-Behavior-API.patch b/patches/server/0675-Missing-Entity-Behavior-API.patch similarity index 100% rename from patches/server/0676-Missing-Entity-Behavior-API.patch rename to patches/server/0675-Missing-Entity-Behavior-API.patch diff --git a/patches/server/0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0676-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0677-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0676-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/0677-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0678-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0677-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0679-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0678-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0679-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0678-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0680-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0679-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0680-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0679-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0681-Adds-PlayerArmSwingEvent.patch b/patches/server/0680-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0681-Adds-PlayerArmSwingEvent.patch rename to patches/server/0680-Adds-PlayerArmSwingEvent.patch diff --git a/patches/server/0682-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0681-Fixes-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/server/0682-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0681-Fixes-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0683-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0682-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0683-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0682-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0684-Fix-incorrect-message-for-outdated-client.patch b/patches/server/0683-Fix-incorrect-message-for-outdated-client.patch similarity index 100% rename from patches/server/0684-Fix-incorrect-message-for-outdated-client.patch rename to patches/server/0683-Fix-incorrect-message-for-outdated-client.patch diff --git a/patches/server/0685-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0684-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0685-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0684-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0686-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0685-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0686-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0685-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0686-Add-a-bunch-of-missing-forceDrop-toggles.patch similarity index 96% rename from patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0686-Add-a-bunch-of-missing-forceDrop-toggles.patch index 8e69a76f25c6..46872564c276 100644 --- a/patches/server/0687-Add-a-bunch-of-missing-forceDrop-toggles.patch +++ b/patches/server/0686-Add-a-bunch-of-missing-forceDrop-toggles.patch @@ -33,7 +33,7 @@ index 306aa8c36be92d66ebcc6b7e0dbb9dee6ec41a9b..8db4fc59b99694d2b15af188fc1c39cc } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index de4e35305f08cc92876f51edadbe69a620a8166e..f65d32245556e2acab927a29626749edea980f0a 100644 +index d202682d0bc0fb22065cda27b23537f526935a5d..84c129fd931596a4cd3aa5b9caa7da1c309b71a7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -305,7 +305,9 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento diff --git a/patches/server/0688-Stinger-API.patch b/patches/server/0687-Stinger-API.patch similarity index 100% rename from patches/server/0688-Stinger-API.patch rename to patches/server/0687-Stinger-API.patch diff --git a/patches/server/0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0688-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0689-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0688-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0690-Add-System.out-err-catcher.patch b/patches/server/0689-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0690-Add-System.out-err-catcher.patch rename to patches/server/0689-Add-System.out-err-catcher.patch index dde83aa3c80a..8d15e7fb0d38 100644 --- a/patches/server/0690-Add-System.out-err-catcher.patch +++ b/patches/server/0689-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..76d0d00cd6742991e3f3ec827a75ee87 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 99a679945337f412fe7d1c51280b05b5b0bcfb5b..0537f6661b145f4d0f8dd58dde45fb9eebb40561 100644 +index 38b3404b4c097bbb654886145c34148fd18a17c8..2f05c9d16f6b68db289d0822ea565e5195f61002 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -282,6 +282,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0691-Fix-test-not-bootstrapping.patch b/patches/server/0690-Fix-test-not-bootstrapping.patch similarity index 100% rename from patches/server/0691-Fix-test-not-bootstrapping.patch rename to patches/server/0690-Fix-test-not-bootstrapping.patch diff --git a/patches/server/0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0691-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0692-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0691-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0693-Improve-boat-collision-performance.patch b/patches/server/0692-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0693-Improve-boat-collision-performance.patch rename to patches/server/0692-Improve-boat-collision-performance.patch diff --git a/patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0693-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0693-Prevent-AFK-kick-while-watching-end-credits.patch index 44c6dff957f9..b293b7386583 100644 --- a/patches/server/0694-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0693-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index aaa1466c420e346d20aace4115f2d83cb9fb2d0b..e1f530d8b9faf7258a4d4c6dee689548b43b31a2 100644 +index d9eec6be067b858001c31f25788a63f2d50051ce..cfb827f64eaacf9835f950b963b850609347a708 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -387,7 +387,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser diff --git a/patches/server/0695-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0694-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0695-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0694-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0696-Add-PlayerSetSpawnEvent.patch b/patches/server/0695-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0696-Add-PlayerSetSpawnEvent.patch rename to patches/server/0695-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0697-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0696-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0697-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0696-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0698-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0697-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0698-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0697-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0699-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0698-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0699-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0698-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0700-Added-EntityDamageItemEvent.patch b/patches/server/0699-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0700-Added-EntityDamageItemEvent.patch rename to patches/server/0699-Added-EntityDamageItemEvent.patch diff --git a/patches/server/0701-Optimize-indirect-passenger-iteration.patch b/patches/server/0700-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0701-Optimize-indirect-passenger-iteration.patch rename to patches/server/0700-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0702-Fix-block-drops-position-losing-precision-millions-o.patch b/patches/server/0701-Fix-block-drops-position-losing-precision-millions-o.patch similarity index 100% rename from patches/server/0702-Fix-block-drops-position-losing-precision-millions-o.patch rename to patches/server/0701-Fix-block-drops-position-losing-precision-millions-o.patch diff --git a/patches/server/0703-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0702-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0703-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0702-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0704-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0703-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/server/0704-Make-EntityUnleashEvent-cancellable.patch rename to patches/server/0703-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0705-Clear-bucket-NBT-after-dispense.patch b/patches/server/0704-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0705-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0704-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0706-Respect-despawn-rate-in-item-merge-check.patch b/patches/server/0705-Respect-despawn-rate-in-item-merge-check.patch similarity index 100% rename from patches/server/0706-Respect-despawn-rate-in-item-merge-check.patch rename to patches/server/0705-Respect-despawn-rate-in-item-merge-check.patch diff --git a/patches/server/0707-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0706-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0707-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0706-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0708-Add-BlockBreakBlockEvent.patch b/patches/server/0707-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0708-Add-BlockBreakBlockEvent.patch rename to patches/server/0707-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0708-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0709-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0708-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0710-More-CommandBlock-API.patch b/patches/server/0709-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0710-More-CommandBlock-API.patch rename to patches/server/0709-More-CommandBlock-API.patch diff --git a/patches/server/0711-Add-missing-team-sidebar-display-slots.patch b/patches/server/0710-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0711-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0710-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0712-Add-back-EntityPortalExitEvent.patch b/patches/server/0711-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0712-Add-back-EntityPortalExitEvent.patch rename to patches/server/0711-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0712-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 96% rename from patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0712-Add-methods-to-find-targets-for-lightning-strikes.patch index 742d7716fff9..4ca7881e95cd 100644 --- a/patches/server/0713-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0712-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6a526474ca4683b8df3d4a61950e661963cbc737..7eeb80e708da11cc0ec41e4eeee53fb370ac17b1 100644 +index 8fbf0b2f6bd0bdc9eef8e9b950a81e258e1cc552..990c16b52ac80df180086d045d56923bb2d69b1e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -754,6 +754,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0714-Get-entity-default-attributes.patch b/patches/server/0713-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0714-Get-entity-default-attributes.patch rename to patches/server/0713-Get-entity-default-attributes.patch diff --git a/patches/server/0715-Left-handed-API.patch b/patches/server/0714-Left-handed-API.patch similarity index 100% rename from patches/server/0715-Left-handed-API.patch rename to patches/server/0714-Left-handed-API.patch diff --git a/patches/server/0716-Add-advancement-display-API.patch b/patches/server/0715-Add-advancement-display-API.patch similarity index 100% rename from patches/server/0716-Add-advancement-display-API.patch rename to patches/server/0715-Add-advancement-display-API.patch diff --git a/patches/server/0717-Add-ItemFactory-getMonsterEgg-API.patch b/patches/server/0716-Add-ItemFactory-getMonsterEgg-API.patch similarity index 100% rename from patches/server/0717-Add-ItemFactory-getMonsterEgg-API.patch rename to patches/server/0716-Add-ItemFactory-getMonsterEgg-API.patch diff --git a/patches/server/0718-Add-critical-damage-API.patch b/patches/server/0717-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0718-Add-critical-damage-API.patch rename to patches/server/0717-Add-critical-damage-API.patch diff --git a/patches/server/0719-Fix-issues-with-mob-conversion.patch b/patches/server/0718-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0719-Fix-issues-with-mob-conversion.patch rename to patches/server/0718-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0720-Add-isCollidable-methods-to-various-places.patch b/patches/server/0719-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0720-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0719-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0721-Goat-ram-API.patch b/patches/server/0720-Goat-ram-API.patch similarity index 100% rename from patches/server/0721-Goat-ram-API.patch rename to patches/server/0720-Goat-ram-API.patch diff --git a/patches/server/0722-Add-API-for-resetting-a-single-score.patch b/patches/server/0721-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0722-Add-API-for-resetting-a-single-score.patch rename to patches/server/0721-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0723-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0722-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0723-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0722-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0724-Vanilla-command-permission-fixes.patch b/patches/server/0723-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0724-Vanilla-command-permission-fixes.patch rename to patches/server/0723-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0725-Make-CallbackExecutor-strict-again.patch b/patches/server/0724-Make-CallbackExecutor-strict-again.patch similarity index 100% rename from patches/server/0725-Make-CallbackExecutor-strict-again.patch rename to patches/server/0724-Make-CallbackExecutor-strict-again.patch diff --git a/patches/server/0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch b/patches/server/0725-Do-not-allow-the-server-to-unload-chunks-at-request-.patch similarity index 100% rename from patches/server/0726-Do-not-allow-the-server-to-unload-chunks-at-request-.patch rename to patches/server/0725-Do-not-allow-the-server-to-unload-chunks-at-request-.patch diff --git a/patches/server/0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0726-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0727-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0726-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0728-Correctly-handle-recursion-for-chunkholder-updates.patch b/patches/server/0727-Correctly-handle-recursion-for-chunkholder-updates.patch similarity index 100% rename from patches/server/0728-Correctly-handle-recursion-for-chunkholder-updates.patch rename to patches/server/0727-Correctly-handle-recursion-for-chunkholder-updates.patch diff --git a/patches/server/0729-Fix-GameProfileCache-concurrency.patch b/patches/server/0728-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0729-Fix-GameProfileCache-concurrency.patch rename to patches/server/0728-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch b/patches/server/0729-Fix-chunks-refusing-to-unload-at-low-TPS.patch similarity index 100% rename from patches/server/0730-Fix-chunks-refusing-to-unload-at-low-TPS.patch rename to patches/server/0729-Fix-chunks-refusing-to-unload-at-low-TPS.patch diff --git a/patches/server/0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/server/0730-Do-not-allow-ticket-level-changes-while-unloading-pl.patch similarity index 100% rename from patches/server/0731-Do-not-allow-ticket-level-changes-while-unloading-pl.patch rename to patches/server/0730-Do-not-allow-ticket-level-changes-while-unloading-pl.patch diff --git a/patches/server/0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch b/patches/server/0731-Do-not-allow-ticket-level-changes-when-updating-chun.patch similarity index 100% rename from patches/server/0732-Do-not-allow-ticket-level-changes-when-updating-chun.patch rename to patches/server/0731-Do-not-allow-ticket-level-changes-when-updating-chun.patch diff --git a/patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0732-Do-not-submit-profile-lookups-to-worldgen-threads.patch similarity index 97% rename from patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch rename to patches/server/0732-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 8ae08b04c803..f1e2a4b83da5 100644 --- a/patches/server/0733-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0732-Do-not-submit-profile-lookups-to-worldgen-threads.patch @@ -37,7 +37,7 @@ index c072819c1ebc772f524649c6c2f8b48d919bf805..bbe69b5b2b1b7ccd3358325c9a65e7e1 public static LongSupplier timeSource = System::nanoTime; public static final Ticker TICKER = new Ticker() { diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 534373a1e305942d63ffb0fc97ea3f165eca76b5..e3fbada96b530784fa1de63a322b484865ed194f 100644 +index 764132b38be5a87e09a3bfe5262e59df5b225519..9259eeea54d77ddecf044edf80e0eca6cb95278f 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -206,7 +206,7 @@ public class GameProfileCache { diff --git a/patches/server/0734-Log-when-the-async-catcher-is-tripped.patch b/patches/server/0733-Log-when-the-async-catcher-is-tripped.patch similarity index 100% rename from patches/server/0734-Log-when-the-async-catcher-is-tripped.patch rename to patches/server/0733-Log-when-the-async-catcher-is-tripped.patch diff --git a/patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0734-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 99% rename from patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0734-Add-paper-mobcaps-and-paper-playermobcaps.patch index f36284ae0ce3..fe2b207d0866 100644 --- a/patches/server/0735-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0734-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -293,7 +293,7 @@ index 1622450b53e0f0f48c3ca107e4d705b4ad29dadf..f6a225eed29eed364b7e2ea6bc85d55d public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0537f6661b145f4d0f8dd58dde45fb9eebb40561..eb3e8256f2ce62e1a2354c902226846c96b16ed9 100644 +index 2f05c9d16f6b68db289d0822ea565e5195f61002..a51e2fe2337ba1122dfe86410bb10eddaf21addb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2137,6 +2137,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch b/patches/server/0735-Prevent-unload-calls-removing-tickets-for-sync-loads.patch similarity index 100% rename from patches/server/0736-Prevent-unload-calls-removing-tickets-for-sync-loads.patch rename to patches/server/0735-Prevent-unload-calls-removing-tickets-for-sync-loads.patch diff --git a/patches/server/0737-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0736-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0737-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0736-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0738-Optimise-general-POI-access.patch b/patches/server/0737-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0738-Optimise-general-POI-access.patch rename to patches/server/0737-Optimise-general-POI-access.patch diff --git a/patches/server/0739-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0738-Allow-controlled-flushing-for-network-manager.patch similarity index 100% rename from patches/server/0739-Allow-controlled-flushing-for-network-manager.patch rename to patches/server/0738-Allow-controlled-flushing-for-network-manager.patch diff --git a/patches/server/0740-Add-more-async-catchers.patch b/patches/server/0739-Add-more-async-catchers.patch similarity index 100% rename from patches/server/0740-Add-more-async-catchers.patch rename to patches/server/0739-Add-more-async-catchers.patch diff --git a/patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch b/patches/server/0740-Rewrite-entity-bounding-box-lookup-calls.patch similarity index 99% rename from patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch rename to patches/server/0740-Rewrite-entity-bounding-box-lookup-calls.patch index 0a840e45df12..30a3bfe1fe6b 100644 --- a/patches/server/0741-Rewrite-entity-bounding-box-lookup-calls.patch +++ b/patches/server/0740-Rewrite-entity-bounding-box-lookup-calls.patch @@ -914,7 +914,7 @@ index 0000000000000000000000000000000000000000..3ba094e640d7fe7803e2bbdab8ff3beb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 02b6cdc6b0b90fba7523f5eafb1b5641d6eceb66..eace9e9c97fff7d02326805ce77cc75a650f9b6d 100644 +index 3d00c1bcd5acbeee09f1854076545a1d3628d27e..4800285c5a6262d2f3331a10bb262e37489a47fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -431,7 +431,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0742-Optimise-chunk-tick-iteration.patch b/patches/server/0741-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/0742-Optimise-chunk-tick-iteration.patch rename to patches/server/0741-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/0743-Execute-chunk-tasks-mid-tick.patch b/patches/server/0742-Execute-chunk-tasks-mid-tick.patch similarity index 97% rename from patches/server/0743-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0742-Execute-chunk-tasks-mid-tick.patch index acf3980fc306..b40a88624bdc 100644 --- a/patches/server/0743-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0742-Execute-chunk-tasks-mid-tick.patch @@ -19,7 +19,7 @@ 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 65d5d96a687712d87bbc61d85f80438811bae07d..a279368fe144bd41d15e5fe5e565412f8b4ef9f7 100644 +index 8aaf73d24ddff65c45eeb18d573e20fb8a1439a5..fddb279d161b30d6944495f0de9f6b7e21761a80 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1344,6 +1344,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 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 + for (int i = 0; longiterator.hasNext() && (shouldKeepTicking.getAsBoolean() || i < 200 || this.toDrop.size() > 2000); longiterator.remove()) { +@@ -1047,6 +1050,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 727ee42ec573fd1d008f526f49d0e63396ef0a9d..0e6bc8f7b31581fe0e7adb13119b3029 if (ichunkaccess instanceof LevelChunk) { ((LevelChunk) ichunkaccess).setLoaded(false); } -@@ -1076,6 +1078,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1076,6 +1080,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 727ee42ec573fd1d008f526f49d0e63396ef0a9d..0e6bc8f7b31581fe0e7adb13119b3029 } // Paper end } finally { this.unloadingPlayerChunk = unloadingBefore; } // Paper - do not allow ticket level changes while unloading chunks -@@ -1152,6 +1155,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1152,6 +1157,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 727ee42ec573fd1d008f526f49d0e63396ef0a9d..0e6bc8f7b31581fe0e7adb13119b3029 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..54013682ee07cfe34f47070b6460c21ff420130f 100644 +index 8a569e3300543cb171c3befae59969628adc424c..bbd9fdaa4b12543307b144da72b0604eae638cbb 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..54013682ee07cfe34f47070b6460c21f + net.minecraft.server.level.ServerChunkCache chunkProvider = this.world.getChunkSource(); + net.minecraft.server.level.ChunkMap playerChunkMap = chunkProvider.chunkMap; + // copied target determination from PlayerChunkMap -+ -+ java.util.Iterator iterator = this.queuedUnloads.iterator(); -+ for (int i = 0; iterator.hasNext() && (i < 200 || this.queuedUnloads.size() > 2000 || canSleepForTick.getAsBoolean()); i++) { ++ 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 iterator = this.queuedUnloads.iterator(); ++ iterator.hasNext() && (this.queuedUnloads.size() > target || canSleepForTick.getAsBoolean());) { + QueuedUnload unload = iterator.next(); + if (unload.unloadTick > currentTick) { + break; diff --git a/patches/server/0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0814-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0815-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0814-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0816-Update-Log4j.patch b/patches/server/0815-Update-Log4j.patch similarity index 100% rename from patches/server/0816-Update-Log4j.patch rename to patches/server/0815-Update-Log4j.patch diff --git a/patches/server/0817-Add-more-Campfire-API.patch b/patches/server/0816-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0817-Add-more-Campfire-API.patch rename to patches/server/0816-Add-more-Campfire-API.patch diff --git a/patches/server/0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0817-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0818-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0817-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0819-Fix-tripwire-state-inconsistency.patch b/patches/server/0818-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0819-Fix-tripwire-state-inconsistency.patch rename to patches/server/0818-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0820-Fix-fluid-logging-on-Block-breakNaturally.patch b/patches/server/0819-Fix-fluid-logging-on-Block-breakNaturally.patch similarity index 100% rename from patches/server/0820-Fix-fluid-logging-on-Block-breakNaturally.patch rename to patches/server/0819-Fix-fluid-logging-on-Block-breakNaturally.patch diff --git a/patches/server/0821-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0820-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0821-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0820-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0822-Improve-scoreboard-entries.patch b/patches/server/0821-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0822-Improve-scoreboard-entries.patch rename to patches/server/0821-Improve-scoreboard-entries.patch diff --git a/patches/server/0823-Entity-powdered-snow-API.patch b/patches/server/0822-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0823-Entity-powdered-snow-API.patch rename to patches/server/0822-Entity-powdered-snow-API.patch diff --git a/patches/server/0824-Add-API-for-item-entity-health.patch b/patches/server/0823-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0824-Add-API-for-item-entity-health.patch rename to patches/server/0823-Add-API-for-item-entity-health.patch diff --git a/patches/server/0825-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0824-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0825-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0824-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0826-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0825-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0826-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0825-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0826-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0827-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0826-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0828-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0827-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0828-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0827-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0828-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0829-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0828-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0830-Fix-bees-aging-inside-hives.patch b/patches/server/0829-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0830-Fix-bees-aging-inside-hives.patch rename to patches/server/0829-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0831-Bucketable-API.patch b/patches/server/0830-Bucketable-API.patch similarity index 100% rename from patches/server/0831-Bucketable-API.patch rename to patches/server/0830-Bucketable-API.patch diff --git a/patches/server/0832-Check-player-world-in-endPortalSoundRadius.patch b/patches/server/0831-Check-player-world-in-endPortalSoundRadius.patch similarity index 100% rename from patches/server/0832-Check-player-world-in-endPortalSoundRadius.patch rename to patches/server/0831-Check-player-world-in-endPortalSoundRadius.patch diff --git a/patches/server/0833-Validate-usernames.patch b/patches/server/0832-Validate-usernames.patch similarity index 100% rename from patches/server/0833-Validate-usernames.patch rename to patches/server/0832-Validate-usernames.patch diff --git a/patches/server/0834-Fix-saving-configs-with-more-long-comments.patch b/patches/server/0833-Fix-saving-configs-with-more-long-comments.patch similarity index 100% rename from patches/server/0834-Fix-saving-configs-with-more-long-comments.patch rename to patches/server/0833-Fix-saving-configs-with-more-long-comments.patch diff --git a/patches/server/0835-Make-water-animal-spawn-height-configurable.patch b/patches/server/0834-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0835-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0834-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0835-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 97% rename from patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0835-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 9f61505995a7..70b18355f880 100644 --- a/patches/server/0836-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0835-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ 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 f877b956859643b4f3d969992f2e515dc490f90c..88db383a1527301332e8a047066afa5ed827db32 100644 +index df955666723a8cb1e612311f0b8e77fb577d6be5..01aefce226ae82d707b38b0d56d2580d411a3c9a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -582,7 +582,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> 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 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb821af528f 100644 +index 78f5aa13a02dad681fc8236c198fc43457c206f9..e680c374df7ab27e22bc1fe78abc697d04ad5cd9 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 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 } // Paper end // Paper start -@@ -1421,11 +1425,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1423,11 +1427,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider completablefuture1.thenAcceptAsync((either) -> { either.ifLeft((chunk) -> { this.tickingGenerated.getAndIncrement(); @@ -1447,7 +1447,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 }); }, (runnable) -> { this.mainThreadMailbox.tell(ChunkTaskPriorityQueueSorter.message(holder, runnable)); -@@ -1594,33 +1594,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1596,33 +1596,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int k = this.viewDistance; this.viewDistance = j; @@ -1467,7 +1467,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 - this.updateChunkTracking(entityplayer, chunkcoordintpair, mutableobject, flag, flag1); - }); - } -+ this.playerChunkManager.setLoadDistance(this.viewDistance); // Paper - replace player loader system ++ this.playerChunkManager.setLoadDistance(Mth.clamp(this.viewDistance, 2, 32)); // Paper - replace player loader system } } @@ -1490,7 +1490,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 if (chunk != null) { this.playerLoadedChunk(player, packet, chunk); -@@ -1651,7 +1642,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1653,7 +1644,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 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 ObjectBidirectionalIterator objectbidirectionaliterator = this.updatingChunks.getVisibleMap().clone().long2ObjectEntrySet().fastIterator(); // Paper while (objectbidirectionaliterator.hasNext()) { -@@ -1667,7 +1658,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1669,7 +1660,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 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 return chunk.getBlockTicks().count(); }).orElse(0), optional1.map((chunk) -> { return chunk.getFluidTicks().count(); -@@ -1884,15 +1875,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1886,15 +1877,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.removePlayerFromDistanceMaps(player); // Paper - distance maps } @@ -1525,7 +1525,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 } -@@ -1900,7 +1883,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1902,7 +1885,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider SectionPos sectionposition = SectionPos.of((Entity) player); player.setLastSectionPos(sectionposition); @@ -1534,7 +1534,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 return sectionposition; } -@@ -1945,65 +1928,40 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1947,65 +1930,40 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int k1; int l1; @@ -1622,7 +1622,7 @@ index 0e6bc8f7b31581fe0e7adb13119b30295aeac48d..6ce27675103d4b691216c6b701b6ceb8 } public void addEntity(Entity entity) { -@@ -2372,7 +2330,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2374,7 +2332,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 1e2c430a8df6afde91e3c5169d2d7b501acdec7f..1347ea594d3e771f02a73d95454388d4533c8be8 100644 +index 5e019d438f714ea87faa0d85cf9c38af58cfac14..c85a477b4a3c329a6fb248ae08127c8a62788742 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 { diff --git a/patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0858-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0858-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 5421744dc365..acba477db3a1 100644 --- a/patches/server/0859-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0858-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ 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 88db383a1527301332e8a047066afa5ed827db32..dc94d0a99af26a61b1309ea556b0df2d5f525ea3 100644 +index 01aefce226ae82d707b38b0d56d2580d411a3c9a..c2c1242bcf26c73b3520c797e77c3c2d430dfac7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1354,6 +1354,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop