From ceef4b9c0977f75b912a1fc993815e83786e47e1 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 1 Aug 2022 21:56:28 +0200 Subject: [PATCH] Don't call AsyncTabCompleteEvent from netty IO thread (#8218) --- patches/api/0075-AsyncTabCompleteEvent.patch | 356 ++++++++++++++- ...ent-suggestion-tooltips-in-AsyncTabC.patch | 407 ------------------ ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ... => 0283-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0284-More-World-API.patch} | 0 ... 0285-Added-PlayerBedFailEnterEvent.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...> 0287-PlayerMoveEvent-Improvements.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 0 ...> 0289-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...address-to-AsyncPlayerPreLoginEvent.patch} | 0 ...close.patch => 0293-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0295-Add-basic-Datapack-API.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0297-ItemStack-repair-check-API.patch} | 0 ....patch => 0298-More-Enchantment-API.patch} | 0 ...missing-hard-depends-not-just-first.patch} | 0 ...PI.patch => 0300-Add-Mob-lookAt-API.patch} | 0 ...ta.patch => 0301-ItemStack-editMeta.patch} | 0 ... => 0302-Add-EntityInsideBlockEvent.patch} | 0 ...03-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0305-More-Lidded-Block-API.patch} | 0 ... => 0306-Add-PlayerKickEvent-causes.patch} | 0 ...0307-Add-PufferFishStateChangeEvent.patch} | 0 ...h => 0308-Add-BellRevealRaiderEvent.patch} | 0 ...09-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0310-Add-more-line-of-sight-methods.patch} | 0 ... => 0311-Add-more-LimitedRegion-API.patch} | 0 ...=> 0312-Missing-Entity-Behavior-API.patch} | 0 ...ch => 0313-Adds-PlayerArmSwingEvent.patch} | 0 ...dd-PlayerSignCommandPreprocessEvent.patch} | 0 ...array-elements-in-command-arguments.patch} | 0 ...inger-API.patch => 0316-Stinger-API.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...tch => 0318-Add-PlayerSetSpawnEvent.patch} | 0 ...=> 0319-Added-EntityDamageItemEvent.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0322-Add-BlockBreakBlockEvent.patch} | 0 ...pers-for-left-right-click-to-Action.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0325-More-CommandBlock-API.patch} | 0 ...0326-Fix-plugin-provides-load-order.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0328-add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0330-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0331-Left-handed-API.patch} | 0 ...=> 0332-Add-advancement-display-API.patch} | 0 ...3-Add-ItemFactory-getMonsterEgg-API.patch} | 0 ...tch => 0334-Add-critical-damage-API.patch} | 0 ...0335-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0337-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...9-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...0340-Add-PlayerItemFrameChangeEvent.patch} | 0 ...> 0341-Add-player-health-update-API.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...patch => 0343-Add-more-Campfire-API.patch} | 0 ...ehicleCollisionEvent-HandlerList-up.patch} | 0 ... => 0345-Improve-scoreboard-entries.patch} | 0 ...ch => 0346-Entity-powdered-snow-API.patch} | 0 ...0347-Add-API-for-item-entity-health.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...le-API.patch => 0349-Bucketable-API.patch} | 0 ...-for-default-config-comment-parsing.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ... 0352-Remove-upstream-snakeyaml-fix.patch} | 0 ...load-to-PersistentDataContainer-has.patch} | 0 ...4-Multiple-Entries-with-Scoreboards.patch} | 0 ...ostname-to-AsyncPlayerPreLoginEvent.patch} | 0 ...n-strange-EventHandler-return-types.patch} | 0 ...atch => 0357-Multi-Block-Change-API.patch} | 0 ...ent.patch => 0358-Fix-NotePlayEvent.patch} | 0 ....patch => 0359-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0360-Dolphin-API.patch} | 0 ...h => 0361-More-PotionEffectType-API.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...h => 0363-Implement-regenerateChunk.patch} | 0 ...-t-load-plugins-prefixed-with-a-dot.patch} | 0 ...gs.patch => 0365-Add-GameEvent-tags.patch} | 0 ...tch => 0366-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...s.patch => 0369-Custom-Potion-Mixes.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...I.patch => 0371-More-Projectile-API.patch} | 0 ...ch => 0372-Add-getComputedBiome-API.patch} | 0 ...h => 0373-Add-enchantWithLevels-API.patch} | 0 ... 0374-Add-TameableDeathMessageEvent.patch} | 0 ...hange-the-podium-of-the-EnderDragon.patch} | 0 ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...0377-Update-Folder-Uses-Plugin-Name.patch} | 0 ...> 0378-WorldCreator-keepSpawnLoaded.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...> 0380-Add-PlayerStopUsingItemEvent.patch} | 0 ...81-FallingBlock-auto-expire-setting.patch} | 0 ...t-Type.patch => 0382-Keyed-Cat-Type.patch} | 0 ... => 0383-Add-WardenAngerChangeEvent.patch} | 0 ...I.patch => 0384-Nameable-Banner-API.patch} | 0 ...atch => 0385-Add-Player-getFishHook.patch} | 0 ...API.patch => 0386-More-Teleport-API.patch} | 0 ... => 0387-Add-EntityPortalReadyEvent.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...ion-API.patch => 0389-Collision-API.patch} | 0 .../server/0166-AsyncTabCompleteEvent.patch | 131 ++++-- ...-allowed-colored-signs-to-be-created.patch | 4 +- .../0215-InventoryCloseEvent-Reason-API.patch | 10 +- ...nventory-when-cancelling-PlayerInter.patch | 4 +- ...nd-make-tab-spam-limits-configurable.patch | 4 +- ...52-Asynchronous-chunk-IO-and-loading.patch | 10 +- ...event-players-from-moving-into-unloa.patch | 6 +- ...t-allow-digging-into-unloaded-chunks.patch | 4 +- patches/server/0290-Book-Size-Limits.patch | 4 +- .../0298-Implement-Brigadier-Mojang-API.patch | 50 +-- .../0300-Limit-Client-Sign-length-more.patch | 4 +- ...ity-Metadata-for-all-tracked-players.patch | 4 +- ...32-Dont-send-unnecessary-sign-update.patch | 4 +- ...or-when-player-hand-set-to-empty-typ.patch | 4 +- ...PickItem-Packet-and-kick-for-invalid.patch | 4 +- ...08-Prevent-teleporting-dead-entities.patch | 4 +- ...-desync-in-playerconnection-causing-.patch | 4 +- ...implement-PlayerRecipeBookClickEvent.patch | 4 +- ...40-Add-permission-for-command-blocks.patch | 6 +- ...ld-Difficulty-Remembering-Difficulty.patch | 8 +- patches/server/0475-Brand-support.patch | 10 +- ...ortation-and-cancel-velocity-if-tele.patch | 4 +- ...r-large-move-vectors-crashing-server.patch | 6 +- .../server/0535-Limit-recipe-packets.patch | 4 +- ...-event-not-being-called-in-adventure.patch | 6 +- ...-using-signs-inside-spawn-protection.patch | 4 +- ...ignore-result-of-PlayerEditBookEvent.patch | 4 +- ...ent-suggestion-tooltips-in-AsyncTabC.patch | 133 ------ ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0616-Add-bypass-host-check.patch} | 0 ...0617-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...-checkReach-check-for-Shulker-boxes.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 4 +- ... => 0624-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0625-More-World-API.patch} | 0 ... 0626-Added-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...n-acting-as-a-bed-respawn-from-the-.patch} | 2 +- ...acon-activation-deactivation-events.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 6 +- ...dd-Channel-initialization-listeners.patch} | 2 +- ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0633-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...address-to-AsyncPlayerPreLoginEvent.patch} | 2 +- ...close.patch => 0637-Inventory-close.patch} | 0 ...reateEvent-players-and-end-platform.patch} | 2 +- ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...=> 0640-Fix-CraftPotionBrewer-cache.patch} | 0 ...atch => 0641-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 8 +- ... => 0644-ItemStack-repair-check-API.patch} | 0 ....patch => 0645-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 4 +- ...-and-optimise-world-force-upgrading.patch} | 2 +- ...PI.patch => 0648-Add-Mob-lookAt-API.patch} | 0 ...0649-Add-Unix-domain-socket-support.patch} | 0 ... => 0650-Add-EntityInsideBlockEvent.patch} | 0 ...51-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0653-More-Lidded-Block-API.patch} | 0 ...54-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0655-Add-PlayerKickEvent-causes.patch} | 50 +-- ...0656-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 2 +- ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0660-Add-BellRevealRaiderEvent.patch} | 0 ... 0661-Fix-invulnerable-end-crystals.patch} | 0 ...62-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0663-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0666-Line-Of-Sight-Changes.patch} | 0 ... => 0667-add-per-world-spawn-limits.patch} | 0 ...plashEvent-for-water-splash-potions.patch} | 0 ... => 0669-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 2 +- ...=> 0671-Missing-Entity-Behavior-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 4 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...ch => 0676-Adds-PlayerArmSwingEvent.patch} | 4 +- ...-event-leave-message-not-being-sent.patch} | 10 +- ...-for-mobs-immune-to-default-effects.patch} | 0 ...correct-message-for-outdated-client.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 2 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ...-bunch-of-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0683-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0685-Add-System.out-err-catcher.patch} | 0 ... => 0686-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 => 0691-Add-PlayerSetSpawnEvent.patch} | 6 +- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...=> 0695-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 ...700-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0702-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0704-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0706-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0708-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0709-Left-handed-API.patch} | 0 ...=> 0710-Add-advancement-display-API.patch} | 0 ...1-Add-ItemFactory-getMonsterEgg-API.patch} | 0 ...tch => 0712-Add-critical-damage-API.patch} | 0 ...0713-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0715-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...7-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...18-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} | 2 +- ...e-recursion-for-chunkholder-updates.patch} | 0 ...23-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 ...g-when-the-async-catcher-is-tripped.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...lls-removing-tickets-for-sync-loads.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...rolled-flushing-for-network-manager.patch} | 2 +- ...=> 0732-Optimise-general-POI-access.patch} | 0 ...tch => 0733-Add-more-async-catchers.patch} | 0 ...te-entity-bounding-box-lookup-calls.patch} | 2 +- ... 0735-Optimise-chunk-tick-iteration.patch} | 0 ...> 0736-Execute-chunk-tasks-mid-tick.patch} | 0 ... => 0737-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} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ... 0742-Distance-manager-tick-timings.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...h => 0745-Add-packet-limiter-config.patch} | 2 +- ...Stem-registry-when-loading-default-.patch} | 2 +- ...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 => 0750-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...2-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 ... 0756-Optimise-random-block-ticking.patch} | 2 +- ...7-Optimise-non-flush-packet-sending.patch} | 2 +- ...0758-Optimise-nearby-player-lookups.patch} | 0 ...=> 0759-Optimise-WorldServer-notify.patch} | 0 ...0760-Remove-streams-for-villager-AI.patch} | 0 ...> 0761-Rewrite-dataconverter-system.patch} | 0 ...city-compression-and-cipher-natives.patch} | 4 +- ...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} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 10 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0771-Ensure-valid-vehicle-status.patch} | 2 +- ...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 ...ous-menus-with-empty-level-accesses.patch} | 0 ...-O-threads-with-chunk-data-while-fl.patch} | 0 ...h => 0777-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0780-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ...ion-for-logging-player-ip-addresses.patch} | 2 +- ... => 0783-Configurable-feature-seeds.patch} | 0 ...pper-didnt-account-for-entity-sende.patch} | 0 ... 0785-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...ch => 0790-Rewrite-the-light-engine.patch} | 2 +- ...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 ...0797-Add-PlayerItemFrameChangeEvent.patch} | 0 ...> 0798-Add-player-health-update-API.patch} | 2 +- ...tch => 0799-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...ingle-and-multi-AABB-VoxelShapes-an.patch} | 4 +- ...n-checking-in-player-move-packet-ha.patch} | 12 +- ...ch => 0803-Actually-unload-POI-data.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...te-Log4j.patch => 0805-Update-Log4j.patch} | 0 ...patch => 0806-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...08-Fix-tripwire-state-inconsistency.patch} | 0 ...uid-logging-on-Block-breakNaturally.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0811-Improve-scoreboard-entries.patch} | 0 ...ch => 0812-Entity-powdered-snow-API.patch} | 0 ...0813-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 ...=> 0819-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0820-Bucketable-API.patch} | 0 ...layer-world-in-endPortalSoundRadius.patch} | 0 ...es.patch => 0822-Validate-usernames.patch} | 4 +- ...ing-configs-with-more-long-comments.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 2 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...load-to-PersistentDataContainer-has.patch} | 0 ...8-Multiple-Entries-with-Scoreboards.patch} | 0 ...829-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...ostname-to-AsyncPlayerPreLoginEvent.patch} | 2 +- ...0832-Fix-xp-reward-for-baby-zombies.patch} | 0 ... 0833-Kick-on-main-for-illegal-chat.patch} | 8 +- ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0835-Fix-NotePlayEvent.patch} | 0 ....patch => 0836-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0837-Dolphin-API.patch} | 0 ...h => 0838-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...0841-Add-config-for-stronghold-seed.patch} | 0 ...h => 0842-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0845-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...847-Replace-ticket-level-propagator.patch} | 0 ...tch => 0848-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} | 2 +- ... => 0853-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0854-Custom-Potion-Mixes.patch} | 2 +- ...-Replace-player-chunk-loader-system.patch} | 6 +- ...0856-Fix-Fluid-tags-isTagged-method.patch} | 0 ...57-Force-close-world-loading-screen.patch} | 2 +- ...858-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ... 0861-Fix-save-problems-on-shutdown.patch} | 2 +- ...I.patch => 0862-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0865-Implement-getComputedBiome-API.patch} | 0 ...> 0866-Make-some-itemstacks-nonnull.patch} | 0 ...alid-GameProfiles-on-skull-blocks-i.patch} | 0 ...868-Implement-enchantWithLevels-API.patch} | 0 ...h => 0869-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0870-Buffer-OOB-setBlock-calls.patch} | 0 ... 0871-Add-TameableDeathMessageEvent.patch} | 0 ...a-for-EntityChangeBlockEvent-when-s.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 2 +- ...ssenger-world-matches-ridden-entity.patch} | 0 ...rd-against-invalid-entity-positions.patch} | 0 ...s.patch => 0876-cache-resource-keys.patch} | 0 ...ange-the-podium-for-the-EnderDragon.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 4 +- ...ead-of-display-name-in-PlayerList-g.patch} | 2 +- ...s-not-spawning-outside-slime-chunks.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 4 +- ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0885-WorldCreator-keepSpawnLoaded.patch} | 0 ...-NPE-for-BlockDataMeta-getBlockData.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0891-Add-PlayerStopUsingItemEvent.patch} | 0 ...92-FallingBlock-auto-expire-setting.patch} | 0 ...rs.patch => 0893-Don-t-tick-markers.patch} | 2 +- ...-not-accept-invalid-client-settings.patch} | 4 +- ...0895-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0898-Sanitize-Sent-BlockEntity-NBT.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 2 +- ...ate-Current-redstone-implementation.patch} | 0 ...03-Dont-resent-entity-on-art-update.patch} | 0 ...atch => 0904-Add-missing-spawn-eggs.patch} | 0 ... => 0905-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 2 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0908-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...nent-in-resource-pack-rejection-mes.patch} | 4 +- ...atch => 0913-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...debug-information-to-chat-packet-er.patch} | 6 +- ...PE.patch => 0917-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 4 +- ...on-to-Tadpoles-spawned-by-Frogspawn.patch} | 0 ...API.patch => 0920-More-Teleport-API.patch} | 6 +- ... => 0921-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 4 +- ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...=> 0926-Add-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0927-Collision-API.patch} | 0 454 files changed, 655 insertions(+), 800 deletions(-) delete mode 100644 patches/api/0280-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch rename patches/api/{0281-add-isDeeplySleeping-to-HumanEntity.patch => 0280-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/api/{0282-add-consumeFuel-to-FurnaceBurnEvent.patch => 0281-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/api/{0283-add-get-set-drop-chance-to-EntityEquipment.patch => 0282-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/api/{0284-Added-PlayerDeepSleepEvent.patch => 0283-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/api/{0285-More-World-API.patch => 0284-More-World-API.patch} (100%) rename patches/api/{0286-Added-PlayerBedFailEnterEvent.patch => 0285-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/api/{0287-Introduce-beacon-activation-deactivation-events.patch => 0286-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/api/{0288-PlayerMoveEvent-Improvements.patch => 0287-PlayerMoveEvent-Improvements.patch} (100%) rename patches/api/{0289-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0288-add-RespawnFlags-to-PlayerRespawnEvent.patch} (100%) rename patches/api/{0290-Add-more-WanderingTrader-API.patch => 0289-Add-more-WanderingTrader-API.patch} (100%) rename patches/api/{0291-Add-EntityBlockStorage-clearEntities.patch => 0290-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/api/{0292-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0291-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/api/{0293-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch => 0292-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch} (100%) rename patches/api/{0294-Inventory-close.patch => 0293-Inventory-close.patch} (100%) rename patches/api/{0295-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0294-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/api/{0296-Add-basic-Datapack-API.patch => 0295-Add-basic-Datapack-API.patch} (100%) rename patches/api/{0297-additions-to-PlayerGameModeChangeEvent.patch => 0296-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/api/{0298-ItemStack-repair-check-API.patch => 0297-ItemStack-repair-check-API.patch} (100%) rename patches/api/{0299-More-Enchantment-API.patch => 0298-More-Enchantment-API.patch} (100%) rename patches/api/{0300-List-all-missing-hard-depends-not-just-first.patch => 0299-List-all-missing-hard-depends-not-just-first.patch} (100%) rename patches/api/{0301-Add-Mob-lookAt-API.patch => 0300-Add-Mob-lookAt-API.patch} (100%) rename patches/api/{0302-ItemStack-editMeta.patch => 0301-ItemStack-editMeta.patch} (100%) rename patches/api/{0303-Add-EntityInsideBlockEvent.patch => 0302-Add-EntityInsideBlockEvent.patch} (100%) rename patches/api/{0304-Attributes-API-for-item-defaults.patch => 0303-Attributes-API-for-item-defaults.patch} (100%) rename patches/api/{0305-Add-cause-to-Weather-ThunderChangeEvents.patch => 0304-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/api/{0306-More-Lidded-Block-API.patch => 0305-More-Lidded-Block-API.patch} (100%) rename patches/api/{0307-Add-PlayerKickEvent-causes.patch => 0306-Add-PlayerKickEvent-causes.patch} (100%) rename patches/api/{0308-Add-PufferFishStateChangeEvent.patch => 0307-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/api/{0309-Add-BellRevealRaiderEvent.patch => 0308-Add-BellRevealRaiderEvent.patch} (100%) rename patches/api/{0310-Add-ElderGuardianAppearanceEvent.patch => 0309-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/api/{0311-Add-more-line-of-sight-methods.patch => 0310-Add-more-line-of-sight-methods.patch} (100%) rename patches/api/{0312-Add-more-LimitedRegion-API.patch => 0311-Add-more-LimitedRegion-API.patch} (100%) rename patches/api/{0313-Missing-Entity-Behavior-API.patch => 0312-Missing-Entity-Behavior-API.patch} (100%) rename patches/api/{0314-Adds-PlayerArmSwingEvent.patch => 0313-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/api/{0315-Add-PlayerSignCommandPreprocessEvent.patch => 0314-Add-PlayerSignCommandPreprocessEvent.patch} (100%) rename patches/api/{0316-fix-empty-array-elements-in-command-arguments.patch => 0315-fix-empty-array-elements-in-command-arguments.patch} (100%) rename patches/api/{0317-Stinger-API.patch => 0316-Stinger-API.patch} (100%) rename patches/api/{0318-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0317-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/api/{0319-Add-PlayerSetSpawnEvent.patch => 0318-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/api/{0320-Added-EntityDamageItemEvent.patch => 0319-Added-EntityDamageItemEvent.patch} (100%) rename patches/api/{0321-Make-EntityUnleashEvent-cancellable.patch => 0320-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/api/{0322-Change-EnderEye-target-without-changing-other-things.patch => 0321-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/api/{0323-Add-BlockBreakBlockEvent.patch => 0322-Add-BlockBreakBlockEvent.patch} (100%) rename patches/api/{0324-Add-helpers-for-left-right-click-to-Action.patch => 0323-Add-helpers-for-left-right-click-to-Action.patch} (100%) rename patches/api/{0325-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0324-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/api/{0326-More-CommandBlock-API.patch => 0325-More-CommandBlock-API.patch} (100%) rename patches/api/{0327-Fix-plugin-provides-load-order.patch => 0326-Fix-plugin-provides-load-order.patch} (100%) rename patches/api/{0328-Add-missing-team-sidebar-display-slots.patch => 0327-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/api/{0329-add-back-EntityPortalExitEvent.patch => 0328-add-back-EntityPortalExitEvent.patch} (100%) rename patches/api/{0330-Add-methods-to-find-targets-for-lightning-strikes.patch => 0329-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/api/{0331-Get-entity-default-attributes.patch => 0330-Get-entity-default-attributes.patch} (100%) rename patches/api/{0332-Left-handed-API.patch => 0331-Left-handed-API.patch} (100%) rename patches/api/{0333-Add-advancement-display-API.patch => 0332-Add-advancement-display-API.patch} (100%) rename patches/api/{0334-Add-ItemFactory-getMonsterEgg-API.patch => 0333-Add-ItemFactory-getMonsterEgg-API.patch} (100%) rename patches/api/{0335-Add-critical-damage-API.patch => 0334-Add-critical-damage-API.patch} (100%) rename patches/api/{0336-Fix-issues-with-mob-conversion.patch => 0335-Fix-issues-with-mob-conversion.patch} (100%) rename patches/api/{0337-Add-isCollidable-methods-to-various-places.patch => 0336-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/api/{0338-Goat-ram-API.patch => 0337-Goat-ram-API.patch} (100%) rename patches/api/{0339-Add-API-for-resetting-a-single-score.patch => 0338-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/api/{0340-Add-Raw-Byte-Entity-Serialization.patch => 0339-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/api/{0341-Add-PlayerItemFrameChangeEvent.patch => 0340-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/api/{0342-Add-player-health-update-API.patch => 0341-Add-player-health-update-API.patch} (100%) rename patches/api/{0343-Allow-delegation-to-vanilla-chunk-gen.patch => 0342-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/api/{0344-Add-more-Campfire-API.patch => 0343-Add-more-Campfire-API.patch} (100%) rename patches/api/{0345-Move-VehicleCollisionEvent-HandlerList-up.patch => 0344-Move-VehicleCollisionEvent-HandlerList-up.patch} (100%) rename patches/api/{0346-Improve-scoreboard-entries.patch => 0345-Improve-scoreboard-entries.patch} (100%) rename patches/api/{0347-Entity-powdered-snow-API.patch => 0346-Entity-powdered-snow-API.patch} (100%) rename patches/api/{0348-Add-API-for-item-entity-health.patch => 0347-Add-API-for-item-entity-health.patch} (100%) rename patches/api/{0349-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0348-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/api/{0350-Bucketable-API.patch => 0349-Bucketable-API.patch} (100%) rename patches/api/{0351-System-prop-for-default-config-comment-parsing.patch => 0350-System-prop-for-default-config-comment-parsing.patch} (100%) rename patches/api/{0352-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0351-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/api/{0353-Remove-upstream-snakeyaml-fix.patch => 0352-Remove-upstream-snakeyaml-fix.patch} (100%) rename patches/api/{0354-Add-new-overload-to-PersistentDataContainer-has.patch => 0353-Add-new-overload-to-PersistentDataContainer-has.patch} (100%) rename patches/api/{0355-Multiple-Entries-with-Scoreboards.patch => 0354-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/api/{0356-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch => 0355-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch} (100%) rename patches/api/{0357-Warn-on-strange-EventHandler-return-types.patch => 0356-Warn-on-strange-EventHandler-return-types.patch} (100%) rename patches/api/{0358-Multi-Block-Change-API.patch => 0357-Multi-Block-Change-API.patch} (100%) rename patches/api/{0359-Fix-NotePlayEvent.patch => 0358-Fix-NotePlayEvent.patch} (100%) rename patches/api/{0360-Freeze-Tick-Lock-API.patch => 0359-Freeze-Tick-Lock-API.patch} (100%) rename patches/api/{0361-Dolphin-API.patch => 0360-Dolphin-API.patch} (100%) rename patches/api/{0362-More-PotionEffectType-API.patch => 0361-More-PotionEffectType-API.patch} (100%) rename patches/api/{0363-API-for-creating-command-sender-which-forwards-feedb.patch => 0362-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/api/{0364-Implement-regenerateChunk.patch => 0363-Implement-regenerateChunk.patch} (100%) rename patches/api/{0365-Don-t-load-plugins-prefixed-with-a-dot.patch => 0364-Don-t-load-plugins-prefixed-with-a-dot.patch} (100%) rename patches/api/{0366-Add-GameEvent-tags.patch => 0365-Add-GameEvent-tags.patch} (100%) rename patches/api/{0367-Furnace-RecipesUsed-API.patch => 0366-Furnace-RecipesUsed-API.patch} (100%) rename patches/api/{0368-Configurable-sculk-sensor-listener-range.patch => 0367-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/api/{0369-Add-missing-block-data-mins-and-maxes.patch => 0368-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/api/{0370-Custom-Potion-Mixes.patch => 0369-Custom-Potion-Mixes.patch} (100%) rename patches/api/{0371-Expose-furnace-minecart-push-values.patch => 0370-Expose-furnace-minecart-push-values.patch} (100%) rename patches/api/{0372-More-Projectile-API.patch => 0371-More-Projectile-API.patch} (100%) rename patches/api/{0373-Add-getComputedBiome-API.patch => 0372-Add-getComputedBiome-API.patch} (100%) rename patches/api/{0374-Add-enchantWithLevels-API.patch => 0373-Add-enchantWithLevels-API.patch} (100%) rename patches/api/{0375-Add-TameableDeathMessageEvent.patch => 0374-Add-TameableDeathMessageEvent.patch} (100%) rename patches/api/{0376-Allow-to-change-the-podium-of-the-EnderDragon.patch => 0375-Allow-to-change-the-podium-of-the-EnderDragon.patch} (100%) rename patches/api/{0377-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0376-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/api/{0378-Update-Folder-Uses-Plugin-Name.patch => 0377-Update-Folder-Uses-Plugin-Name.patch} (100%) rename patches/api/{0379-WorldCreator-keepSpawnLoaded.patch => 0378-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/api/{0380-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0379-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/api/{0381-Add-PlayerStopUsingItemEvent.patch => 0380-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/api/{0382-FallingBlock-auto-expire-setting.patch => 0381-FallingBlock-auto-expire-setting.patch} (100%) rename patches/api/{0383-Keyed-Cat-Type.patch => 0382-Keyed-Cat-Type.patch} (100%) rename patches/api/{0384-Add-WardenAngerChangeEvent.patch => 0383-Add-WardenAngerChangeEvent.patch} (100%) rename patches/api/{0385-Nameable-Banner-API.patch => 0384-Nameable-Banner-API.patch} (100%) rename patches/api/{0386-Add-Player-getFishHook.patch => 0385-Add-Player-getFishHook.patch} (100%) rename patches/api/{0387-More-Teleport-API.patch => 0386-More-Teleport-API.patch} (100%) rename patches/api/{0388-Add-EntityPortalReadyEvent.patch => 0387-Add-EntityPortalReadyEvent.patch} (100%) rename patches/api/{0389-Custom-Chat-Completion-Suggestions-API.patch => 0388-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/api/{0390-Collision-API.patch => 0389-Collision-API.patch} (100%) delete mode 100644 patches/server/0614-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch rename patches/server/{0615-Enhance-console-tab-completions-for-brigadier-comman.patch => 0614-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0616-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0615-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0617-Add-bypass-host-check.patch => 0616-Add-bypass-host-check.patch} (100%) rename patches/server/{0618-Set-area-affect-cloud-rotation.patch => 0617-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0619-add-isDeeplySleeping-to-HumanEntity.patch => 0618-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0620-add-consumeFuel-to-FurnaceBurnEvent.patch => 0619-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0621-add-get-set-drop-chance-to-EntityEquipment.patch => 0620-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0622-fix-PigZombieAngerEvent-cancellation.patch => 0621-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0623-Fix-checkReach-check-for-Shulker-boxes.patch => 0622-Fix-checkReach-check-for-Shulker-boxes.patch} (100%) rename patches/server/{0624-fix-PlayerItemHeldEvent-firing-twice.patch => 0623-fix-PlayerItemHeldEvent-firing-twice.patch} (88%) rename patches/server/{0625-Added-PlayerDeepSleepEvent.patch => 0624-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0626-More-World-API.patch => 0625-More-World-API.patch} (100%) rename patches/server/{0627-Added-PlayerBedFailEnterEvent.patch => 0626-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0628-Implement-methods-to-convert-between-Component-and-B.patch => 0627-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0629-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch => 0628-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch} (95%) rename patches/server/{0630-Introduce-beacon-activation-deactivation-events.patch => 0629-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0631-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0630-add-RespawnFlags-to-PlayerRespawnEvent.patch} (92%) rename patches/server/{0632-Add-Channel-initialization-listeners.patch => 0631-Add-Channel-initialization-listeners.patch} (98%) rename patches/server/{0633-Send-empty-commands-if-tab-completion-is-disabled.patch => 0632-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0634-Add-more-WanderingTrader-API.patch => 0633-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0635-Add-EntityBlockStorage-clearEntities.patch => 0634-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0636-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0635-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0637-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch => 0636-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch} (95%) rename patches/server/{0638-Inventory-close.patch => 0637-Inventory-close.patch} (100%) rename patches/server/{0639-call-PortalCreateEvent-players-and-end-platform.patch => 0638-call-PortalCreateEvent-players-and-end-platform.patch} (94%) rename patches/server/{0640-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0639-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0641-Fix-CraftPotionBrewer-cache.patch => 0640-Fix-CraftPotionBrewer-cache.patch} (100%) rename patches/server/{0642-Add-basic-Datapack-API.patch => 0641-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0643-Add-environment-variable-to-disable-server-gui.patch => 0642-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0644-additions-to-PlayerGameModeChangeEvent.patch => 0643-additions-to-PlayerGameModeChangeEvent.patch} (96%) rename patches/server/{0645-ItemStack-repair-check-API.patch => 0644-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0646-More-Enchantment-API.patch => 0645-More-Enchantment-API.patch} (100%) rename patches/server/{0647-Move-range-check-for-block-placing-up.patch => 0646-Move-range-check-for-block-placing-up.patch} (87%) rename patches/server/{0648-Fix-and-optimise-world-force-upgrading.patch => 0647-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0649-Add-Mob-lookAt-API.patch => 0648-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0650-Add-Unix-domain-socket-support.patch => 0649-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0651-Add-EntityInsideBlockEvent.patch => 0650-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0652-Attributes-API-for-item-defaults.patch => 0651-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0653-Add-cause-to-Weather-ThunderChangeEvents.patch => 0652-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0654-More-Lidded-Block-API.patch => 0653-More-Lidded-Block-API.patch} (100%) rename patches/server/{0655-Limit-item-frame-cursors-on-maps.patch => 0654-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0656-Add-PlayerKickEvent-causes.patch => 0655-Add-PlayerKickEvent-causes.patch} (94%) rename patches/server/{0657-Add-PufferFishStateChangeEvent.patch => 0656-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0658-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0657-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0659-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0658-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (97%) rename patches/server/{0660-Add-option-to-fix-items-merging-through-walls.patch => 0659-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0661-Add-BellRevealRaiderEvent.patch => 0660-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0662-Fix-invulnerable-end-crystals.patch => 0661-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0663-Add-ElderGuardianAppearanceEvent.patch => 0662-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0664-Fix-dangerous-end-portal-logic.patch => 0663-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0665-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0664-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0666-Make-item-validations-configurable.patch => 0665-Make-item-validations-configurable.patch} (100%) rename patches/server/{0667-Line-Of-Sight-Changes.patch => 0666-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0668-add-per-world-spawn-limits.patch => 0667-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0669-Fix-PotionSplashEvent-for-water-splash-potions.patch => 0668-Fix-PotionSplashEvent-for-water-splash-potions.patch} (100%) rename patches/server/{0670-Add-more-LimitedRegion-API.patch => 0669-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0671-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0670-Fix-PlayerDropItemEvent-using-wrong-item.patch} (94%) rename patches/server/{0672-Missing-Entity-Behavior-API.patch => 0671-Missing-Entity-Behavior-API.patch} (100%) rename patches/server/{0673-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0672-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (88%) rename patches/server/{0674-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0673-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0675-Use-getChunkIfLoadedImmediately-in-places.patch => 0674-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0676-Fix-commands-from-signs-not-firing-command-events.patch => 0675-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0677-Adds-PlayerArmSwingEvent.patch => 0676-Adds-PlayerArmSwingEvent.patch} (88%) rename patches/server/{0678-Fixes-kick-event-leave-message-not-being-sent.patch => 0677-Fixes-kick-event-leave-message-not-being-sent.patch} (93%) rename patches/server/{0679-Add-config-for-mobs-immune-to-default-effects.patch => 0678-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0680-Fix-incorrect-message-for-outdated-client.patch => 0679-Fix-incorrect-message-for-outdated-client.patch} (100%) rename patches/server/{0681-Don-t-apply-cramming-damage-to-players.patch => 0680-Don-t-apply-cramming-damage-to-players.patch} (93%) rename patches/server/{0682-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0681-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0683-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0682-Add-a-bunch-of-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0684-Stinger-API.patch => 0683-Stinger-API.patch} (100%) rename patches/server/{0685-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0684-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0686-Add-System.out-err-catcher.patch => 0685-Add-System.out-err-catcher.patch} (100%) rename patches/server/{0687-Fix-test-not-bootstrapping.patch => 0686-Fix-test-not-bootstrapping.patch} (100%) rename patches/server/{0688-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0687-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0689-Improve-boat-collision-performance.patch => 0688-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0690-Prevent-AFK-kick-while-watching-end-credits.patch => 0689-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0691-Allow-skipping-writing-of-comments-to-server.propert.patch => 0690-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0692-Add-PlayerSetSpawnEvent.patch => 0691-Add-PlayerSetSpawnEvent.patch} (97%) rename patches/server/{0693-Make-hoppers-respect-inventory-max-stack-size.patch => 0692-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0694-Optimize-entity-tracker-passenger-checks.patch => 0693-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0695-Config-option-for-Piglins-guarding-chests.patch => 0694-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0696-Added-EntityDamageItemEvent.patch => 0695-Added-EntityDamageItemEvent.patch} (100%) rename patches/server/{0697-Optimize-indirect-passenger-iteration.patch => 0696-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0698-Fix-block-drops-position-losing-precision-millions-o.patch => 0697-Fix-block-drops-position-losing-precision-millions-o.patch} (100%) rename patches/server/{0699-Configurable-item-frame-map-cursor-update-interval.patch => 0698-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0700-Make-EntityUnleashEvent-cancellable.patch => 0699-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/server/{0701-Clear-bucket-NBT-after-dispense.patch => 0700-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0702-Change-EnderEye-target-without-changing-other-things.patch => 0701-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0703-Add-BlockBreakBlockEvent.patch => 0702-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0704-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0703-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0705-More-CommandBlock-API.patch => 0704-More-CommandBlock-API.patch} (100%) rename patches/server/{0706-Add-missing-team-sidebar-display-slots.patch => 0705-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0707-Add-back-EntityPortalExitEvent.patch => 0706-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0708-Add-methods-to-find-targets-for-lightning-strikes.patch => 0707-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0709-Get-entity-default-attributes.patch => 0708-Get-entity-default-attributes.patch} (100%) rename patches/server/{0710-Left-handed-API.patch => 0709-Left-handed-API.patch} (100%) rename patches/server/{0711-Add-advancement-display-API.patch => 0710-Add-advancement-display-API.patch} (100%) rename patches/server/{0712-Add-ItemFactory-getMonsterEgg-API.patch => 0711-Add-ItemFactory-getMonsterEgg-API.patch} (100%) rename patches/server/{0713-Add-critical-damage-API.patch => 0712-Add-critical-damage-API.patch} (100%) rename patches/server/{0714-Fix-issues-with-mob-conversion.patch => 0713-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0715-Add-isCollidable-methods-to-various-places.patch => 0714-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0716-Goat-ram-API.patch => 0715-Goat-ram-API.patch} (100%) rename patches/server/{0717-Add-API-for-resetting-a-single-score.patch => 0716-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0718-Add-Raw-Byte-Entity-Serialization.patch => 0717-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0719-Vanilla-command-permission-fixes.patch => 0718-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0720-Make-CallbackExecutor-strict-again.patch => 0719-Make-CallbackExecutor-strict-again.patch} (100%) rename patches/server/{0721-Do-not-allow-the-server-to-unload-chunks-at-request-.patch => 0720-Do-not-allow-the-server-to-unload-chunks-at-request-.patch} (100%) rename patches/server/{0722-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0721-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (97%) rename patches/server/{0723-Correctly-handle-recursion-for-chunkholder-updates.patch => 0722-Correctly-handle-recursion-for-chunkholder-updates.patch} (100%) rename patches/server/{0724-Fix-GameProfileCache-concurrency.patch => 0723-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0725-Fix-chunks-refusing-to-unload-at-low-TPS.patch => 0724-Fix-chunks-refusing-to-unload-at-low-TPS.patch} (100%) rename patches/server/{0726-Do-not-allow-ticket-level-changes-while-unloading-pl.patch => 0725-Do-not-allow-ticket-level-changes-while-unloading-pl.patch} (100%) rename patches/server/{0727-Do-not-allow-ticket-level-changes-when-updating-chun.patch => 0726-Do-not-allow-ticket-level-changes-when-updating-chun.patch} (100%) rename patches/server/{0728-Log-when-the-async-catcher-is-tripped.patch => 0727-Log-when-the-async-catcher-is-tripped.patch} (100%) rename patches/server/{0729-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0728-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0730-Prevent-unload-calls-removing-tickets-for-sync-loads.patch => 0729-Prevent-unload-calls-removing-tickets-for-sync-loads.patch} (100%) rename patches/server/{0731-Sanitize-ResourceLocation-error-logging.patch => 0730-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0732-Allow-controlled-flushing-for-network-manager.patch => 0731-Allow-controlled-flushing-for-network-manager.patch} (98%) rename patches/server/{0733-Optimise-general-POI-access.patch => 0732-Optimise-general-POI-access.patch} (100%) rename patches/server/{0734-Add-more-async-catchers.patch => 0733-Add-more-async-catchers.patch} (100%) rename patches/server/{0735-Rewrite-entity-bounding-box-lookup-calls.patch => 0734-Rewrite-entity-bounding-box-lookup-calls.patch} (99%) rename patches/server/{0736-Optimise-chunk-tick-iteration.patch => 0735-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{0737-Execute-chunk-tasks-mid-tick.patch => 0736-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{0738-Do-not-copy-visible-chunks.patch => 0737-Do-not-copy-visible-chunks.patch} (100%) rename patches/server/{0739-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0738-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0740-Custom-table-implementation-for-blockstate-state-loo.patch => 0739-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0741-Detail-more-information-in-watchdog-dumps.patch => 0740-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{0742-Manually-inline-methods-in-BlockPosition.patch => 0741-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0743-Distance-manager-tick-timings.patch => 0742-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0744-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0743-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0745-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0744-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0746-Add-packet-limiter-config.patch => 0745-Add-packet-limiter-config.patch} (98%) rename patches/server/{0747-Use-correct-LevelStem-registry-when-loading-default-.patch => 0746-Use-correct-LevelStem-registry-when-loading-default-.patch} (96%) rename patches/server/{0748-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0747-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0749-Consolidate-flush-calls-for-entity-tracker-packets.patch => 0748-Consolidate-flush-calls-for-entity-tracker-packets.patch} (100%) rename patches/server/{0750-Don-t-lookup-fluid-state-when-raytracing.patch => 0749-Don-t-lookup-fluid-state-when-raytracing.patch} (100%) rename patches/server/{0751-Time-scoreboard-search.patch => 0750-Time-scoreboard-search.patch} (100%) rename patches/server/{0752-Send-full-pos-packets-for-hard-colliding-entities.patch => 0751-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0753-Do-not-run-raytrace-logic-for-AIR.patch => 0752-Do-not-run-raytrace-logic-for-AIR.patch} (100%) rename patches/server/{0754-Oprimise-map-impl-for-tracked-players.patch => 0753-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0755-Optimise-BlockSoil-nearby-water-lookup.patch => 0754-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0756-Allow-removal-addition-of-entities-to-entity-ticklis.patch => 0755-Allow-removal-addition-of-entities-to-entity-ticklis.patch} (100%) rename patches/server/{0757-Optimise-random-block-ticking.patch => 0756-Optimise-random-block-ticking.patch} (99%) rename patches/server/{0758-Optimise-non-flush-packet-sending.patch => 0757-Optimise-non-flush-packet-sending.patch} (96%) rename patches/server/{0759-Optimise-nearby-player-lookups.patch => 0758-Optimise-nearby-player-lookups.patch} (100%) rename patches/server/{0760-Optimise-WorldServer-notify.patch => 0759-Optimise-WorldServer-notify.patch} (100%) rename patches/server/{0761-Remove-streams-for-villager-AI.patch => 0760-Remove-streams-for-villager-AI.patch} (100%) rename patches/server/{0762-Rewrite-dataconverter-system.patch => 0761-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0763-Use-Velocity-compression-and-cipher-natives.patch => 0762-Use-Velocity-compression-and-cipher-natives.patch} (98%) rename patches/server/{0764-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch => 0763-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch} (100%) rename patches/server/{0765-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch => 0764-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch} (100%) rename patches/server/{0766-Async-catch-modifications-to-critical-entity-state.patch => 0765-Async-catch-modifications-to-critical-entity-state.patch} (100%) rename patches/server/{0767-Fix-Bukkit-NamespacedKey-shenanigans.patch => 0766-Fix-Bukkit-NamespacedKey-shenanigans.patch} (100%) rename patches/server/{0768-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0767-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0769-Check-requirement-before-suggesting-root-nodes.patch => 0768-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0770-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0769-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (74%) rename patches/server/{0771-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0770-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0772-Ensure-valid-vehicle-status.patch => 0771-Ensure-valid-vehicle-status.patch} (90%) rename patches/server/{0773-Prevent-softlocked-end-exit-portal-generation.patch => 0772-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0774-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0773-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0775-Don-t-log-debug-logging-being-disabled.patch => 0774-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0776-fix-various-menus-with-empty-level-accesses.patch => 0775-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0777-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch => 0776-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch} (100%) rename patches/server/{0778-Preserve-overstacked-loot.patch => 0777-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0779-Update-head-rotation-in-missing-places.patch => 0778-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0780-prevent-unintended-light-block-manipulation.patch => 0779-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0781-Fix-CraftCriteria-defaults-map.patch => 0780-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0782-Fix-upstreams-block-state-factories.patch => 0781-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0783-Add-config-option-for-logging-player-ip-addresses.patch => 0782-Add-config-option-for-logging-player-ip-addresses.patch} (98%) rename patches/server/{0784-Configurable-feature-seeds.patch => 0783-Configurable-feature-seeds.patch} (100%) rename patches/server/{0785-VanillaCommandWrapper-didnt-account-for-entity-sende.patch => 0784-VanillaCommandWrapper-didnt-account-for-entity-sende.patch} (100%) rename patches/server/{0786-Add-root-admin-user-detection.patch => 0785-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0787-Always-allow-item-changing-in-Fireball.patch => 0786-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0788-don-t-attempt-to-teleport-dead-entities.patch => 0787-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0789-Prevent-excessive-velocity-through-repeated-crits.patch => 0788-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0790-Remove-client-side-code-using-deprecated-for-removal.patch => 0789-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0791-Rewrite-the-light-engine.patch => 0790-Rewrite-the-light-engine.patch} (99%) rename patches/server/{0792-Always-parse-protochunk-light-sources-unless-it-is-m.patch => 0791-Always-parse-protochunk-light-sources-unless-it-is-m.patch} (100%) rename patches/server/{0793-Fix-removing-recipes-from-RecipeIterator.patch => 0792-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0794-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0793-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0795-Hide-unnecessary-itemmeta-from-clients.patch => 0794-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0796-Fix-kelp-modifier-changing-growth-for-other-crops.patch => 0795-Fix-kelp-modifier-changing-growth-for-other-crops.patch} (100%) rename patches/server/{0797-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0796-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0798-Add-PlayerItemFrameChangeEvent.patch => 0797-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0799-Add-player-health-update-API.patch => 0798-Add-player-health-update-API.patch} (95%) rename patches/server/{0800-Optimize-HashMapPalette.patch => 0799-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0801-Allow-delegation-to-vanilla-chunk-gen.patch => 0800-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0802-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch => 0801-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch} (99%) rename patches/server/{0803-Optimise-collision-checking-in-player-move-packet-ha.patch => 0802-Optimise-collision-checking-in-player-move-packet-ha.patch} (96%) rename patches/server/{0804-Actually-unload-POI-data.patch => 0803-Actually-unload-POI-data.patch} (100%) rename patches/server/{0805-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0804-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0806-Update-Log4j.patch => 0805-Update-Log4j.patch} (100%) rename patches/server/{0807-Add-more-Campfire-API.patch => 0806-Add-more-Campfire-API.patch} (100%) rename patches/server/{0808-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0807-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0809-Fix-tripwire-state-inconsistency.patch => 0808-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0810-Fix-fluid-logging-on-Block-breakNaturally.patch => 0809-Fix-fluid-logging-on-Block-breakNaturally.patch} (100%) rename patches/server/{0811-Forward-CraftEntity-in-teleport-command.patch => 0810-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0812-Improve-scoreboard-entries.patch => 0811-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0813-Entity-powdered-snow-API.patch => 0812-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0814-Add-API-for-item-entity-health.patch => 0813-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0815-Fix-entity-type-tags-suggestions-in-selectors.patch => 0814-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0816-Configurable-max-block-light-for-monster-spawning.patch => 0815-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0817-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0816-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0818-Load-effect-amplifiers-greater-than-127-correctly.patch => 0817-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0819-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0818-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0820-Fix-bees-aging-inside-hives.patch => 0819-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0821-Bucketable-API.patch => 0820-Bucketable-API.patch} (100%) rename patches/server/{0822-Check-player-world-in-endPortalSoundRadius.patch => 0821-Check-player-world-in-endPortalSoundRadius.patch} (100%) rename patches/server/{0823-Validate-usernames.patch => 0822-Validate-usernames.patch} (95%) rename patches/server/{0824-Fix-saving-configs-with-more-long-comments.patch => 0823-Fix-saving-configs-with-more-long-comments.patch} (100%) rename patches/server/{0825-Make-water-animal-spawn-height-configurable.patch => 0824-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0826-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0825-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (98%) rename patches/server/{0827-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0826-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0828-Add-new-overload-to-PersistentDataContainer-has.patch => 0827-Add-new-overload-to-PersistentDataContainer-has.patch} (100%) rename patches/server/{0829-Multiple-Entries-with-Scoreboards.patch => 0828-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0830-Reset-placed-block-on-exception.patch => 0829-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0831-Add-configurable-height-for-slime-spawn.patch => 0830-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0832-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch => 0831-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch} (93%) rename patches/server/{0833-Fix-xp-reward-for-baby-zombies.patch => 0832-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0834-Kick-on-main-for-illegal-chat.patch => 0833-Kick-on-main-for-illegal-chat.patch} (91%) rename patches/server/{0835-Multi-Block-Change-API-Implementation.patch => 0834-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0836-Fix-NotePlayEvent.patch => 0835-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0837-Freeze-Tick-Lock-API.patch => 0836-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0838-Dolphin-API.patch => 0837-Dolphin-API.patch} (100%) rename patches/server/{0839-More-PotionEffectType-API.patch => 0838-More-PotionEffectType-API.patch} (100%) rename patches/server/{0840-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0839-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0841-API-for-creating-command-sender-which-forwards-feedb.patch => 0840-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0842-Add-config-for-stronghold-seed.patch => 0841-Add-config-for-stronghold-seed.patch} (100%) rename patches/server/{0843-Implement-regenerateChunk.patch => 0842-Implement-regenerateChunk.patch} (100%) rename patches/server/{0844-Fix-cancelled-powdered-snow-bucket-placement.patch => 0843-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0845-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0844-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0846-Add-GameEvent-tags.patch => 0845-Add-GameEvent-tags.patch} (100%) rename patches/server/{0847-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0846-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0848-Replace-ticket-level-propagator.patch => 0847-Replace-ticket-level-propagator.patch} (100%) rename patches/server/{0849-Furnace-RecipesUsed-API.patch => 0848-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0850-Configurable-sculk-sensor-listener-range.patch => 0849-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0851-Add-missing-block-data-mins-and-maxes.patch => 0850-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0852-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0851-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0853-Put-world-into-worldlist-before-initing-the-world.patch => 0852-Put-world-into-worldlist-before-initing-the-world.patch} (95%) rename patches/server/{0854-Fix-Entity-Position-Desync.patch => 0853-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0855-Custom-Potion-Mixes.patch => 0854-Custom-Potion-Mixes.patch} (99%) rename patches/server/{0856-Replace-player-chunk-loader-system.patch => 0855-Replace-player-chunk-loader-system.patch} (99%) rename patches/server/{0857-Fix-Fluid-tags-isTagged-method.patch => 0856-Fix-Fluid-tags-isTagged-method.patch} (100%) rename patches/server/{0858-Force-close-world-loading-screen.patch => 0857-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0859-Fix-falling-block-spawn-methods.patch => 0858-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0860-Expose-furnace-minecart-push-values.patch => 0859-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0861-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0860-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0862-Fix-save-problems-on-shutdown.patch => 0861-Fix-save-problems-on-shutdown.patch} (97%) rename patches/server/{0863-More-Projectile-API.patch => 0862-More-Projectile-API.patch} (100%) rename patches/server/{0864-Fix-swamp-hut-cat-generation-deadlock.patch => 0863-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0865-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0864-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (93%) rename patches/server/{0866-Implement-getComputedBiome-API.patch => 0865-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0867-Make-some-itemstacks-nonnull.patch => 0866-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0868-Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch => 0867-Add-debug-for-invalid-GameProfiles-on-skull-blocks-i.patch} (100%) rename patches/server/{0869-Implement-enchantWithLevels-API.patch => 0868-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0870-Fix-saving-in-unloadWorld.patch => 0869-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0871-Buffer-OOB-setBlock-calls.patch => 0870-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0872-Add-TameableDeathMessageEvent.patch => 0871-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0873-Fix-new-block-data-for-EntityChangeBlockEvent-when-s.patch => 0872-Fix-new-block-data-for-EntityChangeBlockEvent-when-s.patch} (100%) rename patches/server/{0874-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0873-fix-player-loottables-running-when-mob-loot-gamerule.patch} (92%) rename patches/server/{0875-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0874-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0876-Guard-against-invalid-entity-positions.patch => 0875-Guard-against-invalid-entity-positions.patch} (100%) rename patches/server/{0877-cache-resource-keys.patch => 0876-cache-resource-keys.patch} (100%) rename patches/server/{0878-Allow-to-change-the-podium-for-the-EnderDragon.patch => 0877-Allow-to-change-the-podium-for-the-EnderDragon.patch} (100%) rename patches/server/{0879-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0878-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0880-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0879-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0881-Prevent-tile-entity-copies-loading-chunks.patch => 0880-Prevent-tile-entity-copies-loading-chunks.patch} (89%) rename patches/server/{0882-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0881-Use-username-instead-of-display-name-in-PlayerList-g.patch} (92%) rename patches/server/{0883-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch => 0882-Fix-slime-spawners-not-spawning-outside-slime-chunks.patch} (100%) rename patches/server/{0884-Pass-ServerLevel-for-gamerule-callbacks.patch => 0883-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0885-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0884-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0886-WorldCreator-keepSpawnLoaded.patch => 0885-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0887-Fix-NPE-for-BlockDataMeta-getBlockData.patch => 0886-Fix-NPE-for-BlockDataMeta-getBlockData.patch} (100%) rename patches/server/{0888-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0887-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0889-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0888-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0890-Fire-CauldronLevelChange-on-initial-fill.patch => 0889-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0891-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0890-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0892-Add-PlayerStopUsingItemEvent.patch => 0891-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0893-FallingBlock-auto-expire-setting.patch => 0892-FallingBlock-auto-expire-setting.patch} (100%) rename patches/server/{0894-Don-t-tick-markers.patch => 0893-Don-t-tick-markers.patch} (96%) rename patches/server/{0895-Do-not-accept-invalid-client-settings.patch => 0894-Do-not-accept-invalid-client-settings.patch} (88%) rename patches/server/{0896-Add-support-for-Proxy-Protocol.patch => 0895-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0897-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0896-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0898-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0897-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0899-Sanitize-Sent-BlockEntity-NBT.patch => 0898-Sanitize-Sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0900-Prevent-entity-loading-causing-async-lookups.patch => 0899-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0901-Disable-component-selector-resolving-in-books-by-def.patch => 0900-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0902-Throw-exception-on-world-create-while-being-ticked.patch => 0901-Throw-exception-on-world-create-while-being-ticked.patch} (97%) rename patches/server/{0903-Add-Alternate-Current-redstone-implementation.patch => 0902-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{0904-Dont-resent-entity-on-art-update.patch => 0903-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0905-Add-missing-spawn-eggs.patch => 0904-Add-missing-spawn-eggs.patch} (100%) rename patches/server/{0906-Add-WardenAngerChangeEvent.patch => 0905-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0907-Add-option-for-strict-advancement-dimension-checks.patch => 0906-Add-option-for-strict-advancement-dimension-checks.patch} (94%) rename patches/server/{0908-Add-missing-important-BlockStateListPopulator-method.patch => 0907-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0909-Nameable-Banner-API.patch => 0908-Nameable-Banner-API.patch} (100%) rename patches/server/{0910-Don-t-broadcast-messages-to-command-blocks.patch => 0909-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0911-Prevent-empty-items-from-being-added-to-world.patch => 0910-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0912-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0911-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0913-Don-t-print-component-in-resource-pack-rejection-mes.patch => 0912-Don-t-print-component-in-resource-pack-rejection-mes.patch} (90%) rename patches/server/{0914-Add-Player-getFishHook.patch => 0913-Add-Player-getFishHook.patch} (100%) rename patches/server/{0915-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0914-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0916-Add-various-missing-EntityDropItemEvent-calls.patch => 0915-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0917-Add-some-minimal-debug-information-to-chat-packet-er.patch => 0916-Add-some-minimal-debug-information-to-chat-packet-er.patch} (90%) rename patches/server/{0918-Fix-Bee-flower-NPE.patch => 0917-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0919-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0918-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (87%) rename patches/server/{0920-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch => 0919-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch} (100%) rename patches/server/{0921-More-Teleport-API.patch => 0920-More-Teleport-API.patch} (97%) rename patches/server/{0922-Add-EntityPortalReadyEvent.patch => 0921-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0923-Don-t-use-level-random-in-entity-constructors.patch => 0922-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0924-Send-block-entities-after-destroy-prediction.patch => 0923-Send-block-entities-after-destroy-prediction.patch} (97%) rename patches/server/{0925-Warn-on-plugins-accessing-faraway-chunks.patch => 0924-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0926-Custom-Chat-Completion-Suggestions-API.patch => 0925-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0927-Add-missing-BlockFadeEvents.patch => 0926-Add-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0928-Collision-API.patch => 0927-Collision-API.patch} (100%) diff --git a/patches/api/0075-AsyncTabCompleteEvent.patch b/patches/api/0075-AsyncTabCompleteEvent.patch index c6d6dc4ba..92a32f4d5 100644 --- a/patches/api/0075-AsyncTabCompleteEvent.patch +++ b/patches/api/0075-AsyncTabCompleteEvent.patch @@ -1,5 +1,5 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar +From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Sun, 26 Nov 2017 13:17:09 -0500 Subject: [PATCH] AsyncTabCompleteEvent @@ -11,12 +11,14 @@ and avoid going to main for tab completions. Especially useful if you need to query a database in order to obtain the results for tab completion, such as offline players. +Co-authored-by: Aikar + diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7b1a529b1 +index 0000000000000000000000000000000000000000..9be64a95c2345433b6142d611077dedadcef9f5d --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -@@ -0,0 +1,176 @@ +@@ -0,0 +1,328 @@ +/* + * Copyright (c) 2017 Daniel Ennis (Aikar) MIT License + * @@ -43,6 +45,11 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 +package com.destroystokyo.paper.event.server; + +import com.google.common.base.Preconditions; ++import io.papermc.paper.util.TransformingRandomAccessList; ++import net.kyori.adventure.text.Component; ++import net.kyori.examination.Examinable; ++import net.kyori.examination.ExaminableProperty; ++import net.kyori.examination.string.StringExaminer; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; @@ -52,6 +59,7 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 + +import java.util.ArrayList; +import java.util.List; ++import java.util.stream.Stream; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + @@ -66,15 +74,29 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 + private final boolean isCommand; + @Nullable + private final Location loc; -+ @NotNull private List completions; ++ private final List completions = new ArrayList<>(); ++ private final List stringCompletions = new TransformingRandomAccessList<>( ++ this.completions, ++ Completion::suggestion, ++ Completion::completion ++ ); + private boolean cancelled; + private boolean handled = false; + private boolean fireSyncHandler = true; + ++ public AsyncTabCompleteEvent(@NotNull CommandSender sender, @NotNull String buffer, boolean isCommand, @Nullable Location loc) { ++ super(true); ++ this.sender = sender; ++ this.buffer = buffer; ++ this.isCommand = isCommand; ++ this.loc = loc; ++ } ++ ++ @Deprecated + public AsyncTabCompleteEvent(@NotNull CommandSender sender, @NotNull List completions, @NotNull String buffer, boolean isCommand, @Nullable Location loc) { + super(true); + this.sender = sender; -+ this.completions = completions; ++ this.completions.addAll(fromStrings(completions)); + this.buffer = buffer; + this.isCommand = isCommand; + this.loc = loc; @@ -102,7 +124,7 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 + */ + @NotNull + public List getCompletions() { -+ return completions; ++ return this.stringCompletions; + } + + /** @@ -116,8 +138,42 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 + * @param completions the new completions + */ + public void setCompletions(@NotNull List completions) { ++ if (completions == this.stringCompletions) { ++ return; ++ } + Preconditions.checkNotNull(completions); -+ this.completions = new ArrayList<>(completions); ++ this.completions.clear(); ++ this.completions.addAll(fromStrings(completions)); ++ } ++ ++ /** ++ * The list of {@link Completion completions} which will be offered to the sender, in order. ++ * This list is mutable and reflects what will be offered. ++ *

++ * If this collection is not empty after the event is fired, then ++ * the standard process of calling {@link Command#tabComplete(CommandSender, String, String[])} ++ * or current player names will not be called. ++ * ++ * @return a list of offered completions ++ */ ++ public @NotNull List completions() { ++ return this.completions; ++ } ++ ++ /** ++ * Set the {@link Completion completions} offered, overriding any already set. ++ * If this collection is not empty after the event is fired, then ++ * the standard process of calling {@link Command#tabComplete(CommandSender, String, String[])} ++ * or current player names will not be called. ++ *

++ * The passed collection will be cloned to a new List. You must call {{@link #completions()}} to mutate from here ++ * ++ * @param newCompletions the new completions ++ */ ++ public void completions(final @NotNull List newCompletions) { ++ Preconditions.checkNotNull(newCompletions, "new completions"); ++ this.completions.clear(); ++ this.completions.addAll(newCompletions); + } + + /** @@ -192,6 +248,279 @@ index 0000000000000000000000000000000000000000..a135a9bfb2ccc8842baa9d5760fa05b7 + public static HandlerList getHandlerList() { + return handlers; + } ++ ++ private static @NotNull List fromStrings(final @NotNull List strings) { ++ final List list = new ArrayList<>(); ++ for (final String it : strings) { ++ list.add(new CompletionImpl(it, null)); ++ } ++ return list; ++ } ++ ++ /** ++ * A rich tab completion, consisting of a string suggestion, and a nullable {@link Component} tooltip. ++ */ ++ public interface Completion extends Examinable { ++ /** ++ * Get the suggestion string for this {@link Completion}. ++ * ++ * @return suggestion string ++ */ ++ @NotNull String suggestion(); ++ ++ /** ++ * Get the suggestion tooltip for this {@link Completion}. ++ * ++ * @return tooltip component ++ */ ++ @Nullable Component tooltip(); ++ ++ @Override ++ default @NotNull Stream examinableProperties() { ++ return Stream.of(ExaminableProperty.of("suggestion", this.suggestion()), ExaminableProperty.of("tooltip", this.tooltip())); ++ } ++ ++ /** ++ * Create a new {@link Completion} from a suggestion string. ++ * ++ * @param suggestion suggestion string ++ * @return new completion instance ++ */ ++ static @NotNull Completion completion(final @NotNull String suggestion) { ++ return new CompletionImpl(suggestion, null); ++ } ++ ++ /** ++ * Create a new {@link Completion} from a suggestion string and a tooltip {@link Component}. ++ * ++ *

If the provided component is null, the suggestion will not have a tooltip.

++ * ++ * @param suggestion suggestion string ++ * @param tooltip tooltip component, or null ++ * @return new completion instance ++ */ ++ static @NotNull Completion completion(final @NotNull String suggestion, final @Nullable Component tooltip) { ++ return new CompletionImpl(suggestion, tooltip); ++ } ++ } ++ ++ static final class CompletionImpl implements Completion { ++ private final String suggestion; ++ private final Component tooltip; ++ ++ CompletionImpl(final @NotNull String suggestion, final @Nullable Component tooltip) { ++ this.suggestion = suggestion; ++ this.tooltip = tooltip; ++ } ++ ++ @Override ++ public @NotNull String suggestion() { ++ return this.suggestion; ++ } ++ ++ @Override ++ public @Nullable Component tooltip() { ++ return this.tooltip; ++ } ++ ++ @Override ++ public boolean equals(final @Nullable Object o) { ++ if (this == o) { ++ return true; ++ } ++ if (o == null || this.getClass() != o.getClass()) { ++ return false; ++ } ++ final CompletionImpl that = (CompletionImpl) o; ++ return this.suggestion.equals(that.suggestion) ++ && java.util.Objects.equals(this.tooltip, that.tooltip); ++ } ++ ++ @Override ++ public int hashCode() { ++ return java.util.Objects.hash(this.suggestion, this.tooltip); ++ } ++ ++ @Override ++ public @NotNull String toString() { ++ return StringExaminer.simpleEscaping().examine(this); ++ } ++ } ++} +diff --git a/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java b/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java +new file mode 100644 +index 0000000000000000000000000000000000000000..6f560a51277ccbd46a9142cfa057d276118c1c7b +--- /dev/null ++++ b/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java +@@ -0,0 +1,169 @@ ++package io.papermc.paper.util; ++ ++import org.checkerframework.checker.nullness.qual.NonNull; ++import org.jetbrains.annotations.NotNull; ++ ++import java.util.AbstractList; ++import java.util.Iterator; ++import java.util.List; ++import java.util.ListIterator; ++import java.util.RandomAccess; ++import java.util.function.Function; ++import java.util.function.Predicate; ++ ++import static com.google.common.base.Preconditions.checkNotNull; ++ ++/** ++ * Modified version of the Guava class with the same name to support add operations. ++ * ++ * @param backing list element type ++ * @param transformed list element type ++ */ ++public final class TransformingRandomAccessList extends AbstractList implements RandomAccess { ++ final List fromList; ++ final Function toFunction; ++ final Function fromFunction; ++ ++ /** ++ * Create a new {@link TransformingRandomAccessList}. ++ * ++ * @param fromList backing list ++ * @param toFunction function mapping backing list element type to transformed list element type ++ * @param fromFunction function mapping transformed list element type to backing list element type ++ */ ++ public TransformingRandomAccessList( ++ final @NonNull List fromList, ++ final @NonNull Function toFunction, ++ final @NonNull Function fromFunction ++ ) { ++ this.fromList = checkNotNull(fromList); ++ this.toFunction = checkNotNull(toFunction); ++ this.fromFunction = checkNotNull(fromFunction); ++ } ++ ++ @Override ++ public void clear() { ++ this.fromList.clear(); ++ } ++ ++ @Override ++ public T get(int index) { ++ return this.toFunction.apply(this.fromList.get(index)); ++ } ++ ++ @Override ++ public @NotNull Iterator iterator() { ++ return this.listIterator(); ++ } ++ ++ @Override ++ public @NotNull ListIterator listIterator(int index) { ++ return new TransformedListIterator(this.fromList.listIterator(index)) { ++ @Override ++ T transform(F from) { ++ return TransformingRandomAccessList.this.toFunction.apply(from); ++ } ++ ++ @Override ++ F transformBack(T from) { ++ return TransformingRandomAccessList.this.fromFunction.apply(from); ++ } ++ }; ++ } ++ ++ @Override ++ public boolean isEmpty() { ++ return this.fromList.isEmpty(); ++ } ++ ++ @Override ++ public boolean removeIf(Predicate filter) { ++ checkNotNull(filter); ++ return this.fromList.removeIf(element -> filter.test(this.toFunction.apply(element))); ++ } ++ ++ @Override ++ public T remove(int index) { ++ return this.toFunction.apply(this.fromList.remove(index)); ++ } ++ ++ @Override ++ public int size() { ++ return this.fromList.size(); ++ } ++ ++ @Override ++ public T set(int i, T t) { ++ return this.toFunction.apply(this.fromList.set(i, this.fromFunction.apply(t))); ++ } ++ ++ @Override ++ public void add(int i, T t) { ++ this.fromList.add(i, this.fromFunction.apply(t)); ++ } ++ ++ static abstract class TransformedListIterator implements ListIterator, Iterator { ++ final Iterator backingIterator; ++ ++ TransformedListIterator(ListIterator backingIterator) { ++ this.backingIterator = checkNotNull((Iterator) backingIterator); ++ } ++ ++ private ListIterator backingIterator() { ++ return cast(this.backingIterator); ++ } ++ ++ static ListIterator cast(Iterator iterator) { ++ return (ListIterator) iterator; ++ } ++ ++ @Override ++ public final boolean hasPrevious() { ++ return this.backingIterator().hasPrevious(); ++ } ++ ++ @Override ++ public final T previous() { ++ return this.transform(this.backingIterator().previous()); ++ } ++ ++ @Override ++ public final int nextIndex() { ++ return this.backingIterator().nextIndex(); ++ } ++ ++ @Override ++ public final int previousIndex() { ++ return this.backingIterator().previousIndex(); ++ } ++ ++ @Override ++ public void set(T element) { ++ this.backingIterator().set(this.transformBack(element)); ++ } ++ ++ @Override ++ public void add(T element) { ++ this.backingIterator().add(this.transformBack(element)); ++ } ++ ++ abstract T transform(F from); ++ ++ abstract F transformBack(T to); ++ ++ @Override ++ public final boolean hasNext() { ++ return this.backingIterator.hasNext(); ++ } ++ ++ @Override ++ public final T next() { ++ return this.transform(this.backingIterator.next()); ++ } ++ ++ @Override ++ public final void remove() { ++ this.backingIterator.remove(); ++ } ++ } +} diff --git a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java index 270e6d8ad4358baa256cee5f16cff281f063ce3b..4a3451af454295ac3e1b688e6665cad9fc594c82 100644 @@ -248,3 +577,16 @@ index 270e6d8ad4358baa256cee5f16cff281f063ce3b..4a3451af454295ac3e1b688e6665cad9 } @Override +diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java +index 93498307004b68b934fbfa1aeb3aaf0e97cbdac7..bbe81f7a420f913ffdcad913a3c43ff41ead41f5 100644 +--- a/src/test/java/org/bukkit/AnnotationTest.java ++++ b/src/test/java/org/bukkit/AnnotationTest.java +@@ -48,6 +48,8 @@ public class AnnotationTest { + // Generic functional interface + "org/bukkit/util/Consumer", + // Paper start ++ "io/papermc/paper/util/TransformingRandomAccessList", ++ "io/papermc/paper/util/TransformingRandomAccessList$TransformedListIterator", + // Timings history is broken in terms of nullability due to guavas Function defining that the param is NonNull + "co/aikar/timings/TimingHistory$2", + "co/aikar/timings/TimingHistory$2$1", diff --git a/patches/api/0280-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch b/patches/api/0280-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch deleted file mode 100644 index 3649c64a0..000000000 --- a/patches/api/0280-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch +++ /dev/null @@ -1,407 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> -Date: Thu, 1 Apr 2021 00:34:41 -0700 -Subject: [PATCH] Allow for Component suggestion tooltips in - AsyncTabCompleteEvent - - -diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -index a135a9bfb2ccc8842baa9d5760fa05b7b1a529b1..9be64a95c2345433b6142d611077dedadcef9f5d 100644 ---- a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -+++ b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -@@ -24,6 +24,11 @@ - package com.destroystokyo.paper.event.server; - - import com.google.common.base.Preconditions; -+import io.papermc.paper.util.TransformingRandomAccessList; -+import net.kyori.adventure.text.Component; -+import net.kyori.examination.Examinable; -+import net.kyori.examination.ExaminableProperty; -+import net.kyori.examination.string.StringExaminer; - import org.bukkit.Location; - import org.bukkit.command.Command; - import org.bukkit.command.CommandSender; -@@ -33,6 +38,7 @@ import org.bukkit.event.HandlerList; - - import java.util.ArrayList; - import java.util.List; -+import java.util.stream.Stream; - import org.jetbrains.annotations.NotNull; - import org.jetbrains.annotations.Nullable; - -@@ -47,15 +53,29 @@ public class AsyncTabCompleteEvent extends Event implements Cancellable { - private final boolean isCommand; - @Nullable - private final Location loc; -- @NotNull private List completions; -+ private final List completions = new ArrayList<>(); -+ private final List stringCompletions = new TransformingRandomAccessList<>( -+ this.completions, -+ Completion::suggestion, -+ Completion::completion -+ ); - private boolean cancelled; - private boolean handled = false; - private boolean fireSyncHandler = true; - -+ public AsyncTabCompleteEvent(@NotNull CommandSender sender, @NotNull String buffer, boolean isCommand, @Nullable Location loc) { -+ super(true); -+ this.sender = sender; -+ this.buffer = buffer; -+ this.isCommand = isCommand; -+ this.loc = loc; -+ } -+ -+ @Deprecated - public AsyncTabCompleteEvent(@NotNull CommandSender sender, @NotNull List completions, @NotNull String buffer, boolean isCommand, @Nullable Location loc) { - super(true); - this.sender = sender; -- this.completions = completions; -+ this.completions.addAll(fromStrings(completions)); - this.buffer = buffer; - this.isCommand = isCommand; - this.loc = loc; -@@ -83,7 +103,7 @@ public class AsyncTabCompleteEvent extends Event implements Cancellable { - */ - @NotNull - public List getCompletions() { -- return completions; -+ return this.stringCompletions; - } - - /** -@@ -97,8 +117,42 @@ public class AsyncTabCompleteEvent extends Event implements Cancellable { - * @param completions the new completions - */ - public void setCompletions(@NotNull List completions) { -+ if (completions == this.stringCompletions) { -+ return; -+ } - Preconditions.checkNotNull(completions); -- this.completions = new ArrayList<>(completions); -+ this.completions.clear(); -+ this.completions.addAll(fromStrings(completions)); -+ } -+ -+ /** -+ * The list of {@link Completion completions} which will be offered to the sender, in order. -+ * This list is mutable and reflects what will be offered. -+ *

-+ * If this collection is not empty after the event is fired, then -+ * the standard process of calling {@link Command#tabComplete(CommandSender, String, String[])} -+ * or current player names will not be called. -+ * -+ * @return a list of offered completions -+ */ -+ public @NotNull List completions() { -+ return this.completions; -+ } -+ -+ /** -+ * Set the {@link Completion completions} offered, overriding any already set. -+ * If this collection is not empty after the event is fired, then -+ * the standard process of calling {@link Command#tabComplete(CommandSender, String, String[])} -+ * or current player names will not be called. -+ *

-+ * The passed collection will be cloned to a new List. You must call {{@link #completions()}} to mutate from here -+ * -+ * @param newCompletions the new completions -+ */ -+ public void completions(final @NotNull List newCompletions) { -+ Preconditions.checkNotNull(newCompletions, "new completions"); -+ this.completions.clear(); -+ this.completions.addAll(newCompletions); - } - - /** -@@ -173,4 +227,102 @@ public class AsyncTabCompleteEvent extends Event implements Cancellable { - public static HandlerList getHandlerList() { - return handlers; - } -+ -+ private static @NotNull List fromStrings(final @NotNull List strings) { -+ final List list = new ArrayList<>(); -+ for (final String it : strings) { -+ list.add(new CompletionImpl(it, null)); -+ } -+ return list; -+ } -+ -+ /** -+ * A rich tab completion, consisting of a string suggestion, and a nullable {@link Component} tooltip. -+ */ -+ public interface Completion extends Examinable { -+ /** -+ * Get the suggestion string for this {@link Completion}. -+ * -+ * @return suggestion string -+ */ -+ @NotNull String suggestion(); -+ -+ /** -+ * Get the suggestion tooltip for this {@link Completion}. -+ * -+ * @return tooltip component -+ */ -+ @Nullable Component tooltip(); -+ -+ @Override -+ default @NotNull Stream examinableProperties() { -+ return Stream.of(ExaminableProperty.of("suggestion", this.suggestion()), ExaminableProperty.of("tooltip", this.tooltip())); -+ } -+ -+ /** -+ * Create a new {@link Completion} from a suggestion string. -+ * -+ * @param suggestion suggestion string -+ * @return new completion instance -+ */ -+ static @NotNull Completion completion(final @NotNull String suggestion) { -+ return new CompletionImpl(suggestion, null); -+ } -+ -+ /** -+ * Create a new {@link Completion} from a suggestion string and a tooltip {@link Component}. -+ * -+ *

If the provided component is null, the suggestion will not have a tooltip.

-+ * -+ * @param suggestion suggestion string -+ * @param tooltip tooltip component, or null -+ * @return new completion instance -+ */ -+ static @NotNull Completion completion(final @NotNull String suggestion, final @Nullable Component tooltip) { -+ return new CompletionImpl(suggestion, tooltip); -+ } -+ } -+ -+ static final class CompletionImpl implements Completion { -+ private final String suggestion; -+ private final Component tooltip; -+ -+ CompletionImpl(final @NotNull String suggestion, final @Nullable Component tooltip) { -+ this.suggestion = suggestion; -+ this.tooltip = tooltip; -+ } -+ -+ @Override -+ public @NotNull String suggestion() { -+ return this.suggestion; -+ } -+ -+ @Override -+ public @Nullable Component tooltip() { -+ return this.tooltip; -+ } -+ -+ @Override -+ public boolean equals(final @Nullable Object o) { -+ if (this == o) { -+ return true; -+ } -+ if (o == null || this.getClass() != o.getClass()) { -+ return false; -+ } -+ final CompletionImpl that = (CompletionImpl) o; -+ return this.suggestion.equals(that.suggestion) -+ && java.util.Objects.equals(this.tooltip, that.tooltip); -+ } -+ -+ @Override -+ public int hashCode() { -+ return java.util.Objects.hash(this.suggestion, this.tooltip); -+ } -+ -+ @Override -+ public @NotNull String toString() { -+ return StringExaminer.simpleEscaping().examine(this); -+ } -+ } - } -diff --git a/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java b/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java -new file mode 100644 -index 0000000000000000000000000000000000000000..6f560a51277ccbd46a9142cfa057d276118c1c7b ---- /dev/null -+++ b/src/main/java/io/papermc/paper/util/TransformingRandomAccessList.java -@@ -0,0 +1,169 @@ -+package io.papermc.paper.util; -+ -+import org.checkerframework.checker.nullness.qual.NonNull; -+import org.jetbrains.annotations.NotNull; -+ -+import java.util.AbstractList; -+import java.util.Iterator; -+import java.util.List; -+import java.util.ListIterator; -+import java.util.RandomAccess; -+import java.util.function.Function; -+import java.util.function.Predicate; -+ -+import static com.google.common.base.Preconditions.checkNotNull; -+ -+/** -+ * Modified version of the Guava class with the same name to support add operations. -+ * -+ * @param backing list element type -+ * @param transformed list element type -+ */ -+public final class TransformingRandomAccessList extends AbstractList implements RandomAccess { -+ final List fromList; -+ final Function toFunction; -+ final Function fromFunction; -+ -+ /** -+ * Create a new {@link TransformingRandomAccessList}. -+ * -+ * @param fromList backing list -+ * @param toFunction function mapping backing list element type to transformed list element type -+ * @param fromFunction function mapping transformed list element type to backing list element type -+ */ -+ public TransformingRandomAccessList( -+ final @NonNull List fromList, -+ final @NonNull Function toFunction, -+ final @NonNull Function fromFunction -+ ) { -+ this.fromList = checkNotNull(fromList); -+ this.toFunction = checkNotNull(toFunction); -+ this.fromFunction = checkNotNull(fromFunction); -+ } -+ -+ @Override -+ public void clear() { -+ this.fromList.clear(); -+ } -+ -+ @Override -+ public T get(int index) { -+ return this.toFunction.apply(this.fromList.get(index)); -+ } -+ -+ @Override -+ public @NotNull Iterator iterator() { -+ return this.listIterator(); -+ } -+ -+ @Override -+ public @NotNull ListIterator listIterator(int index) { -+ return new TransformedListIterator(this.fromList.listIterator(index)) { -+ @Override -+ T transform(F from) { -+ return TransformingRandomAccessList.this.toFunction.apply(from); -+ } -+ -+ @Override -+ F transformBack(T from) { -+ return TransformingRandomAccessList.this.fromFunction.apply(from); -+ } -+ }; -+ } -+ -+ @Override -+ public boolean isEmpty() { -+ return this.fromList.isEmpty(); -+ } -+ -+ @Override -+ public boolean removeIf(Predicate filter) { -+ checkNotNull(filter); -+ return this.fromList.removeIf(element -> filter.test(this.toFunction.apply(element))); -+ } -+ -+ @Override -+ public T remove(int index) { -+ return this.toFunction.apply(this.fromList.remove(index)); -+ } -+ -+ @Override -+ public int size() { -+ return this.fromList.size(); -+ } -+ -+ @Override -+ public T set(int i, T t) { -+ return this.toFunction.apply(this.fromList.set(i, this.fromFunction.apply(t))); -+ } -+ -+ @Override -+ public void add(int i, T t) { -+ this.fromList.add(i, this.fromFunction.apply(t)); -+ } -+ -+ static abstract class TransformedListIterator implements ListIterator, Iterator { -+ final Iterator backingIterator; -+ -+ TransformedListIterator(ListIterator backingIterator) { -+ this.backingIterator = checkNotNull((Iterator) backingIterator); -+ } -+ -+ private ListIterator backingIterator() { -+ return cast(this.backingIterator); -+ } -+ -+ static
ListIterator cast(Iterator iterator) { -+ return (ListIterator) iterator; -+ } -+ -+ @Override -+ public final boolean hasPrevious() { -+ return this.backingIterator().hasPrevious(); -+ } -+ -+ @Override -+ public final T previous() { -+ return this.transform(this.backingIterator().previous()); -+ } -+ -+ @Override -+ public final int nextIndex() { -+ return this.backingIterator().nextIndex(); -+ } -+ -+ @Override -+ public final int previousIndex() { -+ return this.backingIterator().previousIndex(); -+ } -+ -+ @Override -+ public void set(T element) { -+ this.backingIterator().set(this.transformBack(element)); -+ } -+ -+ @Override -+ public void add(T element) { -+ this.backingIterator().add(this.transformBack(element)); -+ } -+ -+ abstract T transform(F from); -+ -+ abstract F transformBack(T to); -+ -+ @Override -+ public final boolean hasNext() { -+ return this.backingIterator.hasNext(); -+ } -+ -+ @Override -+ public final T next() { -+ return this.transform(this.backingIterator.next()); -+ } -+ -+ @Override -+ public final void remove() { -+ this.backingIterator.remove(); -+ } -+ } -+} -diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java -index 93498307004b68b934fbfa1aeb3aaf0e97cbdac7..bbe81f7a420f913ffdcad913a3c43ff41ead41f5 100644 ---- a/src/test/java/org/bukkit/AnnotationTest.java -+++ b/src/test/java/org/bukkit/AnnotationTest.java -@@ -48,6 +48,8 @@ public class AnnotationTest { - // Generic functional interface - "org/bukkit/util/Consumer", - // Paper start -+ "io/papermc/paper/util/TransformingRandomAccessList", -+ "io/papermc/paper/util/TransformingRandomAccessList$TransformedListIterator", - // Timings history is broken in terms of nullability due to guavas Function defining that the param is NonNull - "co/aikar/timings/TimingHistory$2", - "co/aikar/timings/TimingHistory$2$1", diff --git a/patches/api/0281-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0280-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/api/0281-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/api/0280-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/api/0282-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0281-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/api/0282-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/api/0281-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/api/0283-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0282-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/api/0283-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/api/0282-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/api/0284-Added-PlayerDeepSleepEvent.patch b/patches/api/0283-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/api/0284-Added-PlayerDeepSleepEvent.patch rename to patches/api/0283-Added-PlayerDeepSleepEvent.patch diff --git a/patches/api/0285-More-World-API.patch b/patches/api/0284-More-World-API.patch similarity index 100% rename from patches/api/0285-More-World-API.patch rename to patches/api/0284-More-World-API.patch diff --git a/patches/api/0286-Added-PlayerBedFailEnterEvent.patch b/patches/api/0285-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/api/0286-Added-PlayerBedFailEnterEvent.patch rename to patches/api/0285-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/api/0287-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0286-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/api/0287-Introduce-beacon-activation-deactivation-events.patch rename to patches/api/0286-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/api/0288-PlayerMoveEvent-Improvements.patch b/patches/api/0287-PlayerMoveEvent-Improvements.patch similarity index 100% rename from patches/api/0288-PlayerMoveEvent-Improvements.patch rename to patches/api/0287-PlayerMoveEvent-Improvements.patch diff --git a/patches/api/0289-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0288-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 100% rename from patches/api/0289-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/api/0288-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/api/0290-Add-more-WanderingTrader-API.patch b/patches/api/0289-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/api/0290-Add-more-WanderingTrader-API.patch rename to patches/api/0289-Add-more-WanderingTrader-API.patch diff --git a/patches/api/0291-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0290-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/api/0291-Add-EntityBlockStorage-clearEntities.patch rename to patches/api/0290-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/api/0292-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0291-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/api/0292-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/api/0291-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/api/0293-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0292-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/api/0293-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename to patches/api/0292-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/api/0294-Inventory-close.patch b/patches/api/0293-Inventory-close.patch similarity index 100% rename from patches/api/0294-Inventory-close.patch rename to patches/api/0293-Inventory-close.patch diff --git a/patches/api/0295-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0294-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/api/0295-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/api/0294-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/api/0296-Add-basic-Datapack-API.patch b/patches/api/0295-Add-basic-Datapack-API.patch similarity index 100% rename from patches/api/0296-Add-basic-Datapack-API.patch rename to patches/api/0295-Add-basic-Datapack-API.patch diff --git a/patches/api/0297-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0296-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/api/0297-additions-to-PlayerGameModeChangeEvent.patch rename to patches/api/0296-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/api/0298-ItemStack-repair-check-API.patch b/patches/api/0297-ItemStack-repair-check-API.patch similarity index 100% rename from patches/api/0298-ItemStack-repair-check-API.patch rename to patches/api/0297-ItemStack-repair-check-API.patch diff --git a/patches/api/0299-More-Enchantment-API.patch b/patches/api/0298-More-Enchantment-API.patch similarity index 100% rename from patches/api/0299-More-Enchantment-API.patch rename to patches/api/0298-More-Enchantment-API.patch diff --git a/patches/api/0300-List-all-missing-hard-depends-not-just-first.patch b/patches/api/0299-List-all-missing-hard-depends-not-just-first.patch similarity index 100% rename from patches/api/0300-List-all-missing-hard-depends-not-just-first.patch rename to patches/api/0299-List-all-missing-hard-depends-not-just-first.patch diff --git a/patches/api/0301-Add-Mob-lookAt-API.patch b/patches/api/0300-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/api/0301-Add-Mob-lookAt-API.patch rename to patches/api/0300-Add-Mob-lookAt-API.patch diff --git a/patches/api/0302-ItemStack-editMeta.patch b/patches/api/0301-ItemStack-editMeta.patch similarity index 100% rename from patches/api/0302-ItemStack-editMeta.patch rename to patches/api/0301-ItemStack-editMeta.patch diff --git a/patches/api/0303-Add-EntityInsideBlockEvent.patch b/patches/api/0302-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/api/0303-Add-EntityInsideBlockEvent.patch rename to patches/api/0302-Add-EntityInsideBlockEvent.patch diff --git a/patches/api/0304-Attributes-API-for-item-defaults.patch b/patches/api/0303-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/api/0304-Attributes-API-for-item-defaults.patch rename to patches/api/0303-Attributes-API-for-item-defaults.patch diff --git a/patches/api/0305-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0304-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/api/0305-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/api/0304-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/api/0306-More-Lidded-Block-API.patch b/patches/api/0305-More-Lidded-Block-API.patch similarity index 100% rename from patches/api/0306-More-Lidded-Block-API.patch rename to patches/api/0305-More-Lidded-Block-API.patch diff --git a/patches/api/0307-Add-PlayerKickEvent-causes.patch b/patches/api/0306-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/api/0307-Add-PlayerKickEvent-causes.patch rename to patches/api/0306-Add-PlayerKickEvent-causes.patch diff --git a/patches/api/0308-Add-PufferFishStateChangeEvent.patch b/patches/api/0307-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/api/0308-Add-PufferFishStateChangeEvent.patch rename to patches/api/0307-Add-PufferFishStateChangeEvent.patch diff --git a/patches/api/0309-Add-BellRevealRaiderEvent.patch b/patches/api/0308-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/api/0309-Add-BellRevealRaiderEvent.patch rename to patches/api/0308-Add-BellRevealRaiderEvent.patch diff --git a/patches/api/0310-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0309-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/api/0310-Add-ElderGuardianAppearanceEvent.patch rename to patches/api/0309-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/api/0311-Add-more-line-of-sight-methods.patch b/patches/api/0310-Add-more-line-of-sight-methods.patch similarity index 100% rename from patches/api/0311-Add-more-line-of-sight-methods.patch rename to patches/api/0310-Add-more-line-of-sight-methods.patch diff --git a/patches/api/0312-Add-more-LimitedRegion-API.patch b/patches/api/0311-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/api/0312-Add-more-LimitedRegion-API.patch rename to patches/api/0311-Add-more-LimitedRegion-API.patch diff --git a/patches/api/0313-Missing-Entity-Behavior-API.patch b/patches/api/0312-Missing-Entity-Behavior-API.patch similarity index 100% rename from patches/api/0313-Missing-Entity-Behavior-API.patch rename to patches/api/0312-Missing-Entity-Behavior-API.patch diff --git a/patches/api/0314-Adds-PlayerArmSwingEvent.patch b/patches/api/0313-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/api/0314-Adds-PlayerArmSwingEvent.patch rename to patches/api/0313-Adds-PlayerArmSwingEvent.patch diff --git a/patches/api/0315-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0314-Add-PlayerSignCommandPreprocessEvent.patch similarity index 100% rename from patches/api/0315-Add-PlayerSignCommandPreprocessEvent.patch rename to patches/api/0314-Add-PlayerSignCommandPreprocessEvent.patch diff --git a/patches/api/0316-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0315-fix-empty-array-elements-in-command-arguments.patch similarity index 100% rename from patches/api/0316-fix-empty-array-elements-in-command-arguments.patch rename to patches/api/0315-fix-empty-array-elements-in-command-arguments.patch diff --git a/patches/api/0317-Stinger-API.patch b/patches/api/0316-Stinger-API.patch similarity index 100% rename from patches/api/0317-Stinger-API.patch rename to patches/api/0316-Stinger-API.patch diff --git a/patches/api/0318-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0317-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/api/0318-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/api/0317-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/api/0319-Add-PlayerSetSpawnEvent.patch b/patches/api/0318-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/api/0319-Add-PlayerSetSpawnEvent.patch rename to patches/api/0318-Add-PlayerSetSpawnEvent.patch diff --git a/patches/api/0320-Added-EntityDamageItemEvent.patch b/patches/api/0319-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/api/0320-Added-EntityDamageItemEvent.patch rename to patches/api/0319-Added-EntityDamageItemEvent.patch diff --git a/patches/api/0321-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0320-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/api/0321-Make-EntityUnleashEvent-cancellable.patch rename to patches/api/0320-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/api/0322-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0321-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/api/0322-Change-EnderEye-target-without-changing-other-things.patch rename to patches/api/0321-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/api/0323-Add-BlockBreakBlockEvent.patch b/patches/api/0322-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/api/0323-Add-BlockBreakBlockEvent.patch rename to patches/api/0322-Add-BlockBreakBlockEvent.patch diff --git a/patches/api/0324-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0323-Add-helpers-for-left-right-click-to-Action.patch similarity index 100% rename from patches/api/0324-Add-helpers-for-left-right-click-to-Action.patch rename to patches/api/0323-Add-helpers-for-left-right-click-to-Action.patch diff --git a/patches/api/0325-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0324-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/api/0325-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/api/0324-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/api/0326-More-CommandBlock-API.patch b/patches/api/0325-More-CommandBlock-API.patch similarity index 100% rename from patches/api/0326-More-CommandBlock-API.patch rename to patches/api/0325-More-CommandBlock-API.patch diff --git a/patches/api/0327-Fix-plugin-provides-load-order.patch b/patches/api/0326-Fix-plugin-provides-load-order.patch similarity index 100% rename from patches/api/0327-Fix-plugin-provides-load-order.patch rename to patches/api/0326-Fix-plugin-provides-load-order.patch diff --git a/patches/api/0328-Add-missing-team-sidebar-display-slots.patch b/patches/api/0327-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/api/0328-Add-missing-team-sidebar-display-slots.patch rename to patches/api/0327-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/api/0329-add-back-EntityPortalExitEvent.patch b/patches/api/0328-add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/api/0329-add-back-EntityPortalExitEvent.patch rename to patches/api/0328-add-back-EntityPortalExitEvent.patch diff --git a/patches/api/0330-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0329-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/api/0330-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/api/0329-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/api/0331-Get-entity-default-attributes.patch b/patches/api/0330-Get-entity-default-attributes.patch similarity index 100% rename from patches/api/0331-Get-entity-default-attributes.patch rename to patches/api/0330-Get-entity-default-attributes.patch diff --git a/patches/api/0332-Left-handed-API.patch b/patches/api/0331-Left-handed-API.patch similarity index 100% rename from patches/api/0332-Left-handed-API.patch rename to patches/api/0331-Left-handed-API.patch diff --git a/patches/api/0333-Add-advancement-display-API.patch b/patches/api/0332-Add-advancement-display-API.patch similarity index 100% rename from patches/api/0333-Add-advancement-display-API.patch rename to patches/api/0332-Add-advancement-display-API.patch diff --git a/patches/api/0334-Add-ItemFactory-getMonsterEgg-API.patch b/patches/api/0333-Add-ItemFactory-getMonsterEgg-API.patch similarity index 100% rename from patches/api/0334-Add-ItemFactory-getMonsterEgg-API.patch rename to patches/api/0333-Add-ItemFactory-getMonsterEgg-API.patch diff --git a/patches/api/0335-Add-critical-damage-API.patch b/patches/api/0334-Add-critical-damage-API.patch similarity index 100% rename from patches/api/0335-Add-critical-damage-API.patch rename to patches/api/0334-Add-critical-damage-API.patch diff --git a/patches/api/0336-Fix-issues-with-mob-conversion.patch b/patches/api/0335-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/api/0336-Fix-issues-with-mob-conversion.patch rename to patches/api/0335-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0337-Add-isCollidable-methods-to-various-places.patch b/patches/api/0336-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/api/0337-Add-isCollidable-methods-to-various-places.patch rename to patches/api/0336-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/api/0338-Goat-ram-API.patch b/patches/api/0337-Goat-ram-API.patch similarity index 100% rename from patches/api/0338-Goat-ram-API.patch rename to patches/api/0337-Goat-ram-API.patch diff --git a/patches/api/0339-Add-API-for-resetting-a-single-score.patch b/patches/api/0338-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/api/0339-Add-API-for-resetting-a-single-score.patch rename to patches/api/0338-Add-API-for-resetting-a-single-score.patch diff --git a/patches/api/0340-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0339-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/api/0340-Add-Raw-Byte-Entity-Serialization.patch rename to patches/api/0339-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/api/0341-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0340-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/api/0341-Add-PlayerItemFrameChangeEvent.patch rename to patches/api/0340-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0342-Add-player-health-update-API.patch b/patches/api/0341-Add-player-health-update-API.patch similarity index 100% rename from patches/api/0342-Add-player-health-update-API.patch rename to patches/api/0341-Add-player-health-update-API.patch diff --git a/patches/api/0343-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0342-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/api/0343-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/api/0342-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/api/0344-Add-more-Campfire-API.patch b/patches/api/0343-Add-more-Campfire-API.patch similarity index 100% rename from patches/api/0344-Add-more-Campfire-API.patch rename to patches/api/0343-Add-more-Campfire-API.patch diff --git a/patches/api/0345-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0344-Move-VehicleCollisionEvent-HandlerList-up.patch similarity index 100% rename from patches/api/0345-Move-VehicleCollisionEvent-HandlerList-up.patch rename to patches/api/0344-Move-VehicleCollisionEvent-HandlerList-up.patch diff --git a/patches/api/0346-Improve-scoreboard-entries.patch b/patches/api/0345-Improve-scoreboard-entries.patch similarity index 100% rename from patches/api/0346-Improve-scoreboard-entries.patch rename to patches/api/0345-Improve-scoreboard-entries.patch diff --git a/patches/api/0347-Entity-powdered-snow-API.patch b/patches/api/0346-Entity-powdered-snow-API.patch similarity index 100% rename from patches/api/0347-Entity-powdered-snow-API.patch rename to patches/api/0346-Entity-powdered-snow-API.patch diff --git a/patches/api/0348-Add-API-for-item-entity-health.patch b/patches/api/0347-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/api/0348-Add-API-for-item-entity-health.patch rename to patches/api/0347-Add-API-for-item-entity-health.patch diff --git a/patches/api/0349-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0348-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/api/0349-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/api/0348-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0350-Bucketable-API.patch b/patches/api/0349-Bucketable-API.patch similarity index 100% rename from patches/api/0350-Bucketable-API.patch rename to patches/api/0349-Bucketable-API.patch diff --git a/patches/api/0351-System-prop-for-default-config-comment-parsing.patch b/patches/api/0350-System-prop-for-default-config-comment-parsing.patch similarity index 100% rename from patches/api/0351-System-prop-for-default-config-comment-parsing.patch rename to patches/api/0350-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0352-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0351-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/api/0352-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/api/0351-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0353-Remove-upstream-snakeyaml-fix.patch b/patches/api/0352-Remove-upstream-snakeyaml-fix.patch similarity index 100% rename from patches/api/0353-Remove-upstream-snakeyaml-fix.patch rename to patches/api/0352-Remove-upstream-snakeyaml-fix.patch diff --git a/patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0353-Add-new-overload-to-PersistentDataContainer-has.patch similarity index 100% rename from patches/api/0354-Add-new-overload-to-PersistentDataContainer-has.patch rename to patches/api/0353-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/api/0355-Multiple-Entries-with-Scoreboards.patch b/patches/api/0354-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/api/0355-Multiple-Entries-with-Scoreboards.patch rename to patches/api/0354-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/api/0356-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0355-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/api/0356-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename to patches/api/0355-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/api/0357-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0356-Warn-on-strange-EventHandler-return-types.patch similarity index 100% rename from patches/api/0357-Warn-on-strange-EventHandler-return-types.patch rename to patches/api/0356-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0358-Multi-Block-Change-API.patch b/patches/api/0357-Multi-Block-Change-API.patch similarity index 100% rename from patches/api/0358-Multi-Block-Change-API.patch rename to patches/api/0357-Multi-Block-Change-API.patch diff --git a/patches/api/0359-Fix-NotePlayEvent.patch b/patches/api/0358-Fix-NotePlayEvent.patch similarity index 100% rename from patches/api/0359-Fix-NotePlayEvent.patch rename to patches/api/0358-Fix-NotePlayEvent.patch diff --git a/patches/api/0360-Freeze-Tick-Lock-API.patch b/patches/api/0359-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/api/0360-Freeze-Tick-Lock-API.patch rename to patches/api/0359-Freeze-Tick-Lock-API.patch diff --git a/patches/api/0361-Dolphin-API.patch b/patches/api/0360-Dolphin-API.patch similarity index 100% rename from patches/api/0361-Dolphin-API.patch rename to patches/api/0360-Dolphin-API.patch diff --git a/patches/api/0362-More-PotionEffectType-API.patch b/patches/api/0361-More-PotionEffectType-API.patch similarity index 100% rename from patches/api/0362-More-PotionEffectType-API.patch rename to patches/api/0361-More-PotionEffectType-API.patch diff --git a/patches/api/0363-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0362-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/api/0363-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/api/0362-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/api/0364-Implement-regenerateChunk.patch b/patches/api/0363-Implement-regenerateChunk.patch similarity index 100% rename from patches/api/0364-Implement-regenerateChunk.patch rename to patches/api/0363-Implement-regenerateChunk.patch diff --git a/patches/api/0365-Don-t-load-plugins-prefixed-with-a-dot.patch b/patches/api/0364-Don-t-load-plugins-prefixed-with-a-dot.patch similarity index 100% rename from patches/api/0365-Don-t-load-plugins-prefixed-with-a-dot.patch rename to patches/api/0364-Don-t-load-plugins-prefixed-with-a-dot.patch diff --git a/patches/api/0366-Add-GameEvent-tags.patch b/patches/api/0365-Add-GameEvent-tags.patch similarity index 100% rename from patches/api/0366-Add-GameEvent-tags.patch rename to patches/api/0365-Add-GameEvent-tags.patch diff --git a/patches/api/0367-Furnace-RecipesUsed-API.patch b/patches/api/0366-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/api/0367-Furnace-RecipesUsed-API.patch rename to patches/api/0366-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0368-Configurable-sculk-sensor-listener-range.patch b/patches/api/0367-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/api/0368-Configurable-sculk-sensor-listener-range.patch rename to patches/api/0367-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0369-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0368-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/api/0369-Add-missing-block-data-mins-and-maxes.patch rename to patches/api/0368-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0370-Custom-Potion-Mixes.patch b/patches/api/0369-Custom-Potion-Mixes.patch similarity index 100% rename from patches/api/0370-Custom-Potion-Mixes.patch rename to patches/api/0369-Custom-Potion-Mixes.patch diff --git a/patches/api/0371-Expose-furnace-minecart-push-values.patch b/patches/api/0370-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/api/0371-Expose-furnace-minecart-push-values.patch rename to patches/api/0370-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0372-More-Projectile-API.patch b/patches/api/0371-More-Projectile-API.patch similarity index 100% rename from patches/api/0372-More-Projectile-API.patch rename to patches/api/0371-More-Projectile-API.patch diff --git a/patches/api/0373-Add-getComputedBiome-API.patch b/patches/api/0372-Add-getComputedBiome-API.patch similarity index 100% rename from patches/api/0373-Add-getComputedBiome-API.patch rename to patches/api/0372-Add-getComputedBiome-API.patch diff --git a/patches/api/0374-Add-enchantWithLevels-API.patch b/patches/api/0373-Add-enchantWithLevels-API.patch similarity index 100% rename from patches/api/0374-Add-enchantWithLevels-API.patch rename to patches/api/0373-Add-enchantWithLevels-API.patch diff --git a/patches/api/0375-Add-TameableDeathMessageEvent.patch b/patches/api/0374-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/api/0375-Add-TameableDeathMessageEvent.patch rename to patches/api/0374-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0376-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0375-Allow-to-change-the-podium-of-the-EnderDragon.patch similarity index 100% rename from patches/api/0376-Allow-to-change-the-podium-of-the-EnderDragon.patch rename to patches/api/0375-Allow-to-change-the-podium-of-the-EnderDragon.patch diff --git a/patches/api/0377-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0376-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/api/0377-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/api/0376-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0378-Update-Folder-Uses-Plugin-Name.patch b/patches/api/0377-Update-Folder-Uses-Plugin-Name.patch similarity index 100% rename from patches/api/0378-Update-Folder-Uses-Plugin-Name.patch rename to patches/api/0377-Update-Folder-Uses-Plugin-Name.patch diff --git a/patches/api/0379-WorldCreator-keepSpawnLoaded.patch b/patches/api/0378-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/api/0379-WorldCreator-keepSpawnLoaded.patch rename to patches/api/0378-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0380-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0379-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/api/0380-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/api/0379-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0381-Add-PlayerStopUsingItemEvent.patch b/patches/api/0380-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/api/0381-Add-PlayerStopUsingItemEvent.patch rename to patches/api/0380-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0382-FallingBlock-auto-expire-setting.patch b/patches/api/0381-FallingBlock-auto-expire-setting.patch similarity index 100% rename from patches/api/0382-FallingBlock-auto-expire-setting.patch rename to patches/api/0381-FallingBlock-auto-expire-setting.patch diff --git a/patches/api/0383-Keyed-Cat-Type.patch b/patches/api/0382-Keyed-Cat-Type.patch similarity index 100% rename from patches/api/0383-Keyed-Cat-Type.patch rename to patches/api/0382-Keyed-Cat-Type.patch diff --git a/patches/api/0384-Add-WardenAngerChangeEvent.patch b/patches/api/0383-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/api/0384-Add-WardenAngerChangeEvent.patch rename to patches/api/0383-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0385-Nameable-Banner-API.patch b/patches/api/0384-Nameable-Banner-API.patch similarity index 100% rename from patches/api/0385-Nameable-Banner-API.patch rename to patches/api/0384-Nameable-Banner-API.patch diff --git a/patches/api/0386-Add-Player-getFishHook.patch b/patches/api/0385-Add-Player-getFishHook.patch similarity index 100% rename from patches/api/0386-Add-Player-getFishHook.patch rename to patches/api/0385-Add-Player-getFishHook.patch diff --git a/patches/api/0387-More-Teleport-API.patch b/patches/api/0386-More-Teleport-API.patch similarity index 100% rename from patches/api/0387-More-Teleport-API.patch rename to patches/api/0386-More-Teleport-API.patch diff --git a/patches/api/0388-Add-EntityPortalReadyEvent.patch b/patches/api/0387-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/api/0388-Add-EntityPortalReadyEvent.patch rename to patches/api/0387-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0389-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0388-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/api/0389-Custom-Chat-Completion-Suggestions-API.patch rename to patches/api/0388-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/api/0390-Collision-API.patch b/patches/api/0389-Collision-API.patch similarity index 100% rename from patches/api/0390-Collision-API.patch rename to patches/api/0389-Collision-API.patch diff --git a/patches/server/0166-AsyncTabCompleteEvent.patch b/patches/server/0166-AsyncTabCompleteEvent.patch index 7eb28ae99..855b8a534 100644 --- a/patches/server/0166-AsyncTabCompleteEvent.patch +++ b/patches/server/0166-AsyncTabCompleteEvent.patch @@ -1,5 +1,5 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar +From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Sun, 26 Nov 2017 13:19:58 -0500 Subject: [PATCH] AsyncTabCompleteEvent @@ -13,12 +13,20 @@ completion, such as offline players. Also adds isCommand and getLocation to the sync TabCompleteEvent +Co-authored-by: Aikar + diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0a2a55979ee58458928f78f1383a653717d0a18a..7fb4e1cf4eb21dd19a581b082caf9825cdaa4ad9 100644 +index f558d0f8f7b78132510f8c5e61701eccf1f8bcfa..6de0b057d61dbe5939f0c04d8a5d1469837ed305 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -783,10 +783,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -781,27 +781,58 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + } + ++ // Paper start ++ private static final java.util.concurrent.ExecutorService TAB_COMPLETE_EXECUTOR = java.util.concurrent.Executors.newFixedThreadPool(4, ++ new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Tab Complete Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); ++ // Paper end @Override public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { - PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); @@ -30,43 +38,48 @@ index 0a2a55979ee58458928f78f1383a653717d0a18a..7fb4e1cf4eb21dd19a581b082caf9825 return; } // CraftBukkit end -@@ -796,12 +796,35 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ++ // Paper start - async tab completion ++ TAB_COMPLETE_EXECUTOR.execute(() -> { + StringReader stringreader = new StringReader(packet.getCommand()); + + if (stringreader.canRead() && stringreader.peek() == '/') { stringreader.skip(); } ++ final String command = packet.getCommand(); ++ final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(this.getCraftPlayer(), command, true, null); ++ event.callEvent(); ++ final java.util.List completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.completions(); ++ // If the event isn't handled, we can assume that we have no completions, and so we'll ask the server ++ if (!event.isHandled()) { ++ if (!event.isCancelled()) { - ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); -+ // Paper start - async tab completion -+ com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event; -+ java.util.List completions = new java.util.ArrayList<>(); -+ String buffer = packet.getCommand(); -+ event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(this.getCraftPlayer(), completions, -+ buffer, true, null); -+ event.callEvent(); -+ completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.getCompletions(); -+ // If the event isn't handled, we can assume that we have no completions, and so we'll ask the server -+ if (!event.isHandled()) { -+ if (!event.isCancelled()) { ++ this.server.scheduleOnMain(() -> { // This needs to be on main ++ ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); - this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { - if (suggestions.isEmpty()) return; // CraftBukkit - don't send through empty suggestions - prevents [] from showing for plugins with nothing more to offer - this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestions)); -- }); -+ this.server.scheduleOnMain(() -> { // Paper - This needs to be on main -+ ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); -+ -+ this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { -+ if (suggestions.isEmpty()) return; // CraftBukkit - don't send through empty suggestions - prevents [] from showing for plugins with nothing more to offer -+ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestions)); ++ this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { ++ if (suggestions.isEmpty()) return; // CraftBukkit - don't send through empty suggestions - prevents [] from showing for plugins with nothing more to offer ++ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestions)); ++ }); + }); ++ } ++ } else if (!completions.isEmpty()) { ++ final com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(command, stringreader.getTotalLength()); ++ final com.mojang.brigadier.suggestion.SuggestionsBuilder builder = builder0.createOffset(builder0.getInput().lastIndexOf(' ') + 1); ++ completions.forEach(completion -> { ++ final Integer intSuggestion = com.google.common.primitives.Ints.tryParse(completion.suggestion()); ++ if (intSuggestion != null) { ++ builder.suggest(intSuggestion, PaperAdventure.asVanilla(completion.tooltip())); ++ } else { ++ builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip())); ++ } + }); ++ player.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), builder.buildFuture().join())); + } -+ } else if (!completions.isEmpty()) { -+ com.mojang.brigadier.suggestion.SuggestionsBuilder builder = new com.mojang.brigadier.suggestion.SuggestionsBuilder(packet.getCommand(), stringreader.getTotalLength()); -+ -+ builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1); -+ completions.forEach(builder::suggest); -+ player.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), builder.buildFuture().join())); -+ } + }); + // Paper end - async tab completion } @@ -85,42 +98,64 @@ index 733423010e7941d160b838d614c732980111fb55..45d3fc8174ff32c140c1c234b655a697 return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions(); diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -index b996fde481cebbbcce80a6c267591136db7cc0bc..e5af155d75f717d33c23e22ff8b96bb3ff87844d 100644 +index b996fde481cebbbcce80a6c267591136db7cc0bc..14cd8ae69d9b25dc5edad4ff96ff4a9acb1f22cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java +++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -@@ -28,6 +28,39 @@ public class ConsoleCommandCompleter implements Completer { +@@ -28,6 +28,61 @@ public class ConsoleCommandCompleter implements Completer { public void complete(LineReader reader, ParsedLine line, List candidates) { final CraftServer server = this.server.server; final String buffer = line.line(); + // Async Tab Complete -+ com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event; -+ java.util.List completions = new java.util.ArrayList<>(); -+ event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(server.getConsoleSender(), completions, -+ buffer, true, null); ++ final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event = ++ new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(server.getConsoleSender(), buffer, true, null); + event.callEvent(); -+ completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.getCompletions(); ++ final List completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.completions(); + + if (event.isCancelled() || event.isHandled()) { + // Still fire sync event with the provided completions, if someone is listening + if (!event.isCancelled() && TabCompleteEvent.getHandlerList().getRegisteredListeners().length > 0) { -+ List finalCompletions = completions; ++ List finalCompletions = new java.util.ArrayList<>(completions); + Waitable> syncCompletions = new Waitable>() { + @Override + protected List evaluate() { -+ org.bukkit.event.server.TabCompleteEvent syncEvent = new org.bukkit.event.server.TabCompleteEvent(server.getConsoleSender(), buffer, finalCompletions); ++ org.bukkit.event.server.TabCompleteEvent syncEvent = new org.bukkit.event.server.TabCompleteEvent(server.getConsoleSender(), buffer, ++ finalCompletions.stream() ++ .map(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion::suggestion) ++ .collect(java.util.stream.Collectors.toList())); + return syncEvent.callEvent() ? syncEvent.getCompletions() : com.google.common.collect.ImmutableList.of(); + } + }; + server.getServer().processQueue.add(syncCompletions); + try { -+ completions = syncCompletions.get(); ++ final List legacyCompletions = syncCompletions.get(); ++ completions.removeIf(it -> !legacyCompletions.contains(it.suggestion())); // remove any suggestions that were removed ++ // add any new suggestions ++ for (final String completion : legacyCompletions) { ++ if (notNewSuggestion(completions, completion)) { ++ continue; ++ } ++ completions.add(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion.completion(completion)); ++ } + } catch (InterruptedException | ExecutionException e1) { + e1.printStackTrace(); + } + } + + if (!completions.isEmpty()) { -+ candidates.addAll(completions.stream().map(Candidate::new).collect(java.util.stream.Collectors.toList())); ++ for (final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion completion : completions) { ++ if (completion.suggestion().isEmpty()) { ++ continue; ++ } ++ candidates.add(new Candidate( ++ completion.suggestion(), ++ completion.suggestion(), ++ null, ++ io.papermc.paper.adventure.PaperAdventure.PLAIN.serializeOr(completion.tooltip(), null), ++ null, ++ null, ++ false ++ )); ++ } + } + return; + } @@ -128,3 +163,19 @@ index b996fde481cebbbcce80a6c267591136db7cc0bc..e5af155d75f717d33c23e22ff8b96bb3 // Paper end Waitable> waitable = new Waitable>() { @Override +@@ -73,4 +128,15 @@ public class ConsoleCommandCompleter implements Completer { + Thread.currentThread().interrupt(); + } + } ++ ++ // Paper start ++ private boolean notNewSuggestion(final List completions, final String completion) { ++ for (final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion it : completions) { ++ if (it.suggestion().equals(completion)) { ++ return true; ++ } ++ } ++ return false; ++ } ++ // Paper end + } diff --git a/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch index 856af4a30..f51600138 100644 --- a/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch +++ b/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix exploit that allowed colored signs to be created diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b465bf1a3ffa9fd164592967c6ebbab85f374a73..a0b52f23170cc7b75b556dd8223c16881abd7f3b 100644 +index da09a756a0e0489ac6dc0262ac01e3b0c36e4caf..f7398719a3acb564f6c20d864293361053d5de92 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3223,9 +3223,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3231,9 +3231,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic FilteredText filteredtext = (FilteredText) signText.get(i); if (this.player.isTextFilteringEnabled()) { diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch index bb5e6bb71..6c4798bc3 100644 --- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch @@ -29,7 +29,7 @@ index 3d3926a14229d922fb7b7e76c9babb031bf7d9ab..5029436157fe7279a2a583f06b7d02a0 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dac7d458f161bc7449fee7142ac6cc95bf92388d..c14854f653342a6c4c8e520c3821866472d3c8af 100644 +index 73de8e676a68fa77301ad0417d86bcc7dc0c47e4..367546d6ebaf6227b097f3afb2e57a2f596a69ee 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -610,7 +610,7 @@ public class ServerPlayer extends Player { @@ -75,7 +75,7 @@ index dac7d458f161bc7449fee7142ac6cc95bf92388d..c14854f653342a6c4c8e520c38218664 this.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a0b52f23170cc7b75b556dd8223c16881abd7f3b..231e3dfecbc2fee1889f29821201a574f22d73e5 100644 +index f7398719a3acb564f6c20d864293361053d5de92..2e256ea84eb153a5671894c72c2386312f20cf20 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -216,6 +216,7 @@ import org.bukkit.event.inventory.ClickType; @@ -86,7 +86,7 @@ index a0b52f23170cc7b75b556dd8223c16881abd7f3b..231e3dfecbc2fee1889f29821201a574 import org.bukkit.event.inventory.InventoryCreativeEvent; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.event.inventory.SmithItemEvent; -@@ -2749,10 +2750,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2757,10 +2758,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleContainerClose(ServerboundContainerClosePacket packet) { @@ -104,7 +104,7 @@ index a0b52f23170cc7b75b556dd8223c16881abd7f3b..231e3dfecbc2fee1889f29821201a574 this.player.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 861f736c32d85abbce8dfade503ec0976aa7a275..a7d7882652c9361f37dfcbaec3872a50e048b4b9 100644 +index 8a626d55e4516d6c918ea49425a8f985bf3f956e..b2d023c7c3f595b46c386831131cc9c3b91705d8 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -507,7 +507,7 @@ public abstract class PlayerList { @@ -173,7 +173,7 @@ index 4ff81744b7c9113f57cf1fa89bb943902711b2dc..404ed5e8f54d70a50de4232c6ea0f616 @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3ff83fcee396b220cc1977f85ce3af399a4c2802..0c6226292f1928f657ea77529992123ad6f7bc9b 100644 +index 751aa3bb55bdd52b3b7e356e5922f21bb4981ad7..21aedf1536b5b4a87fc952ea174a7be41fcde522 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1079,7 +1079,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch index 94dfab811..99f8d1d1d 100644 --- a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is cancelled to avoid this problem. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 231e3dfecbc2fee1889f29821201a574f22d73e5..b3570e63957efea26e1538f1cb44304c22b84040 100644 +index 2e256ea84eb153a5671894c72c2386312f20cf20..dd71cd72081897402abf06a9c2e11b18b3500eed 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2634,6 +2634,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2642,6 +2642,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (event.isCancelled()) { diff --git a/patches/server/0234-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0234-Break-up-and-make-tab-spam-limits-configurable.patch index b8f3c3056..b1be18d8f 100644 --- a/patches/server/0234-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0234-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index af966cd751b73af9e01c8561d3e74972a241b0f5..8a6fd7616df0f81e4b67a217846786d9c7bcd21f 100644 +index 2d3d616b32caa23455aa94d162eb39e8bf617215..f31242fdfe6d3a643804da9bf8387f834f494f42 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -259,6 +259,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -41,7 +41,7 @@ index af966cd751b73af9e01c8561d3e74972a241b0f5..8a6fd7616df0f81e4b67a217846786d9 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -786,7 +788,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -790,7 +792,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); // Paper - run this async // CraftBukkit start diff --git a/patches/server/0252-Asynchronous-chunk-IO-and-loading.patch b/patches/server/0252-Asynchronous-chunk-IO-and-loading.patch index f14de9cea..fa558e1f5 100644 --- a/patches/server/0252-Asynchronous-chunk-IO-and-loading.patch +++ b/patches/server/0252-Asynchronous-chunk-IO-and-loading.patch @@ -2278,7 +2278,7 @@ index 97b29bcb20e199c2d02457f8025e67e2d4a925fc..8fda43173012ed3134ed1f114143ceaa DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, config.get(), ops.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f78e2d7926e665278a4d7dd78529e92abb54be85..95f0525bd4ad62853559cc60d5d2b707cffcb727 100644 +index 7e57eb82dfb069e765f3d77991e4c54ccc0a3053..f147d68767dc92158c4163d5d67c8acddbc55db8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop comparator; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8a6fd7616df0f81e4b67a217846786d9c7bcd21f..c4fffd9e5c3a263376832956b6700bafe143aa33 100644 +index f31242fdfe6d3a643804da9bf8387f834f494f42..3ec50cc71758d0178dfb9a9b70e8fc9050d530f3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -792,6 +792,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -796,6 +796,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper return; } @@ -2835,8 +2835,8 @@ index 8a6fd7616df0f81e4b67a217846786d9c7bcd21f..c4fffd9e5c3a263376832956b6700baf + } + // Paper end // CraftBukkit end - StringReader stringreader = new StringReader(packet.getCommand()); - + // Paper start - async tab completion + TAB_COMPLETE_EXECUTOR.execute(() -> { diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java index 821052e93ee753db6aaf499bbf39dc30598fe72f..2955c1ee153c410ea45fe367bac8597621c9bbd0 100644 --- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java diff --git a/patches/server/0276-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0276-Add-option-to-prevent-players-from-moving-into-unloa.patch index 835ab28b8..eb880c818 100644 --- a/patches/server/0276-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0276-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c4fffd9e5c3a263376832956b6700bafe143aa33..30858fb07046d17ca66f821fe071b8aecbd00875 100644 +index 3ec50cc71758d0178dfb9a9b70e8fc9050d530f3..d3addc9dbef86ab75707c647b2fce8edbf8b9fba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -568,9 +568,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -39,7 +39,7 @@ index c4fffd9e5c3a263376832956b6700bafe143aa33..30858fb07046d17ca66f821fe071b8ae if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8}); -@@ -1246,9 +1256,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1254,9 +1264,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.allowedPlayerTicks = 20; // CraftBukkit } else { this.awaitingTeleportTime = this.tickCount; @@ -52,7 +52,7 @@ index c4fffd9e5c3a263376832956b6700bafe143aa33..30858fb07046d17ca66f821fe071b8ae float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot())); float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot())); -@@ -1304,6 +1314,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1312,6 +1322,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } else { speed = this.player.getAbilities().walkingSpeed * 10f; } diff --git a/patches/server/0284-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0284-Don-t-allow-digging-into-unloaded-chunks.patch index 70eca5fca..8b275ebe6 100644 --- a/patches/server/0284-Don-t-allow-digging-into-unloaded-chunks.patch +++ b/patches/server/0284-Don-t-allow-digging-into-unloaded-chunks.patch @@ -59,10 +59,10 @@ index 53717a4a2bfd841346c00b5f854899e23661122c..3fadf6b46cc722ad81cf810c0761cf71 this.level.destroyBlockProgress(this.player.getId(), pos, -1); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 30858fb07046d17ca66f821fe071b8aecbd00875..e1bd98981239f7dccb0f4560c8db167848fd8376 100644 +index d3addc9dbef86ab75707c647b2fce8edbf8b9fba..ed64fc9f6401fcd57478fa92d7f03e9b931d2dcb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1664,6 +1664,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1672,6 +1672,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic case START_DESTROY_BLOCK: case ABORT_DESTROY_BLOCK: case STOP_DESTROY_BLOCK: diff --git a/patches/server/0290-Book-Size-Limits.patch b/patches/server/0290-Book-Size-Limits.patch index 9f1cb31e2..3883f3971 100644 --- a/patches/server/0290-Book-Size-Limits.patch +++ b/patches/server/0290-Book-Size-Limits.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e1bd98981239f7dccb0f4560c8db167848fd8376..2205849e8aaa161c5772b39d9368765a552a5a94 100644 +index ed64fc9f6401fcd57478fa92d7f03e9b931d2dcb..88f58eeaf2566bdee2f6e44ddc1187f762345347 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1113,6 +1113,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1121,6 +1121,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleEditBook(ServerboundEditBookPacket packet) { diff --git a/patches/server/0298-Implement-Brigadier-Mojang-API.patch b/patches/server/0298-Implement-Brigadier-Mojang-API.patch index bd060fd3a..c48ac178e 100644 --- a/patches/server/0298-Implement-Brigadier-Mojang-API.patch +++ b/patches/server/0298-Implement-Brigadier-Mojang-API.patch @@ -82,37 +82,39 @@ index 685e04b1f17938d49cd126bcfe2f488f21afbea2..54bf5558c9048c215aee518874f3d96a event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 67399b8881ff24b3465ae23aa6008639abcb4d8e..ed272499b40a96efd83f1a09a063e4d65dbe48e8 100644 +index 88f58eeaf2566bdee2f6e44ddc1187f762345347..a033040751583270c9883652b2acb30c0d100e68 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -832,8 +832,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); +@@ -833,8 +833,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); - this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { -- if (suggestions.isEmpty()) return; // CraftBukkit - don't send through empty suggestions - prevents [] from showing for plugins with nothing more to offer -- this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestions)); -+ // Paper start -+ com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, buffer); -+ suggestEvent.setCancelled(suggestions.isEmpty()); -+ if (!suggestEvent.callEvent()) return; -+ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), (com.mojang.brigadier.suggestion.Suggestions) suggestEvent.getSuggestions())); // CraftBukkit - decompile error // Paper -+ // Paper end + this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { +- if (suggestions.isEmpty()) return; // CraftBukkit - don't send through empty suggestions - prevents [] from showing for plugins with nothing more to offer +- this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestions)); ++ // Paper start - Brigadier API ++ com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, command); ++ suggestEvent.setCancelled(suggestions.isEmpty()); ++ if (!suggestEvent.callEvent()) return; ++ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestEvent.getSuggestions())); ++ // Paper end - Brigadier API + }); }); + } +@@ -849,7 +853,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip())); + } }); +- player.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), builder.buildFuture().join())); ++ // Paper start - Brigadier API ++ com.mojang.brigadier.suggestion.Suggestions suggestions = builder.buildFuture().join(); ++ com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, command); ++ suggestEvent.setCancelled(suggestions.isEmpty()); ++ if (!suggestEvent.callEvent()) return; ++ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestEvent.getSuggestions())); ++ // Paper end - Brigadier API } -@@ -842,7 +846,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - - builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1); - completions.forEach(builder::suggest); -- player.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), builder.buildFuture().join())); -+ com.mojang.brigadier.suggestion.Suggestions suggestions = builder.buildFuture().join(); -+ com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, buffer); -+ suggestEvent.setCancelled(suggestions.isEmpty()); -+ if (!suggestEvent.callEvent()) return; -+ this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestEvent.getSuggestions())); - } + }); // Paper end - async tab completion - } diff --git a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java index 83d81b9371902b0302d13e53b31c15fac4e67966..9e4a660bdeaa70536bd8aeb90aa4a6a979f3f061 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java diff --git a/patches/server/0300-Limit-Client-Sign-length-more.patch b/patches/server/0300-Limit-Client-Sign-length-more.patch index f85faa474..6618a7b29 100644 --- a/patches/server/0300-Limit-Client-Sign-length-more.patch +++ b/patches/server/0300-Limit-Client-Sign-length-more.patch @@ -22,7 +22,7 @@ it only impacts data sent from the client. Set -DPaper.maxSignLength=XX to change limit or -1 to disable diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9c0d8f6cb9e447d33f04535d96f2fc8d11d66cf7..fff1873ee166d9fae98474ee81f6509c561b3b64 100644 +index df6eed12d8e2b9f2027f31b4db304ba771d771ec..434458b5f4017712d3ae0d77015378ecd2f4806e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -293,6 +293,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -33,7 +33,7 @@ index 9c0d8f6cb9e447d33f04535d96f2fc8d11d66cf7..fff1873ee166d9fae98474ee81f6509c public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH); -@@ -3268,7 +3269,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3278,7 +3279,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleSignUpdate(ServerboundSignUpdatePacket packet) { diff --git a/patches/server/0307-Update-entity-Metadata-for-all-tracked-players.patch b/patches/server/0307-Update-entity-Metadata-for-all-tracked-players.patch index a716efd34..3f6c12534 100644 --- a/patches/server/0307-Update-entity-Metadata-for-all-tracked-players.patch +++ b/patches/server/0307-Update-entity-Metadata-for-all-tracked-players.patch @@ -22,10 +22,10 @@ index d6f34adbdf45bbef4a39e629dd7cb6d7fcb5db0f..7881176a900daa3306c691454f688c1f this.broadcast.accept(packet); if (this.entity instanceof ServerPlayer) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fff1873ee166d9fae98474ee81f6509c561b3b64..29e6f4726016a62b22588f0efd0284e49fe5a33b 100644 +index 434458b5f4017712d3ae0d77015378ecd2f4806e..ef655a49a71a112b2e0bd8899107ae115e53a065 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2709,7 +2709,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2719,7 +2719,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem) { // Refresh the current entity metadata diff --git a/patches/server/0332-Dont-send-unnecessary-sign-update.patch b/patches/server/0332-Dont-send-unnecessary-sign-update.patch index f4756b427..ecd695e4b 100644 --- a/patches/server/0332-Dont-send-unnecessary-sign-update.patch +++ b/patches/server/0332-Dont-send-unnecessary-sign-update.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont send unnecessary sign update diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e4af6e79c126a8b21dea16cb0311e80e23f1d66..ae42daea9aaca1f0c19c26232e51e185353fe717 100644 +index 293e50e957ce32b4a2f80ee4196eb7ea42ac6469..3b8cd6e3d44d569d08c99ae5fbf213fc4ffc81ef 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3313,6 +3313,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3323,6 +3323,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!tileentitysign.isEditable() || !this.player.getUUID().equals(tileentitysign.getPlayerWhoMayEdit())) { ServerGamePacketListenerImpl.LOGGER.warn("Player {} just tried to change non-editable sign", this.player.getName().getString()); diff --git a/patches/server/0334-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch b/patches/server/0334-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch index 21fc7d965..1707417ae 100644 --- a/patches/server/0334-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch +++ b/patches/server/0334-Fix-AssertionError-when-player-hand-set-to-empty-typ.patch @@ -7,10 +7,10 @@ Fixes an AssertionError when setting the player's item in hand to null or a new Fixes GH-2718 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e1c413ef1db2c8e3aa2303351ef97aa8deb3da11..97dc7785b50873ee132825bced24cdf2d8217a60 100644 +index 43f2069542b71d158ad3ff959b224ddadc434383..20f26991faddffab45f7aadf35163101739b81cf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1857,6 +1857,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1867,6 +1867,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524 return; } diff --git a/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch index 7a5ea4882..66733a6ca 100644 --- a/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bb870abae77d8fbf107bc9596637d4fac204c501..569a8b6889e7085e3e408ebd47a71e8b5af8ca5e 100644 +index 63f2b6c26fc052c9e9b120c64dca63e18a338543..e465ffc59138325c2292ad23d5301ad7c1a3ddf3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -960,7 +960,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -970,7 +970,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handlePickItem(ServerboundPickItemPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); diff --git a/patches/server/0408-Prevent-teleporting-dead-entities.patch b/patches/server/0408-Prevent-teleporting-dead-entities.patch index 3f9ce709e..3ad2146b3 100644 --- a/patches/server/0408-Prevent-teleporting-dead-entities.patch +++ b/patches/server/0408-Prevent-teleporting-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent teleporting dead entities diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 569a8b6889e7085e3e408ebd47a71e8b5af8ca5e..408c2071ea8f99721bc13cf4da27a17e64bc9e8a 100644 +index e465ffc59138325c2292ad23d5301ad7c1a3ddf3..1382a5f50e2651eda67dffc040232e8168d774f3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1625,6 +1625,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1635,6 +1635,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set, boolean flag) { diff --git a/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch b/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch index 203472da0..39bad0910 100644 --- a/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch +++ b/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch @@ -14,10 +14,10 @@ behaviour, we need to move all of this dangerous logic outside of the move call and into an appropriate place in the tick method. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 408c2071ea8f99721bc13cf4da27a17e64bc9e8a..a0f492b0c7783fc8c5ce2e1a60707ae2db74ab9f 100644 +index 1382a5f50e2651eda67dffc040232e8168d774f3..e7245621bb8014148117f7d20d8b522f201acb37 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1439,6 +1439,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1449,6 +1449,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.move(MoverType.PLAYER, new Vec3(d7, d8, d9)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move diff --git a/patches/server/0438-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0438-Add-and-implement-PlayerRecipeBookClickEvent.patch index 58f445f74..f451a30d1 100644 --- a/patches/server/0438-Add-and-implement-PlayerRecipeBookClickEvent.patch +++ b/patches/server/0438-Add-and-implement-PlayerRecipeBookClickEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6d4923a8a563918cf9db73f1f6e1ef5699d10a79..651bf74a4d09e2d0611f86a8e865c065cb0e9327 100644 +index 61651af0056b68d3d7f72f4924c113252cdfe0b6..7a589e98c2a30ac1a6233f1b3f3c8634d1c20b7c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3210,9 +3210,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3220,9 +3220,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.containerMenu.stillValid(this.player)) { ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu); } else { diff --git a/patches/server/0440-Add-permission-for-command-blocks.patch b/patches/server/0440-Add-permission-for-command-blocks.patch index 2262f99ec..f43a7b408 100644 --- a/patches/server/0440-Add-permission-for-command-blocks.patch +++ b/patches/server/0440-Add-permission-for-command-blocks.patch @@ -18,10 +18,10 @@ index af00442931f9f6cf878bd61137c2f29fc7c8d0b1..431ff490760f54be76847c7b370dbbb4 return false; } else if (this.player.blockActionRestricted(this.level, pos, this.gameModeForPlayer)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 640a9e56477e827f25acb962cbbda37a33401139..650a93fab930b5c2b649477b0549124bd1802e5c 100644 +index bc72672a443bab4c157c5a68dbfbed410d6c0fff..42ca8e95c69beecc82f87e374c69386b901fad52 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -871,7 +871,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -881,7 +881,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (!this.server.isCommandBlockEnabled()) { this.player.sendSystemMessage(Component.translatable("advMode.notEnabled")); @@ -30,7 +30,7 @@ index 640a9e56477e827f25acb962cbbda37a33401139..650a93fab930b5c2b649477b0549124b this.player.sendSystemMessage(Component.translatable("advMode.notAllowed")); } else { BaseCommandBlock commandblocklistenerabstract = null; -@@ -938,7 +938,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -948,7 +948,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (!this.server.isCommandBlockEnabled()) { this.player.sendSystemMessage(Component.translatable("advMode.notEnabled")); diff --git a/patches/server/0442-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0442-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 6b5d169a9..41156d5b5 100644 --- a/patches/server/0442-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0442-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,7 +8,7 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index aeaa34a17e7d0240a87a62a8a7cc5ca620b16d2b..db490f74834715c8382a9c5ff076d7e89fd4dec3 100644 +index c005fa8d71c224aa7023f01444ea5fb6353f45e0..ed65e192df03fee4ce8b91cd73201ed018cfb68f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -791,7 +791,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 1.0D) { -@@ -1401,9 +1423,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1411,9 +1433,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = this.player.getBoundingBox(); diff --git a/patches/server/0535-Limit-recipe-packets.patch b/patches/server/0535-Limit-recipe-packets.patch index c5ad85be9..0bfb9b210 100644 --- a/patches/server/0535-Limit-recipe-packets.patch +++ b/patches/server/0535-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a57368d04ed6d13405d78548f20f3e107287d197..a514912127a6a353b98d29c336e9b8d2c0c0ec8b 100644 +index f1f64a5f7c5eaf6dacccf855d7b392f3813f0c6d..7f401294dcabed6ca46b4374ebe2b77bcfea10c4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -261,6 +261,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -24,7 +24,7 @@ index a57368d04ed6d13405d78548f20f3e107287d197..a514912127a6a353b98d29c336e9b8d2 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -3229,6 +3231,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3239,6 +3241,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { diff --git a/patches/server/0552-Fix-interact-event-not-being-called-in-adventure.patch b/patches/server/0552-Fix-interact-event-not-being-called-in-adventure.patch index a51703334..2082e2867 100644 --- a/patches/server/0552-Fix-interact-event-not-being-called-in-adventure.patch +++ b/patches/server/0552-Fix-interact-event-not-being-called-in-adventure.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix interact event not being called in adventure Call PlayerInteractEvent when left-clicking on a block in adventure mode diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a514912127a6a353b98d29c336e9b8d2c0c0ec8b..52e928b0ca0e3b0c31a80cc2b3d3deba07d41da8 100644 +index 7f401294dcabed6ca46b4374ebe2b77bcfea10c4..2c89c189d9acb6101cc9347834ac147d9d92cea4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1845,7 +1845,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1855,7 +1855,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED); this.player.sendSystemMessage(ichatmutablecomponent, true); @@ -18,7 +18,7 @@ index a514912127a6a353b98d29c336e9b8d2c0c0ec8b..52e928b0ca0e3b0c31a80cc2b3d3deba this.player.swing(enumhand, true); } } -@@ -2597,7 +2597,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2607,7 +2607,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Vec3 vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); HitResult movingobjectposition = this.player.level.clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, this.player)); diff --git a/patches/server/0603-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0603-Allow-using-signs-inside-spawn-protection.patch index d7c62ceed..38489ac47 100644 --- a/patches/server/0603-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0603-Allow-using-signs-inside-spawn-protection.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 75b8e92c1fb57c3062ce30e0d00396e4a69ec3c0..47d9014917bb624139c4e7a4f9212ad2d3d1ca33 100644 +index 02bd9c219e3982b0e61b16e25e4366ad59aea26d..c9477e3cf2a361b89473743f4e01e00c098c4d95 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1837,7 +1837,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1847,7 +1847,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int i = this.player.level.getMaxBuildHeight(); if (blockposition.getY() < i) { diff --git a/patches/server/0611-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0611-Don-t-ignore-result-of-PlayerEditBookEvent.patch index 2325ed385..60878b5b2 100644 --- a/patches/server/0611-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0611-Don-t-ignore-result-of-PlayerEditBookEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 47d9014917bb624139c4e7a4f9212ad2d3d1ca33..5620f1184c612001e637a95b08fe2eff6ac475d9 100644 +index c9477e3cf2a361b89473743f4e01e00c098c4d95..5f9d482b06141929505489ec605213b84c6d499f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1287,7 +1287,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1297,7 +1297,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } itemstack.addTagElement("pages", nbttaglist); diff --git a/patches/server/0614-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch b/patches/server/0614-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch deleted file mode 100644 index 594b77161..000000000 --- a/patches/server/0614-Allow-for-Component-suggestion-tooltips-in-AsyncTabC.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> -Date: Thu, 1 Apr 2021 00:34:02 -0700 -Subject: [PATCH] Allow for Component suggestion tooltips in - AsyncTabCompleteEvent - - -diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5620f1184c612001e637a95b08fe2eff6ac475d9..848a881de252fba2f7c1223c59619c282db1e54d 100644 ---- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -845,12 +845,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - - // Paper start - async tab completion - com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event; -- java.util.List completions = new java.util.ArrayList<>(); - String buffer = packet.getCommand(); -- event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(this.getCraftPlayer(), completions, -+ event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(this.getCraftPlayer(), - buffer, true, null); - event.callEvent(); -- completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.getCompletions(); -+ java.util.List completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.completions(); - // If the event isn't handled, we can assume that we have no completions, and so we'll ask the server - if (!event.isHandled()) { - if (!event.isCancelled()) { -@@ -869,10 +868,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - }); - } - } else if (!completions.isEmpty()) { -- com.mojang.brigadier.suggestion.SuggestionsBuilder builder = new com.mojang.brigadier.suggestion.SuggestionsBuilder(packet.getCommand(), stringreader.getTotalLength()); -+ com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(packet.getCommand(), stringreader.getTotalLength()); - -- builder = builder.createOffset(builder.getInput().lastIndexOf(' ') + 1); -- completions.forEach(builder::suggest); -+ final com.mojang.brigadier.suggestion.SuggestionsBuilder builder = builder0.createOffset(builder0.getInput().lastIndexOf(' ') + 1); -+ completions.forEach(completion -> { -+ final Integer intSuggestion = com.google.common.primitives.Ints.tryParse(completion.suggestion()); -+ if (intSuggestion != null) { -+ builder.suggest(intSuggestion, PaperAdventure.asVanilla(completion.tooltip())); -+ } else { -+ builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip())); -+ } -+ }); - com.mojang.brigadier.suggestion.Suggestions suggestions = builder.buildFuture().join(); - com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, buffer); - suggestEvent.setCancelled(suggestions.isEmpty()); -diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -index e5af155d75f717d33c23e22ff8b96bb3ff87844d..14cd8ae69d9b25dc5edad4ff96ff4a9acb1f22cb 100644 ---- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -+++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -@@ -29,34 +29,56 @@ public class ConsoleCommandCompleter implements Completer { - final CraftServer server = this.server.server; - final String buffer = line.line(); - // Async Tab Complete -- com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event; -- java.util.List completions = new java.util.ArrayList<>(); -- event = new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(server.getConsoleSender(), completions, -- buffer, true, null); -+ final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event = -+ new com.destroystokyo.paper.event.server.AsyncTabCompleteEvent(server.getConsoleSender(), buffer, true, null); - event.callEvent(); -- completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.getCompletions(); -+ final List completions = event.isCancelled() ? com.google.common.collect.ImmutableList.of() : event.completions(); - - if (event.isCancelled() || event.isHandled()) { - // Still fire sync event with the provided completions, if someone is listening - if (!event.isCancelled() && TabCompleteEvent.getHandlerList().getRegisteredListeners().length > 0) { -- List finalCompletions = completions; -+ List finalCompletions = new java.util.ArrayList<>(completions); - Waitable> syncCompletions = new Waitable>() { - @Override - protected List evaluate() { -- org.bukkit.event.server.TabCompleteEvent syncEvent = new org.bukkit.event.server.TabCompleteEvent(server.getConsoleSender(), buffer, finalCompletions); -+ org.bukkit.event.server.TabCompleteEvent syncEvent = new org.bukkit.event.server.TabCompleteEvent(server.getConsoleSender(), buffer, -+ finalCompletions.stream() -+ .map(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion::suggestion) -+ .collect(java.util.stream.Collectors.toList())); - return syncEvent.callEvent() ? syncEvent.getCompletions() : com.google.common.collect.ImmutableList.of(); - } - }; - server.getServer().processQueue.add(syncCompletions); - try { -- completions = syncCompletions.get(); -+ final List legacyCompletions = syncCompletions.get(); -+ completions.removeIf(it -> !legacyCompletions.contains(it.suggestion())); // remove any suggestions that were removed -+ // add any new suggestions -+ for (final String completion : legacyCompletions) { -+ if (notNewSuggestion(completions, completion)) { -+ continue; -+ } -+ completions.add(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion.completion(completion)); -+ } - } catch (InterruptedException | ExecutionException e1) { - e1.printStackTrace(); - } - } - - if (!completions.isEmpty()) { -- candidates.addAll(completions.stream().map(Candidate::new).collect(java.util.stream.Collectors.toList())); -+ for (final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion completion : completions) { -+ if (completion.suggestion().isEmpty()) { -+ continue; -+ } -+ candidates.add(new Candidate( -+ completion.suggestion(), -+ completion.suggestion(), -+ null, -+ io.papermc.paper.adventure.PaperAdventure.PLAIN.serializeOr(completion.tooltip(), null), -+ null, -+ null, -+ false -+ )); -+ } - } - return; - } -@@ -106,4 +128,15 @@ public class ConsoleCommandCompleter implements Completer { - Thread.currentThread().interrupt(); - } - } -+ -+ // Paper start -+ private boolean notNewSuggestion(final List completions, final String completion) { -+ for (final com.destroystokyo.paper.event.server.AsyncTabCompleteEvent.Completion it : completions) { -+ if (it.suggestion().equals(completion)) { -+ return true; -+ } -+ } -+ return false; -+ } -+ // Paper end - } diff --git a/patches/server/0615-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0614-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0615-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0614-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0616-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0615-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0616-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0615-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0617-Add-bypass-host-check.patch b/patches/server/0616-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0617-Add-bypass-host-check.patch rename to patches/server/0616-Add-bypass-host-check.patch diff --git a/patches/server/0618-Set-area-affect-cloud-rotation.patch b/patches/server/0617-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0618-Set-area-affect-cloud-rotation.patch rename to patches/server/0617-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0619-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0618-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0619-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0618-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0620-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0619-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0620-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0619-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0621-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0620-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0621-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0620-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0622-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0621-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0622-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0621-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0623-Fix-checkReach-check-for-Shulker-boxes.patch b/patches/server/0622-Fix-checkReach-check-for-Shulker-boxes.patch similarity index 100% rename from patches/server/0623-Fix-checkReach-check-for-Shulker-boxes.patch rename to patches/server/0622-Fix-checkReach-check-for-Shulker-boxes.patch diff --git a/patches/server/0624-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0623-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 88% rename from patches/server/0624-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0623-fix-PlayerItemHeldEvent-firing-twice.patch index 79913bd75..7e2e05c13 100644 --- a/patches/server/0624-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0623-fix-PlayerItemHeldEvent-firing-twice.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 848a881de252fba2f7c1223c59619c282db1e54d..8b52453f67347625e68ff0c439fb65820dbcf959 100644 +index 2fad663e7a4d2d4f2f6d52c0167509ecb5e4f561..30cb1dad2a2b1809e30a40bff64227fd7c0f9c11 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2052,6 +2052,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2056,6 +2056,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (this.player.isImmobile()) return; // CraftBukkit if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) { diff --git a/patches/server/0625-Added-PlayerDeepSleepEvent.patch b/patches/server/0624-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0625-Added-PlayerDeepSleepEvent.patch rename to patches/server/0624-Added-PlayerDeepSleepEvent.patch diff --git a/patches/server/0626-More-World-API.patch b/patches/server/0625-More-World-API.patch similarity index 100% rename from patches/server/0626-More-World-API.patch rename to patches/server/0625-More-World-API.patch diff --git a/patches/server/0627-Added-PlayerBedFailEnterEvent.patch b/patches/server/0626-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0627-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0626-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0628-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0627-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0628-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0627-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0629-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0628-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch similarity index 95% rename from patches/server/0629-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename to patches/server/0628-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch index 680331942..e03247ba7 100644 --- a/patches/server/0629-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ b/patches/server/0628-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 538d7bcebf55af189d31dc64fe12ef5d5adb4cd3..788a6dae744fd95d11d4f97a2fb0a7f53eed5884 100644 +index bee20e1ced20f29531919cb049c7d8214ebc7bb3..10cdb5f5a3c7f2fd367f8bcd008433251152ecce 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -852,6 +852,7 @@ public abstract class PlayerList { diff --git a/patches/server/0630-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0629-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0630-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0629-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0631-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0630-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 92% rename from patches/server/0631-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0630-add-RespawnFlags-to-PlayerRespawnEvent.patch index 460c5868e..1a06db7b3 100644 --- a/patches/server/0631-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0630-add-RespawnFlags-to-PlayerRespawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e23c6bad7e0b83c4eae581ac638f2e7b2a32458e..5e8f6f36d259526e97d926ed83ef0e6d7b618021 100644 +index 30cb1dad2a2b1809e30a40bff64227fd7c0f9c11..fe40e0ffdb9f9a1c0ce2accba0dbb46238fc5ced 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2882,7 +2882,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2886,7 +2886,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic case PERFORM_RESPAWN: if (this.player.wonGame) { this.player.wonGame = false; @@ -18,7 +18,7 @@ index e23c6bad7e0b83c4eae581ac638f2e7b2a32458e..5e8f6f36d259526e97d926ed83ef0e6d } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9f50af39555a90fd4e3b9131286107b9ef971270..3adc2fcded1d7bb7cb892eccc96f43facd404045 100644 +index 10cdb5f5a3c7f2fd367f8bcd008433251152ecce..1cac9e3074551567960ae2e991414e62f7e089ee 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -811,6 +811,12 @@ public abstract class PlayerList { diff --git a/patches/server/0632-Add-Channel-initialization-listeners.patch b/patches/server/0631-Add-Channel-initialization-listeners.patch similarity index 98% rename from patches/server/0632-Add-Channel-initialization-listeners.patch rename to patches/server/0631-Add-Channel-initialization-listeners.patch index 8a44e55fc..fb1f43a35 100644 --- a/patches/server/0632-Add-Channel-initialization-listeners.patch +++ b/patches/server/0631-Add-Channel-initialization-listeners.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..0d7e7db9e37ef0183c32b217bd944fb4 + COMPRESSION_DISABLED +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index cc1aa02fdf214b63aa105f3b0b12723dc359d287..023c564248adb2c5c4b679be9075ca88cb2d5b62 100644 +index 523e5a01c55d3a2e192d86e70ac751e3eb622aea..0b62d34d8db4331365f1fc0c703bb8af05d5d12a 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -567,6 +567,7 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0633-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0632-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0633-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0632-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0634-Add-more-WanderingTrader-API.patch b/patches/server/0633-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0634-Add-more-WanderingTrader-API.patch rename to patches/server/0633-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0635-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0634-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0635-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0634-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0636-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0635-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0636-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0635-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0637-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0636-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch similarity index 95% rename from patches/server/0637-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/0636-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch index 8d8be2973..e1776e920 100644 --- a/patches/server/0637-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0636-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add raw address to AsyncPlayerPreLoginEvent diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 0ad129adf726049c62f8d5c816cc32b3b6b9b2eb..c8a29ec3eac3ae61731cdc4f142578d98ec993ff 100644 +index 0048f5a1d844402b3e1a24008508797878066431..591b3b84a74f432f230112359e086d1429bbed92 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -414,12 +414,13 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se diff --git a/patches/server/0638-Inventory-close.patch b/patches/server/0637-Inventory-close.patch similarity index 100% rename from patches/server/0638-Inventory-close.patch rename to patches/server/0637-Inventory-close.patch diff --git a/patches/server/0639-call-PortalCreateEvent-players-and-end-platform.patch b/patches/server/0638-call-PortalCreateEvent-players-and-end-platform.patch similarity index 94% rename from patches/server/0639-call-PortalCreateEvent-players-and-end-platform.patch rename to patches/server/0638-call-PortalCreateEvent-players-and-end-platform.patch index d31d46dd9..1003cdb15 100644 --- a/patches/server/0639-call-PortalCreateEvent-players-and-end-platform.patch +++ b/patches/server/0638-call-PortalCreateEvent-players-and-end-platform.patch @@ -5,7 +5,7 @@ Subject: [PATCH] call PortalCreateEvent players and end platform diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6b6e0c408d22994a29bc562da523e0dc0575639f..d8bbab6af9625cdb411df0099261f97f59daacb4 100644 +index 82d14e0fe2afdd5a8312566ca47d7b176ada2314..01ec3d4a3ea2d5edf1d503cdb6a9532774a89480 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1208,15 +1208,21 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0640-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0639-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0640-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0639-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0641-Fix-CraftPotionBrewer-cache.patch b/patches/server/0640-Fix-CraftPotionBrewer-cache.patch similarity index 100% rename from patches/server/0641-Fix-CraftPotionBrewer-cache.patch rename to patches/server/0640-Fix-CraftPotionBrewer-cache.patch diff --git a/patches/server/0642-Add-basic-Datapack-API.patch b/patches/server/0641-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0642-Add-basic-Datapack-API.patch rename to patches/server/0641-Add-basic-Datapack-API.patch diff --git a/patches/server/0643-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0642-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0643-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0642-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0644-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0643-additions-to-PlayerGameModeChangeEvent.patch similarity index 96% rename from patches/server/0644-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0643-additions-to-PlayerGameModeChangeEvent.patch index e6ee25d00..5e8bb21c9 100644 --- a/patches/server/0644-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0643-additions-to-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index 65089c0e78c9913a92ae9c66d664f48e2112ad92..7882ee2b7813d437d3b7580f046f38e7 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ec46dda11b527e2e31d8025416c83d11153edc8c..705201ced84717180b9b6cfc2111f0557cca56ab 100644 +index 01ec3d4a3ea2d5edf1d503cdb6a9532774a89480..0f5204733022955df059b3ccff260e1aa375916c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1810,8 +1810,15 @@ public class ServerPlayer extends Player { @@ -126,10 +126,10 @@ index 32746dfbc2fdfc150583676b1bf0762398b76d75..1ad1f958a9b6e1bc21f1c505aa7ea549 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5e8f6f36d259526e97d926ed83ef0e6d7b618021..2ee76d9c5fb22e792618d8c865e7fb9a335202a6 100644 +index fe40e0ffdb9f9a1c0ce2accba0dbb46238fc5ced..3737b9c62d8d1820041e49e4ec75a61fcfbcf10b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2891,7 +2891,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2895,7 +2895,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player = this.server.getPlayerList().respawn(this.player, false); if (this.server.isHardcore()) { @@ -139,7 +139,7 @@ index 5e8f6f36d259526e97d926ed83ef0e6d7b618021..2ee76d9c5fb22e792618d8c865e7fb9a } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f2af098691d3e6951e17645c3eee019000fb4882..c65621c97f05ee5c7be0fd485b6fb9c703d00406 100644 +index af3990e601a3e3b0ccb96e212bb071e3e240f6ff..7d030d7a8a58f4a031e09d09c9718af3d3c1e707 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1396,7 +1396,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0645-ItemStack-repair-check-API.patch b/patches/server/0644-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0645-ItemStack-repair-check-API.patch rename to patches/server/0644-ItemStack-repair-check-API.patch diff --git a/patches/server/0646-More-Enchantment-API.patch b/patches/server/0645-More-Enchantment-API.patch similarity index 100% rename from patches/server/0646-More-Enchantment-API.patch rename to patches/server/0645-More-Enchantment-API.patch diff --git a/patches/server/0647-Move-range-check-for-block-placing-up.patch b/patches/server/0646-Move-range-check-for-block-placing-up.patch similarity index 87% rename from patches/server/0647-Move-range-check-for-block-placing-up.patch rename to patches/server/0646-Move-range-check-for-block-placing-up.patch index 5f028c360..63507a193 100644 --- a/patches/server/0647-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0646-Move-range-check-for-block-placing-up.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index acb7c80fa01689098962d170df91aa79c2472dd1..cc1225f7c1e4d47f509c55609066fba084331a4d 100644 +index 3737b9c62d8d1820041e49e4ec75a61fcfbcf10b..7a7ce8bf83f02fc17e68fe4468d80f79490c9daa 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1829,6 +1829,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1833,6 +1833,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ItemStack itemstack = this.player.getItemInHand(enumhand); BlockHitResult movingobjectpositionblock = packet.getHitResult(); Vec3 vec3d = movingobjectpositionblock.getLocation(); diff --git a/patches/server/0648-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0647-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0648-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0647-Fix-and-optimise-world-force-upgrading.patch index 579501f1b..72e3dc0a6 100644 --- a/patches/server/0648-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0647-Fix-and-optimise-world-force-upgrading.patch @@ -272,7 +272,7 @@ index ce4aed84d751a48dcd2a8409190db4a22d78f77b..0a843e0afbcb1af8e2641515eb244b79 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 cefa833408ff95890dc5c831276f259022bd95a3..fdf08831a9d1b27c8050432e958f7133f3d10e1e 100644 +index a3964733e0a0459421776b6e00ca19caae5282d9..3f4a2a17790cad61218dcff351d70a2cc50cb56a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -545,11 +545,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -169,7 +169,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } // Paper end -@@ -985,7 +995,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -989,7 +999,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start - validate pick item position if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -178,7 +178,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -@@ -1172,7 +1182,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1176,7 +1186,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -187,7 +187,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } byteTotal += byteLength; -@@ -1195,14 +1205,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1199,14 +1209,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -204,7 +204,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -1326,7 +1336,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1330,7 +1340,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) { @@ -213,7 +213,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } else { ServerLevel worldserver = this.player.getLevel(); -@@ -1753,7 +1763,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1757,7 +1767,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); @@ -222,7 +222,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } } -@@ -1961,7 +1971,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1965,7 +1975,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) { ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName()); @@ -231,7 +231,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]; -@@ -2074,7 +2084,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2078,7 +2088,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -240,7 +240,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } } -@@ -2087,7 +2097,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2091,7 +2101,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -249,7 +249,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } else { if (this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages())) { // this.server.submit(() -> { // CraftBukkit - async chat -@@ -2115,7 +2125,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2119,7 +2129,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -258,7 +258,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } else { if (this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages())) { this.server.submit(() -> { -@@ -2201,7 +2211,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2205,7 +2215,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); @@ -267,7 +267,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return false; } else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false)); -@@ -2453,7 +2463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2457,7 +2467,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ChatSender chatsender = this.player.asChatSender(); if (chatsender.profilePublicKey() != null && !message.verify(chatsender)) { @@ -276,7 +276,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return false; } else { if (message.hasExpiredServer(Instant.now())) { -@@ -2480,7 +2490,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2484,7 +2494,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // this.chatSpamTickCount += 20; if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // CraftBukkit end @@ -285,7 +285,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } } -@@ -2583,7 +2593,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2587,7 +2597,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void handleValidationFailure(Set reasons) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message from {}, reasons: {}", this.player.getName().getString(), reasons.stream().map(LastSeenMessagesValidator.ErrorCondition::message).collect(Collectors.joining(","))); @@ -294,7 +294,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } @Override -@@ -2730,7 +2740,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2734,7 +2744,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (i > 4096) { @@ -303,7 +303,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } } -@@ -2745,7 +2755,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2749,7 +2759,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { @@ -312,7 +312,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } // Spigot End -@@ -2838,7 +2848,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2842,7 +2852,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end } else { @@ -321,7 +321,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } } -@@ -3246,7 +3256,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3250,7 +3260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -330,7 +330,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c return; } } -@@ -3449,7 +3459,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3453,7 +3463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } else if (!this.isSingleplayerOwner()) { // Paper start - This needs to be handled on the main thread for plugins server.submit(() -> { @@ -339,7 +339,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c }); // Paper end } -@@ -3495,7 +3505,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3499,7 +3509,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); @@ -348,7 +348,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } } else if (packet.identifier.equals(CUSTOM_UNREGISTER)) { try { -@@ -3505,7 +3515,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3509,7 +3519,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); @@ -357,7 +357,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } } else { try { -@@ -3523,7 +3533,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3527,7 +3537,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); @@ -367,7 +367,7 @@ index 45719d7613629862613539f38614b571776e7719..d481d044916d76ed3dba031df256668c } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3adc2fcded1d7bb7cb892eccc96f43facd404045..e6a5c5da58403ca5498d8741bc520b8e68c56310 100644 +index 1cac9e3074551567960ae2e991414e62f7e089ee..8147396dc18fe199ffbb59437d0873c2f79b3ee7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -720,7 +720,7 @@ public abstract class PlayerList { diff --git a/patches/server/0657-Add-PufferFishStateChangeEvent.patch b/patches/server/0656-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0657-Add-PufferFishStateChangeEvent.patch rename to patches/server/0656-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0658-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0657-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0658-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0657-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0659-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0658-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 97% rename from patches/server/0659-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0658-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch index 0c92b3cd6..af97198c9 100644 --- a/patches/server/0659-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch +++ b/patches/server/0658-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch @@ -14,7 +14,7 @@ contention situations. And this is extremely a low contention situation. diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 723608946947fa2792c7284fa5faa85ab9507897..e77b516995666402cc8814ac78a6c11077108b2e 100644 +index b688d239ff11b315f60cd980d8f6780b982a865b..d93118b7a602ceb6ef11ddabbce1d13fb8029a44 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -32,14 +32,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer diff --git a/patches/server/0660-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0659-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0660-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0659-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0661-Add-BellRevealRaiderEvent.patch b/patches/server/0660-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0661-Add-BellRevealRaiderEvent.patch rename to patches/server/0660-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0662-Fix-invulnerable-end-crystals.patch b/patches/server/0661-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0662-Fix-invulnerable-end-crystals.patch rename to patches/server/0661-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0663-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0662-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0663-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0662-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0664-Fix-dangerous-end-portal-logic.patch b/patches/server/0663-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0664-Fix-dangerous-end-portal-logic.patch rename to patches/server/0663-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0665-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0664-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0665-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0664-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0666-Make-item-validations-configurable.patch b/patches/server/0665-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0666-Make-item-validations-configurable.patch rename to patches/server/0665-Make-item-validations-configurable.patch diff --git a/patches/server/0667-Line-Of-Sight-Changes.patch b/patches/server/0666-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0667-Line-Of-Sight-Changes.patch rename to patches/server/0666-Line-Of-Sight-Changes.patch diff --git a/patches/server/0668-add-per-world-spawn-limits.patch b/patches/server/0667-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0668-add-per-world-spawn-limits.patch rename to patches/server/0667-add-per-world-spawn-limits.patch diff --git a/patches/server/0669-Fix-PotionSplashEvent-for-water-splash-potions.patch b/patches/server/0668-Fix-PotionSplashEvent-for-water-splash-potions.patch similarity index 100% rename from patches/server/0669-Fix-PotionSplashEvent-for-water-splash-potions.patch rename to patches/server/0668-Fix-PotionSplashEvent-for-water-splash-potions.patch diff --git a/patches/server/0670-Add-more-LimitedRegion-API.patch b/patches/server/0669-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0670-Add-more-LimitedRegion-API.patch rename to patches/server/0669-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0671-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0670-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 94% rename from patches/server/0671-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0670-Fix-PlayerDropItemEvent-using-wrong-item.patch index fb4745c87..c5e44962a 100644 --- a/patches/server/0671-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0670-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 705201ced84717180b9b6cfc2111f0557cca56ab..af1aedd970778e69845f093581ad401da5e99adb 100644 +index 0f5204733022955df059b3ccff260e1aa375916c..6441c2ea6bcbee9ef49468e6a929162b2b06183e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2201,7 +2201,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0672-Missing-Entity-Behavior-API.patch b/patches/server/0671-Missing-Entity-Behavior-API.patch similarity index 100% rename from patches/server/0672-Missing-Entity-Behavior-API.patch rename to patches/server/0671-Missing-Entity-Behavior-API.patch diff --git a/patches/server/0673-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0672-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 88% rename from patches/server/0673-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0672-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 7a25a37d5..708025b26 100644 --- a/patches/server/0673-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0672-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5cb42f3ec712bec46d76684e8e0a3f0f547d2586..685745b853f86fa2eda031ad20317ad321b1379a 100644 +index c6d6973e15e3a7f81b908eef6d4de81b51958b14..63b7150eca9300a8befc5d39184cb1ae4b3ac242 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1212,7 +1212,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1216,7 +1216,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper end // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { diff --git a/patches/server/0674-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0673-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0674-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0673-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0675-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0674-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0675-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0674-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0676-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0675-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0676-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0675-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0677-Adds-PlayerArmSwingEvent.patch b/patches/server/0676-Adds-PlayerArmSwingEvent.patch similarity index 88% rename from patches/server/0677-Adds-PlayerArmSwingEvent.patch rename to patches/server/0676-Adds-PlayerArmSwingEvent.patch index d4afb0ed5..be46c92d6 100644 --- a/patches/server/0677-Adds-PlayerArmSwingEvent.patch +++ b/patches/server/0676-Adds-PlayerArmSwingEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Adds PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 87cdc22491da7deb4d61809bed6aea8bf44a6fbb..302f7ee99460efba88eabfa661ad6f6a46e92d17 100644 +index 63b7150eca9300a8befc5d39184cb1ae4b3ac242..f104ac728fa27237dce28ec661f03101257ad222 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2624,7 +2624,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2628,7 +2628,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Arm swing animation diff --git a/patches/server/0678-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0677-Fixes-kick-event-leave-message-not-being-sent.patch similarity index 93% rename from patches/server/0678-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0677-Fixes-kick-event-leave-message-not-being-sent.patch index 2445b4066..1fe1230e7 100644 --- a/patches/server/0678-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0677-Fixes-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fixes kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6e53214042ab515d9c66fb24f6aa1c07d6c3539d..7670c02dca163d360e64a1491f2efe69aaaab411 100644 +index 6441c2ea6bcbee9ef49468e6a929162b2b06183e..db60c82386f25f272e5f9258045dfd38b2ddddb2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,7 +260,6 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 6e53214042ab515d9c66fb24f6aa1c07d6c3539d..7670c02dca163d360e64a1491f2efe69 public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c65c72a2dd3c87621c1369c52770b912057eafd2..bd152bdb0e00b807c514f601ec400a1aa7e8413d 100644 +index f104ac728fa27237dce28ec661f03101257ad222..04bbc8a94b62ff6853835c6bbecc00366fc7fa2c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -525,7 +525,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -37,7 +37,7 @@ index c65c72a2dd3c87621c1369c52770b912057eafd2..bd152bdb0e00b807c514f601ec400a1a this.connection.setReadOnly(); MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; -@@ -1996,6 +1995,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2000,6 +1999,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void onDisconnect(Component reason) { @@ -49,7 +49,7 @@ index c65c72a2dd3c87621c1369c52770b912057eafd2..bd152bdb0e00b807c514f601ec400a1a // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; -@@ -2012,7 +2016,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2016,7 +2020,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.disconnect(); // Paper start - Adventure @@ -59,7 +59,7 @@ index c65c72a2dd3c87621c1369c52770b912057eafd2..bd152bdb0e00b807c514f601ec400a1a this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ca0ad4fd5f4aafacd197494970f2aec3b2a6c4d0..0354b7e20bbc9f888cf85d6db42ce2b64a25b4c2 100644 +index 8147396dc18fe199ffbb59437d0873c2f79b3ee7..5a513838908a5805a724641ad8a78942ee4f7759 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -592,6 +592,11 @@ public abstract class PlayerList { diff --git a/patches/server/0679-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0678-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0679-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0678-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0680-Fix-incorrect-message-for-outdated-client.patch b/patches/server/0679-Fix-incorrect-message-for-outdated-client.patch similarity index 100% rename from patches/server/0680-Fix-incorrect-message-for-outdated-client.patch rename to patches/server/0679-Fix-incorrect-message-for-outdated-client.patch diff --git a/patches/server/0681-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0680-Don-t-apply-cramming-damage-to-players.patch similarity index 93% rename from patches/server/0681-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0680-Don-t-apply-cramming-damage-to-players.patch index 42b7636a7..2c3ac1042 100644 --- a/patches/server/0681-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0680-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7670c02dca163d360e64a1491f2efe69aaaab411..f523311e822af9cbef571338fd8fef177b9fc73d 100644 +index db60c82386f25f272e5f9258045dfd38b2ddddb2..fd68f5f24085001c104f9bc1e1641462c1d37374 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1446,7 +1446,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0682-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0681-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0682-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0681-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0683-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0682-Add-a-bunch-of-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0683-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0682-Add-a-bunch-of-missing-forceDrop-toggles.patch diff --git a/patches/server/0684-Stinger-API.patch b/patches/server/0683-Stinger-API.patch similarity index 100% rename from patches/server/0684-Stinger-API.patch rename to patches/server/0683-Stinger-API.patch diff --git a/patches/server/0685-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0684-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0685-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0684-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0686-Add-System.out-err-catcher.patch b/patches/server/0685-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0686-Add-System.out-err-catcher.patch rename to patches/server/0685-Add-System.out-err-catcher.patch diff --git a/patches/server/0687-Fix-test-not-bootstrapping.patch b/patches/server/0686-Fix-test-not-bootstrapping.patch similarity index 100% rename from patches/server/0687-Fix-test-not-bootstrapping.patch rename to patches/server/0686-Fix-test-not-bootstrapping.patch diff --git a/patches/server/0688-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0687-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0688-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0687-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0689-Improve-boat-collision-performance.patch b/patches/server/0688-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0689-Improve-boat-collision-performance.patch rename to patches/server/0688-Improve-boat-collision-performance.patch diff --git a/patches/server/0690-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0689-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0690-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0689-Prevent-AFK-kick-while-watching-end-credits.patch index 0b2683b9e..3c7ac58d9 100644 --- a/patches/server/0690-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0689-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 e1993c9f08b73e4366f60369e7f147c9c8bda958..e8cd8adad14c6bcab3ccef7fcc458b38d90592c3 100644 +index 04bbc8a94b62ff6853835c6bbecc00366fc7fa2c..b20dae88cf6ddc4baa241c0eb92cd2259b6232b1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -441,7 +441,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic diff --git a/patches/server/0691-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0690-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0691-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0690-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0692-Add-PlayerSetSpawnEvent.patch b/patches/server/0691-Add-PlayerSetSpawnEvent.patch similarity index 97% rename from patches/server/0692-Add-PlayerSetSpawnEvent.patch rename to patches/server/0691-Add-PlayerSetSpawnEvent.patch index 878b72133..ac7334e52 100644 --- a/patches/server/0692-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0691-Add-PlayerSetSpawnEvent.patch @@ -32,7 +32,7 @@ index ce1c7512cc368e196ae94ee22c6a228c975b4980..1e41de9523c5fa3b9cfced798a5c35a2 String string = resourceKey.location().toString(); if (targets.size() == 1) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5ef42e8e69169995f2c36ec332500f0307e84337..17f7ecafb2b0877b140353323b5972fb90e558e0 100644 +index fd68f5f24085001c104f9bc1e1641462c1d37374..0d4c51faededf36601ea42af5d48b51a2ccab330 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1287,7 +1287,7 @@ public class ServerPlayer extends Player { @@ -89,7 +89,7 @@ index 5ef42e8e69169995f2c36ec332500f0307e84337..17f7ecafb2b0877b140353323b5972fb public void trackChunk(ChunkPos chunkPos, Packet chunkDataPacket) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 10231f5a811a8b4510ef063a9de2f8b386570cbe..84b3a86b5fd77dbdedbe4b45f5a67f113e2c8e48 100644 +index 5a513838908a5805a724641ad8a78942ee4f7759..5d5663d929227b2376c57b130a5c32e349edf009 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -896,13 +896,13 @@ public abstract class PlayerList { @@ -129,7 +129,7 @@ index c3e49a781f838e6a46cb89744f3f1846de182275..c2f3d3a09327e7cb7d3167609eb3ce68 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index aaa50b04ae3dc49fa93ca408442abd540a4e4b7a..05529f795672636ce43c6fbab73f9ada459cdcb9 100644 +index 140730ff3e10066d19321c75e241a1e0d8d3ba17..58d9f425187b791d8b36b55a89b37e0f2ba56357 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1216,9 +1216,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0693-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0692-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0693-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0692-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0694-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0693-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0694-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0693-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0695-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0694-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0695-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0694-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0696-Added-EntityDamageItemEvent.patch b/patches/server/0695-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0696-Added-EntityDamageItemEvent.patch rename to patches/server/0695-Added-EntityDamageItemEvent.patch diff --git a/patches/server/0697-Optimize-indirect-passenger-iteration.patch b/patches/server/0696-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0697-Optimize-indirect-passenger-iteration.patch rename to patches/server/0696-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0698-Fix-block-drops-position-losing-precision-millions-o.patch b/patches/server/0697-Fix-block-drops-position-losing-precision-millions-o.patch similarity index 100% rename from patches/server/0698-Fix-block-drops-position-losing-precision-millions-o.patch rename to patches/server/0697-Fix-block-drops-position-losing-precision-millions-o.patch diff --git a/patches/server/0699-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0698-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0699-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0698-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0700-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0699-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/server/0700-Make-EntityUnleashEvent-cancellable.patch rename to patches/server/0699-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0701-Clear-bucket-NBT-after-dispense.patch b/patches/server/0700-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0701-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0700-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0702-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0701-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0702-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0701-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0703-Add-BlockBreakBlockEvent.patch b/patches/server/0702-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0703-Add-BlockBreakBlockEvent.patch rename to patches/server/0702-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0704-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0703-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0704-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0703-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0705-More-CommandBlock-API.patch b/patches/server/0704-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0705-More-CommandBlock-API.patch rename to patches/server/0704-More-CommandBlock-API.patch diff --git a/patches/server/0706-Add-missing-team-sidebar-display-slots.patch b/patches/server/0705-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0706-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0705-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0707-Add-back-EntityPortalExitEvent.patch b/patches/server/0706-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0707-Add-back-EntityPortalExitEvent.patch rename to patches/server/0706-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0708-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0707-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0708-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0707-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0709-Get-entity-default-attributes.patch b/patches/server/0708-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0709-Get-entity-default-attributes.patch rename to patches/server/0708-Get-entity-default-attributes.patch diff --git a/patches/server/0710-Left-handed-API.patch b/patches/server/0709-Left-handed-API.patch similarity index 100% rename from patches/server/0710-Left-handed-API.patch rename to patches/server/0709-Left-handed-API.patch diff --git a/patches/server/0711-Add-advancement-display-API.patch b/patches/server/0710-Add-advancement-display-API.patch similarity index 100% rename from patches/server/0711-Add-advancement-display-API.patch rename to patches/server/0710-Add-advancement-display-API.patch diff --git a/patches/server/0712-Add-ItemFactory-getMonsterEgg-API.patch b/patches/server/0711-Add-ItemFactory-getMonsterEgg-API.patch similarity index 100% rename from patches/server/0712-Add-ItemFactory-getMonsterEgg-API.patch rename to patches/server/0711-Add-ItemFactory-getMonsterEgg-API.patch diff --git a/patches/server/0713-Add-critical-damage-API.patch b/patches/server/0712-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0713-Add-critical-damage-API.patch rename to patches/server/0712-Add-critical-damage-API.patch diff --git a/patches/server/0714-Fix-issues-with-mob-conversion.patch b/patches/server/0713-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0714-Fix-issues-with-mob-conversion.patch rename to patches/server/0713-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0715-Add-isCollidable-methods-to-various-places.patch b/patches/server/0714-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0715-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0714-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0716-Goat-ram-API.patch b/patches/server/0715-Goat-ram-API.patch similarity index 100% rename from patches/server/0716-Goat-ram-API.patch rename to patches/server/0715-Goat-ram-API.patch diff --git a/patches/server/0717-Add-API-for-resetting-a-single-score.patch b/patches/server/0716-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0717-Add-API-for-resetting-a-single-score.patch rename to patches/server/0716-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0718-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0717-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0718-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0717-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0719-Vanilla-command-permission-fixes.patch b/patches/server/0718-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0719-Vanilla-command-permission-fixes.patch rename to patches/server/0718-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0720-Make-CallbackExecutor-strict-again.patch b/patches/server/0719-Make-CallbackExecutor-strict-again.patch similarity index 100% rename from patches/server/0720-Make-CallbackExecutor-strict-again.patch rename to patches/server/0719-Make-CallbackExecutor-strict-again.patch diff --git a/patches/server/0721-Do-not-allow-the-server-to-unload-chunks-at-request-.patch b/patches/server/0720-Do-not-allow-the-server-to-unload-chunks-at-request-.patch similarity index 100% rename from patches/server/0721-Do-not-allow-the-server-to-unload-chunks-at-request-.patch rename to patches/server/0720-Do-not-allow-the-server-to-unload-chunks-at-request-.patch diff --git a/patches/server/0722-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0721-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 97% rename from patches/server/0722-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0721-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index f323665a8..35a1cb428 100644 --- a/patches/server/0722-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0721-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -28,7 +28,7 @@ index 8c95d537c7bf5cc9b63f0e412c9ad67f5e6fe51e..2634eba0537648c0e013455e813e2589 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ec713ffb7c4cba53dc983ebde5596e4749107493..62f2c9645a3bf5b2bfd9fe99d3e6ec08c7dafa9a 100644 +index 0d4c51faededf36601ea42af5d48b51a2ccab330..dfa4b0d4c897f2b15da3f7e53b962b277b1cad12 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1588,6 +1588,18 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0723-Correctly-handle-recursion-for-chunkholder-updates.patch b/patches/server/0722-Correctly-handle-recursion-for-chunkholder-updates.patch similarity index 100% rename from patches/server/0723-Correctly-handle-recursion-for-chunkholder-updates.patch rename to patches/server/0722-Correctly-handle-recursion-for-chunkholder-updates.patch diff --git a/patches/server/0724-Fix-GameProfileCache-concurrency.patch b/patches/server/0723-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0724-Fix-GameProfileCache-concurrency.patch rename to patches/server/0723-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0725-Fix-chunks-refusing-to-unload-at-low-TPS.patch b/patches/server/0724-Fix-chunks-refusing-to-unload-at-low-TPS.patch similarity index 100% rename from patches/server/0725-Fix-chunks-refusing-to-unload-at-low-TPS.patch rename to patches/server/0724-Fix-chunks-refusing-to-unload-at-low-TPS.patch diff --git a/patches/server/0726-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/server/0725-Do-not-allow-ticket-level-changes-while-unloading-pl.patch similarity index 100% rename from patches/server/0726-Do-not-allow-ticket-level-changes-while-unloading-pl.patch rename to patches/server/0725-Do-not-allow-ticket-level-changes-while-unloading-pl.patch diff --git a/patches/server/0727-Do-not-allow-ticket-level-changes-when-updating-chun.patch b/patches/server/0726-Do-not-allow-ticket-level-changes-when-updating-chun.patch similarity index 100% rename from patches/server/0727-Do-not-allow-ticket-level-changes-when-updating-chun.patch rename to patches/server/0726-Do-not-allow-ticket-level-changes-when-updating-chun.patch diff --git a/patches/server/0728-Log-when-the-async-catcher-is-tripped.patch b/patches/server/0727-Log-when-the-async-catcher-is-tripped.patch similarity index 100% rename from patches/server/0728-Log-when-the-async-catcher-is-tripped.patch rename to patches/server/0727-Log-when-the-async-catcher-is-tripped.patch diff --git a/patches/server/0729-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0728-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0729-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0728-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0730-Prevent-unload-calls-removing-tickets-for-sync-loads.patch b/patches/server/0729-Prevent-unload-calls-removing-tickets-for-sync-loads.patch similarity index 100% rename from patches/server/0730-Prevent-unload-calls-removing-tickets-for-sync-loads.patch rename to patches/server/0729-Prevent-unload-calls-removing-tickets-for-sync-loads.patch diff --git a/patches/server/0731-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0730-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0731-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0730-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0732-Allow-controlled-flushing-for-network-manager.patch b/patches/server/0731-Allow-controlled-flushing-for-network-manager.patch similarity index 98% rename from patches/server/0732-Allow-controlled-flushing-for-network-manager.patch rename to patches/server/0731-Allow-controlled-flushing-for-network-manager.patch index e1622fd8a..4556566ca 100644 --- a/patches/server/0732-Allow-controlled-flushing-for-network-manager.patch +++ b/patches/server/0731-Allow-controlled-flushing-for-network-manager.patch @@ -9,7 +9,7 @@ This patch will be used to optimise out flush calls in later patches. diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 25d26ba482edac4158ba247e105d8c5fac0729e4..b8e127f19c38d51baaa1a2c47a0d2eab62d71e90 100644 +index ec1fa6b6cb386542d9c83f5c49c1e8e98c87d417..dc6b467f51b6e17aa46ccce75aa40788afcdf010 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -99,6 +99,39 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0733-Optimise-general-POI-access.patch b/patches/server/0732-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0733-Optimise-general-POI-access.patch rename to patches/server/0732-Optimise-general-POI-access.patch diff --git a/patches/server/0734-Add-more-async-catchers.patch b/patches/server/0733-Add-more-async-catchers.patch similarity index 100% rename from patches/server/0734-Add-more-async-catchers.patch rename to patches/server/0733-Add-more-async-catchers.patch diff --git a/patches/server/0735-Rewrite-entity-bounding-box-lookup-calls.patch b/patches/server/0734-Rewrite-entity-bounding-box-lookup-calls.patch similarity index 99% rename from patches/server/0735-Rewrite-entity-bounding-box-lookup-calls.patch rename to patches/server/0734-Rewrite-entity-bounding-box-lookup-calls.patch index 07fc7dd3b..efe868fdf 100644 --- a/patches/server/0735-Rewrite-entity-bounding-box-lookup-calls.patch +++ b/patches/server/0734-Rewrite-entity-bounding-box-lookup-calls.patch @@ -1280,7 +1280,7 @@ index 3bedc22c253c3632b5624c05e78ed3671e5d30ce..fbd82b6be6604bf854e01ed5718e4e07 + // Paper end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 5ee798f5ba59339419c2dd38b32e766692c1428c..3cc3eb9acada64ea108db15cbfbd67d69df3401c 100644 +index 0508f43ad396679d3372ae4caf029086a1524109..b1ed97618d08d7691d24f89e9e9b0ed0f2bddd09 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -211,7 +211,13 @@ public class ActivationRange diff --git a/patches/server/0736-Optimise-chunk-tick-iteration.patch b/patches/server/0735-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/0736-Optimise-chunk-tick-iteration.patch rename to patches/server/0735-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/0737-Execute-chunk-tasks-mid-tick.patch b/patches/server/0736-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/0737-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0736-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/0738-Do-not-copy-visible-chunks.patch b/patches/server/0737-Do-not-copy-visible-chunks.patch similarity index 100% rename from patches/server/0738-Do-not-copy-visible-chunks.patch rename to patches/server/0737-Do-not-copy-visible-chunks.patch diff --git a/patches/server/0739-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0738-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/0739-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0738-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0740-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0739-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0740-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0739-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0741-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0740-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/0741-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0740-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/0742-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0741-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0742-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0741-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0743-Distance-manager-tick-timings.patch b/patches/server/0742-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0743-Distance-manager-tick-timings.patch rename to patches/server/0742-Distance-manager-tick-timings.patch diff --git a/patches/server/0744-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0743-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0744-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0743-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0745-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0744-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0745-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0744-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0746-Add-packet-limiter-config.patch b/patches/server/0745-Add-packet-limiter-config.patch similarity index 98% rename from patches/server/0746-Add-packet-limiter-config.patch rename to patches/server/0745-Add-packet-limiter-config.patch index 9fc8214e1..3742d8fef 100644 --- a/patches/server/0746-Add-packet-limiter-config.patch +++ b/patches/server/0745-Add-packet-limiter-config.patch @@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 30f8053547ebbe05549ede851835a707793f8e45..e5b7145efddefb8bf756c3b0f115c92306830ae4 100644 +index 28471311a992f5183c39b1a692e0251eb1fee1df..a5cba4a46f75a7097fb565346e91a73bdb74de55 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -131,6 +131,22 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0747-Use-correct-LevelStem-registry-when-loading-default-.patch b/patches/server/0746-Use-correct-LevelStem-registry-when-loading-default-.patch similarity index 96% rename from patches/server/0747-Use-correct-LevelStem-registry-when-loading-default-.patch rename to patches/server/0746-Use-correct-LevelStem-registry-when-loading-default-.patch index 0fb83af7c..4178a2ab8 100644 --- a/patches/server/0747-Use-correct-LevelStem-registry-when-loading-default-.patch +++ b/patches/server/0746-Use-correct-LevelStem-registry-when-loading-default-.patch @@ -24,7 +24,7 @@ index 8da1226a6c293abb038d10c7921a77ed71ad06cc..f958f0ae738a6fb26400e17e54c8d69e } else { Holder holder = registry.getOrCreateHolderOrThrow(entryKey); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 421872f7cc1a3cbb4dc596d0e0fa0f9b63602a8a..8a36c0bacb71cd9e31affa6290d28bf0f0374d07 100644 +index 621956c024d64bcaa868e0bb01c485fe4ac11df3..002daab4b5bb32cdab9f822d8229805a8ab36ded 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -553,7 +553,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getStates() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index e77b516995666402cc8814ac78a6c11077108b2e..1326dc1239e00e7001c9ea98713b955b37e759b9 100644 +index d93118b7a602ceb6ef11ddabbce1d13fb8029a44..5ebde3a4f99b8d017d9a10a30fefc0b7dd011319 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -383,6 +383,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer diff --git a/patches/server/0758-Optimise-non-flush-packet-sending.patch b/patches/server/0757-Optimise-non-flush-packet-sending.patch similarity index 96% rename from patches/server/0758-Optimise-non-flush-packet-sending.patch rename to patches/server/0757-Optimise-non-flush-packet-sending.patch index 1b2114c37..299a56c84 100644 --- a/patches/server/0758-Optimise-non-flush-packet-sending.patch +++ b/patches/server/0757-Optimise-non-flush-packet-sending.patch @@ -20,7 +20,7 @@ up on this optimisation before he came along. Locally this patch drops the entity tracker tick by a full 1.5x. diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 80cc3b62af324512f695e971cce2b01f6eadbdbf..549c82b2bd91db70bc83b4e33131774a0d2d17ac 100644 +index a5cba4a46f75a7097fb565346e91a73bdb74de55..0eba4caec2efc4d328f2e2351d5c5615b4c0b094 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -46,6 +46,8 @@ import org.slf4j.Logger; diff --git a/patches/server/0759-Optimise-nearby-player-lookups.patch b/patches/server/0758-Optimise-nearby-player-lookups.patch similarity index 100% rename from patches/server/0759-Optimise-nearby-player-lookups.patch rename to patches/server/0758-Optimise-nearby-player-lookups.patch diff --git a/patches/server/0760-Optimise-WorldServer-notify.patch b/patches/server/0759-Optimise-WorldServer-notify.patch similarity index 100% rename from patches/server/0760-Optimise-WorldServer-notify.patch rename to patches/server/0759-Optimise-WorldServer-notify.patch diff --git a/patches/server/0761-Remove-streams-for-villager-AI.patch b/patches/server/0760-Remove-streams-for-villager-AI.patch similarity index 100% rename from patches/server/0761-Remove-streams-for-villager-AI.patch rename to patches/server/0760-Remove-streams-for-villager-AI.patch diff --git a/patches/server/0762-Rewrite-dataconverter-system.patch b/patches/server/0761-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/server/0762-Rewrite-dataconverter-system.patch rename to patches/server/0761-Rewrite-dataconverter-system.patch diff --git a/patches/server/0763-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0762-Use-Velocity-compression-and-cipher-natives.patch similarity index 98% rename from patches/server/0763-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0762-Use-Velocity-compression-and-cipher-natives.patch index e204eda85..e9fae91de 100644 --- a/patches/server/0763-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0762-Use-Velocity-compression-and-cipher-natives.patch @@ -268,7 +268,7 @@ index 792883afe53d2b7989c25a81c2f9a639d5e21d20..c04379ca8a4db0f4de46ad2b3b338431 return this.threshold; } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 549c82b2bd91db70bc83b4e33131774a0d2d17ac..56a93ea07f4e90b084f9a8da4cd9f53afde4c0d5 100644 +index 0eba4caec2efc4d328f2e2351d5c5615b4c0b094..c561a2f28fa1e9a327982c4587c4552cd85a7336 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -652,11 +652,28 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -341,7 +341,7 @@ index b80aedd2002959b4026c27ce76b3ed17f0acfb5b..2985271132c9ae822dcb0d7a7e6f0c26 protected void initChannel(Channel channel) { try { diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index c8a29ec3eac3ae61731cdc4f142578d98ec993ff..547abc18f1e03945977bd38947d9db5e201045c4 100644 +index 591b3b84a74f432f230112359e086d1429bbed92..c246fbd3c155d74684c3a105818abef833f1ed96 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -342,12 +342,14 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se diff --git a/patches/server/0764-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0763-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch similarity index 100% rename from patches/server/0764-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch rename to patches/server/0763-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch diff --git a/patches/server/0765-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch b/patches/server/0764-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch similarity index 100% rename from patches/server/0765-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch rename to patches/server/0764-Do-not-process-entity-loads-in-CraftChunk-getEntitie.patch diff --git a/patches/server/0766-Async-catch-modifications-to-critical-entity-state.patch b/patches/server/0765-Async-catch-modifications-to-critical-entity-state.patch similarity index 100% rename from patches/server/0766-Async-catch-modifications-to-critical-entity-state.patch rename to patches/server/0765-Async-catch-modifications-to-critical-entity-state.patch diff --git a/patches/server/0767-Fix-Bukkit-NamespacedKey-shenanigans.patch b/patches/server/0766-Fix-Bukkit-NamespacedKey-shenanigans.patch similarity index 100% rename from patches/server/0767-Fix-Bukkit-NamespacedKey-shenanigans.patch rename to patches/server/0766-Fix-Bukkit-NamespacedKey-shenanigans.patch diff --git a/patches/server/0768-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0767-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0768-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0767-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0769-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0768-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0769-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0768-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0770-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0769-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 74% rename from patches/server/0770-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0769-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index f749f4a41..62bd82127 100644 --- a/patches/server/0770-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0769-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1f5ccfd997392d010a9375b87f01e5a248802acc..331c700ec85d84417bf734f30a3870659c5da2e9 100644 +index b20dae88cf6ddc4baa241c0eb92cd2259b6232b1..7baba13852a99f6ee617529b4d1e470d188b5e82 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -846,6 +846,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -850,6 +850,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end // CraftBukkit end @@ -17,7 +17,7 @@ index 1f5ccfd997392d010a9375b87f01e5a248802acc..331c700ec85d84417bf734f30a387065 + if (org.spigotmc.SpigotConfig.tabComplete < 0) { + return; + } -+ // Paper end ++ // Paper end - Don't suggest if tab-complete is disabled + // Paper start - async tab completion + TAB_COMPLETE_EXECUTOR.execute(() -> { StringReader stringreader = new StringReader(packet.getCommand()); - - if (stringreader.canRead() && stringreader.peek() == '/') { diff --git a/patches/server/0771-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0770-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0771-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0770-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0772-Ensure-valid-vehicle-status.patch b/patches/server/0771-Ensure-valid-vehicle-status.patch similarity index 90% rename from patches/server/0772-Ensure-valid-vehicle-status.patch rename to patches/server/0771-Ensure-valid-vehicle-status.patch index f0de5f8c5..a737af891 100644 --- a/patches/server/0772-Ensure-valid-vehicle-status.patch +++ b/patches/server/0771-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 62f2c9645a3bf5b2bfd9fe99d3e6ec08c7dafa9a..e243e67ff389014b2b1a80fa20e67996fae48f8d 100644 +index dfa4b0d4c897f2b15da3f7e53b962b277b1cad12..ebfd634c69ba170c6ab5edd35ebc1390480e8c4b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -513,7 +513,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0773-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0772-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0773-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0772-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0774-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0773-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0774-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0773-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0775-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0774-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0775-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0774-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0776-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0775-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0776-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0775-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0777-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch b/patches/server/0776-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch similarity index 100% rename from patches/server/0777-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch rename to patches/server/0776-Do-not-overload-I-O-threads-with-chunk-data-while-fl.patch diff --git a/patches/server/0778-Preserve-overstacked-loot.patch b/patches/server/0777-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0778-Preserve-overstacked-loot.patch rename to patches/server/0777-Preserve-overstacked-loot.patch diff --git a/patches/server/0779-Update-head-rotation-in-missing-places.patch b/patches/server/0778-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0779-Update-head-rotation-in-missing-places.patch rename to patches/server/0778-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0780-prevent-unintended-light-block-manipulation.patch b/patches/server/0779-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0780-prevent-unintended-light-block-manipulation.patch rename to patches/server/0779-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0781-Fix-CraftCriteria-defaults-map.patch b/patches/server/0780-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0781-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0780-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0782-Fix-upstreams-block-state-factories.patch b/patches/server/0781-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0782-Fix-upstreams-block-state-factories.patch rename to patches/server/0781-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0783-Add-config-option-for-logging-player-ip-addresses.patch b/patches/server/0782-Add-config-option-for-logging-player-ip-addresses.patch similarity index 98% rename from patches/server/0783-Add-config-option-for-logging-player-ip-addresses.patch rename to patches/server/0782-Add-config-option-for-logging-player-ip-addresses.patch index d228f9e1c..f3dbca230 100644 --- a/patches/server/0783-Add-config-option-for-logging-player-ip-addresses.patch +++ b/patches/server/0782-Add-config-option-for-logging-player-ip-addresses.patch @@ -65,7 +65,7 @@ index c246fbd3c155d74684c3a105818abef833f1ed96..c1cb1406bf00843568e94c5d72cf60b3 @Nullable diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 76fa5e31701bc0e504d8e7b6ebfa737f3a10dc3b..75c64d23eb15368f8a40ebf9026d54604d450f91 100644 +index 5d5663d929227b2376c57b130a5c32e349edf009..49305ca48798ba9047c27dfc9f1755b72689abcb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -241,7 +241,7 @@ public abstract class PlayerList { diff --git a/patches/server/0784-Configurable-feature-seeds.patch b/patches/server/0783-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0784-Configurable-feature-seeds.patch rename to patches/server/0783-Configurable-feature-seeds.patch diff --git a/patches/server/0785-VanillaCommandWrapper-didnt-account-for-entity-sende.patch b/patches/server/0784-VanillaCommandWrapper-didnt-account-for-entity-sende.patch similarity index 100% rename from patches/server/0785-VanillaCommandWrapper-didnt-account-for-entity-sende.patch rename to patches/server/0784-VanillaCommandWrapper-didnt-account-for-entity-sende.patch diff --git a/patches/server/0786-Add-root-admin-user-detection.patch b/patches/server/0785-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0786-Add-root-admin-user-detection.patch rename to patches/server/0785-Add-root-admin-user-detection.patch diff --git a/patches/server/0787-Always-allow-item-changing-in-Fireball.patch b/patches/server/0786-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0787-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0786-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0788-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0787-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0788-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0787-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0789-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0788-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0789-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0788-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0790-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0789-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0790-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0789-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0791-Rewrite-the-light-engine.patch b/patches/server/0790-Rewrite-the-light-engine.patch similarity index 99% rename from patches/server/0791-Rewrite-the-light-engine.patch rename to patches/server/0790-Rewrite-the-light-engine.patch index cb60f1cac..7784f1b57 100644 --- a/patches/server/0791-Rewrite-the-light-engine.patch +++ b/patches/server/0790-Rewrite-the-light-engine.patch @@ -5039,7 +5039,7 @@ index c85380c3bf3bf4448a28a91af78f41c235a583e4..d870cefbe5b7485f423817f4f639e3e2 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 1326dc1239e00e7001c9ea98713b955b37e759b9..09201b51d6b9fadcef7e38d6a108bfafc5235fbe 100644 +index 5ebde3a4f99b8d017d9a10a30fefc0b7dd011319..7908360dd47937b2cb702e381802b7b278a5198e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -203,7 +203,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer diff --git a/patches/server/0792-Always-parse-protochunk-light-sources-unless-it-is-m.patch b/patches/server/0791-Always-parse-protochunk-light-sources-unless-it-is-m.patch similarity index 100% rename from patches/server/0792-Always-parse-protochunk-light-sources-unless-it-is-m.patch rename to patches/server/0791-Always-parse-protochunk-light-sources-unless-it-is-m.patch diff --git a/patches/server/0793-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0792-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0793-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0792-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0794-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0793-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0794-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0793-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0795-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0794-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0795-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0794-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0796-Fix-kelp-modifier-changing-growth-for-other-crops.patch b/patches/server/0795-Fix-kelp-modifier-changing-growth-for-other-crops.patch similarity index 100% rename from patches/server/0796-Fix-kelp-modifier-changing-growth-for-other-crops.patch rename to patches/server/0795-Fix-kelp-modifier-changing-growth-for-other-crops.patch diff --git a/patches/server/0797-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0796-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0797-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0796-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0798-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0797-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0798-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0797-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0799-Add-player-health-update-API.patch b/patches/server/0798-Add-player-health-update-API.patch similarity index 95% rename from patches/server/0799-Add-player-health-update-API.patch rename to patches/server/0798-Add-player-health-update-API.patch index 43971bf07..2c64a44e4 100644 --- a/patches/server/0799-Add-player-health-update-API.patch +++ b/patches/server/0798-Add-player-health-update-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add player health update API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fa85a7be4a131b7ae8a5d2aae78a82fcd53e5967..7112eb5f32faceb371b73a0ee82cf7b23b977f3a 100644 +index 58d9f425187b791d8b36b55a89b37e0f2ba56357..9f6a26f1fb53c14b68ce7bc2a69a59cabd00de7f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2152,9 +2152,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0800-Optimize-HashMapPalette.patch b/patches/server/0799-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0800-Optimize-HashMapPalette.patch rename to patches/server/0799-Optimize-HashMapPalette.patch diff --git a/patches/server/0801-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0800-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0801-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0800-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0802-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch b/patches/server/0801-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch similarity index 99% rename from patches/server/0802-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch rename to patches/server/0801-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch index 727777f3a..4e9f2e675 100644 --- a/patches/server/0802-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch +++ b/patches/server/0801-Highly-optimise-single-and-multi-AABB-VoxelShapes-an.patch @@ -1180,7 +1180,7 @@ index 0000000000000000000000000000000000000000..d67a40e7be030142443680c89e1763fc + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e243e67ff389014b2b1a80fa20e67996fae48f8d..c3484d612d0273bc066b3ac274b33c21ae9e0936 100644 +index ebfd634c69ba170c6ab5edd35ebc1390480e8c4b..1643883aeda01ec4d0d26115c33de44379db2365 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -423,7 +423,7 @@ public class ServerPlayer extends Player { @@ -1202,7 +1202,7 @@ index e243e67ff389014b2b1a80fa20e67996fae48f8d..c3484d612d0273bc066b3ac274b33c21 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6aac9f91ef95f7b0a3319360dbc8360d2c93eb8c..132ce6a997540c3f67f12be068883bd990e7bd63 100644 +index 49305ca48798ba9047c27dfc9f1755b72689abcb..2595de3d40bc666c3b6e64538127fa9d83a3ef07 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -937,7 +937,7 @@ public abstract class PlayerList { diff --git a/patches/server/0803-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0802-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 96% rename from patches/server/0803-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0802-Optimise-collision-checking-in-player-move-packet-ha.patch index 3d4be25da..6dc6ac102 100644 --- a/patches/server/0803-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0802-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise collision checking in player move packet handling Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025491e8315 100644 +index 7baba13852a99f6ee617529b4d1e470d188b5e82..7933bdb29056ddf8cb29a12166598cd15c155b3a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -658,7 +658,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -88,7 +88,7 @@ index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025 } @Override -@@ -1350,7 +1384,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1354,7 +1388,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (this.awaitingPositionFromClient != null) { @@ -97,7 +97,7 @@ index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025 this.awaitingTeleportTime = this.tickCount; this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); } -@@ -1444,7 +1478,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1448,7 +1482,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } @@ -106,7 +106,7 @@ index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025 d7 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above d8 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above -@@ -1485,6 +1519,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1489,6 +1523,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag1 = this.player.verticalCollisionBelow; this.player.move(MoverType.PLAYER, new Vec3(d7, d8, d9)); @@ -114,7 +114,7 @@ index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025 this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move // Paper start - prevent position desync if (this.awaitingPositionFromClient != null) { -@@ -1504,12 +1539,23 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1508,12 +1543,23 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag2 = false; if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot @@ -140,7 +140,7 @@ index 331c700ec85d84417bf734f30a3870659c5da2e9..abd9ee4c2cddf0fd1e31bffbb60db025 this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet(), false); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. } else { // CraftBukkit start - fire PlayerMoveEvent -@@ -1595,6 +1641,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1599,6 +1645,27 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } diff --git a/patches/server/0804-Actually-unload-POI-data.patch b/patches/server/0803-Actually-unload-POI-data.patch similarity index 100% rename from patches/server/0804-Actually-unload-POI-data.patch rename to patches/server/0803-Actually-unload-POI-data.patch diff --git a/patches/server/0805-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0804-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0805-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0804-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0806-Update-Log4j.patch b/patches/server/0805-Update-Log4j.patch similarity index 100% rename from patches/server/0806-Update-Log4j.patch rename to patches/server/0805-Update-Log4j.patch diff --git a/patches/server/0807-Add-more-Campfire-API.patch b/patches/server/0806-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0807-Add-more-Campfire-API.patch rename to patches/server/0806-Add-more-Campfire-API.patch diff --git a/patches/server/0808-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0807-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0808-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0807-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0809-Fix-tripwire-state-inconsistency.patch b/patches/server/0808-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0809-Fix-tripwire-state-inconsistency.patch rename to patches/server/0808-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0810-Fix-fluid-logging-on-Block-breakNaturally.patch b/patches/server/0809-Fix-fluid-logging-on-Block-breakNaturally.patch similarity index 100% rename from patches/server/0810-Fix-fluid-logging-on-Block-breakNaturally.patch rename to patches/server/0809-Fix-fluid-logging-on-Block-breakNaturally.patch diff --git a/patches/server/0811-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0810-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0811-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0810-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0812-Improve-scoreboard-entries.patch b/patches/server/0811-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0812-Improve-scoreboard-entries.patch rename to patches/server/0811-Improve-scoreboard-entries.patch diff --git a/patches/server/0813-Entity-powdered-snow-API.patch b/patches/server/0812-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0813-Entity-powdered-snow-API.patch rename to patches/server/0812-Entity-powdered-snow-API.patch diff --git a/patches/server/0814-Add-API-for-item-entity-health.patch b/patches/server/0813-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0814-Add-API-for-item-entity-health.patch rename to patches/server/0813-Add-API-for-item-entity-health.patch diff --git a/patches/server/0815-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0814-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0815-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0814-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0816-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0815-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0816-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0815-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0817-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0816-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0817-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0816-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0818-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0817-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0818-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0817-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0819-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0818-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0819-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0818-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0820-Fix-bees-aging-inside-hives.patch b/patches/server/0819-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0820-Fix-bees-aging-inside-hives.patch rename to patches/server/0819-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0821-Bucketable-API.patch b/patches/server/0820-Bucketable-API.patch similarity index 100% rename from patches/server/0821-Bucketable-API.patch rename to patches/server/0820-Bucketable-API.patch diff --git a/patches/server/0822-Check-player-world-in-endPortalSoundRadius.patch b/patches/server/0821-Check-player-world-in-endPortalSoundRadius.patch similarity index 100% rename from patches/server/0822-Check-player-world-in-endPortalSoundRadius.patch rename to patches/server/0821-Check-player-world-in-endPortalSoundRadius.patch diff --git a/patches/server/0823-Validate-usernames.patch b/patches/server/0822-Validate-usernames.patch similarity index 95% rename from patches/server/0823-Validate-usernames.patch rename to patches/server/0822-Validate-usernames.patch index 99c6bacac..f3e50eb49 100644 --- a/patches/server/0823-Validate-usernames.patch +++ b/patches/server/0822-Validate-usernames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 303981c9b873eee07052fbe607690d12074cd1d1..aabd8916470290045832e0fc1895d099c8553dd4 100644 +index c1cb1406bf00843568e94c5d72cf60b3e5455720..a3eeb252954201d3ac8ce0d0fcd1a22be53c32cd 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -71,6 +71,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @@ -56,7 +56,7 @@ index 303981c9b873eee07052fbe607690d12074cd1d1..aabd8916470290045832e0fc1895d099 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 132ce6a997540c3f67f12be068883bd990e7bd63..dd514cc59b28fdc49dbb4c9641f11e8835b8fb1a 100644 +index 2595de3d40bc666c3b6e64538127fa9d83a3ef07..80ea6e59a96b1135823ef8bd228b924caf73faed 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -708,7 +708,7 @@ public abstract class PlayerList { diff --git a/patches/server/0824-Fix-saving-configs-with-more-long-comments.patch b/patches/server/0823-Fix-saving-configs-with-more-long-comments.patch similarity index 100% rename from patches/server/0824-Fix-saving-configs-with-more-long-comments.patch rename to patches/server/0823-Fix-saving-configs-with-more-long-comments.patch diff --git a/patches/server/0825-Make-water-animal-spawn-height-configurable.patch b/patches/server/0824-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0825-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0824-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0826-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0825-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 98% rename from patches/server/0826-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0825-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 27fb3bbc4..54936939f 100644 --- a/patches/server/0826-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0825-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 8a36c0bacb71cd9e31affa6290d28bf0f0374d07..d087b37ef4a2c6bee9ef05dfc8ca614d98601928 100644 +index 002daab4b5bb32cdab9f822d8229805a8ab36ded..beaefa13a4635a69d06f652a9ec506072490fd19 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -562,7 +562,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // CraftBukkit - async chat -@@ -2201,7 +2203,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2205,7 +2207,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -30,7 +30,7 @@ index abd9ee4c2cddf0fd1e31bffbb60db025491e8315..067b18932a39a97cd13b59d43350c1fe } else { if (this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages())) { this.server.submit(() -> { -@@ -2287,7 +2291,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2291,7 +2295,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); diff --git a/patches/server/0835-Multi-Block-Change-API-Implementation.patch b/patches/server/0834-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0835-Multi-Block-Change-API-Implementation.patch rename to patches/server/0834-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0836-Fix-NotePlayEvent.patch b/patches/server/0835-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0836-Fix-NotePlayEvent.patch rename to patches/server/0835-Fix-NotePlayEvent.patch diff --git a/patches/server/0837-Freeze-Tick-Lock-API.patch b/patches/server/0836-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0837-Freeze-Tick-Lock-API.patch rename to patches/server/0836-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0838-Dolphin-API.patch b/patches/server/0837-Dolphin-API.patch similarity index 100% rename from patches/server/0838-Dolphin-API.patch rename to patches/server/0837-Dolphin-API.patch diff --git a/patches/server/0839-More-PotionEffectType-API.patch b/patches/server/0838-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0839-More-PotionEffectType-API.patch rename to patches/server/0838-More-PotionEffectType-API.patch diff --git a/patches/server/0840-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0839-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0840-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0839-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0841-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0840-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0841-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0840-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0842-Add-config-for-stronghold-seed.patch b/patches/server/0841-Add-config-for-stronghold-seed.patch similarity index 100% rename from patches/server/0842-Add-config-for-stronghold-seed.patch rename to patches/server/0841-Add-config-for-stronghold-seed.patch diff --git a/patches/server/0843-Implement-regenerateChunk.patch b/patches/server/0842-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0843-Implement-regenerateChunk.patch rename to patches/server/0842-Implement-regenerateChunk.patch diff --git a/patches/server/0844-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0843-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0844-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0843-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0845-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0844-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0845-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0844-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0846-Add-GameEvent-tags.patch b/patches/server/0845-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0846-Add-GameEvent-tags.patch rename to patches/server/0845-Add-GameEvent-tags.patch diff --git a/patches/server/0847-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0846-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0847-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0846-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index d4f44081c..c9b67dcc2 100644 --- a/patches/server/0847-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0846-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 d087b37ef4a2c6bee9ef05dfc8ca614d98601928..a790387e88c15e44ce3aaf50ab99e1d8beabb551 100644 +index beaefa13a4635a69d06f652a9ec506072490fd19..ae59d5533a0eb2c427433042512fc560af99940d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1313,6 +1313,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Paper - push to main this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event cause }); // Paper - push to main -@@ -2555,7 +2555,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2559,7 +2559,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return false; } else { if (message.hasExpiredServer(Instant.now())) { diff --git a/patches/server/0918-Fix-Bee-flower-NPE.patch b/patches/server/0917-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0918-Fix-Bee-flower-NPE.patch rename to patches/server/0917-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0919-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0918-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 87% rename from patches/server/0919-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0918-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index ff5e37f8f..84b3c37d4 100644 --- a/patches/server/0919-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0918-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c384e715a54248e3bf2e1dc02acc118ec9fcfa1d..736ef6024285866fd372e5449b5eb55633e7ddf9 100644 +index 4a9f616c66533197dbc285bd483bdbed16ae1f31..75505766d6a1c6693e1545df83cc09fb3b7359e3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2576,7 +2576,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2580,7 +2580,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Spigot end // this.chatSpamTickCount += 20; diff --git a/patches/server/0920-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch b/patches/server/0919-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch similarity index 100% rename from patches/server/0920-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch rename to patches/server/0919-Add-SpawnReason-to-Tadpoles-spawned-by-Frogspawn.patch diff --git a/patches/server/0921-More-Teleport-API.patch b/patches/server/0920-More-Teleport-API.patch similarity index 97% rename from patches/server/0921-More-Teleport-API.patch rename to patches/server/0920-More-Teleport-API.patch index 696990e8f..f32e7d3e7 100644 --- a/patches/server/0921-More-Teleport-API.patch +++ b/patches/server/0920-More-Teleport-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 72864ca3f0fa94512d7f57b4e05929be7d2912cd..2fe2336a9dd307dbd92cbf9472ffe698515f5ee9 100644 +index 75505766d6a1c6693e1545df83cc09fb3b7359e3..bdccb85b1b6a773a3f33e4539d63ba6b592b6610 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1728,11 +1728,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1732,11 +1732,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return false; // CraftBukkit - Return event status } @@ -69,7 +69,7 @@ index 2a6c67634c31c332102d24bef293da1bacd0c000..b80cc0938b2b3928f4450f1314a9fbd7 // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f74802748438f4d40fb5ab772a209dfb2ee406e6..d2249145046d728240cf1ae0b71c9ec16184bc18 100644 +index c88342c53787a48477dcbec4af53d1d5ce2b02e2..9f34358dfcb95104c5bb9e63fbe295e6e049a55d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1135,7 +1135,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0922-Add-EntityPortalReadyEvent.patch b/patches/server/0921-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/server/0922-Add-EntityPortalReadyEvent.patch rename to patches/server/0921-Add-EntityPortalReadyEvent.patch diff --git a/patches/server/0923-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0922-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0923-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0922-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0924-Send-block-entities-after-destroy-prediction.patch b/patches/server/0923-Send-block-entities-after-destroy-prediction.patch similarity index 97% rename from patches/server/0924-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0923-Send-block-entities-after-destroy-prediction.patch index d83705065..6dec6fd4c 100644 --- a/patches/server/0924-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0923-Send-block-entities-after-destroy-prediction.patch @@ -57,10 +57,10 @@ index 9378e83a67a70dbb1fb4f05b33f1e553d008e62b..5a60f5dc202c44b06ca34e9a19d45cb7 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8e32bf0deacd966a1bfeef7c57455be4ccfdadda..01a498536497db7ab0f3ebac80fb022b356385c8 100644 +index bdccb85b1b6a773a3f33e4539d63ba6b592b6610..a68b737cdd1e9f1054e0fc3bfee92c20a062fab5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1873,8 +1873,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1877,8 +1877,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } // Paper end - Don't allow digging in unloaded chunks diff --git a/patches/server/0925-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0924-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/server/0925-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0924-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/server/0926-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0925-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0926-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0925-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0927-Add-missing-BlockFadeEvents.patch b/patches/server/0926-Add-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0927-Add-missing-BlockFadeEvents.patch rename to patches/server/0926-Add-missing-BlockFadeEvents.patch diff --git a/patches/server/0928-Collision-API.patch b/patches/server/0927-Collision-API.patch similarity index 100% rename from patches/server/0928-Collision-API.patch rename to patches/server/0927-Collision-API.patch