From 5a5c3a4a2448e8acd92f51cdac458fa85a9f2334 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 5 Aug 2024 19:57:34 +0200 Subject: [PATCH 01/23] Remove chunk unload trace debug The issue the patch was initially added for has already been fixed and filling stacktraces can be expensive --- ...-debug-for-chunk-system-unload-crash.patch | 57 ------------------- ...patch => 1030-fix-horse-inventories.patch} | 0 ...ityDamageEvents-before-actuallyHurt.patch} | 0 ...r-desync-when-new-players-are-added.patch} | 0 ...atch => 1033-Lag-compensation-ticks.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 0 ...ch => 1035-Write-SavedData-IO-async.patch} | 0 ...Correctly-call-PlayerItemBreakEvent.patch} | 0 ... => 1037-Add-ItemType-getItemRarity.patch} | 0 ...Incremental-chunk-and-player-saving.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...plexRecipe-to-extend-CraftingRecipe.patch} | 0 ...patch => 1041-Add-CrafterCraftEvent.patch} | 0 ...le-spark.patch => 1042-Bundle-spark.patch} | 0 ... => 1043-Add-plugin-info-at-startup.patch} | 0 ...tion-leniency-distance-configurable.patch} | 0 ...1045-Fix-PickupStatus-getting-reset.patch} | 0 17 files changed, 57 deletions(-) delete mode 100644 patches/server/1030-Add-debug-for-chunk-system-unload-crash.patch rename patches/server/{1031-fix-horse-inventories.patch => 1030-fix-horse-inventories.patch} (100%) rename patches/server/{1032-Only-call-EntityDamageEvents-before-actuallyHurt.patch => 1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch} (100%) rename patches/server/{1033-Fix-entity-tracker-desync-when-new-players-are-added.patch => 1032-Fix-entity-tracker-desync-when-new-players-are-added.patch} (100%) rename patches/server/{1034-Lag-compensation-ticks.patch => 1033-Lag-compensation-ticks.patch} (100%) rename patches/server/{1035-Detail-more-information-in-watchdog-dumps.patch => 1034-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{1036-Write-SavedData-IO-async.patch => 1035-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1037-Correctly-call-PlayerItemBreakEvent.patch => 1036-Correctly-call-PlayerItemBreakEvent.patch} (100%) rename patches/server/{1038-Add-ItemType-getItemRarity.patch => 1037-Add-ItemType-getItemRarity.patch} (100%) rename patches/server/{1039-Incremental-chunk-and-player-saving.patch => 1038-Incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{1040-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1041-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch => 1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch} (100%) rename patches/server/{1042-Add-CrafterCraftEvent.patch => 1041-Add-CrafterCraftEvent.patch} (100%) rename patches/server/{1043-Bundle-spark.patch => 1042-Bundle-spark.patch} (100%) rename patches/server/{1044-Add-plugin-info-at-startup.patch => 1043-Add-plugin-info-at-startup.patch} (100%) rename patches/server/{1045-Make-interaction-leniency-distance-configurable.patch => 1044-Make-interaction-leniency-distance-configurable.patch} (100%) rename patches/server/{1046-Fix-PickupStatus-getting-reset.patch => 1045-Fix-PickupStatus-getting-reset.patch} (100%) diff --git a/patches/server/1030-Add-debug-for-chunk-system-unload-crash.patch b/patches/server/1030-Add-debug-for-chunk-system-unload-crash.patch deleted file mode 100644 index 206968f773..0000000000 --- a/patches/server/1030-Add-debug-for-chunk-system-unload-crash.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Wed, 19 Jun 2024 10:52:07 -0700 -Subject: [PATCH] Add debug for chunk system unload crash - -Somehow, a chunkholder is present in the unload queue after -it has been unloaded. It is likely that this is a result of -adding the chunk holder to the unload queue while it is -unloading. However, that should not be possible. - -To find out where it is being added to the unload queue, track -the last stacktrace which adds to the unload queue and check -on chunk holder remove if the holder is present in the unload queue -and log the stacktrace. - -diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java -index 1dfddea4fd7e89fb6fd9fa49f7ab5e6f48e6ef3c..4068138e4ec0ccb02f5925f8b5a31381882f08e0 100644 ---- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java -+++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java -@@ -749,9 +749,22 @@ public final class NewChunkHolder { - - /** Unloaded from chunk map */ - private boolean unloaded; -+ private Throwable lastUnloadAdd; - - void markUnloaded() { - this.unloaded = true; -+ if (this.inUnloadQueue) { -+ if (this.lastUnloadAdd != null) { -+ LOGGER.error("Unloaded chunkholder " + this.toString() + " while in the unload queue", this.lastUnloadAdd); -+ } else { -+ // should never happen -+ LOGGER.error("Unloaded chunkholder " + this.toString() + " while in the unload queue without a throwable"); -+ } -+ -+ // prevent crash by removing (note: we hold scheduling lock here) -+ this.inUnloadQueue = false; -+ this.scheduler.chunkHolderManager.unloadQueue.removeChunk(this.chunkX, this.chunkZ); -+ } - } - - private boolean inUnloadQueue = false; -@@ -769,12 +782,14 @@ public final class NewChunkHolder { - // ensure in unload queue - if (!this.inUnloadQueue) { - this.inUnloadQueue = true; -+ this.lastUnloadAdd = new Throwable(); - this.scheduler.chunkHolderManager.unloadQueue.addChunk(this.chunkX, this.chunkZ); - } - } else { - // ensure not in unload queue - if (this.inUnloadQueue) { - this.inUnloadQueue = false; -+ this.lastUnloadAdd = null; - this.scheduler.chunkHolderManager.unloadQueue.removeChunk(this.chunkX, this.chunkZ); - } - } diff --git a/patches/server/1031-fix-horse-inventories.patch b/patches/server/1030-fix-horse-inventories.patch similarity index 100% rename from patches/server/1031-fix-horse-inventories.patch rename to patches/server/1030-fix-horse-inventories.patch diff --git a/patches/server/1032-Only-call-EntityDamageEvents-before-actuallyHurt.patch b/patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch similarity index 100% rename from patches/server/1032-Only-call-EntityDamageEvents-before-actuallyHurt.patch rename to patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch diff --git a/patches/server/1033-Fix-entity-tracker-desync-when-new-players-are-added.patch b/patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch similarity index 100% rename from patches/server/1033-Fix-entity-tracker-desync-when-new-players-are-added.patch rename to patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch diff --git a/patches/server/1034-Lag-compensation-ticks.patch b/patches/server/1033-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1034-Lag-compensation-ticks.patch rename to patches/server/1033-Lag-compensation-ticks.patch diff --git a/patches/server/1035-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1034-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/1035-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1034-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/1036-Write-SavedData-IO-async.patch b/patches/server/1035-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1036-Write-SavedData-IO-async.patch rename to patches/server/1035-Write-SavedData-IO-async.patch diff --git a/patches/server/1037-Correctly-call-PlayerItemBreakEvent.patch b/patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch similarity index 100% rename from patches/server/1037-Correctly-call-PlayerItemBreakEvent.patch rename to patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch diff --git a/patches/server/1038-Add-ItemType-getItemRarity.patch b/patches/server/1037-Add-ItemType-getItemRarity.patch similarity index 100% rename from patches/server/1038-Add-ItemType-getItemRarity.patch rename to patches/server/1037-Add-ItemType-getItemRarity.patch diff --git a/patches/server/1039-Incremental-chunk-and-player-saving.patch b/patches/server/1038-Incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/1039-Incremental-chunk-and-player-saving.patch rename to patches/server/1038-Incremental-chunk-and-player-saving.patch diff --git a/patches/server/1040-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1040-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1041-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch b/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch similarity index 100% rename from patches/server/1041-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch rename to patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch diff --git a/patches/server/1042-Add-CrafterCraftEvent.patch b/patches/server/1041-Add-CrafterCraftEvent.patch similarity index 100% rename from patches/server/1042-Add-CrafterCraftEvent.patch rename to patches/server/1041-Add-CrafterCraftEvent.patch diff --git a/patches/server/1043-Bundle-spark.patch b/patches/server/1042-Bundle-spark.patch similarity index 100% rename from patches/server/1043-Bundle-spark.patch rename to patches/server/1042-Bundle-spark.patch diff --git a/patches/server/1044-Add-plugin-info-at-startup.patch b/patches/server/1043-Add-plugin-info-at-startup.patch similarity index 100% rename from patches/server/1044-Add-plugin-info-at-startup.patch rename to patches/server/1043-Add-plugin-info-at-startup.patch diff --git a/patches/server/1045-Make-interaction-leniency-distance-configurable.patch b/patches/server/1044-Make-interaction-leniency-distance-configurable.patch similarity index 100% rename from patches/server/1045-Make-interaction-leniency-distance-configurable.patch rename to patches/server/1044-Make-interaction-leniency-distance-configurable.patch diff --git a/patches/server/1046-Fix-PickupStatus-getting-reset.patch b/patches/server/1045-Fix-PickupStatus-getting-reset.patch similarity index 100% rename from patches/server/1046-Fix-PickupStatus-getting-reset.patch rename to patches/server/1045-Fix-PickupStatus-getting-reset.patch From 7e44684a1f1fcce27ae881c78da2b793537a6b05 Mon Sep 17 00:00:00 2001 From: metabrix Date: Tue, 6 Aug 2024 00:02:19 +0500 Subject: [PATCH 02/23] Fix wrong assumption about locale being null in the login phase (#11204) Fixes #11203 --- patches/server/0010-Adventure.patch | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 906c9d1f54..1b2fc84f62 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2584,10 +2584,10 @@ index c5ba5e30cd74ca2cfc3f952c7b992df239a53a34..fdb75db02603ef97b624219211a0db22 @Override public PacketType type() { diff --git a/src/main/java/net/minecraft/network/protocol/login/ClientboundLoginDisconnectPacket.java b/src/main/java/net/minecraft/network/protocol/login/ClientboundLoginDisconnectPacket.java -index bb97fdb9aa6167083442a928276ebe4225a586ef..5d1758086ed4fce5b36a5b31df44ccea42abc590 100644 +index bb97fdb9aa6167083442a928276ebe4225a586ef..eeaa40e8121643c6c1d951e76e7361e29210ba48 100644 --- a/src/main/java/net/minecraft/network/protocol/login/ClientboundLoginDisconnectPacket.java +++ b/src/main/java/net/minecraft/network/protocol/login/ClientboundLoginDisconnectPacket.java -@@ -18,11 +18,15 @@ public class ClientboundLoginDisconnectPacket implements Packet Date: Tue, 6 Aug 2024 10:37:26 -0700 Subject: [PATCH 03/23] [ci skip] chore: fix incorrect commit hash in PR builds (#11198) * fix incorrect hash in PR builds * only apply ref on pull_request triggers --- .github/workflows/build.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cef01ede78..09a170d7fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,12 @@ jobs: java: [21] fail-fast: true steps: - - uses: actions/checkout@v4 + - if: ${{ github.event_name == 'push' }} + uses: actions/checkout@v4 + - if: ${{ github.event_name == 'pull_request' }} + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} - name: JDK ${{ matrix.java }} uses: actions/setup-java@v4 with: From 4e6a2a13a3e1f6fa1067a7821d2f018339395533 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Wed, 7 Aug 2024 14:34:12 +0200 Subject: [PATCH 04/23] Check for block type in SculkSensorBlock#canActivate --- ...type-in-SculkSensorBlock-canActivate.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch diff --git a/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch b/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch new file mode 100644 index 0000000000..f060e79368 --- /dev/null +++ b/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nassim Jahnke +Date: Wed, 7 Aug 2024 14:33:25 +0200 +Subject: [PATCH] Check for block type in SculkSensorBlock#canActivate + + +diff --git a/src/main/java/net/minecraft/world/level/block/SculkSensorBlock.java b/src/main/java/net/minecraft/world/level/block/SculkSensorBlock.java +index 9e928302817ee8e1cc8c7f3f1b351a0d5f3a7c2c..1db261f63aaf083b4d38f519f77abecbd942e999 100644 +--- a/src/main/java/net/minecraft/world/level/block/SculkSensorBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/SculkSensorBlock.java +@@ -218,7 +218,7 @@ public class SculkSensorBlock extends BaseEntityBlock implements SimpleWaterlogg + } + + public static boolean canActivate(BlockState state) { +- return SculkSensorBlock.getPhase(state) == SculkSensorPhase.INACTIVE; ++ return state.getBlock() instanceof SculkSensorBlock && SculkSensorBlock.getPhase(state) == SculkSensorPhase.INACTIVE; // Paper - Check for a valid type + } + + public static void deactivate(Level world, BlockPos pos, BlockState state) { From 77a5779e24b55fd900d337ac071a7e4327d735bf Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Fri, 9 Aug 2024 22:05:50 +0200 Subject: [PATCH 05/23] Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11197) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 2ec53f49 PR-1050: Fix empty result check for Complex Recipes 10671012 PR-1044: Add CrafterCraftEvent 4d87ffe0 Use correct method in JavaDoc ae5e5817 SPIGOT-7850: Add API for Bogged shear state 46b6d445 SPIGOT-7837: Support data pack banner patterns d5d0cefc Fix JavaDoc error b3c2b83d PR-1036: Add API for InventoryView derivatives 1fe2c75a SPIGOT-7809: Add ShieldMeta CraftBukkit Changes: 8ee6fd1b8 SPIGOT-7857: Improve ItemMeta block data deserialization 8f26c30c6 SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta 759061b93 SPIGOT-7855: Fire does not spread or burn blocks 00fc9fb64 SPIGOT-7853: AnvilInventory#getRepairCost() always returns 0 7501e2e04 PR-1450: Add CrafterCraftEvent 8c51673e7 SPIGOT-5731: PortalCreateEvent#getEntity returns null for nether portals ignited by flint and steel d53d0d0b1 PR-1456: Fix inverted logic in CraftCrafterView#setSlotDisabled 682a678c8 SPIGOT-7850: Add API for Bogged shear state fccf5243a SPIGOT-7837: Support data pack banner patterns 9c3bd4390 PR-1431: Add API for InventoryView derivatives 0cc6acbc4 SPIGOT-7849: Fix FoodComponent serialize with "using-converts-to" using null 2c5474952 Don't rely on tags for CraftItemMetas 20d107e46 SPIGOT-7846: Fix ItemMeta for hanging signs 76f59e315 Remove redundant clone in Dropper InventoryMoveItemEvent e61a53d25 SPIGOT-7817: Call InventoryMoveItemEvent for Crafters 894682e2d SPIGOT-7839: Remove redundant Java version checks 2c12b2187 SPIGOT-7809: Add ShieldMeta and fix setting shield base colours Spigot Changes: fb8fb722 Rebuild patches 34bd42b7 SPIGOT-7835: Fix issue with custom hopper settings --- patches/api/0006-Adventure.patch | 4 +- patches/api/0053-Fix-upstream-javadocs.patch | 24 +- .../0059-Shoulder-Entities-Release-API.patch | 4 +- ...lay-warning-on-deprecated-recipe-API.patch | 8 +- ...2-Add-openSign-method-to-HumanEntity.patch | 4 +- .../0114-LivingEntity-Active-Item-API.patch | 4 +- .../0117-InventoryCloseEvent-Reason-API.patch | 4 +- ...-ItemStack-Recipe-API-helper-methods.patch | 12 +- .../0166-Fix-Spigot-annotation-mistakes.patch | 44 +- ...85-Add-item-slot-convenience-methods.patch | 6 +- patches/api/0190-Potential-bed-API.patch | 4 +- ...reResultEvent-PrepareGrindstoneEvent.patch | 8 +- ...al-open-container-api-to-HumanEntity.patch | 4 +- ...0-Expose-LivingEntity-hurt-direction.patch | 4 +- ...gistryAccess-for-managing-registries.patch | 30 +- ...-add-isDeeplySleeping-to-HumanEntity.patch | 4 +- .../api/0329-More-PotionEffectType-API.patch | 4 +- patches/api/0352-Add-Player-getFishHook.patch | 4 +- patches/api/0392-Add-Shearable-API.patch | 53 ++- ...0430-Experimental-annotations-change.patch | 4 +- patches/api/0432-Improve-Registry.patch | 16 +- .../api/0469-Fix-issues-with-recipe-API.patch | 24 +- patches/api/0472-General-ItemMeta-fixes.patch | 21 + .../api/0475-Registry-Modification-API.patch | 8 +- ...ntroduce-registry-entry-and-builders.patch | 4 +- ...0481-Fix-PickupStatus-getting-reset.patch} | 0 ...mplexRecipe-to-extend-CraftingRecipe.patch | 27 -- patches/api/0482-Add-CrafterCraftEvent.patch | 97 ----- .../server/0003-Build-system-changes.patch | 4 +- patches/server/0004-Test-changes.patch | 16 + patches/server/0005-Paper-config-files.patch | 6 +- patches/server/0009-MC-Utils.patch | 8 +- patches/server/0010-Adventure.patch | 22 +- ...oleAppender-for-console-improvements.patch | 8 +- .../0021-Hook-into-CB-plugin-rewrites.patch | 16 +- ...ion-calls-in-plugins-using-internals.patch | 6 +- .../0026-Support-components-in-ItemMeta.patch | 10 +- ...0033-Expose-server-build-information.patch | 4 +- ...070-Handle-Item-Meta-Inconsistencies.patch | 10 +- ...0083-Add-PlayerUseUnknownEntityEvent.patch | 4 +- patches/server/0108-Add-EntityZapEvent.patch | 4 +- ...2-Add-source-to-PlayerExpChangeEvent.patch | 4 +- .../0113-Add-ProjectileCollideEvent.patch | 13 +- .../0146-Fix-this-stupid-bullshit.patch | 4 +- .../0169-Add-ArmorStand-Item-Meta.patch | 8 +- .../0176-Player.setPlayerProfile-API.patch | 4 +- .../server/0192-WitchReadyPotionEvent.patch | 4 +- .../0202-Add-entity-knockback-events.patch | 4 +- .../0208-InventoryCloseEvent-Reason-API.patch | 8 +- ...7-Vanished-players-don-t-have-rights.patch | 4 +- ...235-Optimize-CraftBlockData-Creation.patch | 4 +- .../server/0243-Improve-death-events.patch | 8 +- .../0316-Improve-java-version-check.patch | 47 +- ...321-add-hand-to-BlockMultiPlaceEvent.patch | 4 +- ...item-duplication-and-teleport-issues.patch | 6 +- ...ceOrb-merging-stacking-API-and-fixes.patch | 4 +- ...9-Add-BlockStateMeta-clearBlockState.patch | 22 +- ...nvert-legacy-attributes-in-Item-Meta.patch | 4 +- .../server/0384-Add-PrepareResultEvent.patch | 20 +- patches/server/0401-Add-BellRingEvent.patch | 4 +- ...I.patch => 0405-Add-more-Evoker-API.patch} | 0 ...CreateEvent-needs-to-know-its-entity.patch | 119 ----- ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0408-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0415-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0420-Optimise-getType-calls.patch} | 0 ....patch => 0421-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...em-locations-dropped-from-campfires.patch} | 0 ...4-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0427-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 2 +- ...> 0430-Item-no-age-no-player-pickup.patch} | 0 ...431-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0432-Add-API-for-quit-reason.patch} | 2 +- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...patch => 0434-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 2 +- ...36-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0437-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0439-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 0 ...-missing-default-perms-for-commands.patch} | 0 ...h => 0442-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0443-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...445-Player-Chunk-Load-Unload-Events.patch} | 0 ...6-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 4 +- ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0450-Add-TargetHitEvent.patch} | 0 ... 0451-MC-4-Fix-item-position-desync.patch} | 0 ... 0452-Additional-Block-Material-API.patch} | 0 ...tch => 0453-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0459-Zombie-API-breaking-doors.patch} | 0 ...460-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0461-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0462-Add-WorldGameRuleChangeEvent.patch} | 0 ...63-Add-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0465-Add-BlockFailedDispenseEvent.patch} | 6 +- ...66-Add-PlayerLecternPageChangeEvent.patch} | 2 +- ...67-Add-PlayerLoomPatternSelectEvent.patch} | 2 +- ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0470-Remove-stale-POIs.patch} | 0 ...h => 0471-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0472-Add-sendOpLevel-API.patch} | 4 +- ...istryAccess-for-managing-Registries.patch} | 31 +- ...h => 0474-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 0 ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...478-Make-schedule-command-per-world.patch} | 0 ...479-Configurable-max-leash-distance.patch} | 0 ...h => 0480-Add-BlockPreDispenseEvent.patch} | 6 +- ...1-Add-PlayerChangeBeaconEffectEvent.patch} | 2 +- ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 2 +- ...h => 0484-Expand-EntityUnleashEvent.patch} | 4 +- ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0486-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0487-Add-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 0 ... 0489-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 4 +- ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0495-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0496-Improve-ServerGUI.patch} | 0 ...497-fix-converting-txt-to-json-file.patch} | 2 +- ...atch => 0498-Add-worldborder-events.patch} | 0 ...h => 0499-Add-PlayerNameEntityEvent.patch} | 0 ...h => 0500-Add-recipe-to-cook-events.patch} | 0 ...patch => 0501-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0503-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0508-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0511-Add-bypass-host-check.patch} | 0 ...0512-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 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ...ch => 0518-Add-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0519-More-World-API.patch} | 0 ...=> 0520-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0526-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ... => 0529-Add-HiddenPotionEffect-API.patch} | 0 ...close.patch => 0530-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0532-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...34-Expand-PlayerGameModeChangeEvent.patch} | 0 ... => 0535-ItemStack-repair-check-API.patch} | 0 ....patch => 0536-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...PI.patch => 0538-Add-Mob-lookAt-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...0540-Add-Unix-domain-socket-support.patch} | 0 ... => 0541-Add-EntityInsideBlockEvent.patch} | 4 +- ...-Improve-item-default-attribute-API.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0544-More-Lidded-Block-API.patch} | 0 ...45-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0546-Add-PlayerKickEvent-causes.patch} | 0 ...0547-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0551-Add-BellRevealRaiderEvent.patch} | 0 ... 0552-Fix-invulnerable-end-crystals.patch} | 0 ...53-Add-ElderGuardianAppearanceEvent.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...patch => 0555-Line-Of-Sight-Changes.patch} | 0 ... => 0556-add-per-world-spawn-limits.patch} | 0 ...h => 0557-Fix-potions-splash-events.patch} | 4 +- ... => 0558-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0560-Missing-Entity-API.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 2 +- ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0564-Add-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 2 +- ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0568-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0569-Stinger-API.patch} | 0 ... => 0570-Add-System.out-err-catcher.patch} | 2 +- ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0573-Add-PlayerSetSpawnEvent.patch} | 2 +- ...rs-respect-inventory-max-stack-size.patch} | 4 +- ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0577-Add-EntityDamageItemEvent.patch} | 2 +- ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0581-Add-BlockBreakBlockEvent.patch} | 0 ...-data-components-copy-in-smithing-r.patch} | 0 ...patch => 0583-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0585-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0587-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0588-Left-handed-API.patch} | 0 ...ch => 0589-Add-more-advancement-API.patch} | 4 +- ...590-Add-ItemFactory-getSpawnEgg-API.patch} | 4 +- ...tch => 0591-Add-critical-damage-API.patch} | 8 +- ...0592-Fix-issues-with-mob-conversion.patch} | 0 ...Collision-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0594-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...6-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...97-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...99-Fix-GameProfileCache-concurrency.patch} | 0 ...600-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0608-Time-scoreboard-search.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...h => 0610-Add-missing-InventoryType.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0615-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0617-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0622-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0625-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0627-Configurable-feature-seeds.patch} | 0 ... 0628-Add-root-admin-user-detection.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 ...=> 0632-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0634-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0635-Optimize-HashMapPalette.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0637-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0640-Improve-scoreboard-entries.patch} | 0 ...ch => 0641-Entity-powdered-snow-API.patch} | 0 ...0642-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...le-API.patch => 0646-Bucketable-API.patch} | 0 ...es.patch => 0647-Validate-usernames.patch} | 2 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...2-Multiple-Entries-with-Scoreboards.patch} | 0 ...653-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0655-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 2 +- ...ent.patch => 0657-Fix-NotePlayEvent.patch} | 0 ....patch => 0658-Freeze-Tick-Lock-API.patch} | 0 ...h => 0659-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 2 +- ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0665-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0667-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} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ...s.patch => 0672-Custom-Potion-Mixes.patch} | 2 +- ...73-Force-close-world-loading-screen.patch} | 2 +- ...674-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0677-More-Projectile-API.patch} | 6 +- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0680-Implement-getComputedBiome-API.patch} | 0 ...> 0681-Make-some-itemstacks-nonnull.patch} | 0 ...682-Implement-enchantWithLevels-API.patch} | 0 ...h => 0683-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0684-Buffer-OOB-setBlock-calls.patch} | 0 ... 0685-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 4 +- ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...s.patch => 0689-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...> 0694-Expand-PlayerItemDamageEvent.patch} | 2 +- ...> 0695-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.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 ...> 0701-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0702-Don-t-tick-markers.patch} | 0 ...tch => 0703-Expand-FallingBlock-API.patch} | 0 ...0704-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0707-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 0 ...11-Dont-resent-entity-on-art-update.patch} | 0 ... => 0712-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0715-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 ...atch => 0719-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0722-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0724-More-Teleport-API.patch} | 4 +- ... => 0725-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 2 +- ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0731-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0733-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...735-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0739-Missing-eating-regain-reason.patch} | 0 ....patch => 0740-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...3-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0744-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 4 +- ... 0746-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0748-Add-getDrops-to-BlockState.patch} | 0 ...=> 0749-Fix-a-bunch-of-vanilla-bugs.patch} | 6 +- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0751-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0752-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 6 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0755-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0757-Add-entity-knockback-API.patch} | 0 ....patch => 0758-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0760-Add-EntityToggleSitEvent.patch} | 0 ... => 0761-Add-fire-tick-delay-option.patch} | 14 +- ...patch => 0762-Add-Moving-Piston-API.patch} | 0 ...> 0763-Ignore-impossible-spawn-tick.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 4 +- ...0766-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ... 0768-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 0 ...770-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0773-ItemStack-damage-API.patch} | 2 +- ...tion-API.patch => 0774-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...-premature-player-kicks-on-shutdown.patch} | 0 ... => 0777-Sync-offhand-slot-in-menus.patch} | 0 ... 0778-Player-Entity-Tracking-Events.patch} | 0 ...tch => 0779-Limit-pet-look-distance.patch} | 0 ...ments.patch => 0780-fix-Instruments.patch} | 2 +- ...for-some-hot-BlockBehavior-and-Flui.patch} | 8 +- ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0783-Add-BlockLockCheckEvent.patch} | 0 ... 0784-Add-Sneaking-API-for-Entities.patch} | 2 +- ... => 0785-Improve-logging-and-errors.patch} | 0 ....patch => 0786-Improve-PortalEvents.patch} | 0 ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0790-Flying-Fall-Damage.patch} | 2 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0795-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0798-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...=> 0800-Add-EntityFertilizeEggEvent.patch} | 4 +- ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...805-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 2 +- ...API.patch => 0807-Add-Shearable-API.patch} | 2 +- ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0813-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0816-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...19-More-accurate-isInOpenWater-impl.patch} | 0 ... => 0820-Expand-PlayerItemMendEvent.patch} | 4 +- ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0822-Add-transient-modifier-API.patch} | 0 ...patch => 0823-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 2 +- ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...1-Add-event-for-player-editing-sign.patch} | 2 +- ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...835-Call-missing-BlockDispenseEvent.patch} | 4 +- ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 0 ...838-Add-Sign-getInteractableSideFor.patch} | 0 ...9-fix-item-meta-for-tadpole-buckets.patch} | 6 +- ...t-API.patch => 0840-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 4 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0846-Add-whitelist-events.patch} | 0 ... 0847-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 0 ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...852-Only-capture-actual-tree-growth.patch} | 4 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0857-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0859-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0860-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0867-Add-Listing-API-for-Player.patch} | 4 +- ...figurable-Region-Compression-Format.patch} | 0 ...9-Add-BlockFace-to-BlockDamageEvent.patch} | 4 +- ...h => 0870-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0871-Expand-Pose-API.patch} | 0 ...patch => 0872-More-DragonBattle-API.patch} | 0 ...tch => 0873-Add-PlayerPickItemEvent.patch} | 0 ...=> 0874-Allow-trident-custom-damage.patch} | 0 ...5-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0878-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 6 +- ...80-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0887-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 10 +- ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...96-Fix-UnsafeValues-loadAdvancement.patch} | 2 +- ...> 0897-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 0901-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 0905-Expand-LingeringPotion-API.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...909-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 2 +- ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 0 ...tch => 0913-Add-Structure-check-API.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 4 +- ...store-vanilla-entity-drops-behavior.patch} | 8 +- ...-Dont-resend-blocks-on-interactions.patch} | 2 +- ...tch => 0917-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0918-Improve-Registry.patch} | 8 +- ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 0920-Add-experience-points-API.patch} | 2 +- ...h => 0921-Add-drops-to-shear-events.patch} | 4 +- ...> 0922-Add-PlayerShieldDisableEvent.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 4 +- ...> 0925-Fixup-NamespacedKey-handling.patch} | 27 +- ...26-Expose-LootTable-of-DecoratedPot.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 2 +- ...h => 0929-Add-ShulkerDuplicateEvent.patch} | 0 ...dd-api-for-spawn-egg-texture-colors.patch} | 0 ... => 0931-Add-Lifecycle-Event-system.patch} | 0 ...patch => 0932-ItemStack-Tooltip-API.patch} | 0 ...Snapshot-includeLightData-parameter.patch} | 0 ...PI.patch => 0934-Add-FluidState-API.patch} | 0 ...patch => 0935-add-number-format-api.patch} | 0 ...patch => 0936-improve-BanList-types.patch} | 0 ...I.patch => 0937-Expanded-Hopper-API.patch} | 0 ...8-Add-BlockBreakProgressUpdateEvent.patch} | 0 ...=> 0939-Deprecate-ItemStack-setType.patch} | 0 ...ch => 0940-Add-CartographyItemEvent.patch} | 0 ...aid-API.patch => 0941-More-Raid-API.patch} | 0 ...ng-message-for-initial-server-start.patch} | 0 ...-Configurable-max-block-fluid-ticks.patch} | 0 ...=> 0944-Fix-bees-aging-inside-hives.patch} | 0 ...5-Disable-memory-reserve-allocating.patch} | 0 ...ByEntityEvent-for-unowned-wither-sk.patch} | 0 ....patch => 0947-Fix-DamageSource-API.patch} | 4 +- ...nvalid-block-entity-during-world-ge.patch} | 0 ...ackOverflowError-for-some-dispenses.patch} | 0 ...=> 0950-Improve-tag-parser-handling.patch} | 0 ...s.patch => 0951-Item-Mutation-Fixes.patch} | 6 +- ...-Per-world-ticks-per-spawn-settings.patch} | 2 +- ...e-changed-item-from-dispense-events.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 10 +- ...e-disarming-not-working-as-intended.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ... => 0957-Deep-clone-nbt-tags-in-PDC.patch} | 4 +- ...958-Support-old-UUID-format-for-NBT.patch} | 2 +- ...59-Fix-shield-disable-inconsistency.patch} | 0 ...-Large-Packets-disconnecting-client.patch} | 0 ...emFlags.patch => 0961-Fix-ItemFlags.patch} | 20 +- ...h => 0962-Fix-Player-setBlockUpdate.patch} | 2 +- ...et-damage-reduction-inconsistencies.patch} | 4 +- ...-handling-of-LivingEntity-actuallyH.patch} | 0 ...e-checking-handled-tags-in-itemmeta.patch} | 42 +- ...atch => 0966-General-ItemMeta-fixes.patch} | 411 +++++++++++++++--- ...67-Expose-hasColor-to-leather-armor.patch} | 0 ...-API-to-get-player-ha-proxy-address.patch} | 2 +- ....patch => 0969-More-Chest-Block-API.patch} | 0 ...ta-component-type-on-encoding-error.patch} | 0 ...=> 0971-Brigadier-based-command-API.patch} | 0 ... => 0972-Fix-issues-with-Recipe-API.patch} | 0 ...73-Fix-equipment-slot-and-group-API.patch} | 6 +- ...lugin-to-use-Paper-PluginLoader-API.patch} | 4 +- ...versized-item-data-in-equipment-and.patch} | 0 ...nt-NPE-if-hooked-entity-was-cleared.patch} | 0 ...ng-BlockPlaceEvent-calling-onRemove.patch} | 4 +- ...978-Add-missing-fishing-event-state.patch} | 0 ...ate-InvAction-HOTBAR_MOVE_AND_READD.patch} | 0 ...nnect-packet-in-phases-where-it-doe.patch} | 0 ...tch => 0981-Adopt-MaterialRerouting.patch} | 0 ...=> 0982-Suspicious-Effect-Entry-API.patch} | 0 ...eck-if-itemstack-is-stackable-first.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...mage-tick-when-blocking-with-shield.patch} | 0 ...he-experimental-smithing-inventory-.patch} | 0 ... 0987-Moonrise-optimisation-patches.patch} | 8 +- ...> 0988-Rewrite-dataconverter-system.patch} | 0 ...89-disable-forced-empty-world-ticks.patch} | 0 ...dBounds-and-getBlockState-for-inlin.patch} | 2 +- ...tem-frames-performance-and-bug-fixe.patch} | 0 ...ing-for-EntityLiving-hasLineOfSight.patch} | 2 +- ...Manager-and-add-advanced-packet-sup.patch} | 0 ...94-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...995-Flat-bedrock-generator-settings.patch} | 0 ...=> 0996-Entity-Activation-Range-2.0.patch} | 0 ...0997-Optional-per-player-mob-spawns.patch} | 0 ...9-Anti-Xray.patch => 0998-Anti-Xray.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 0 ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...pers.patch => 1005-Optimize-Hoppers.patch} | 44 +- ...06-Entity-load-save-limit-per-chunk.patch} | 0 ...> 1007-Optimize-Voxel-Shape-Merging.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1009-Remove-streams-from-hot-code.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...-Oversized-block-entities-in-chunks.patch} | 0 ...> 1014-API-for-checking-sent-chunks.patch} | 0 ...eck-distance-in-entity-interactions.patch} | 0 ...ch => 1016-Configurable-Sand-Duping.patch} | 0 ...=> 1017-Optimise-general-POI-access.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...ch => 1019-Properly-resend-entities.patch} | 0 ...h => 1020-Registry-Modification-API.patch} | 12 +- ...021-Add-registry-entry-and-builders.patch} | 8 +- ...h => 1022-Improved-Watchdog-Support.patch} | 0 ...3-Proxy-ItemStack-to-CraftItemStack.patch} | 0 ...-accessible-directly-from-ItemStack.patch} | 0 ...aft-commands-in-function-parsing-an.patch} | 0 ...26-optimize-dirt-and-snow-spreading.patch} | 0 ... 1027-Fix-NPE-for-Jukebox-setRecord.patch} | 0 ...028-Fix-CraftWorld-isChunkGenerated.patch} | 0 ...patch => 1029-fix-horse-inventories.patch} | 0 ...ityDamageEvents-before-actuallyHurt.patch} | 0 ...r-desync-when-new-players-are-added.patch} | 0 ...atch => 1032-Lag-compensation-ticks.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 0 ...ch => 1034-Write-SavedData-IO-async.patch} | 0 ...Correctly-call-PlayerItemBreakEvent.patch} | 2 +- ... => 1036-Add-ItemType-getItemRarity.patch} | 0 ...Incremental-chunk-and-player-saving.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...le-spark.patch => 1039-Bundle-spark.patch} | 0 ... => 1040-Add-plugin-info-at-startup.patch} | 0 ...mplexRecipe-to-extend-CraftingRecipe.patch | 50 --- .../server/1041-Add-CrafterCraftEvent.patch | 31 -- ...tion-leniency-distance-configurable.patch} | 0 ...1042-Fix-PickupStatus-getting-reset.patch} | 0 ...ype-in-SculkSensorBlock-canActivate.patch} | 0 work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 705 files changed, 1009 insertions(+), 870 deletions(-) rename patches/api/{0483-Fix-PickupStatus-getting-reset.patch => 0481-Fix-PickupStatus-getting-reset.patch} (100%) delete mode 100644 patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch delete mode 100644 patches/api/0482-Add-CrafterCraftEvent.patch rename patches/server/{0406-Add-more-Evoker-API.patch => 0405-Add-more-Evoker-API.patch} (100%) delete mode 100644 patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch rename patches/server/{0407-Add-methods-to-get-translation-keys.patch => 0406-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0408-Create-HoverEvent-from-ItemStack-Entity.patch => 0407-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0409-Cache-block-data-strings.patch => 0408-Cache-block-data-strings.patch} (100%) rename patches/server/{0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/server/{0411-Add-additional-open-container-api-to-HumanEntity.patch => 0410-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0413-Extend-block-drop-capture-to-capture-all-items-added.patch => 0412-Extend-block-drop-capture-to-capture-all-items-added.patch} (100%) rename patches/server/{0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/server/{0415-Lazily-track-plugin-scoreboards-by-default.patch => 0414-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0416-Entity-isTicking.patch => 0415-Entity-isTicking.patch} (100%) rename patches/server/{0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0418-Fix-Concurrency-issue-in-ShufflingList.patch => 0417-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0420-Fix-for-large-move-vectors-crashing-server.patch => 0419-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0421-Optimise-getType-calls.patch => 0420-Optimise-getType-calls.patch} (100%) rename patches/server/{0422-Villager-resetOffers.patch => 0421-Villager-resetOffers.patch} (100%) rename patches/server/{0423-Retain-block-place-order-when-capturing-blockstates.patch => 0422-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0424-Fix-item-locations-dropped-from-campfires.patch => 0423-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0425-Fix-bell-block-entity-memory-leak.patch => 0424-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0427-Add-getOfflinePlayerIfCached-String.patch => 0426-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0428-Add-ignore-discounts-API.patch => 0427-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0429-Toggle-for-removing-existing-dragon.patch => 0428-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0430-Fix-client-lag-on-advancement-loading.patch => 0429-Fix-client-lag-on-advancement-loading.patch} (95%) rename patches/server/{0431-Item-no-age-no-player-pickup.patch => 0430-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0432-Beacon-API-custom-effect-ranges.patch => 0431-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0433-Add-API-for-quit-reason.patch => 0432-Add-API-for-quit-reason.patch} (98%) rename patches/server/{0434-Add-Wandering-Trader-spawn-rate-config-options.patch => 0433-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0435-Add-Destroy-Speed-API.patch => 0434-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (93%) rename patches/server/{0437-Add-LivingEntity-clearActiveItem.patch => 0436-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0438-Add-PlayerItemCooldownEvent.patch => 0437-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0439-Significantly-improve-performance-of-the-end-generat.patch => 0438-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0440-More-lightning-API.patch => 0439-More-lightning-API.patch} (100%) rename patches/server/{0441-Climbing-should-not-bypass-cramming-gamerule.patch => 0440-Climbing-should-not-bypass-cramming-gamerule.patch} (100%) rename patches/server/{0442-Add-missing-default-perms-for-commands.patch => 0441-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0443-Add-PlayerShearBlockEvent.patch => 0442-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0444-Limit-recipe-packets.patch => 0443-Limit-recipe-packets.patch} (100%) rename patches/server/{0445-Fix-CraftSound-backwards-compatibility.patch => 0444-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0446-Player-Chunk-Load-Unload-Events.patch => 0445-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0447-Optimize-Dynamic-get-Missing-Keys.patch => 0446-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0448-Expose-LivingEntity-hurt-direction.patch => 0447-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (86%) rename patches/server/{0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0451-Add-TargetHitEvent.patch => 0450-Add-TargetHitEvent.patch} (100%) rename patches/server/{0452-MC-4-Fix-item-position-desync.patch => 0451-MC-4-Fix-item-position-desync.patch} (100%) rename patches/server/{0453-Additional-Block-Material-API.patch => 0452-Additional-Block-Material-API.patch} (100%) rename patches/server/{0454-Fix-harming-potion-dupe.patch => 0453-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0455-API-to-get-Material-from-Boats-and-Minecarts.patch => 0454-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0457-Fix-Not-a-string-Map-Conversion-spam.patch => 0456-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0458-Add-PlayerFlowerPotManipulateEvent.patch => 0457-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0459-Fix-interact-event-not-being-called-sometimes.patch => 0458-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/server/{0460-Zombie-API-breaking-doors.patch => 0459-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0461-Fix-nerfed-slime-when-splitting.patch => 0460-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0462-Add-EntityLoadCrossbowEvent.patch => 0461-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0463-Add-WorldGameRuleChangeEvent.patch => 0462-Add-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0464-Add-ServerResourcesReloadedEvent.patch => 0463-Add-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0465-Add-world-settings-for-mobs-picking-up-loot.patch => 0464-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0466-Add-BlockFailedDispenseEvent.patch => 0465-Add-BlockFailedDispenseEvent.patch} (92%) rename patches/server/{0467-Add-PlayerLecternPageChangeEvent.patch => 0466-Add-PlayerLecternPageChangeEvent.patch} (96%) rename patches/server/{0468-Add-PlayerLoomPatternSelectEvent.patch => 0467-Add-PlayerLoomPatternSelectEvent.patch} (96%) rename patches/server/{0469-Configurable-door-breaking-difficulty.patch => 0468-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0470-Empty-commands-shall-not-be-dispatched.patch => 0469-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0471-Remove-stale-POIs.patch => 0470-Remove-stale-POIs.patch} (100%) rename patches/server/{0472-Fix-villager-boat-exploit.patch => 0471-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0473-Add-sendOpLevel-API.patch => 0472-Add-sendOpLevel-API.patch} (92%) rename patches/server/{0474-Add-RegistryAccess-for-managing-Registries.patch => 0473-Add-RegistryAccess-for-managing-Registries.patch} (98%) rename patches/server/{0475-Add-StructuresLocateEvent.patch => 0474-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0476-Collision-option-for-requiring-a-player-participant.patch => 0475-Collision-option-for-requiring-a-player-participant.patch} (100%) rename patches/server/{0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0478-Return-chat-component-with-empty-text-instead-of-thr.patch => 0477-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0479-Make-schedule-command-per-world.patch => 0478-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0480-Configurable-max-leash-distance.patch => 0479-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0481-Add-BlockPreDispenseEvent.patch => 0480-Add-BlockPreDispenseEvent.patch} (92%) rename patches/server/{0482-Add-PlayerChangeBeaconEffectEvent.patch => 0481-Add-PlayerChangeBeaconEffectEvent.patch} (96%) rename patches/server/{0483-Add-toggle-for-always-placing-the-dragon-egg.patch => 0482-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0484-Add-PlayerStonecutterRecipeSelectEvent.patch => 0483-Add-PlayerStonecutterRecipeSelectEvent.patch} (97%) rename patches/server/{0485-Expand-EntityUnleashEvent.patch => 0484-Expand-EntityUnleashEvent.patch} (98%) rename patches/server/{0486-Reset-shield-blocking-on-dimension-change.patch => 0485-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0487-Add-DragonEggFormEvent.patch => 0486-Add-DragonEggFormEvent.patch} (100%) rename patches/server/{0488-Add-EntityMoveEvent.patch => 0487-Add-EntityMoveEvent.patch} (100%) rename patches/server/{0489-added-option-to-disable-pathfinding-updates-on-block.patch => 0488-added-option-to-disable-pathfinding-updates-on-block.patch} (100%) rename patches/server/{0490-Inline-shift-direction-fields.patch => 0489-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0491-Allow-adding-items-to-BlockDropItemEvent.patch => 0490-Allow-adding-items-to-BlockDropItemEvent.patch} (93%) rename patches/server/{0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0493-living-entity-allow-attribute-registration.patch => 0492-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0494-fix-dead-slime-setSize-invincibility.patch => 0493-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0495-Merchant-getRecipes-should-return-an-immutable-list.patch => 0494-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0496-Expose-Tracked-Players.patch => 0495-Expose-Tracked-Players.patch} (100%) rename patches/server/{0497-Improve-ServerGUI.patch => 0496-Improve-ServerGUI.patch} (100%) rename patches/server/{0498-fix-converting-txt-to-json-file.patch => 0497-fix-converting-txt-to-json-file.patch} (97%) rename patches/server/{0499-Add-worldborder-events.patch => 0498-Add-worldborder-events.patch} (100%) rename patches/server/{0500-Add-PlayerNameEntityEvent.patch => 0499-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0501-Add-recipe-to-cook-events.patch => 0500-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0502-Add-Block-isValidTool.patch => 0501-Add-Block-isValidTool.patch} (100%) rename patches/server/{0503-Allow-using-signs-inside-spawn-protection.patch => 0502-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/server/{0504-Expand-world-key-API.patch => 0503-Expand-world-key-API.patch} (100%) rename patches/server/{0505-Add-fast-alternative-constructor-for-Rotations.patch => 0504-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0506-Drop-carried-item-when-player-has-disconnected.patch => 0505-Drop-carried-item-when-player-has-disconnected.patch} (93%) rename patches/server/{0507-forced-whitelist-use-configurable-kick-message.patch => 0506-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0509-Expose-protocol-version.patch => 0508-Expose-protocol-version.patch} (100%) rename patches/server/{0510-Enhance-console-tab-completions-for-brigadier-comman.patch => 0509-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0512-Add-bypass-host-check.patch => 0511-Add-bypass-host-check.patch} (100%) rename patches/server/{0513-Set-area-affect-cloud-rotation.patch => 0512-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0514-add-isDeeplySleeping-to-HumanEntity.patch => 0513-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0515-add-consumeFuel-to-FurnaceBurnEvent.patch => 0514-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0516-add-get-set-drop-chance-to-EntityEquipment.patch => 0515-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0517-fix-PigZombieAngerEvent-cancellation.patch => 0516-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0518-fix-PlayerItemHeldEvent-firing-twice.patch => 0517-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0519-Add-PlayerDeepSleepEvent.patch => 0518-Add-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0520-More-World-API.patch => 0519-More-World-API.patch} (100%) rename patches/server/{0521-Add-PlayerBedFailEnterEvent.patch => 0520-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0522-Implement-methods-to-convert-between-Component-and-B.patch => 0521-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/server/{0524-Introduce-beacon-activation-deactivation-events.patch => 0523-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0525-Add-Channel-initialization-listeners.patch => 0524-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0526-Send-empty-commands-if-tab-completion-is-disabled.patch => 0525-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0527-Add-more-WanderingTrader-API.patch => 0526-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0528-Add-EntityBlockStorage-clearEntities.patch => 0527-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0530-Add-HiddenPotionEffect-API.patch => 0529-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{0531-Inventory-close.patch => 0530-Inventory-close.patch} (100%) rename patches/server/{0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0533-Add-basic-Datapack-API.patch => 0532-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0534-Add-environment-variable-to-disable-server-gui.patch => 0533-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0535-Expand-PlayerGameModeChangeEvent.patch => 0534-Expand-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0536-ItemStack-repair-check-API.patch => 0535-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0537-More-Enchantment-API.patch => 0536-More-Enchantment-API.patch} (100%) rename patches/server/{0538-Move-range-check-for-block-placing-up.patch => 0537-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0539-Add-Mob-lookAt-API.patch => 0538-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{0541-Add-Unix-domain-socket-support.patch => 0540-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0542-Add-EntityInsideBlockEvent.patch => 0541-Add-EntityInsideBlockEvent.patch} (99%) rename patches/server/{0543-Improve-item-default-attribute-API.patch => 0542-Improve-item-default-attribute-API.patch} (100%) rename patches/server/{0544-Add-cause-to-Weather-ThunderChangeEvents.patch => 0543-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0545-More-Lidded-Block-API.patch => 0544-More-Lidded-Block-API.patch} (100%) rename patches/server/{0546-Limit-item-frame-cursors-on-maps.patch => 0545-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0547-Add-PlayerKickEvent-causes.patch => 0546-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0548-Add-PufferFishStateChangeEvent.patch => 0547-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0551-Add-option-to-fix-items-merging-through-walls.patch => 0550-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0552-Add-BellRevealRaiderEvent.patch => 0551-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0553-Fix-invulnerable-end-crystals.patch => 0552-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0554-Add-ElderGuardianAppearanceEvent.patch => 0553-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0556-Line-Of-Sight-Changes.patch => 0555-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0557-add-per-world-spawn-limits.patch => 0556-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0558-Fix-potions-splash-events.patch => 0557-Fix-potions-splash-events.patch} (98%) rename patches/server/{0559-Add-more-LimitedRegion-API.patch => 0558-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0560-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0559-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0561-Missing-Entity-API.patch => 0560-Missing-Entity-API.patch} (100%) rename patches/server/{0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0563-Use-getChunkIfLoadedImmediately-in-places.patch => 0562-Use-getChunkIfLoadedImmediately-in-places.patch} (97%) rename patches/server/{0564-Fix-commands-from-signs-not-firing-command-events.patch => 0563-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0565-Add-PlayerArmSwingEvent.patch => 0564-Add-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0566-Fix-kick-event-leave-message-not-being-sent.patch => 0565-Fix-kick-event-leave-message-not-being-sent.patch} (98%) rename patches/server/{0567-Don-t-apply-cramming-damage-to-players.patch => 0566-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0568-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0567-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0569-Add-missing-forceDrop-toggles.patch => 0568-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0570-Stinger-API.patch => 0569-Stinger-API.patch} (100%) rename patches/server/{0571-Add-System.out-err-catcher.patch => 0570-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0572-Prevent-AFK-kick-while-watching-end-credits.patch => 0571-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0573-Allow-skipping-writing-of-comments-to-server.propert.patch => 0572-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0574-Add-PlayerSetSpawnEvent.patch => 0573-Add-PlayerSetSpawnEvent.patch} (99%) rename patches/server/{0575-Make-hoppers-respect-inventory-max-stack-size.patch => 0574-Make-hoppers-respect-inventory-max-stack-size.patch} (91%) rename patches/server/{0576-Optimize-entity-tracker-passenger-checks.patch => 0575-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0577-Config-option-for-Piglins-guarding-chests.patch => 0576-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0578-Add-EntityDamageItemEvent.patch => 0577-Add-EntityDamageItemEvent.patch} (98%) rename patches/server/{0579-Optimize-indirect-passenger-iteration.patch => 0578-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0580-Configurable-item-frame-map-cursor-update-interval.patch => 0579-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0581-Change-EnderEye-target-without-changing-other-things.patch => 0580-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0582-Add-BlockBreakBlockEvent.patch => 0581-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0583-Option-to-prevent-data-components-copy-in-smithing-r.patch => 0582-Option-to-prevent-data-components-copy-in-smithing-r.patch} (100%) rename patches/server/{0584-More-CommandBlock-API.patch => 0583-More-CommandBlock-API.patch} (100%) rename patches/server/{0585-Add-missing-team-sidebar-display-slots.patch => 0584-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0586-Add-back-EntityPortalExitEvent.patch => 0585-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0587-Add-methods-to-find-targets-for-lightning-strikes.patch => 0586-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0588-Get-entity-default-attributes.patch => 0587-Get-entity-default-attributes.patch} (100%) rename patches/server/{0589-Left-handed-API.patch => 0588-Left-handed-API.patch} (100%) rename patches/server/{0590-Add-more-advancement-API.patch => 0589-Add-more-advancement-API.patch} (98%) rename patches/server/{0591-Add-ItemFactory-getSpawnEgg-API.patch => 0590-Add-ItemFactory-getSpawnEgg-API.patch} (96%) rename patches/server/{0592-Add-critical-damage-API.patch => 0591-Add-critical-damage-API.patch} (96%) rename patches/server/{0593-Fix-issues-with-mob-conversion.patch => 0592-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0594-Add-hasCollision-methods-to-various-places.patch => 0593-Add-hasCollision-methods-to-various-places.patch} (100%) rename patches/server/{0595-Goat-ram-API.patch => 0594-Goat-ram-API.patch} (100%) rename patches/server/{0596-Add-API-for-resetting-a-single-score.patch => 0595-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0597-Add-Raw-Byte-Entity-Serialization.patch => 0596-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0598-Vanilla-command-permission-fixes.patch => 0597-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0600-Fix-GameProfileCache-concurrency.patch => 0599-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0601-Improve-and-expand-AsyncCatcher.patch => 0600-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/server/{0602-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0601-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0603-Sanitize-ResourceLocation-error-logging.patch => 0602-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0604-Manually-inline-methods-in-BlockPosition.patch => 0603-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0605-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0604-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0609-Time-scoreboard-search.patch => 0608-Time-scoreboard-search.patch} (100%) rename patches/server/{0610-Oprimise-map-impl-for-tracked-players.patch => 0609-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0611-Add-missing-InventoryType.patch => 0610-Add-missing-InventoryType.patch} (100%) rename patches/server/{0612-Optimise-BlockSoil-nearby-water-lookup.patch => 0611-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0614-Check-requirement-before-suggesting-root-nodes.patch => 0613-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0616-Add-packet-limiter-config.patch => 0615-Add-packet-limiter-config.patch} (100%) rename patches/server/{0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0618-Ensure-valid-vehicle-status.patch => 0617-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0619-Prevent-softlocked-end-exit-portal-generation.patch => 0618-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0621-Don-t-log-debug-logging-being-disabled.patch => 0620-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0622-fix-various-menus-with-empty-level-accesses.patch => 0621-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0623-Preserve-overstacked-loot.patch => 0622-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0624-Update-head-rotation-in-missing-places.patch => 0623-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0625-prevent-unintended-light-block-manipulation.patch => 0624-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0626-Fix-CraftCriteria-defaults-map.patch => 0625-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0627-Fix-upstreams-block-state-factories.patch => 0626-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0628-Configurable-feature-seeds.patch => 0627-Configurable-feature-seeds.patch} (100%) rename patches/server/{0629-Add-root-admin-user-detection.patch => 0628-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0630-don-t-attempt-to-teleport-dead-entities.patch => 0629-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0631-Prevent-excessive-velocity-through-repeated-crits.patch => 0630-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0632-Remove-client-side-code-using-deprecated-for-removal.patch => 0631-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0633-Fix-Spigot-growth-modifiers.patch => 0632-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0635-Add-PlayerItemFrameChangeEvent.patch => 0634-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0636-Optimize-HashMapPalette.patch => 0635-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0638-Add-more-Campfire-API.patch => 0637-Add-more-Campfire-API.patch} (100%) rename patches/server/{0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0640-Forward-CraftEntity-in-teleport-command.patch => 0639-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0641-Improve-scoreboard-entries.patch => 0640-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0642-Entity-powdered-snow-API.patch => 0641-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0643-Add-API-for-item-entity-health.patch => 0642-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0644-Configurable-max-block-light-for-monster-spawning.patch => 0643-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0647-Bucketable-API.patch => 0646-Bucketable-API.patch} (100%) rename patches/server/{0648-Validate-usernames.patch => 0647-Validate-usernames.patch} (97%) rename patches/server/{0649-Make-water-animal-spawn-height-configurable.patch => 0648-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0651-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0650-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0653-Multiple-Entries-with-Scoreboards.patch => 0652-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0654-Reset-placed-block-on-exception.patch => 0653-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0655-Add-configurable-height-for-slime-spawn.patch => 0654-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0656-Fix-xp-reward-for-baby-zombies.patch => 0655-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0657-Multi-Block-Change-API-Implementation.patch => 0656-Multi-Block-Change-API-Implementation.patch} (97%) rename patches/server/{0658-Fix-NotePlayEvent.patch => 0657-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0659-Freeze-Tick-Lock-API.patch => 0658-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0660-More-PotionEffectType-API.patch => 0659-More-PotionEffectType-API.patch} (100%) rename patches/server/{0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0662-API-for-creating-command-sender-which-forwards-feedb.patch => 0661-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0663-Add-missing-structure-set-seed-configs.patch => 0662-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0664-Fix-cancelled-powdered-snow-bucket-placement.patch => 0663-Fix-cancelled-powdered-snow-bucket-placement.patch} (95%) rename patches/server/{0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0666-Add-GameEvent-tags.patch => 0665-Add-GameEvent-tags.patch} (100%) rename patches/server/{0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0668-Furnace-RecipesUsed-API.patch => 0667-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0669-Configurable-sculk-sensor-listener-range.patch => 0668-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0670-Add-missing-block-data-mins-and-maxes.patch => 0669-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0672-Put-world-into-worldlist-before-initing-the-world.patch => 0671-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0673-Custom-Potion-Mixes.patch => 0672-Custom-Potion-Mixes.patch} (99%) rename patches/server/{0674-Force-close-world-loading-screen.patch => 0673-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0675-Fix-falling-block-spawn-methods.patch => 0674-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0676-Expose-furnace-minecart-push-values.patch => 0675-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0678-More-Projectile-API.patch => 0677-More-Projectile-API.patch} (99%) rename patches/server/{0679-Fix-swamp-hut-cat-generation-deadlock.patch => 0678-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0681-Implement-getComputedBiome-API.patch => 0680-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0682-Make-some-itemstacks-nonnull.patch => 0681-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0683-Implement-enchantWithLevels-API.patch => 0682-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0684-Fix-saving-in-unloadWorld.patch => 0683-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0685-Buffer-OOB-setBlock-calls.patch => 0684-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0686-Add-TameableDeathMessageEvent.patch => 0685-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (99%) rename patches/server/{0688-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0687-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0689-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0688-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0690-cache-resource-keys.patch => 0689-cache-resource-keys.patch} (100%) rename patches/server/{0691-Allow-changing-the-EnderDragon-podium.patch => 0690-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0693-Prevent-tile-entity-copies-loading-chunks.patch => 0692-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0694-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0693-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0695-Expand-PlayerItemDamageEvent.patch => 0694-Expand-PlayerItemDamageEvent.patch} (94%) rename patches/server/{0696-WorldCreator-keepSpawnLoaded.patch => 0695-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0700-Fire-CauldronLevelChange-on-initial-fill.patch => 0699-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0701-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0700-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0702-Add-PlayerStopUsingItemEvent.patch => 0701-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0703-Don-t-tick-markers.patch => 0702-Don-t-tick-markers.patch} (100%) rename patches/server/{0704-Expand-FallingBlock-API.patch => 0703-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0705-Add-support-for-Proxy-Protocol.patch => 0704-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0706-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0705-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0708-Sanitize-sent-BlockEntity-NBT.patch => 0707-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0709-Disable-component-selector-resolving-in-books-by-def.patch => 0708-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0710-Prevent-entity-loading-causing-async-lookups.patch => 0709-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0711-Throw-exception-on-world-create-while-being-ticked.patch => 0710-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0712-Dont-resent-entity-on-art-update.patch => 0711-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0713-Add-WardenAngerChangeEvent.patch => 0712-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0714-Add-option-for-strict-advancement-dimension-checks.patch => 0713-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0715-Add-missing-important-BlockStateListPopulator-method.patch => 0714-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0716-Nameable-Banner-API.patch => 0715-Nameable-Banner-API.patch} (100%) rename patches/server/{0717-Don-t-broadcast-messages-to-command-blocks.patch => 0716-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0718-Prevent-empty-items-from-being-added-to-world.patch => 0717-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0720-Add-Player-getFishHook.patch => 0719-Add-Player-getFishHook.patch} (100%) rename patches/server/{0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0722-Add-various-missing-EntityDropItemEvent-calls.patch => 0721-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0723-Fix-Bee-flower-NPE.patch => 0722-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0725-More-Teleport-API.patch => 0724-More-Teleport-API.patch} (98%) rename patches/server/{0726-Add-EntityPortalReadyEvent.patch => 0725-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0727-Don-t-use-level-random-in-entity-constructors.patch => 0726-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0728-Send-block-entities-after-destroy-prediction.patch => 0727-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0729-Warn-on-plugins-accessing-faraway-chunks.patch => 0728-Warn-on-plugins-accessing-faraway-chunks.patch} (98%) rename patches/server/{0730-Custom-Chat-Completion-Suggestions-API.patch => 0729-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/server/{0731-Add-and-fix-missing-BlockFadeEvents.patch => 0730-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0732-Collision-API.patch => 0731-Collision-API.patch} (100%) rename patches/server/{0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0734-Block-Ticking-API.patch => 0733-Block-Ticking-API.patch} (100%) rename patches/server/{0735-Add-Velocity-IP-Forwarding-Support.patch => 0734-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0736-Add-NamespacedKey-biome-methods.patch => 0735-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0737-Fix-plugin-loggers-on-server-shutdown.patch => 0736-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0738-Stop-large-look-changes-from-crashing-the-server.patch => 0737-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0739-Fire-EntityChangeBlockEvent-in-more-places.patch => 0738-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0740-Missing-eating-regain-reason.patch => 0739-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0741-Missing-effect-cause.patch => 0740-Missing-effect-cause.patch} (100%) rename patches/server/{0742-Added-byte-array-serialization-deserialization-for-P.patch => 0741-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0744-Call-BlockPhysicsEvent-more-often.patch => 0743-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0745-Configurable-chat-thread-limit.patch => 0744-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (91%) rename patches/server/{0747-fix-Jigsaw-block-kicking-user.patch => 0746-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0748-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0747-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0749-Add-getDrops-to-BlockState.patch => 0748-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0750-Fix-a-bunch-of-vanilla-bugs.patch => 0749-Fix-a-bunch-of-vanilla-bugs.patch} (98%) rename patches/server/{0751-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0750-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0752-Fix-custom-piglin-loved-items.patch => 0751-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0753-EntityPickupItemEvent-fixes.patch => 0752-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0754-Correctly-handle-interactions-with-items-on-cooldown.patch => 0753-Correctly-handle-interactions-with-items-on-cooldown.patch} (94%) rename patches/server/{0755-Add-PlayerInventorySlotChangeEvent.patch => 0754-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0756-Elder-Guardian-appearance-API.patch => 0755-Elder-Guardian-appearance-API.patch} (90%) rename patches/server/{0757-Allow-changing-bed-s-occupied-property.patch => 0756-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0758-Add-entity-knockback-API.patch => 0757-Add-entity-knockback-API.patch} (100%) rename patches/server/{0759-Detect-headless-JREs.patch => 0758-Detect-headless-JREs.patch} (100%) rename patches/server/{0760-fix-entity-vehicle-collision-event-not-called.patch => 0759-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0761-Add-EntityToggleSitEvent.patch => 0760-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0762-Add-fire-tick-delay-option.patch => 0761-Add-fire-tick-delay-option.patch} (66%) rename patches/server/{0763-Add-Moving-Piston-API.patch => 0762-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0764-Ignore-impossible-spawn-tick.patch => 0763-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (92%) rename patches/server/{0767-Add-PrePlayerAttackEntityEvent.patch => 0766-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0768-ensure-reset-EnderDragon-boss-event-name.patch => 0767-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0769-Add-Player-Warden-Warning-API.patch => 0768-Add-Player-Warden-Warning-API.patch} (95%) rename patches/server/{0770-More-vanilla-friendly-methods-to-update-trades.patch => 0769-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0771-Add-paper-dumplisteners-command.patch => 0770-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0772-check-global-player-list-where-appropriate.patch => 0771-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0773-Fix-async-entity-add-due-to-fungus-trees.patch => 0772-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0774-ItemStack-damage-API.patch => 0773-ItemStack-damage-API.patch} (98%) rename patches/server/{0775-Friction-API.patch => 0774-Friction-API.patch} (100%) rename patches/server/{0776-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0775-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0777-Fix-premature-player-kicks-on-shutdown.patch => 0776-Fix-premature-player-kicks-on-shutdown.patch} (100%) rename patches/server/{0778-Sync-offhand-slot-in-menus.patch => 0777-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0779-Player-Entity-Tracking-Events.patch => 0778-Player-Entity-Tracking-Events.patch} (100%) rename patches/server/{0780-Limit-pet-look-distance.patch => 0779-Limit-pet-look-distance.patch} (100%) rename patches/server/{0781-fix-Instruments.patch => 0780-fix-Instruments.patch} (96%) rename patches/server/{0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (92%) rename patches/server/{0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0784-Add-BlockLockCheckEvent.patch => 0783-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0785-Add-Sneaking-API-for-Entities.patch => 0784-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/server/{0786-Improve-logging-and-errors.patch => 0785-Improve-logging-and-errors.patch} (100%) rename patches/server/{0787-Improve-PortalEvents.patch => 0786-Improve-PortalEvents.patch} (100%) rename patches/server/{0788-Add-config-option-for-spider-worldborder-climbing.patch => 0787-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0789-Add-missing-SpigotConfig-logCommands-check.patch => 0788-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0791-Flying-Fall-Damage.patch => 0790-Flying-Fall-Damage.patch} (96%) rename patches/server/{0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/server/{0793-config-for-disabling-entity-tag-tags.patch => 0792-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0794-Use-single-player-info-update-packet-on-join.patch => 0793-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0795-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0794-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0796-Win-Screen-API.patch => 0795-Win-Screen-API.patch} (93%) rename patches/server/{0797-Remove-CraftItemStack-setAmount-null-assignment.patch => 0796-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0798-Fix-force-opening-enchantment-tables.patch => 0797-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0799-Add-Entity-Body-Yaw-API.patch => 0798-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0801-Add-EntityFertilizeEggEvent.patch => 0800-Add-EntityFertilizeEggEvent.patch} (97%) rename patches/server/{0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0804-Correctly-handle-ArmorStand-invisibility.patch => 0803-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0805-Fix-advancement-triggers-for-entity-damage.patch => 0804-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0806-Fix-text-display-error-on-spawn.patch => 0805-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0807-Fix-inventories-returning-null-Locations.patch => 0806-Fix-inventories-returning-null-Locations.patch} (97%) rename patches/server/{0808-Add-Shearable-API.patch => 0807-Add-Shearable-API.patch} (98%) rename patches/server/{0809-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0808-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0811-Treat-sequence-violations-like-they-should-be.patch => 0810-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0812-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0811-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0814-Use-array-for-gamerule-storage.patch => 0813-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0815-Fix-a-couple-of-upstream-bed-issues.patch => 0814-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0816-Fix-demo-flag-not-enabling-demo-mode.patch => 0815-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0817-Add-Mob-Experience-reward-API.patch => 0816-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0818-Break-redstone-on-top-of-trap-doors-early.patch => 0817-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0820-More-accurate-isInOpenWater-impl.patch => 0819-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0821-Expand-PlayerItemMendEvent.patch => 0820-Expand-PlayerItemMendEvent.patch} (97%) rename patches/server/{0822-Refresh-ProjectileSource-for-projectiles.patch => 0821-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/server/{0823-Add-transient-modifier-API.patch => 0822-Add-transient-modifier-API.patch} (100%) rename patches/server/{0824-Fix-block-place-logic.patch => 0823-Fix-block-place-logic.patch} (97%) rename patches/server/{0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (94%) rename patches/server/{0826-Call-BlockGrowEvent-for-missing-blocks.patch => 0825-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0828-fix-MapLike-spam-for-missing-key-selector.patch => 0827-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0829-Fix-sniffer-removeExploredLocation.patch => 0828-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0830-Add-method-to-remove-all-active-potion-effects.patch => 0829-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0832-Add-event-for-player-editing-sign.patch => 0831-Add-event-for-player-editing-sign.patch} (98%) rename patches/server/{0833-Only-tick-item-frames-if-players-can-see-it.patch => 0832-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0834-Fix-cmd-permission-levels-for-command-blocks.patch => 0833-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0835-Add-option-to-disable-block-updates.patch => 0834-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0836-Call-missing-BlockDispenseEvent.patch => 0835-Call-missing-BlockDispenseEvent.patch} (97%) rename patches/server/{0837-Don-t-load-chunks-for-supporting-block-checks.patch => 0836-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/server/{0838-Optimize-player-lookups-for-beacons.patch => 0837-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0839-Add-Sign-getInteractableSideFor.patch => 0838-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0840-fix-item-meta-for-tadpole-buckets.patch => 0839-fix-item-meta-for-tadpole-buckets.patch} (93%) rename patches/server/{0841-Fix-BanList-API.patch => 0840-Fix-BanList-API.patch} (99%) rename patches/server/{0842-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0841-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0843-Fix-possible-NPE-on-painting-creation.patch => 0842-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0845-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0844-ExperienceOrb-should-call-EntitySpawnEvent.patch} (89%) rename patches/server/{0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0847-Add-whitelist-events.patch => 0846-Add-whitelist-events.patch} (100%) rename patches/server/{0848-Implement-PlayerFailMoveEvent.patch => 0847-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0849-Folia-scheduler-and-owned-region-API.patch => 0848-Folia-scheduler-and-owned-region-API.patch} (100%) rename patches/server/{0850-Only-erase-allay-memory-on-non-item-targets.patch => 0849-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0851-API-for-updating-recipes-on-clients.patch => 0850-API-for-updating-recipes-on-clients.patch} (100%) rename patches/server/{0852-Fix-rotation-when-spawning-display-entities.patch => 0851-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0853-Only-capture-actual-tree-growth.patch => 0852-Only-capture-actual-tree-growth.patch} (96%) rename patches/server/{0854-Use-correct-source-for-mushroom-block-spread-event.patch => 0853-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0855-Respect-randomizeData-on-more-entities-when-spawning.patch => 0854-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0856-Use-correct-seed-on-api-world-load.patch => 0855-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0858-Cache-map-ids-on-item-frames.patch => 0857-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0859-Fix-custom-statistic-criteria-creation.patch => 0858-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0860-Bandaid-fix-for-Effect.patch => 0859-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0861-SculkCatalyst-bloom-API.patch => 0860-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0862-API-for-an-entity-s-scoreboard-name.patch => 0861-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0863-Deprecate-and-replace-methods-with-old-StructureType.patch => 0862-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0865-Properly-handle-BlockBreakEvent-isDropItems.patch => 0864-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0866-Fire-entity-death-event-for-ender-dragon.patch => 0865-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0867-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0866-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0868-Add-Listing-API-for-Player.patch => 0867-Add-Listing-API-for-Player.patch} (98%) rename patches/server/{0869-Configurable-Region-Compression-Format.patch => 0868-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0870-Add-BlockFace-to-BlockDamageEvent.patch => 0869-Add-BlockFace-to-BlockDamageEvent.patch} (94%) rename patches/server/{0871-Fix-NPE-on-Boat-getStatus.patch => 0870-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0872-Expand-Pose-API.patch => 0871-Expand-Pose-API.patch} (100%) rename patches/server/{0873-More-DragonBattle-API.patch => 0872-More-DragonBattle-API.patch} (100%) rename patches/server/{0874-Add-PlayerPickItemEvent.patch => 0873-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0875-Allow-trident-custom-damage.patch => 0874-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0876-Expose-hand-in-BlockCanBuildEvent.patch => 0875-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0877-Optimize-nearest-structure-border-iteration.patch => 0876-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0878-Implement-OfflinePlayer-isConnected.patch => 0877-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0879-Fix-inventory-desync.patch => 0878-Fix-inventory-desync.patch} (100%) rename patches/server/{0880-Add-titleOverride-to-InventoryOpenEvent.patch => 0879-Add-titleOverride-to-InventoryOpenEvent.patch} (97%) rename patches/server/{0881-Configure-sniffer-egg-hatch-time.patch => 0880-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0882-Do-crystal-portal-proximity-check-before-entity-look.patch => 0881-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0883-Skip-POI-finding-if-stuck-in-vehicle.patch => 0882-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0884-Add-slot-sanity-checks-in-container-clicks.patch => 0883-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0885-Call-BlockRedstoneEvents-for-lecterns.patch => 0884-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0886-Allow-proper-checking-of-empty-item-stacks.patch => 0885-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0887-Fix-silent-equipment-change-for-mobs.patch => 0886-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0888-Fix-spigot-s-Forced-Stats.patch => 0887-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0889-Add-missing-InventoryHolders-to-inventories.patch => 0888-Add-missing-InventoryHolders-to-inventories.patch} (97%) rename patches/server/{0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0891-Add-missing-logs-for-log-ips-config-option.patch => 0890-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0894-Fix-team-sidebar-objectives-not-being-cleared.patch => 0893-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0895-Fix-missing-map-initialize-event-call.patch => 0894-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{0896-Update-entity-data-when-attaching-firework-to-entity.patch => 0895-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0897-Fix-UnsafeValues-loadAdvancement.patch => 0896-Fix-UnsafeValues-loadAdvancement.patch} (96%) rename patches/server/{0898-Add-player-idle-duration-API.patch => 0897-Add-player-idle-duration-API.patch} (91%) rename patches/server/{0899-Don-t-check-if-we-can-see-non-visible-entities.patch => 0898-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{0900-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0899-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{0902-Optimize-VarInts.patch => 0901-Optimize-VarInts.patch} (100%) rename patches/server/{0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0904-Add-predicate-for-blocks-when-raytracing.patch => 0903-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0905-Broadcast-take-item-packets-with-collector-as-source.patch => 0904-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{0906-Expand-LingeringPotion-API.patch => 0905-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0908-Add-hand-to-fish-event-for-all-player-interactions.patch => 0907-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0909-Fix-several-issues-with-EntityBreedEvent.patch => 0908-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0910-Add-UUID-attribute-modifier-API.patch => 0909-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0911-Fix-missing-event-call-for-entity-teleport-API.patch => 0910-Fix-missing-event-call-for-entity-teleport-API.patch} (93%) rename patches/server/{0912-Lazily-create-LootContext-for-criterions.patch => 0911-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0913-Don-t-fire-sync-events-during-worldgen.patch => 0912-Don-t-fire-sync-events-during-worldgen.patch} (100%) rename patches/server/{0914-Add-Structure-check-API.patch => 0913-Add-Structure-check-API.patch} (100%) rename patches/server/{0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (89%) rename patches/server/{0916-Restore-vanilla-entity-drops-behavior.patch => 0915-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{0917-Dont-resend-blocks-on-interactions.patch => 0916-Dont-resend-blocks-on-interactions.patch} (99%) rename patches/server/{0918-add-more-scoreboard-API.patch => 0917-add-more-scoreboard-API.patch} (100%) rename patches/server/{0919-Improve-Registry.patch => 0918-Improve-Registry.patch} (94%) rename patches/server/{0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{0921-Add-experience-points-API.patch => 0920-Add-experience-points-API.patch} (97%) rename patches/server/{0922-Add-drops-to-shear-events.patch => 0921-Add-drops-to-shear-events.patch} (99%) rename patches/server/{0923-Add-PlayerShieldDisableEvent.patch => 0922-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0924-Validate-ResourceLocation-in-NBT-reading.patch => 0923-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{0925-Properly-handle-experience-dropping-on-block-break.patch => 0924-Properly-handle-experience-dropping-on-block-break.patch} (97%) rename patches/server/{0926-Fixup-NamespacedKey-handling.patch => 0925-Fixup-NamespacedKey-handling.patch} (87%) rename patches/server/{0927-Expose-LootTable-of-DecoratedPot.patch => 0926-Expose-LootTable-of-DecoratedPot.patch} (100%) rename patches/server/{0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/server/{0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (99%) rename patches/server/{0930-Add-ShulkerDuplicateEvent.patch => 0929-Add-ShulkerDuplicateEvent.patch} (100%) rename patches/server/{0931-Add-api-for-spawn-egg-texture-colors.patch => 0930-Add-api-for-spawn-egg-texture-colors.patch} (100%) rename patches/server/{0932-Add-Lifecycle-Event-system.patch => 0931-Add-Lifecycle-Event-system.patch} (100%) rename patches/server/{0933-ItemStack-Tooltip-API.patch => 0932-ItemStack-Tooltip-API.patch} (100%) rename patches/server/{0934-Add-getChunkSnapshot-includeLightData-parameter.patch => 0933-Add-getChunkSnapshot-includeLightData-parameter.patch} (100%) rename patches/server/{0935-Add-FluidState-API.patch => 0934-Add-FluidState-API.patch} (100%) rename patches/server/{0936-add-number-format-api.patch => 0935-add-number-format-api.patch} (100%) rename patches/server/{0937-improve-BanList-types.patch => 0936-improve-BanList-types.patch} (100%) rename patches/server/{0938-Expanded-Hopper-API.patch => 0937-Expanded-Hopper-API.patch} (100%) rename patches/server/{0939-Add-BlockBreakProgressUpdateEvent.patch => 0938-Add-BlockBreakProgressUpdateEvent.patch} (100%) rename patches/server/{0940-Deprecate-ItemStack-setType.patch => 0939-Deprecate-ItemStack-setType.patch} (100%) rename patches/server/{0941-Add-CartographyItemEvent.patch => 0940-Add-CartographyItemEvent.patch} (100%) rename patches/server/{0942-More-Raid-API.patch => 0941-More-Raid-API.patch} (100%) rename patches/server/{0943-Add-onboarding-message-for-initial-server-start.patch => 0942-Add-onboarding-message-for-initial-server-start.patch} (100%) rename patches/server/{0944-Configurable-max-block-fluid-ticks.patch => 0943-Configurable-max-block-fluid-ticks.patch} (100%) rename patches/server/{0945-Fix-bees-aging-inside-hives.patch => 0944-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0946-Disable-memory-reserve-allocating.patch => 0945-Disable-memory-reserve-allocating.patch} (100%) rename patches/server/{0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch => 0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch} (100%) rename patches/server/{0948-Fix-DamageSource-API.patch => 0947-Fix-DamageSource-API.patch} (99%) rename patches/server/{0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch => 0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch} (100%) rename patches/server/{0950-Fix-possible-StackOverflowError-for-some-dispenses.patch => 0949-Fix-possible-StackOverflowError-for-some-dispenses.patch} (100%) rename patches/server/{0951-Improve-tag-parser-handling.patch => 0950-Improve-tag-parser-handling.patch} (100%) rename patches/server/{0952-Item-Mutation-Fixes.patch => 0951-Item-Mutation-Fixes.patch} (90%) rename patches/server/{0953-Per-world-ticks-per-spawn-settings.patch => 0952-Per-world-ticks-per-spawn-settings.patch} (94%) rename patches/server/{0954-Properly-track-the-changed-item-from-dispense-events.patch => 0953-Properly-track-the-changed-item-from-dispense-events.patch} (100%) rename patches/server/{0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (97%) rename patches/server/{0956-Fix-tripwire-disarming-not-working-as-intended.patch => 0955-Fix-tripwire-disarming-not-working-as-intended.patch} (100%) rename patches/server/{0957-Add-config-for-mobs-immune-to-default-effects.patch => 0956-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0958-Deep-clone-nbt-tags-in-PDC.patch => 0957-Deep-clone-nbt-tags-in-PDC.patch} (94%) rename patches/server/{0959-Support-old-UUID-format-for-NBT.patch => 0958-Support-old-UUID-format-for-NBT.patch} (97%) rename patches/server/{0960-Fix-shield-disable-inconsistency.patch => 0959-Fix-shield-disable-inconsistency.patch} (100%) rename patches/server/{0961-Handle-Large-Packets-disconnecting-client.patch => 0960-Handle-Large-Packets-disconnecting-client.patch} (100%) rename patches/server/{0962-Fix-ItemFlags.patch => 0961-Fix-ItemFlags.patch} (94%) rename patches/server/{0963-Fix-Player-setBlockUpdate.patch => 0962-Fix-Player-setBlockUpdate.patch} (95%) rename patches/server/{0964-Fix-helmet-damage-reduction-inconsistencies.patch => 0963-Fix-helmet-damage-reduction-inconsistencies.patch} (87%) rename patches/server/{0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch => 0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch} (100%) rename patches/server/{0966-improve-checking-handled-tags-in-itemmeta.patch => 0965-improve-checking-handled-tags-in-itemmeta.patch} (95%) rename patches/server/{0967-General-ItemMeta-fixes.patch => 0966-General-ItemMeta-fixes.patch} (82%) rename patches/server/{0968-Expose-hasColor-to-leather-armor.patch => 0967-Expose-hasColor-to-leather-armor.patch} (100%) rename patches/server/{0969-Added-API-to-get-player-ha-proxy-address.patch => 0968-Added-API-to-get-player-ha-proxy-address.patch} (97%) rename patches/server/{0970-More-Chest-Block-API.patch => 0969-More-Chest-Block-API.patch} (100%) rename patches/server/{0971-Print-data-component-type-on-encoding-error.patch => 0970-Print-data-component-type-on-encoding-error.patch} (100%) rename patches/server/{0972-Brigadier-based-command-API.patch => 0971-Brigadier-based-command-API.patch} (100%) rename patches/server/{0973-Fix-issues-with-Recipe-API.patch => 0972-Fix-issues-with-Recipe-API.patch} (100%) rename patches/server/{0974-Fix-equipment-slot-and-group-API.patch => 0973-Fix-equipment-slot-and-group-API.patch} (96%) rename patches/server/{0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch => 0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch} (97%) rename patches/server/{0976-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0975-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0977-Prevent-NPE-if-hooked-entity-was-cleared.patch => 0976-Prevent-NPE-if-hooked-entity-was-cleared.patch} (100%) rename patches/server/{0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch => 0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch} (94%) rename patches/server/{0979-Add-missing-fishing-event-state.patch => 0978-Add-missing-fishing-event-state.patch} (100%) rename patches/server/{0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch => 0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch} (100%) rename patches/server/{0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch => 0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch} (100%) rename patches/server/{0982-Adopt-MaterialRerouting.patch => 0981-Adopt-MaterialRerouting.patch} (100%) rename patches/server/{0983-Suspicious-Effect-Entry-API.patch => 0982-Suspicious-Effect-Entry-API.patch} (100%) rename patches/server/{0984-check-if-itemstack-is-stackable-first.patch => 0983-check-if-itemstack-is-stackable-first.patch} (100%) rename patches/server/{0985-Fix-removing-recipes-from-RecipeIterator.patch => 0984-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0986-Configurable-damage-tick-when-blocking-with-shield.patch => 0985-Configurable-damage-tick-when-blocking-with-shield.patch} (100%) rename patches/server/{0987-Properly-remove-the-experimental-smithing-inventory-.patch => 0986-Properly-remove-the-experimental-smithing-inventory-.patch} (100%) rename patches/server/{0988-Moonrise-optimisation-patches.patch => 0987-Moonrise-optimisation-patches.patch} (99%) rename patches/server/{0989-Rewrite-dataconverter-system.patch => 0988-Rewrite-dataconverter-system.patch} (100%) rename patches/server/{0990-disable-forced-empty-world-ticks.patch => 0989-disable-forced-empty-world-ticks.patch} (100%) rename patches/server/{0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (98%) rename patches/server/{0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (98%) rename patches/server/{0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0995-Allow-Saving-of-Oversized-Chunks.patch => 0994-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0996-Flat-bedrock-generator-settings.patch => 0995-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0997-Entity-Activation-Range-2.0.patch => 0996-Entity-Activation-Range-2.0.patch} (100%) rename patches/server/{0998-Optional-per-player-mob-spawns.patch => 0997-Optional-per-player-mob-spawns.patch} (100%) rename patches/server/{0999-Anti-Xray.patch => 0998-Anti-Xray.patch} (100%) rename patches/server/{1000-Eigencraft-redstone-implementation.patch => 0999-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1001-Add-Alternate-Current-redstone-implementation.patch => 1000-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{1003-Use-Velocity-compression-and-cipher-natives.patch => 1002-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1004-Optimize-Collision-to-not-load-chunks.patch => 1003-Optimize-Collision-to-not-load-chunks.patch} (100%) rename patches/server/{1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{1006-Optimize-Hoppers.patch => 1005-Optimize-Hoppers.patch} (94%) rename patches/server/{1007-Entity-load-save-limit-per-chunk.patch => 1006-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{1008-Optimize-Voxel-Shape-Merging.patch => 1007-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1009-Optimize-Bit-Operations-by-inlining.patch => 1008-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1010-Remove-streams-from-hot-code.patch => 1009-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1012-Custom-table-implementation-for-blockstate-state-loo.patch => 1011-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1013-Fix-entity-type-tags-suggestions-in-selectors.patch => 1012-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1014-Handle-Oversized-block-entities-in-chunks.patch => 1013-Handle-Oversized-block-entities-in-chunks.patch} (100%) rename patches/server/{1015-API-for-checking-sent-chunks.patch => 1014-API-for-checking-sent-chunks.patch} (100%) rename patches/server/{1016-Check-distance-in-entity-interactions.patch => 1015-Check-distance-in-entity-interactions.patch} (100%) rename patches/server/{1017-Configurable-Sand-Duping.patch => 1016-Configurable-Sand-Duping.patch} (100%) rename patches/server/{1018-Optimise-general-POI-access.patch => 1017-Optimise-general-POI-access.patch} (100%) rename patches/server/{1019-Improve-performance-of-mass-crafts.patch => 1018-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1020-Properly-resend-entities.patch => 1019-Properly-resend-entities.patch} (100%) rename patches/server/{1021-Registry-Modification-API.patch => 1020-Registry-Modification-API.patch} (99%) rename patches/server/{1022-Add-registry-entry-and-builders.patch => 1021-Add-registry-entry-and-builders.patch} (98%) rename patches/server/{1023-Improved-Watchdog-Support.patch => 1022-Improved-Watchdog-Support.patch} (100%) rename patches/server/{1024-Proxy-ItemStack-to-CraftItemStack.patch => 1023-Proxy-ItemStack-to-CraftItemStack.patch} (100%) rename patches/server/{1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch => 1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch} (100%) rename patches/server/{1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch => 1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch} (100%) rename patches/server/{1027-optimize-dirt-and-snow-spreading.patch => 1026-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1028-Fix-NPE-for-Jukebox-setRecord.patch => 1027-Fix-NPE-for-Jukebox-setRecord.patch} (100%) rename patches/server/{1029-Fix-CraftWorld-isChunkGenerated.patch => 1028-Fix-CraftWorld-isChunkGenerated.patch} (100%) rename patches/server/{1030-fix-horse-inventories.patch => 1029-fix-horse-inventories.patch} (100%) rename patches/server/{1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch => 1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch} (100%) rename patches/server/{1032-Fix-entity-tracker-desync-when-new-players-are-added.patch => 1031-Fix-entity-tracker-desync-when-new-players-are-added.patch} (100%) rename patches/server/{1033-Lag-compensation-ticks.patch => 1032-Lag-compensation-ticks.patch} (100%) rename patches/server/{1034-Detail-more-information-in-watchdog-dumps.patch => 1033-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{1035-Write-SavedData-IO-async.patch => 1034-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1036-Correctly-call-PlayerItemBreakEvent.patch => 1035-Correctly-call-PlayerItemBreakEvent.patch} (95%) rename patches/server/{1037-Add-ItemType-getItemRarity.patch => 1036-Add-ItemType-getItemRarity.patch} (100%) rename patches/server/{1038-Incremental-chunk-and-player-saving.patch => 1037-Incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1042-Bundle-spark.patch => 1039-Bundle-spark.patch} (100%) rename patches/server/{1043-Add-plugin-info-at-startup.patch => 1040-Add-plugin-info-at-startup.patch} (100%) delete mode 100644 patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch delete mode 100644 patches/server/1041-Add-CrafterCraftEvent.patch rename patches/server/{1044-Make-interaction-leniency-distance-configurable.patch => 1041-Make-interaction-leniency-distance-configurable.patch} (100%) rename patches/server/{1045-Fix-PickupStatus-getting-reset.patch => 1042-Fix-PickupStatus-getting-reset.patch} (100%) rename patches/server/{1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch => 1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch} (100%) diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index dbb8f58c58..e7fba0f826 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -4327,10 +4327,10 @@ index 5adbe0514129abf3cfbc4b29a213f522359fe2e1..72ebc29db42d08d1d0361dba462fc8a5 /** diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java -index 5b479ff2abe8cdd5e889803c73a713bc9855bc0b..5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9 100644 +index 278259e211b926283ee6dfef6f96e11ddbcbf275..ebc14022c9ef9b0b3331ee53e96a32667e4762e0 100644 --- a/src/main/java/org/bukkit/inventory/InventoryView.java +++ b/src/main/java/org/bukkit/inventory/InventoryView.java -@@ -267,12 +267,26 @@ public interface InventoryView { +@@ -269,12 +269,26 @@ public interface InventoryView { */ public boolean setProperty(@NotNull Property prop, int value); diff --git a/patches/api/0053-Fix-upstream-javadocs.patch b/patches/api/0053-Fix-upstream-javadocs.patch index 25d3e035cf..7d51adc5a1 100644 --- a/patches/api/0053-Fix-upstream-javadocs.patch +++ b/patches/api/0053-Fix-upstream-javadocs.patch @@ -416,7 +416,7 @@ index 4e1fb0974d061d5bb64899cac576318d2e6f8bf6..539b3527d0c66611e21712f29b90fba9 public int getEntityId(); diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 274f3ccbc39d4d6ff0665abf334d526317275dd0..a7bfaa874cbd3fc8d24fffe2f7f14594b37fa18c 100644 +index 8fdfa1d79daf464f8e364fd9e19d1de3a2a6848c..195a7fa0ea8e056cbde7b9152cc014d2c94353ff 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -22,6 +22,11 @@ import org.jetbrains.annotations.Nullable; @@ -687,7 +687,7 @@ index be0a2d1f234d8265d98e54e518a994957b1f3ab7..4e3c406ba883aae553e8d69b6b719b87 * than BLOCK_CANBUILD, as this refers to a player, not universe-physics * rule like cactus on dirt. diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java -index fc2120e03737f5882d6ae916db93fdcf4939b2ba..f2edd4a9357832e9dec3fb0aafa006335d7b289b 100644 +index 035c647f4d4e3c34f171bb7d7fa6b2b7b3442669..7ae338bcecff2ce25939035181457ced505b3a49 100644 --- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java +++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java @@ -81,7 +81,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab @@ -999,7 +999,7 @@ index 9013d043503d175004ad276799e5935b7fa59dc4..ceae092eb782698803c6c3df41267dde public class InventoryOpenEvent extends InventoryEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); diff --git a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java -index 6782024735a885ba0b1b4dba4a576740c1410366..8977f7609431c3c46324a82de84d4a32f4b71c57 100644 +index 08a7c564fe5d3d232998d1789d4d4723a59c1430..8a5be3f0322ac19aeac3f00df54add0e73bc87ed 100644 --- a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java +++ b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java @@ -24,6 +24,20 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent { @@ -1022,7 +1022,7 @@ index 6782024735a885ba0b1b4dba4a576740c1410366..8977f7609431c3c46324a82de84d4a32 + @NotNull @Override - public HandlerList getHandlers() { + public AnvilView getView() { diff --git a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java b/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java index e4c32b21ab013703a6a1b07a1ad564d914ebe83f..e58fecf0fe54db06e0e944027923a352fd8005d8 100644 --- a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java @@ -1430,7 +1430,7 @@ index f1918027c3a8735b31566856218611656b56db20..476fe14faa39f02444cab8ad95d44010 * @return the currently held item * @see #getItemInMainHand() diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc7829109921a05 100644 +index 16c10d75dd28f6bbe843935e8bc91f2bccbd360a..c414ccf03572d48f5c096516fc60a59bb1e8efd7 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java @@ -24,8 +24,6 @@ public class ShapedRecipe extends CraftingRecipe { @@ -1442,8 +1442,8 @@ index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc78291 * @see ShapedRecipe#setIngredient(char, RecipeChoice) * @deprecated Recipes must have keys. Use {@link #ShapedRecipe(NamespacedKey, ItemStack)} * instead. -@@ -44,8 +42,6 @@ public class ShapedRecipe extends CraftingRecipe { - * @param result The item you want the recipe to create. +@@ -45,8 +43,6 @@ public class ShapedRecipe extends CraftingRecipe { + * @exception IllegalArgumentException if the {@code result} is an empty item (AIR) * @see ShapedRecipe#shape(String...) * @see ShapedRecipe#setIngredient(char, Material) - * @see ShapedRecipe#setIngredient(char, Material, int) @@ -1452,12 +1452,12 @@ index a601bc38e322e5810cf883708541e2d199f09ebb..d89068a37de1dcad0b82dee09cc78291 */ public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index 3d50775da447175b2a94ed9056ef36aa1e69c2eb..03839302c94adc3175d0a88065cd230257ffd20d 100644 +index bc924ae23fa10d87537aebbfd126aa44f199b65c..b7f46a048633945dc71e8efec9a7ebeed5832fd7 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -30,11 +30,8 @@ public class ShapelessRecipe extends CraftingRecipe { - * @param key the unique recipe key +@@ -31,11 +31,8 @@ public class ShapelessRecipe extends CraftingRecipe { * @param result The item you want the recipe to create. + * @exception IllegalArgumentException if the {@code result} is an empty item (AIR) * @see ShapelessRecipe#addIngredient(Material) - * @see ShapelessRecipe#addIngredient(MaterialData) - * @see ShapelessRecipe#addIngredient(Material,int) @@ -1467,8 +1467,8 @@ index 3d50775da447175b2a94ed9056ef36aa1e69c2eb..03839302c94adc3175d0a88065cd2302 + * @see ShapelessRecipe#addIngredient(RecipeChoice) */ public ShapelessRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { - super(key, result); -@@ -174,7 +171,7 @@ public class ShapelessRecipe extends CraftingRecipe { + super(key, checkResult(result)); +@@ -175,7 +172,7 @@ public class ShapelessRecipe extends CraftingRecipe { /** * Removes multiple instances of an ingredient from the list. If there are diff --git a/patches/api/0059-Shoulder-Entities-Release-API.patch b/patches/api/0059-Shoulder-Entities-Release-API.patch index b7f5537f79..6ac15e28ab 100644 --- a/patches/api/0059-Shoulder-Entities-Release-API.patch +++ b/patches/api/0059-Shoulder-Entities-Release-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index a7bfaa874cbd3fc8d24fffe2f7f14594b37fa18c..8cc6f8547380d567aef7910ef309193bd79ced09 100644 +index 195a7fa0ea8e056cbde7b9152cc014d2c94353ff..85eec2e57b03c11f4737addb0fa88b7bf29dc9e5 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -335,6 +335,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -337,6 +337,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ public int getExpToLevel(); diff --git a/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch b/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch index 94f1cdd1f2..c751b7334b 100644 --- a/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch +++ b/patches/api/0075-Display-warning-on-deprecated-recipe-API.patch @@ -10,25 +10,25 @@ on the players login. Plugin authors need to define a key to keep it consistent between server restarts. diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index 9f9c67e935940833bbfe58e6bfa398e6c86980d5..71e494177473c62449aafda1699b26a0c4c81a68 100644 +index c414ccf03572d48f5c096516fc60a59bb1e8efd7..e9bac744c5b173e6767e2de8480a6697969fdbb0 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java @@ -31,6 +31,7 @@ public class ShapedRecipe extends CraftingRecipe { @Deprecated public ShapedRecipe(@NotNull ItemStack result) { - super(NamespacedKey.randomKey(), result); + this(NamespacedKey.randomKey(), result); + new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper } /** diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index 03839302c94adc3175d0a88065cd230257ffd20d..d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97 100644 +index b7f46a048633945dc71e8efec9a7ebeed5832fd7..a7513c1aa09b88e3f99e7db40661fd83e682de96 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java @@ -20,6 +20,7 @@ public class ShapelessRecipe extends CraftingRecipe { @Deprecated public ShapelessRecipe(@NotNull ItemStack result) { - super(NamespacedKey.randomKey(), result); + this(NamespacedKey.randomKey(), result); + new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper } diff --git a/patches/api/0092-Add-openSign-method-to-HumanEntity.patch b/patches/api/0092-Add-openSign-method-to-HumanEntity.patch index d519918aba..3fdf10fbfc 100644 --- a/patches/api/0092-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0092-Add-openSign-method-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 8cc6f8547380d567aef7910ef309193bd79ced09..48bb08cc7c0af6ebb905d1e175ada0fd7944ca48 100644 +index 85eec2e57b03c11f4737addb0fa88b7bf29dc9e5..58dbe34ab1b603c2cd53af1625c1f82f8890da01 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -496,6 +496,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -498,6 +498,26 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ @Deprecated public void setShoulderEntityRight(@Nullable Entity entity); diff --git a/patches/api/0114-LivingEntity-Active-Item-API.patch b/patches/api/0114-LivingEntity-Active-Item-API.patch index f98f5d9a7e..0081842496 100644 --- a/patches/api/0114-LivingEntity-Active-Item-API.patch +++ b/patches/api/0114-LivingEntity-Active-Item-API.patch @@ -9,10 +9,10 @@ such as a bow or eating food. Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 48bb08cc7c0af6ebb905d1e175ada0fd7944ca48..ee3086661e11d3d8faec30590be7131648d3b82a 100644 +index 58dbe34ab1b603c2cd53af1625c1f82f8890da01..9cbb9093e7d8cd21eef6a23c265d68d7d0ee97b8 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -325,7 +325,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -327,7 +327,9 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder * blocking). * * @return Whether their hand is raised diff --git a/patches/api/0117-InventoryCloseEvent-Reason-API.patch b/patches/api/0117-InventoryCloseEvent-Reason-API.patch index ed0568548a..1be4583340 100644 --- a/patches/api/0117-InventoryCloseEvent-Reason-API.patch +++ b/patches/api/0117-InventoryCloseEvent-Reason-API.patch @@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index ee3086661e11d3d8faec30590be7131648d3b82a..25cd03f2f3dc0aaa67173c0f3ebfe56402489e24 100644 +index 9cbb9093e7d8cd21eef6a23c265d68d7d0ee97b8..3985798654a3085c128144e46f7113b7744b8d14 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -185,6 +185,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -187,6 +187,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ public void closeInventory(); diff --git a/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch index 14e94043d2..78e75fc75c 100644 --- a/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch +++ b/patches/api/0160-Add-ItemStack-Recipe-API-helper-methods.patch @@ -22,10 +22,10 @@ index a98fc2ffdae1a2f8f3a312bed95268e105f7f791..91bfeffcdbe47208c7d0ddbe013cd0f1 public static class ExactChoice implements RecipeChoice { diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index 1ef513d4d03ce677ee9c77b91e2cc5553ab91e0b..1012656948e9bf2aa18867cc2409616f3f21501e 100644 +index e9bac744c5b173e6767e2de8480a6697969fdbb0..fa03cf187db29896f5af046b311f67881aee0ff4 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -179,6 +179,13 @@ public class ShapedRecipe extends CraftingRecipe { +@@ -180,6 +180,13 @@ public class ShapedRecipe extends CraftingRecipe { return this; } @@ -40,10 +40,10 @@ index 1ef513d4d03ce677ee9c77b91e2cc5553ab91e0b..1012656948e9bf2aa18867cc2409616f * Get a copy of the ingredients map. * diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1a46c26ec 100644 +index a7513c1aa09b88e3f99e7db40661fd83e682de96..63a233cc819d8d6995d14b9dbfabc14d89af54cc 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -131,6 +131,40 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -132,6 +132,40 @@ public class ShapelessRecipe extends CraftingRecipe { return this; } @@ -84,7 +84,7 @@ index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1 /** * Removes an ingredient from the list. * -@@ -154,7 +188,7 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -155,7 +189,7 @@ public class ShapelessRecipe extends CraftingRecipe { */ @NotNull public ShapelessRecipe removeIngredient(@NotNull Material ingredient) { @@ -93,7 +93,7 @@ index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1 } /** -@@ -181,7 +215,7 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -182,7 +216,7 @@ public class ShapelessRecipe extends CraftingRecipe { */ @NotNull public ShapelessRecipe removeIngredient(int count, @NotNull Material ingredient) { diff --git a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch index da580bdf21..e7952ac8d4 100644 --- a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch @@ -453,7 +453,7 @@ index 48aecc9421c500137bbef1dfe3bec8de277c3ff9..aff858346776386f1288b648b221404f return note; } diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index 3bd96bbd35b657a6030d744e86622e616c2c3b08..5529e227781cd2411de9c6581a1cb1255ce9bb20 100644 +index d1906d150a7d4c4852e085d6fd480aec317c22e4..e9edc8c17cbd29cfdad31df13acb15bab2304735 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java @@ -220,14 +220,12 @@ public interface Registry extends Iterable { @@ -1067,16 +1067,28 @@ index 53119742beda00a38111063243665bb995ae2188..2d084214e991fecc51f8e18e3d733e43 public class CampfireStartEvent extends InventoryBlockStartEvent { private static final HandlerList handlers = new HandlerList(); +diff --git a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java +index f4efb2190ae4b1fa1823d5c97ad518c6d34f0a1a..3d6c0ecc70a748b8508b55513f9d5fa6b4bd6353 100644 +--- a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java ++++ b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java +@@ -17,6 +17,7 @@ public class CrafterCraftEvent extends BlockEvent implements Cancellable { + private ItemStack result; + private boolean cancelled; + ++ @org.jetbrains.annotations.ApiStatus.Internal // Paper - fix upstream annotation mistakes + public CrafterCraftEvent(@NotNull Block theBlock, @NotNull CraftingRecipe recipe, @NotNull ItemStack result) { + super(theBlock); + this.result = result; diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java -index f2edd4a9357832e9dec3fb0aafa006335d7b289b..f05ce4fd6c4bbd79edc5f65e7edd1e4a63e93fb8 100644 +index 7ae338bcecff2ce25939035181457ced505b3a49..27564727edbd9f093e3a021ce6f30e1146a8ddbb 100644 --- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java +++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java @@ -23,7 +23,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab private boolean cancelled; private final Player enchanter; -- public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull InventoryView view, @NotNull final Block table, @NotNull final ItemStack item, @NotNull final EnchantmentOffer[] offers, final int bonus) { -+ public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull InventoryView view, @NotNull final Block table, @NotNull final ItemStack item, @org.jetbrains.annotations.Nullable final EnchantmentOffer @NotNull [] offers, final int bonus) { // Paper - offers can contain null values +- public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @NotNull final EnchantmentOffer[] offers, final int bonus) { ++ public PrepareItemEnchantEvent(@NotNull final Player enchanter, @NotNull EnchantmentView view, @NotNull final Block table, @NotNull final ItemStack item, @org.jetbrains.annotations.Nullable final EnchantmentOffer @NotNull [] offers, final int bonus) { // Paper - offers can contain null values super(view); this.enchanter = enchanter; this.table = table; @@ -1497,10 +1509,10 @@ index f1a48eab1a357ae64545e1f1dc941c383cff8707..466d1bd7089b76f48f953e1a51c611ec /** * Checks if the inventory contains any ItemStacks with the given diff --git a/src/main/java/org/bukkit/inventory/InventoryView.java b/src/main/java/org/bukkit/inventory/InventoryView.java -index 5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9..72f93377b60a3b6a08b8c8264ee7313e89c15da0 100644 +index ebc14022c9ef9b0b3331ee53e96a32667e4762e0..2b2c5faabce1628bd2e82a840dc97fe79bb57856 100644 --- a/src/main/java/org/bukkit/inventory/InventoryView.java +++ b/src/main/java/org/bukkit/inventory/InventoryView.java -@@ -121,9 +121,9 @@ public interface InventoryView { +@@ -123,9 +123,9 @@ public interface InventoryView { * Gets the id of this view. * * @return the id of this view @@ -1512,7 +1524,7 @@ index 5954dff2134654bb0ccc3b4c3b51a8e1ca77f6c9..72f93377b60a3b6a08b8c8264ee7313e public int getId() { return id; } -@@ -193,10 +193,10 @@ public interface InventoryView { +@@ -195,10 +195,10 @@ public interface InventoryView { /** * Get the item on the cursor of one of the viewing players. * @@ -1627,10 +1639,10 @@ index 476fe14faa39f02444cab8ad95d4401033dc6938..2c54660dc1fbc7c1232096797a23cae1 /** diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb379b58f207 100644 +index fa03cf187db29896f5af046b311f67881aee0ff4..295d82dd73b600e9436d2bbec0e11dbeaf78bbf4 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -106,8 +106,10 @@ public class ShapedRecipe extends CraftingRecipe { +@@ -107,8 +107,10 @@ public class ShapedRecipe extends CraftingRecipe { * @return The changed recipe, so you can chain calls. * @throws IllegalArgumentException if the {@code key} is a space character * @throws IllegalArgumentException if the {@code key} does not appear in the shape. @@ -1641,7 +1653,7 @@ index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb37 public ShapedRecipe setIngredient(char key, @NotNull MaterialData ingredient) { return setIngredient(key, ingredient.getItemType(), ingredient.getData()); } -@@ -190,7 +192,9 @@ public class ShapedRecipe extends CraftingRecipe { +@@ -191,7 +193,9 @@ public class ShapedRecipe extends CraftingRecipe { * Get a copy of the ingredients map. * * @return The mapping of character to ingredients. @@ -1652,10 +1664,10 @@ index 1012656948e9bf2aa18867cc2409616f3f21501e..aa3b3070126f1c492f004ec7599eeb37 public Map getIngredientMap() { HashMap result = new HashMap(); diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab6349576ce8 100644 +index 63a233cc819d8d6995d14b9dbfabc14d89af54cc..3bf5064cd6ceb05ea98b18993da46c67be140115 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -43,8 +43,10 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -44,8 +44,10 @@ public class ShapelessRecipe extends CraftingRecipe { * * @param ingredient The ingredient to add. * @return The changed recipe, so you can chain calls. @@ -1666,7 +1678,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63 public ShapelessRecipe addIngredient(@NotNull MaterialData ingredient) { return addIngredient(1, ingredient); } -@@ -80,8 +82,10 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -81,8 +83,10 @@ public class ShapelessRecipe extends CraftingRecipe { * @param count How many to add (can't be more than 9!) * @param ingredient The ingredient to add. * @return The changed recipe, so you can chain calls. @@ -1677,7 +1689,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63 public ShapelessRecipe addIngredient(int count, @NotNull MaterialData ingredient) { return addIngredient(count, ingredient.getItemType(), ingredient.getData()); } -@@ -198,8 +202,10 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -199,8 +203,10 @@ public class ShapelessRecipe extends CraftingRecipe { * * @param ingredient The ingredient to remove * @return The changed recipe. @@ -1688,7 +1700,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63 public ShapelessRecipe removeIngredient(@NotNull MaterialData ingredient) { return removeIngredient(ingredient.getItemType(), ingredient.getData()); } -@@ -226,8 +232,10 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -227,8 +233,10 @@ public class ShapelessRecipe extends CraftingRecipe { * @param count The number of copies to remove. * @param ingredient The ingredient to remove. * @return The changed recipe. @@ -1699,7 +1711,7 @@ index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab63 public ShapelessRecipe removeIngredient(int count, @NotNull MaterialData ingredient) { return removeIngredient(count, ingredient.getItemType(), ingredient.getData()); } -@@ -277,7 +285,9 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -278,7 +286,9 @@ public class ShapelessRecipe extends CraftingRecipe { * Get the list of ingredients used for this recipe. * * @return The input list diff --git a/patches/api/0185-Add-item-slot-convenience-methods.patch b/patches/api/0185-Add-item-slot-convenience-methods.patch index 20638212e8..8da43fffbf 100644 --- a/patches/api/0185-Add-item-slot-convenience-methods.patch +++ b/patches/api/0185-Add-item-slot-convenience-methods.patch @@ -6,12 +6,12 @@ Subject: [PATCH] Add item slot convenience methods Co-authored-by: Janet Blackquill diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java -index 52519cd877017704b53d36088d4d4c28f8f27397..c60be4fd24c7fdf65251dd6169e5e1ac3b588d95 100644 +index 4f484df010dabf03ac4712996a0fd4d8f3649b59..f1f97a85ec713c05c882d7588f4a3e4a017f4795 100644 --- a/src/main/java/org/bukkit/inventory/AnvilInventory.java +++ b/src/main/java/org/bukkit/inventory/AnvilInventory.java -@@ -63,4 +63,64 @@ public interface AnvilInventory extends Inventory { - * @param levels the maximum experience cost +@@ -78,4 +78,64 @@ public interface AnvilInventory extends Inventory { */ + @Deprecated(forRemoval = true, since = "1.21") void setMaximumRepairCost(int levels); + + // Paper start diff --git a/patches/api/0190-Potential-bed-API.patch b/patches/api/0190-Potential-bed-API.patch index 42350ac7bd..1cbb7daffa 100644 --- a/patches/api/0190-Potential-bed-API.patch +++ b/patches/api/0190-Potential-bed-API.patch @@ -8,10 +8,10 @@ Adds a new method to fetch the location of a player's bed without generating any getPotentialBedLocation - Gets the last known location of a player's bed. This does not preform any check if the bed is still valid and does not load any chunks. diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 25cd03f2f3dc0aaa67173c0f3ebfe56402489e24..ccaaf2b6f6424ec7c7d298ceabdc3e60a7917705 100644 +index 3985798654a3085c128144e46f7113b7744b8d14..11c5846848a6631a9376934622caeadd448b0391 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -275,6 +275,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -277,6 +277,19 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ public int getSleepTicks(); diff --git a/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch index 95fb3a46ed..10dd96ba7d 100644 --- a/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch +++ b/patches/api/0196-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch @@ -93,7 +93,7 @@ index 0000000000000000000000000000000000000000..c305c606bef93866993095cec5f50e19 + } +} diff --git a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java -index 8977f7609431c3c46324a82de84d4a32f4b71c57..d884ecf40af964e718168ac055dd6c672d108eb1 100644 +index 8a5be3f0322ac19aeac3f00df54add0e73bc87ed..d2b4b2e9385e7c1e0e1e42886481b99ecc8dcf8e 100644 --- a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java +++ b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java @@ -10,9 +10,9 @@ import org.jetbrains.annotations.Nullable; @@ -106,10 +106,10 @@ index 8977f7609431c3c46324a82de84d4a32f4b71c57..d884ecf40af964e718168ac055dd6c67 - private static final HandlerList handlers = new HandlerList(); + // Paper - move HandlerList to PrepareInventoryResultEvent - public PrepareAnvilEvent(@NotNull InventoryView inventory, @Nullable ItemStack result) { + public PrepareAnvilEvent(@NotNull AnvilView inventory, @Nullable ItemStack result) { super(inventory, result); -@@ -38,14 +38,5 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent { - super.setResult(result); +@@ -44,14 +44,5 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent { + return (AnvilView) super.getView(); } - @NotNull diff --git a/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch index c81c83391c..3fe46b8c28 100644 --- a/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch +++ b/patches/api/0204-Add-additional-open-container-api-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add additional open container api to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index ccaaf2b6f6424ec7c7d298ceabdc3e60a7917705..b980d55b68ed9da78c5cd19f369bb00dccbf08e1 100644 +index 11c5846848a6631a9376934622caeadd448b0391..f20b0a439c4d5cd2c6caa70a46b1b49f8ab23425 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -180,6 +180,92 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -182,6 +182,92 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder @Nullable public InventoryView openMerchant(@NotNull Merchant merchant, boolean force); diff --git a/patches/api/0220-Expose-LivingEntity-hurt-direction.patch b/patches/api/0220-Expose-LivingEntity-hurt-direction.patch index 4d2cb26c38..d8800e48d1 100644 --- a/patches/api/0220-Expose-LivingEntity-hurt-direction.patch +++ b/patches/api/0220-Expose-LivingEntity-hurt-direction.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose LivingEntity hurt direction diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index b980d55b68ed9da78c5cd19f369bb00dccbf08e1..4d6ceca22d98a3e46aa26ef26176c5417a5ccf35 100644 +index f20b0a439c4d5cd2c6caa70a46b1b49f8ab23425..937c136f2499bd1660989d14c0f50a7ef9a1a2b6 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -354,6 +354,16 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -356,6 +356,16 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder */ public void setCooldown(@NotNull Material material, int ticks); diff --git a/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch b/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch index f0864c18fa..a931d297be 100644 --- a/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch +++ b/patches/api/0236-Add-RegistryAccess-for-managing-registries.patch @@ -206,10 +206,22 @@ index e0f652117e585882693736de8165ae9c689e1d68..fbe14c327ee9c1ac07893853ca7c699e return server.getRegistry(tClass); } diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c17bf68ec7 100644 +index e9edc8c17cbd29cfdad31df13acb15bab2304735..d855e703339e6f6e50fcb19e8954a9434e718b2f 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -102,7 +102,7 @@ public interface Registry extends Iterable { +@@ -87,8 +87,10 @@ public interface Registry extends Iterable { + * Server banner patterns. + * + * @see PatternType ++ * @deprecated use {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)} with {@link io.papermc.paper.registry.RegistryKey#BANNER_PATTERN} + */ +- Registry BANNER_PATTERN = Objects.requireNonNull(Bukkit.getRegistry(PatternType.class), "No registry present for Pattern Type. This is a bug."); ++ @Deprecated(since = "1.21") // Paper ++ Registry BANNER_PATTERN = Objects.requireNonNull(io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(PatternType.class), "No registry present for PatternType. This is a bug."); // Paper + /** + * Server biomes. + * +@@ -102,7 +104,7 @@ public interface Registry extends Iterable { * @apiNote BlockType is not ready for public usage yet */ @ApiStatus.Internal @@ -218,7 +230,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Custom boss bars. * -@@ -134,13 +134,15 @@ public interface Registry extends Iterable { +@@ -134,13 +136,15 @@ public interface Registry extends Iterable { * * @see Cat.Type */ @@ -236,7 +248,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Server entity types. * -@@ -152,7 +154,7 @@ public interface Registry extends Iterable { +@@ -152,7 +156,7 @@ public interface Registry extends Iterable { * * @see MusicInstrument */ @@ -245,7 +257,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Server item types. * -@@ -160,7 +162,7 @@ public interface Registry extends Iterable { +@@ -160,7 +164,7 @@ public interface Registry extends Iterable { * @apiNote ItemType is not ready for public usage yet */ @ApiStatus.Internal @@ -254,7 +266,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Default server loot tables. * -@@ -178,7 +180,7 @@ public interface Registry extends Iterable { +@@ -178,7 +182,7 @@ public interface Registry extends Iterable { * * @see PotionEffectType */ @@ -263,7 +275,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Server particles. * -@@ -201,14 +203,16 @@ public interface Registry extends Iterable { +@@ -201,14 +205,16 @@ public interface Registry extends Iterable { * Server structures. * * @see Structure @@ -282,7 +294,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Sound keys. * -@@ -219,40 +223,47 @@ public interface Registry extends Iterable { +@@ -219,40 +225,47 @@ public interface Registry extends Iterable { * Trim materials. * * @see TrimMaterial @@ -337,7 +349,7 @@ index 5529e227781cd2411de9c6581a1cb1255ce9bb20..f99e68f160deba42e2833fa0f81df4c1 /** * Memory Keys. * -@@ -289,25 +300,27 @@ public interface Registry extends Iterable { +@@ -289,25 +302,27 @@ public interface Registry extends Iterable { * * @see Frog.Variant */ diff --git a/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch index e561fa1dba..14754cc21c 100644 --- a/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch +++ b/patches/api/0256-add-isDeeplySleeping-to-HumanEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 4d6ceca22d98a3e46aa26ef26176c5417a5ccf35..58c842a1fd946d94ae29c7d2439aaf77e47f69b4 100644 +index 937c136f2499bd1660989d14c0f50a7ef9a1a2b6..b1b18886fc63a4854c2858ff9869da70e92dae26 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -364,6 +364,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -366,6 +366,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder void setHurtDirection(float hurtDirection); // Paper end diff --git a/patches/api/0329-More-PotionEffectType-API.patch b/patches/api/0329-More-PotionEffectType-API.patch index d80151aec0..c361faf34d 100644 --- a/patches/api/0329-More-PotionEffectType-API.patch +++ b/patches/api/0329-More-PotionEffectType-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More PotionEffectType API diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index a583d26883c8b7012203e128cd64113df94307c1..4d3e0b90579b33ff93fc565e8ee99a01b690c62b 100644 +index 5dbbc4eb764650395c6ebaaf5fdf0466ca107439..0ee9a8728035217bb95c7fba917b45a5ef2ea533 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -321,6 +321,33 @@ public interface Registry extends Iterable { +@@ -323,6 +323,33 @@ public interface Registry extends Iterable { * @see GameEvent */ Registry GAME_EVENT = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.GAME_EVENT); // Paper diff --git a/patches/api/0352-Add-Player-getFishHook.patch b/patches/api/0352-Add-Player-getFishHook.patch index 61c4560da5..0e0d38d513 100644 --- a/patches/api/0352-Add-Player-getFishHook.patch +++ b/patches/api/0352-Add-Player-getFishHook.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Player#getFishHook diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index 58c842a1fd946d94ae29c7d2439aaf77e47f69b4..294de2c073167e7186fbf1d6885fe5951351cc9c 100644 +index b1b18886fc63a4854c2858ff9869da70e92dae26..773651350c17cae9058346a590eda758071b7447 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java -@@ -392,6 +392,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder +@@ -394,6 +394,13 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder @Nullable public Location getPotentialBedLocation(); // Paper end diff --git a/patches/api/0392-Add-Shearable-API.patch b/patches/api/0392-Add-Shearable-API.patch index 06e4cefb44..e39ebc2481 100644 --- a/patches/api/0392-Add-Shearable-API.patch +++ b/patches/api/0392-Add-Shearable-API.patch @@ -54,15 +54,15 @@ index 0000000000000000000000000000000000000000..0d5793790ab6a47525ad330335173612 + boolean readyToBeSheared(); +} diff --git a/src/main/java/org/bukkit/entity/Bogged.java b/src/main/java/org/bukkit/entity/Bogged.java -index a89f104aa2b2244c075a72c698a9b616c57eaf7c..a36bb84c17120bc578ab01d45f6f12fb1faf9548 100644 +index 8b75a505a55a96a5795ac31a2d37307add12cd9e..6296a6f3f3e794677fd3a626376f357c740ec356 100644 --- a/src/main/java/org/bukkit/entity/Bogged.java +++ b/src/main/java/org/bukkit/entity/Bogged.java @@ -6,5 +6,5 @@ import org.jetbrains.annotations.ApiStatus; * Represents a Bogged Skeleton. */ @ApiStatus.Experimental --public interface Bogged extends AbstractSkeleton { -+public interface Bogged extends AbstractSkeleton, io.papermc.paper.entity.Shearable { // Paper - Shear API +-public interface Bogged extends AbstractSkeleton, Shearable { ++public interface Bogged extends AbstractSkeleton, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API } diff --git a/src/main/java/org/bukkit/entity/MushroomCow.java b/src/main/java/org/bukkit/entity/MushroomCow.java index cef1700834643fe28ed5737578d91ecefbe99e2f..86c0043ef4e1288b6fe2f68a9b6d01c3de2c3454 100644 @@ -77,19 +77,52 @@ index cef1700834643fe28ed5737578d91ecefbe99e2f..86c0043ef4e1288b6fe2f68a9b6d01c3 /** * Checks for the presence of custom potion effects to be applied to the +diff --git a/src/main/java/org/bukkit/entity/Shearable.java b/src/main/java/org/bukkit/entity/Shearable.java +index 0215d20f81bfbef080f86ce46147a38f71310f65..9967c8a52ddd2c7e10db49a3f166731373f1ba45 100644 +--- a/src/main/java/org/bukkit/entity/Shearable.java ++++ b/src/main/java/org/bukkit/entity/Shearable.java +@@ -2,20 +2,30 @@ package org.bukkit.entity; + + /** + * Represents an entity which can be shorn with shears. ++ * @deprecated Spigots shearable API miserably fails at capturing all entities that may be sheared by a player, like ++ * mushroom cows which, once sheared, convert into normal cows. For such entities, methods like ++ * {@link #setSheared(boolean)} or {@link #isSheared()} make no sense, making this API and interface dead API from ++ * the get-go. + */ ++@Deprecated(forRemoval = true, since = "1.21") + public interface Shearable { + + /** + * Gets whether the entity is in its sheared state. + * + * @return Whether the entity is sheared. ++ * @deprecated Use {@link io.papermc.paper.entity.Shearable#readyToBeSheared()} instead. + */ ++ @Deprecated(forRemoval = true, since = "1.21") + boolean isSheared(); + + /** + * Sets whether the entity is in its sheared state. + * + * @param flag Whether to shear the entity ++ * @deprecated Use {@link io.papermc.paper.entity.Shearable#shear()} instead if applicable. ++ * Some entities cannot be "unsheared". + */ ++ @Deprecated(forRemoval = true, since = "1.21") + void setSheared(boolean flag); + } diff --git a/src/main/java/org/bukkit/entity/Sheep.java b/src/main/java/org/bukkit/entity/Sheep.java -index f4ce312ccd927a8b64f4266b35a0a53b85e591f3..97388d46cee225dedc0b61a12e7b60b3424732c8 100644 +index 46bc1a0ed9ee320c68a38362c1fa1f31319f01d8..01a0e5b1bb18d7a28d68329c2e2ab78a8df45f8e 100644 --- a/src/main/java/org/bukkit/entity/Sheep.java +++ b/src/main/java/org/bukkit/entity/Sheep.java -@@ -5,7 +5,7 @@ import org.bukkit.material.Colorable; +@@ -5,5 +5,5 @@ import org.bukkit.material.Colorable; /** * Represents a Sheep. */ --public interface Sheep extends Animals, Colorable { -+public interface Sheep extends Animals, Colorable, io.papermc.paper.entity.Shearable { // Paper - Shear API - - /** - * @return Whether the sheep is sheared. +-public interface Sheep extends Animals, Colorable, Shearable { ++public interface Sheep extends Animals, Colorable, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API + } diff --git a/src/main/java/org/bukkit/entity/Snowman.java b/src/main/java/org/bukkit/entity/Snowman.java index 10f8f6d45ae9280651c3ebddd1f90acbd7d6ff29..7fbfdb07585c7b28acea1f0c1f58ada0cc744441 100644 --- a/src/main/java/org/bukkit/entity/Snowman.java diff --git a/patches/api/0430-Experimental-annotations-change.patch b/patches/api/0430-Experimental-annotations-change.patch index 59788de534..9ea8f3a126 100644 --- a/patches/api/0430-Experimental-annotations-change.patch +++ b/patches/api/0430-Experimental-annotations-change.patch @@ -104,7 +104,7 @@ index 60fbacee263e55f91ac977f020e390d46024723a..ecff691c3a0878659fb051926ef769ce /** diff --git a/src/main/java/org/bukkit/entity/Bogged.java b/src/main/java/org/bukkit/entity/Bogged.java -index a36bb84c17120bc578ab01d45f6f12fb1faf9548..719bccf8638f8ad358d37fa7eeccbc4c08d32868 100644 +index 6296a6f3f3e794677fd3a626376f357c740ec356..7d993f8bd18ec1d3260d12f0ff8078a86ee4867d 100644 --- a/src/main/java/org/bukkit/entity/Bogged.java +++ b/src/main/java/org/bukkit/entity/Bogged.java @@ -5,6 +5,5 @@ import org.jetbrains.annotations.ApiStatus; @@ -112,7 +112,7 @@ index a36bb84c17120bc578ab01d45f6f12fb1faf9548..719bccf8638f8ad358d37fa7eeccbc4c * Represents a Bogged Skeleton. */ -@ApiStatus.Experimental - public interface Bogged extends AbstractSkeleton, io.papermc.paper.entity.Shearable { // Paper - Shear API + public interface Bogged extends AbstractSkeleton, Shearable, io.papermc.paper.entity.Shearable { // Paper - Shear API } diff --git a/src/main/java/org/bukkit/entity/Breeze.java b/src/main/java/org/bukkit/entity/Breeze.java index a75e725805c193a408683885cba83ca168347165..254bc6e18961a72f471334cc0535e3c7a9d70012 100644 diff --git a/patches/api/0432-Improve-Registry.patch b/patches/api/0432-Improve-Registry.patch index 4c5275651a..5e72c2ab2a 100644 --- a/patches/api/0432-Improve-Registry.patch +++ b/patches/api/0432-Improve-Registry.patch @@ -31,10 +31,10 @@ index 62d2b3f950860dee0898d77b0a29635c3f9a7e23..704dba92f9246ef398ed8d162ebee3cf @Override public @NotNull String translationKey() { diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89f02611a0 100644 +index 0ee9a8728035217bb95c7fba917b45a5ef2ea533..cd1e38debbec745dd13cd895327f544dcf42594d 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -357,6 +357,79 @@ public interface Registry extends Iterable { +@@ -359,6 +359,79 @@ public interface Registry extends Iterable { @Nullable T get(@NotNull NamespacedKey key); @@ -114,7 +114,7 @@ index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89 /** * Returns a new stream, which contains all registry items, which are registered to the registry. * -@@ -431,5 +504,12 @@ public interface Registry extends Iterable { +@@ -433,5 +506,12 @@ public interface Registry extends Iterable { public Class getType() { return this.type; } @@ -128,12 +128,12 @@ index 4d3e0b90579b33ff93fc565e8ee99a01b690c62b..36a8f6082f111a1cbb25e0ff3c968a89 } } diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java -index 6a6be0287255cf38a735bfc83ec91644dc96b903..1883183157c875d87656fdc86a589e9b95dc4895 100644 +index 9e90572745909538e942b7fbe788b5286c6cc9a3..100f93358e0a1fa8507775a2afd29314ff353a87 100644 --- a/src/main/java/org/bukkit/block/banner/PatternType.java +++ b/src/main/java/org/bukkit/block/banner/PatternType.java -@@ -69,6 +69,13 @@ public enum PatternType implements Keyed { - this.key = NamespacedKey.minecraft(key); - } +@@ -56,6 +56,13 @@ public interface PatternType extends OldEnum, Keyed { + PatternType FLOW = getType("flow"); + PatternType GUSTER = getType("guster"); + // Paper start - deprecate getKey + /** @@ -144,7 +144,7 @@ index 6a6be0287255cf38a735bfc83ec91644dc96b903..1883183157c875d87656fdc86a589e9b + // Paper end - deprecate getKey @Override @NotNull - public NamespacedKey getKey() { + public NamespacedKey getKey(); diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java index 1a766e68713d4014783b3224b9395644116784fa..978054ee364f9a3330525b9b50da5325ebb6ef57 100644 --- a/src/main/java/org/bukkit/generator/structure/Structure.java diff --git a/patches/api/0469-Fix-issues-with-recipe-API.patch b/patches/api/0469-Fix-issues-with-recipe-API.patch index 2635c201c9..00a981bf9c 100644 --- a/patches/api/0469-Fix-issues-with-recipe-API.patch +++ b/patches/api/0469-Fix-issues-with-recipe-API.patch @@ -40,18 +40,18 @@ index f7fa79393aef40027446b78bac8e9490cfafd8bc..07906ca1a9b39fcc6774870daa498402 } diff --git a/src/main/java/org/bukkit/inventory/CraftingRecipe.java b/src/main/java/org/bukkit/inventory/CraftingRecipe.java -index e4bf772f7e06f38215bee68f089b15a4fcb12817..37024b4736dd3897490ca51d08cf07901b01d59f 100644 +index 1b7b07715067014bf3d35002ae1655793248b426..5bf55b40fbf6ec708f37d90bd0853fe7dd8fffd9 100644 --- a/src/main/java/org/bukkit/inventory/CraftingRecipe.java +++ b/src/main/java/org/bukkit/inventory/CraftingRecipe.java -@@ -18,7 +18,7 @@ public abstract class CraftingRecipe implements Recipe, Keyed { - - protected CraftingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { - Preconditions.checkArgument(key != null, "key cannot be null"); +@@ -99,7 +99,7 @@ public abstract class CraftingRecipe implements Recipe, Keyed { + @ApiStatus.Internal + @NotNull + protected static ItemStack checkResult(@NotNull ItemStack result) { - Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); + Preconditions.checkArgument(!result.isEmpty(), "Recipe cannot have an empty result."); // Paper - this.key = key; - this.output = new ItemStack(result); + return result; } + } diff --git a/src/main/java/org/bukkit/inventory/EmptyRecipeChoice.java b/src/main/java/org/bukkit/inventory/EmptyRecipeChoice.java new file mode 100644 index 0000000000000000000000000000000000000000..ed0ab6163f47ec843ba4f7ea4a98bb2fa315eaa1 @@ -211,10 +211,10 @@ index 91bfeffcdbe47208c7d0ddbe013cd0f11fddfa32..e7796054f3f65f5bea7f93c75320195f } } diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index aa3b3070126f1c492f004ec7599eeb379b58f207..1815de38654dd134abde3dd9bd0b018b91247bd5 100644 +index 295d82dd73b600e9436d2bbec0e11dbeaf78bbf4..c0105d716985acef497d60b5c631a56b4ca5847b 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -177,14 +177,15 @@ public class ShapedRecipe extends CraftingRecipe { +@@ -178,14 +178,15 @@ public class ShapedRecipe extends CraftingRecipe { Preconditions.checkArgument(key != ' ', "Space in recipe shape must represent no ingredient"); Preconditions.checkArgument(ingredients.containsKey(key), "Symbol does not appear in the shape:", key); @@ -233,10 +233,10 @@ index aa3b3070126f1c492f004ec7599eeb379b58f207..1815de38654dd134abde3dd9bd0b018b // Paper end diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index beb798482479c58a8628c314b510ab6349576ce8..8251170314ab25c26270208e453b4e3909435754 100644 +index 3bf5064cd6ceb05ea98b18993da46c67be140115..79db6dbc0367de2eaa397674624c765d5aeb8fa5 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -131,7 +131,7 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -132,7 +132,7 @@ public class ShapelessRecipe extends CraftingRecipe { public ShapelessRecipe addIngredient(@NotNull RecipeChoice ingredient) { Preconditions.checkArgument(ingredients.size() + 1 <= 9, "Shapeless recipes cannot have more than 9 ingredients"); @@ -245,7 +245,7 @@ index beb798482479c58a8628c314b510ab6349576ce8..8251170314ab25c26270208e453b4e39 return this; } -@@ -144,6 +144,8 @@ public class ShapelessRecipe extends CraftingRecipe { +@@ -145,6 +145,8 @@ public class ShapelessRecipe extends CraftingRecipe { @NotNull public ShapelessRecipe addIngredient(int count, @NotNull ItemStack item) { Preconditions.checkArgument(ingredients.size() + count <= 9, "Shapeless recipes cannot have more than 9 ingredients"); diff --git a/patches/api/0472-General-ItemMeta-fixes.patch b/patches/api/0472-General-ItemMeta-fixes.patch index 5339131e31..3e2a3cfb11 100644 --- a/patches/api/0472-General-ItemMeta-fixes.patch +++ b/patches/api/0472-General-ItemMeta-fixes.patch @@ -19,6 +19,27 @@ index 637fa73d4366c2d88e2716e5c8d3465706d788a7..0f03c546ecdd6383fb36a362d18d6fb5 this.flicker = flicker; this.trail = trail; this.colors = colors; +diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java +index a6d1dde422de98f178c0c9add99e01203a35e5cb..01ec84248a681180088fb1d7d22b80f8572b0305 100644 +--- a/src/main/java/org/bukkit/inventory/ItemType.java ++++ b/src/main/java/org/bukkit/inventory/ItemType.java +@@ -31,6 +31,7 @@ import org.bukkit.inventory.meta.MapMeta; + import org.bukkit.inventory.meta.MusicInstrumentMeta; + import org.bukkit.inventory.meta.OminousBottleMeta; + import org.bukkit.inventory.meta.PotionMeta; ++import org.bukkit.inventory.meta.ShieldMeta; + import org.bukkit.inventory.meta.SkullMeta; + import org.bukkit.inventory.meta.SpawnEggMeta; + import org.bukkit.inventory.meta.SuspiciousStewMeta; +@@ -1893,7 +1894,7 @@ public interface ItemType extends Keyed, Translatable, net.kyori.adventure.trans + /** + * ItemMeta: {@link BlockStateMeta} + */ +- ItemType.Typed SHIELD = getItemType("shield"); ++ ItemType.Typed SHIELD = getItemType("shield"); // Paper - update shield to its new meta + ItemType.Typed TOTEM_OF_UNDYING = getItemType("totem_of_undying"); + ItemType.Typed SHULKER_SHELL = getItemType("shulker_shell"); + ItemType.Typed IRON_NUGGET = getItemType("iron_nugget"); diff --git a/src/main/java/org/bukkit/inventory/meta/Damageable.java b/src/main/java/org/bukkit/inventory/meta/Damageable.java index ff6818b6d9e0207eafdd749928f33aeac3f27191..992f39da07bafe9769effaa7dc6adc018c89329d 100644 --- a/src/main/java/org/bukkit/inventory/meta/Damageable.java diff --git a/patches/api/0475-Registry-Modification-API.patch b/patches/api/0475-Registry-Modification-API.patch index b364107ae4..899814f754 100644 --- a/patches/api/0475-Registry-Modification-API.patch +++ b/patches/api/0475-Registry-Modification-API.patch @@ -790,10 +790,10 @@ index 0000000000000000000000000000000000000000..11d19e339c7c62f2eb4467277552c27e +record TagKeyImpl(RegistryKey registryKey, Key key) implements TagKey { +} diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java -index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a04d55ac42 100644 +index cd1e38debbec745dd13cd895327f544dcf42594d..c0428edee6ecbbd646c0e58da39a7ca476914fd1 100644 --- a/src/main/java/org/bukkit/Registry.java +++ b/src/main/java/org/bukkit/Registry.java -@@ -356,6 +356,27 @@ public interface Registry extends Iterable { +@@ -358,6 +358,27 @@ public interface Registry extends Iterable { */ @Nullable T get(@NotNull NamespacedKey key); @@ -821,7 +821,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0 // Paper start - improve Registry /** -@@ -430,6 +451,34 @@ public interface Registry extends Iterable { +@@ -432,6 +453,34 @@ public interface Registry extends Iterable { } // Paper end - improve Registry @@ -856,7 +856,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0 /** * Returns a new stream, which contains all registry items, which are registered to the registry. * -@@ -511,5 +560,23 @@ public interface Registry extends Iterable { +@@ -513,5 +562,23 @@ public interface Registry extends Iterable { return value.getKey(); } // Paper end - improve Registry diff --git a/patches/api/0476-Introduce-registry-entry-and-builders.patch b/patches/api/0476-Introduce-registry-entry-and-builders.patch index e97c9cef4e..44bdb4b36f 100644 --- a/patches/api/0476-Introduce-registry-entry-and-builders.patch +++ b/patches/api/0476-Introduce-registry-entry-and-builders.patch @@ -480,10 +480,10 @@ index 6c9689baca1763e2ef79495d38618d587e792434..4583092c2d1ffe95be2831c5d5f0e904 + // Paper end } diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java -index 94587a97fcea81a43b160b01d2c81cef2b7f4413..6bc1853ada3ea38bc36cb31fbb5ce246347fe5d4 100644 +index 01ec84248a681180088fb1d7d22b80f8572b0305..0168f0a14a3e899e84c5e36963ff79950ab580fb 100644 --- a/src/main/java/org/bukkit/inventory/ItemType.java +++ b/src/main/java/org/bukkit/inventory/ItemType.java -@@ -46,7 +46,7 @@ import org.jetbrains.annotations.Nullable; +@@ -47,7 +47,7 @@ import org.jetbrains.annotations.Nullable; * official replacement for the aforementioned enum. Entirely incompatible * changes may occur. Do not use this API in plugins. */ diff --git a/patches/api/0483-Fix-PickupStatus-getting-reset.patch b/patches/api/0481-Fix-PickupStatus-getting-reset.patch similarity index 100% rename from patches/api/0483-Fix-PickupStatus-getting-reset.patch rename to patches/api/0481-Fix-PickupStatus-getting-reset.patch diff --git a/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch b/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch deleted file mode 100644 index 7bf99722cc..0000000000 --- a/patches/api/0481-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bjarne Koll -Date: Fri, 19 Jul 2024 19:09:21 +0200 -Subject: [PATCH] Move CraftComplexRecipe to extend CraftingRecipe - -A craft complex recipe wraps a CustomRecipe, which itself is a -CraftingRecipe. -As such, this complex recipe should also be a crafting recipe. - -diff --git a/src/main/java/org/bukkit/inventory/CraftingRecipe.java b/src/main/java/org/bukkit/inventory/CraftingRecipe.java -index 37024b4736dd3897490ca51d08cf07901b01d59f..afa3de9ab78d01c448d450d8afbc7b1e7e62754c 100644 ---- a/src/main/java/org/bukkit/inventory/CraftingRecipe.java -+++ b/src/main/java/org/bukkit/inventory/CraftingRecipe.java -@@ -11,8 +11,11 @@ import org.jetbrains.annotations.NotNull; - * Represents a shaped or shapeless crafting recipe. - */ - public abstract class CraftingRecipe implements Recipe, Keyed { -- private final NamespacedKey key; -- private final ItemStack output; -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start -+ protected NamespacedKey key; -+ protected ItemStack output; -+ protected CraftingRecipe() {} -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end - private String group = ""; - private CraftingBookCategory category = CraftingBookCategory.MISC; - diff --git a/patches/api/0482-Add-CrafterCraftEvent.patch b/patches/api/0482-Add-CrafterCraftEvent.patch deleted file mode 100644 index c91ab8393d..0000000000 --- a/patches/api/0482-Add-CrafterCraftEvent.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: ploppyperson -Date: Thu, 18 Jul 2024 16:37:58 +0200 -Subject: [PATCH] Add CrafterCraftEvent - -Ports the currently proposed CrafterCraftEvent -from upstream. -The type is experimental to account for spigot -potentially changing some api contracts, however -the event is required for a stable release and -waiting on spigot's PR queue is not an option. - -See: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/pull-requests/1044/overview - -diff --git a/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..8dec6d16aa3c3579eadd77f637c9afa54ee9a90f ---- /dev/null -+++ b/src/main/java/org/bukkit/event/block/CrafterCraftEvent.java -@@ -0,0 +1,77 @@ -+package org.bukkit.event.block; -+ -+import org.bukkit.block.Block; -+import org.bukkit.event.Cancellable; -+import org.bukkit.event.HandlerList; -+import org.bukkit.inventory.CraftingRecipe; -+import org.bukkit.inventory.ItemStack; -+import org.jetbrains.annotations.NotNull; -+ -+/** -+ * Event called when a Crafter is about to craft an item -+ * @apiNote Currently still experimental as it is ported from an open, not merged, spigot PR. -+ * The event was pulled to allow protection plugins and the likes to properly manage crafters. -+ * The type remains experimental as upstream *may* change the event before pulling it, resulting in a breaking change. -+ */ -+@org.jetbrains.annotations.ApiStatus.Experimental -+public class CrafterCraftEvent extends BlockEvent implements Cancellable { -+ -+ private static final HandlerList handlers = new HandlerList(); -+ private boolean cancelled; -+ private ItemStack result; -+ private final CraftingRecipe recipe; -+ -+ @org.jetbrains.annotations.ApiStatus.Internal // Paper - internal constructor. -+ public CrafterCraftEvent(@NotNull Block theBlock, @NotNull CraftingRecipe recipe, @NotNull ItemStack result) { -+ super(theBlock); -+ this.result = result; -+ this.recipe = recipe; -+ } -+ -+ /** -+ * Gets the result for the craft -+ * @return the result for the craft -+ */ -+ @NotNull -+ public ItemStack getResult() { -+ return result.clone(); -+ } -+ -+ /** -+ * Sets the result of the craft -+ * @param result the result of the craft -+ */ -+ public void setResult(@NotNull ItemStack result) { -+ this.result = result.clone(); -+ } -+ -+ /** -+ * The recipe that was used to craft this item -+ * @return the recipe that was used to craft this item -+ */ -+ @NotNull -+ public CraftingRecipe getRecipe() { -+ return recipe; -+ } -+ -+ @NotNull -+ @Override -+ public HandlerList getHandlers() { -+ return handlers; -+ } -+ -+ @Override -+ public boolean isCancelled() { -+ return cancelled; -+ } -+ -+ @Override -+ public void setCancelled(boolean cancel) { -+ this.cancelled = cancel; -+ } -+ -+ @NotNull -+ public static HandlerList getHandlerList() { -+ return handlers; -+ } -+} diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 505d9bbbb0..3e04e97c06 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -131,10 +131,10 @@ index feca36209fd2405fab70f564f63e627b8b78ac18..396ec10a76bdadbf5be2f0e15e88eed4 public static PackRepository createPackRepository(Path dataPacksPath, DirectoryValidator symlinkFinder) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 82b8485a4781105bce874485119110576d1e2d63..a07e26caf48acf9ef193a74497a201166bfbe098 100644 +index 9bae4835882a7c1b5a623d57330c36cc61b9b6d1..273a6658deacbf00f6cc498cf3fcd20d144bd9e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -210,7 +210,7 @@ public class Main { +@@ -199,7 +199,7 @@ public class Main { } if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) { diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index a4b4a61e66..97ddef9404 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -351,6 +351,22 @@ index ebcb65cb74acdb9d1bcf2b4b3551a2dc6d809bc9..7d9dbed7281099b78d7f898885b37cdc } @Test +diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java +index 544307fe34cbcfa286a7d7b30900ebea127d189e..5bda0bc976920f224586f2c0e083b771c676e307 100644 +--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java ++++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java +@@ -53,6 +53,11 @@ public abstract class AbstractTestingBase { + MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList()); + // add tags and loot tables for unit tests + LayeredRegistryAccess layers = RegistryLayer.createRegistryAccess(); ++ // Paper start - load registry here to ensure bukkit object registry are correctly delayed if needed ++ try { ++ Class.forName("org.bukkit.Registry"); ++ } catch (ClassNotFoundException ignored) {} ++ // Paper end - load registry here to ensure bukkit object registry are correctly delayed if needed + layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES); + REGISTRY_CUSTOM = layers.compositeAccess().freeze(); + // Register vanilla pack diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java index 1acdf5bc439c073c1777c2c4f5743ae082f4a621..183d30e3d3d413b05c762f374a964498d6ffdec4 100644 --- a/src/test/java/org/bukkit/support/DummyServer.java diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 8fa709f084..38b5d938a5 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -5065,7 +5065,7 @@ index e8fac2863c5feb875cf0c78f062b4b87acbcb49b..751900e0c2a946ba4291174c81b2bdbd world.serverLevelData.setDifficulty(config.difficulty); world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a07e26caf48acf9ef193a74497a201166bfbe098..dbcde37cfdeb6141c3f5c4f8b95d60fca91c7977 100644 +index 273a6658deacbf00f6cc498cf3fcd20d144bd9e4..cf06abf508fab734f5945e1d292c01512a50749e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -142,6 +142,19 @@ public class Main { @@ -5190,10 +5190,10 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a + } +} diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java -index 544307fe34cbcfa286a7d7b30900ebea127d189e..1b1d51a68c0abe7d8f0aa1172064192c71ae645e 100644 +index 5bda0bc976920f224586f2c0e083b771c676e307..4e9612600822bc1b52b8528dff2783d43385ec73 100644 --- a/src/test/java/org/bukkit/support/AbstractTestingBase.java +++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java -@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase { +@@ -68,6 +68,7 @@ public abstract class AbstractTestingBase { BIOMES = REGISTRY_CUSTOM.registryOrThrow(Registries.BIOME); DummyServer.setup(); diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 1cda21bd7d..64c984e330 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5064,7 +5064,7 @@ index 12db4c5db3d7951df984db03d09d14d808e58699..44d4aee059d74676bffb8b6bc6f6ad4d @Override public float getBukkitYaw() { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 15f0b0977fe7b41e29346df9d49120f14f02ea43..b6cb1de08e955dfc99a0cb736b2ed456c99fde5c 100644 +index d7a3f704cce228c50d26f1ecd98e819eca561bfc..3457e1c9791b294b5e4dab478d90cdd1a1cf7fef 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -953,6 +953,25 @@ public final class ItemStack implements DataComponentHolder { @@ -5351,10 +5351,10 @@ index 497792978bdf0e6a53d772304770e8df3e7416ea..c5454b92ca2565461c799d7340160f9f public WorldBorder getWorldBorder() { return this.level.getWorldBorder(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 9569d9d1c8f809420e08038e5bc38c2c7887ff90..d5d638d955dbcc1034bc79aace77d43e20db5995 100644 +index e0594a1c381487b43bfc55212044e1b3122cee66..59fcaca90b67c03e1a6799e58061dbae3b1f1ceb 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -834,12 +834,14 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -841,12 +841,14 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -5369,7 +5369,7 @@ index 9569d9d1c8f809420e08038e5bc38c2c7887ff90..d5d638d955dbcc1034bc79aace77d43e this.legacySolid = this.calculateSolid(); } -@@ -886,8 +888,8 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -893,8 +895,8 @@ public abstract class BlockBehaviour implements FeatureElement { return this.getBlock().getOcclusionShape(this.asState(), world, pos); } diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 1b2fc84f62..1352a5e435 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -3242,7 +3242,7 @@ index ed54c81a3269360acce674aa4e1d54ccb2461841..c9c849534c3998cfcab7ddcb12a71ccb } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index b6cb1de08e955dfc99a0cb736b2ed456c99fde5c..abf502b8395bb0a8a32c1fdcd62532790deb1c6e 100644 +index 3457e1c9791b294b5e4dab478d90cdd1a1cf7fef..1138d238caa18171b6562cc748c92cec03bfbb97 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -183,7 +183,15 @@ public final class ItemStack implements DataComponentHolder { @@ -3628,7 +3628,7 @@ index 69c62699e3412f2730e3db65f196099d77698980..4878a1b085a83dd4a8ffdc86250b8fb4 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 2122d7316f55ab5bec7058fe1b8ee3ceb42deea7..43790f555743e9945c1b82cf8f2f4719feedc165 100644 +index 42a1a0588e2b506082499ac9791d039089a64631..9c1fab8db74757e1fb57d4f47099ba6e1536cd6d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -20,6 +20,12 @@ public class Main { @@ -4677,10 +4677,10 @@ index 5725b0281ac53a2354b233223259d6784353bc6e..9ef939b76d06874b856e0c850addb364 @Override public int getLineWidth() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 39aad2d00227d94aa1d24c27a10d916b7d64888d..63e20db8ad84b332a4962d5cea83f1064b7c1a3d 100644 +index 938a7ee49a727d5929d1d049c61d2881cf24ff9c..78f4bb474c85e32448a385e108707d92082bfe02 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -911,7 +911,7 @@ public class CraftEventFactory { +@@ -915,7 +915,7 @@ public class CraftEventFactory { return event; } @@ -4689,7 +4689,7 @@ index 39aad2d00227d94aa1d24c27a10d916b7d64888d..63e20db8ad84b332a4962d5cea83f106 CraftPlayer entity = victim.getBukkitEntity(); CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource); PlayerDeathEvent event = new PlayerDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()), 0, deathMessage); -@@ -944,7 +944,7 @@ public class CraftEventFactory { +@@ -948,7 +948,7 @@ public class CraftEventFactory { * Server methods */ public static ServerListPingEvent callServerListPingEvent(SocketAddress address, String motd, int numPlayers, int maxPlayers) { @@ -4803,10 +4803,10 @@ index c9cc23757a9fcc58d30b2915d4c5cfbc7d1c767a..fc0e1212022d1aa3506699b60ef33819 return this.title; } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java -index 6871fbde3498f18274029638e0cd27d1a78bb1d7..5888a44d7f1f06e6308b068e57c295de366061cd 100644 +index 07d406de7123593dc470af2723f2a9a2dc2157b0..01fbd8a55866af3e371c8a2eef23ef6e9ca3226d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java -@@ -73,6 +73,13 @@ public class CraftInventoryView extends CraftAbstractInventoryView { +@@ -73,6 +73,13 @@ public class CraftInventoryView extends CraftAb return CraftItemStack.asCraftMirror(this.container.getSlot(slot).getItem()); } @@ -5165,10 +5165,10 @@ index c71a4971f127fdfc753306019313ce1a31201120..fd3b12477c30d1eabdbe57ea77902793 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d 100644 +index 1c5d63fb6a9ed5cc40d735793cf5889e189feadf..568d6fab743039b20715d8181555f52baa05f0f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -952,6 +952,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -959,6 +959,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return !(this.hasDisplayName() || this.hasItemName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.build().isEmpty() || !this.removedTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isHideTooltip() || this.isUnbreakable() || this.hasEnchantmentGlintOverride() || this.isFireResistant() || this.hasMaxStackSize() || this.hasRarity() || this.hasFood() || this.hasTool() || this.hasDamage() || this.hasMaxDamage() || this.hasAttributeModifiers() || this.customTag != null); } @@ -5187,7 +5187,7 @@ index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cf @Override public String getDisplayName() { return CraftChatMessage.fromComponent(this.displayName); -@@ -982,6 +994,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -989,6 +1001,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return this.itemName != null; } @@ -5206,7 +5206,7 @@ index e56e6d07f297491c8f92598b8105bfebead7a0a1..86a5e4f7b2a0d50d0a58d88e10a277cf @Override public String getLocalizedName() { return this.getDisplayName(); -@@ -1001,6 +1025,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1008,6 +1032,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return this.lore != null && !this.lore.isEmpty(); } diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch index 05265dfcf1..f2b824516b 100644 --- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -423,7 +423,7 @@ index bec1fdabbc3727c1f7297b2d23914a5179f4adcb..17df1085e29429b202a6f9003343b15b @Override public PluginCommand getPluginCommand(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d55d9d032 100644 +index 9c1fab8db74757e1fb57d4f47099ba6e1536cd6d..3eecea2e6df217ccf2c432d02022c53443a37014 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -13,7 +13,6 @@ import java.util.logging.Logger; @@ -434,7 +434,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d public class Main { public static boolean useJline = true; -@@ -207,6 +206,8 @@ public class Main { +@@ -196,6 +195,8 @@ public class Main { } try { @@ -443,7 +443,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d // This trick bypasses Maven Shade's clever rewriting of our getProperty call when using String literals String jline_UnsupportedTerminal = new String(new char[]{'j', 'l', 'i', 'n', 'e', '.', 'U', 'n', 's', 'u', 'p', 'p', 'o', 'r', 't', 'e', 'd', 'T', 'e', 'r', 'm', 'i', 'n', 'a', 'l'}); String jline_terminal = new String(new char[]{'j', 'l', 'i', 'n', 'e', '.', 't', 'e', 'r', 'm', 'i', 'n', 'a', 'l'}); -@@ -224,9 +225,18 @@ public class Main { +@@ -213,9 +214,18 @@ public class Main { // This ensures the terminal literal will always match the jline implementation System.setProperty(jline.TerminalFactory.JLINE_TERMINAL, jline.UnsupportedTerminal.class.getName()); } @@ -462,7 +462,7 @@ index 43790f555743e9945c1b82cf8f2f4719feedc165..26dfb02286e836cad0242c71f743265d } if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) { -@@ -242,6 +252,7 @@ public class Main { +@@ -231,6 +241,7 @@ public class Main { } } diff --git a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch index 6c6939c01e..8f4c15153f 100644 --- a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch +++ b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch @@ -8,7 +8,7 @@ our own relocation. Also lets us rewrite NMS calls for when we're debugging in an IDE pre-relocate. diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb9d90aa92 100644 +index f80625a2b1dc266131ba3bfda9a918c72a592d82..ebc160fd4c8aed95087130bb6fddc1d4f83c6f87 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java @@ -11,6 +11,7 @@ import java.util.Arrays; @@ -27,7 +27,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; -@@ -99,6 +101,40 @@ public class Commodore { +@@ -100,6 +102,40 @@ public class Commodore { private static final Map METHOD_REROUTE = Commodore.createReroutes(MethodRerouting.class); private static final Map ENUM_METHOD_REROUTE = Commodore.createReroutes(EnumEvil.class); @@ -68,7 +68,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb public static void main(String[] args) { OptionParser parser = new OptionParser(); OptionSpec inputFlag = parser.acceptsAll(Arrays.asList("i", "input")).withRequiredArg().ofType(File.class).required(); -@@ -252,9 +288,49 @@ public class Commodore { +@@ -253,9 +289,49 @@ public class Commodore { } return new MethodVisitor(this.api, super.visitMethod(access, name, desc, signature, exceptions)) { @@ -118,7 +118,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb name = FieldRename.rename(pluginVersion, owner, name); if (modern) { -@@ -374,6 +450,13 @@ public class Commodore { +@@ -375,6 +451,13 @@ public class Commodore { return; } @@ -132,7 +132,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb if (modern) { if (owner.equals("org/bukkit/Material") || (instantiatedMethodType != null && instantiatedMethodType.getDescriptor().startsWith("(Lorg/bukkit/Material;)"))) { switch (name) { -@@ -470,6 +553,13 @@ public class Commodore { +@@ -471,6 +554,13 @@ public class Commodore { @Override public void visitLdcInsn(Object value) { @@ -146,7 +146,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb if (value instanceof String && ((String) value).equals("com.mysql.jdbc.Driver")) { super.visitLdcInsn("com.mysql.cj.jdbc.Driver"); return; -@@ -480,6 +570,14 @@ public class Commodore { +@@ -481,6 +571,14 @@ public class Commodore { @Override public void visitInvokeDynamicInsn(String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments) { @@ -161,7 +161,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb if (bootstrapMethodHandle.getOwner().equals("java/lang/invoke/LambdaMetafactory") && bootstrapMethodHandle.getName().equals("metafactory") && bootstrapMethodArguments.length == 3) { Type samMethodType = (Type) bootstrapMethodArguments[0]; -@@ -496,7 +594,7 @@ public class Commodore { +@@ -497,7 +595,7 @@ public class Commodore { methodArgs.add(new Handle(newOpcode, newOwner, newName, newDescription, newItf)); methodArgs.add(newInstantiated); @@ -170,7 +170,7 @@ index 4afaab8978d4c4d9b0e9339f1bea9a9a9963d20d..421ddf6ca955215dff77655a7eda62eb }, implMethod.getTag(), implMethod.getOwner(), implMethod.getName(), implMethod.getDesc(), implMethod.isInterface(), samMethodType, instantiatedMethodType); return; } -@@ -547,6 +645,12 @@ public class Commodore { +@@ -548,6 +646,12 @@ public class Commodore { @Override public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value) { diff --git a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch index ed625b27de..a1af0e562f 100644 --- a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch +++ b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch @@ -645,10 +645,10 @@ index 242811578a786e3807a1a7019d472d5a68f87116..0b65fdf53124f3dd042b2363b1b8df8e return traceElements; } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 421ddf6ca955215dff77655a7eda62eb9d90aa92..8a1570ceb4755a1872911751943c84b8f06eb4c2 100644 +index ebc160fd4c8aed95087130bb6fddc1d4f83c6f87..65f64de05a88844e62b5a0dd1e2f53edfb4e0c1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -102,36 +102,26 @@ public class Commodore { +@@ -103,36 +103,26 @@ public class Commodore { private static final Map ENUM_METHOD_REROUTE = Commodore.createReroutes(EnumEvil.class); // Paper start - Plugin rewrites @@ -696,7 +696,7 @@ index 421ddf6ca955215dff77655a7eda62eb9d90aa92..8a1570ceb4755a1872911751943c84b8 } // Paper end - Plugin rewrites -@@ -214,6 +204,7 @@ public class Commodore { +@@ -215,6 +205,7 @@ public class Commodore { visitor = new LimitedClassRemapper(cw, new SimpleRemapper(Commodore.ENUM_RENAMES)); } diff --git a/patches/server/0026-Support-components-in-ItemMeta.patch b/patches/server/0026-Support-components-in-ItemMeta.patch index beae574f9a..680fd5d70f 100644 --- a/patches/server/0026-Support-components-in-ItemMeta.patch +++ b/patches/server/0026-Support-components-in-ItemMeta.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Support components in ItemMeta diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9 100644 +index 568d6fab743039b20715d8181555f52baa05f0f3..7ae3cdb80335cbeb0ff695eb719a170651586722 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -969,11 +969,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -976,11 +976,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return CraftChatMessage.fromComponent(this.displayName); } @@ -32,7 +32,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d @Override public boolean hasDisplayName() { return this.displayName != null; -@@ -1147,6 +1159,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1154,6 +1166,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return this.lore == null ? null : new ArrayList(Lists.transform(this.lore, CraftChatMessage::fromComponent)); } @@ -47,7 +47,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d @Override public void setLore(List lore) { if (lore == null || lore.isEmpty()) { -@@ -1161,6 +1181,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1168,6 +1188,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -69,7 +69,7 @@ index 86a5e4f7b2a0d50d0a58d88e10a277cfbd09bf9d..46e1fabf85cc0d92f79a7adf24e5724d @Override public boolean hasCustomModelData() { return this.customModelData != null; -@@ -1873,6 +1908,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1880,6 +1915,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } for (Object object : addFrom) { diff --git a/patches/server/0033-Expose-server-build-information.patch b/patches/server/0033-Expose-server-build-information.patch index 2a0bceab6c..978c66d922 100644 --- a/patches/server/0033-Expose-server-build-information.patch +++ b/patches/server/0033-Expose-server-build-information.patch @@ -659,7 +659,7 @@ index acab477a4a026799319054c2eb4d0f2c99ab3d83..2a36e562967ec6174efe456e489c50ca public List getOnlinePlayers() { return this.playerView; diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 1c8049bbc08be77673d375205bd42a346ff951b8..1aa75b11ee3297e379baa111cf53e1cfcd8b016e 100644 +index 8da38624b5867ce88bdb3036e1ed6d99fc626f31..2097be352dc585b805dc73194cec095627f311bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -15,6 +15,7 @@ import joptsimple.OptionSet; @@ -670,7 +670,7 @@ index 1c8049bbc08be77673d375205bd42a346ff951b8..1aa75b11ee3297e379baa111cf53e1cf public static boolean useJline = true; public static boolean useConsole = true; -@@ -252,15 +253,17 @@ public class Main { +@@ -241,15 +242,17 @@ public class Main { deadline.add(Calendar.DAY_OF_YEAR, -14); if (buildDate.before(deadline.getTime())) { System.err.println("*** Error, this build is outdated ***"); diff --git a/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch index 17e1d51ed5..00c91ac5e5 100644 --- a/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch +++ b/patches/server/0070-Handle-Item-Meta-Inconsistencies.patch @@ -149,7 +149,7 @@ index 17fa2d3db112762bcb8b941b69b8ddcc53f47224..6c76aeddb34239a5acc204a17b2aa2d8 static Map getEnchantments(net.minecraft.world.item.ItemStack item) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4f983c0f3 100644 +index 7ae3cdb80335cbeb0ff695eb719a170651586722..97c40582bca095532fff9a81515f38ea4ac527e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList; @@ -197,7 +197,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4 tag.entrySet().forEach((entry) -> { Holder id = entry.getKey(); -@@ -729,13 +731,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -736,13 +738,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return modifiers; } @@ -213,7 +213,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4 for (Map.Entry entry : ench.entrySet()) { Enchantment enchantment = CraftEnchantment.stringToBukkit(entry.getKey().toString()); if ((enchantment != null) && (entry.getValue() instanceof Integer)) { -@@ -1072,14 +1074,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1079,14 +1081,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public Map getEnchants() { @@ -230,7 +230,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4 } if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) { -@@ -1679,7 +1681,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1686,7 +1688,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.customModelData = this.customModelData; clone.blockData = this.blockData; if (this.enchantments != null) { @@ -239,7 +239,7 @@ index 46e1fabf85cc0d92f79a7adf24e5724dc1dc08a9..69be26f8f47854f39cfed0559d944ef4 } if (this.hasAttributeModifiers()) { clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers); -@@ -2028,4 +2030,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -2036,4 +2038,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return (result != null) ? result : Optional.empty(); } diff --git a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch index fd354e6963..3ac4e0b315 100644 --- a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch @@ -59,10 +59,10 @@ index 64db7e017b41bffcaac202ee4ecfd7df46d69331..14a821bfc6b20475889d3138b8da9e6b @Override diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 63e20db8ad84b332a4962d5cea83f1064b7c1a3d..bb296f649afd143adad47595479532cfdd778b71 100644 +index 78f4bb474c85e32448a385e108707d92082bfe02..b68068c783f782258f86e5ecf54664916f069e38 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1901,4 +1901,13 @@ public class CraftEventFactory { +@@ -1915,4 +1915,13 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(new EntityRemoveEvent(entity.getBukkitEntity(), cause)); } diff --git a/patches/server/0108-Add-EntityZapEvent.patch b/patches/server/0108-Add-EntityZapEvent.patch index 9349d4820b..3f2644e38f 100644 --- a/patches/server/0108-Add-EntityZapEvent.patch +++ b/patches/server/0108-Add-EntityZapEvent.patch @@ -28,10 +28,10 @@ index 63c10be6eacd7108b8b4795d76bf624e0614440a..243eb1e54293c763a06febff551c0513 entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null); entitywitch.setNoAi(this.isNoAi()); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index bb296f649afd143adad47595479532cfdd778b71..5cf1b15160647b6e8e42a167502643882a231c55 100644 +index b68068c783f782258f86e5ecf54664916f069e38..44c416f812867f19a26aeefc5710a7aef9dfdf64 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1211,6 +1211,14 @@ public class CraftEventFactory { +@@ -1215,6 +1215,14 @@ public class CraftEventFactory { return !event.isCancelled(); } diff --git a/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch index d472f677f5..46f6c063c9 100644 --- a/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch +++ b/patches/server/0112-Add-source-to-PlayerExpChangeEvent.patch @@ -18,10 +18,10 @@ index 56402312e44d12c859e2c4b39902d31b7cfd1573..25a45e680f9fdea90f43d59de87a3a50 --this.count; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5cf1b15160647b6e8e42a167502643882a231c55..6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb 100644 +index 44c416f812867f19a26aeefc5710a7aef9dfdf64..a83b7f350bf20f944de92df76e112aaa49dc608d 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1164,6 +1164,17 @@ public class CraftEventFactory { +@@ -1168,6 +1168,17 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0113-Add-ProjectileCollideEvent.patch b/patches/server/0113-Add-ProjectileCollideEvent.patch index 867e422520..4a6b57dae0 100644 --- a/patches/server/0113-Add-ProjectileCollideEvent.patch +++ b/patches/server/0113-Add-ProjectileCollideEvent.patch @@ -6,13 +6,13 @@ Subject: [PATCH] Add ProjectileCollideEvent Deprecated now and replaced with ProjectileHitEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb..50a4e657508e21717a61900660d85203d9373e19 100644 +index a83b7f350bf20f944de92df76e112aaa49dc608d..b5b237c56575e8ceb3e6471deec1e7712891a8e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1308,6 +1308,17 @@ public class CraftEventFactory { - return CraftItemStack.asNMSCopy(bitem); +@@ -1321,6 +1321,16 @@ public class CraftEventFactory { + Bukkit.getPluginManager().callEvent(crafterCraftEvent); + return crafterCraftEvent; } - + // Paper start + @Deprecated + public static com.destroystokyo.paper.event.entity.ProjectileCollideEvent callProjectileCollideEvent(Entity entity, EntityHitResult position) { @@ -23,11 +23,10 @@ index 6ffc5b9eb2fa084c7cf397d944e6fc1d8d770dbb..50a4e657508e21717a61900660d85203 + return event; + } + // Paper end -+ + public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) { Projectile bukkitEntity = (Projectile) entity.getBukkitEntity(); - ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity); -@@ -1332,8 +1343,15 @@ public class CraftEventFactory { +@@ -1346,8 +1356,15 @@ public class CraftEventFactory { if (position.getType() == HitResult.Type.ENTITY) { hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity(); } diff --git a/patches/server/0146-Fix-this-stupid-bullshit.patch b/patches/server/0146-Fix-this-stupid-bullshit.patch index 2e5a252a99..35f07c8aba 100644 --- a/patches/server/0146-Fix-this-stupid-bullshit.patch +++ b/patches/server/0146-Fix-this-stupid-bullshit.patch @@ -31,10 +31,10 @@ index 8f1992188f7fd9e735569e099b36a7eafed47aae..061c89b985dafc79c808dd5f0e296b9f Bootstrap.isBootstrapped = true; Instant instant = Instant.now(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index fcc7cdd0adfcaa135d08ea36746dca980590d6eb..4c8d98598b5cdcdbe4a778f1ec142e3a7ab33196 100644 +index 837db57c19df3d5c986a52edf3d9d8105cc87cde..446403f73fb1b5687d587889e6f32dce464d05a6 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -260,10 +260,12 @@ public class Main { +@@ -249,10 +249,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); deadline.add(Calendar.DAY_OF_YEAR, -14); if (buildDate.before(deadline.getTime())) { diff --git a/patches/server/0169-Add-ArmorStand-Item-Meta.patch b/patches/server/0169-Add-ArmorStand-Item-Meta.patch index b6aa22ecaf..554e001492 100644 --- a/patches/server/0169-Add-ArmorStand-Item-Meta.patch +++ b/patches/server/0169-Add-ArmorStand-Item-Meta.patch @@ -13,7 +13,7 @@ starting point for future additions in this area. Fixes GH-559 diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java -index 85aab880fdb2f23d09096f8f2b1ede4f068fa023..4ae9930c2d74e5b1e3ad0c2ecf6556dc59cbf23c 100644 +index eef3517833ff5c0cf41b89973ebc972b8ed31e0f..c9fbc01be0b0e7fd1cafb091d06496f4ba1e7c2c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java @@ -1,5 +1,6 @@ @@ -22,8 +22,8 @@ index 85aab880fdb2f23d09096f8f2b1ede4f068fa023..4ae9930c2d74e5b1e3ad0c2ecf6556dc +import com.destroystokyo.paper.inventory.meta.ArmorStandMeta; import java.util.function.BiFunction; import java.util.function.Function; - import net.minecraft.world.item.ItemStack; -@@ -95,7 +96,7 @@ public final class CraftItemMetas { + import net.minecraft.world.item.BannerItem; +@@ -102,7 +103,7 @@ public final class CraftItemMetas { item -> new CraftMetaSpawnEgg(item.getComponentsPatch()), (type, meta) -> meta instanceof CraftMetaSpawnEgg spawnEgg ? spawnEgg : new CraftMetaSpawnEgg(meta)); @@ -272,7 +272,7 @@ index c4f12f96e39cb6189799a796b4cb2cb4f0b92392..59bdac414e8205ed608f79ef0d1502ac + // Paper end } diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index 99a555ca72cd95d760d68072242203deeddd0ce1..a1d8da4e0de3f84194f28d7d18fa795d53714590 100644 +index b46032190dbb0d47ee3c1a11959f6278ddf5eb5a..0715f43f3f8235d28a12b9d49d78c765a946c53f 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java @@ -364,6 +364,7 @@ public class ItemMetaTest extends AbstractTestingBase { diff --git a/patches/server/0176-Player.setPlayerProfile-API.patch b/patches/server/0176-Player.setPlayerProfile-API.patch index d847c9d191..21f5229b12 100644 --- a/patches/server/0176-Player.setPlayerProfile-API.patch +++ b/patches/server/0176-Player.setPlayerProfile-API.patch @@ -220,10 +220,10 @@ index 4602c3d0be94f0146a2b205268f70aaf85410f20..422c25577a0d95b31b5528fad8fc9b3a public void onEntityRemove(Entity entity) { this.invertedVisibilityEntities.remove(entity.getUUID()); diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 8a1570ceb4755a1872911751943c84b8f06eb4c2..38339b8b1b3b70bbbf0259d7095b02ee8c22b609 100644 +index 65f64de05a88844e62b5a0dd1e2f53edfb4e0c1f..e1b86308f737b957b6d00bc902b91856694b7cbf 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -448,6 +448,13 @@ public class Commodore { +@@ -449,6 +449,13 @@ public class Commodore { } // Paper end - Rewrite plugins diff --git a/patches/server/0192-WitchReadyPotionEvent.patch b/patches/server/0192-WitchReadyPotionEvent.patch index 8bbf7b47e0..56d606d8f3 100644 --- a/patches/server/0192-WitchReadyPotionEvent.patch +++ b/patches/server/0192-WitchReadyPotionEvent.patch @@ -22,10 +22,10 @@ index a14e00d55930628333cc63b18727ea56dbdc4ee3..f6d01d21745391595d61b191832be4c2 this.setUsingItem(true); if (!this.isSilent()) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 50a4e657508e21717a61900660d85203d9373e19..1c53b872b30bcd8535b8686015935025a4c9837f 100644 +index b5b237c56575e8ceb3e6471deec1e7712891a8e0..cfdabb93c2d30845af9108552ed9bee9929250ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1947,4 +1947,14 @@ public class CraftEventFactory { +@@ -1960,4 +1960,14 @@ public class CraftEventFactory { ).callEvent(); } // Paper end - PlayerUseUnknownEntityEvent diff --git a/patches/server/0202-Add-entity-knockback-events.patch b/patches/server/0202-Add-entity-knockback-events.patch index 2fa28dc910..19f7aa3388 100644 --- a/patches/server/0202-Add-entity-knockback-events.patch +++ b/patches/server/0202-Add-entity-knockback-events.patch @@ -273,10 +273,10 @@ index 6476c644d3da824c5ee4190cb45cde678ff1188f..a5f4ecb96c508b94a92a43c864c075f6 // CraftBukkit end entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d1)); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 1c53b872b30bcd8535b8686015935025a4c9837f..0888692736ef62e741aa41d3a72b9b8c3075dfcd 100644 +index cfdabb93c2d30845af9108552ed9bee9929250ce..e1b7bd5c23ba79b84ad257b7fb45e251da3978e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1909,19 +1909,33 @@ public class CraftEventFactory { +@@ -1922,19 +1922,33 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch index 02104aa8f1..080360b9f4 100644 --- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch @@ -96,7 +96,7 @@ index 72edfb965aca81c2d2442b794b42baa04ec713b3..a954d3b0ff0917d857002dba70c54b3f 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 9019e25f61d4fdb7c5d12ea7630b0bc23827ab6e..38cf3cf1cc7ebae4b6ca8a89dc026b5b4f0b4c2b 100644 +index 26cee48ea3650aaf87fd2ba9c70d4ca9a88e2d87..25dee4848c8b2cff74075c6d26d384e71f706627 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -510,7 +510,7 @@ public abstract class PlayerList { @@ -178,10 +178,10 @@ index 326f36726c124385145c469566c2089439b5dd0f..0b4c5a2604f61a34b5666a9a83a2e644 // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0888692736ef62e741aa41d3a72b9b8c3075dfcd..7fa68654c2e0c87dd779a1354fc103be4d7d7a46 100644 +index e1b7bd5c23ba79b84ad257b7fb45e251da3978e5..ad271871b207b425ef8d599fe74a67d065d66686 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1277,7 +1277,7 @@ public class CraftEventFactory { +@@ -1281,7 +1281,7 @@ public class CraftEventFactory { public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open @@ -190,7 +190,7 @@ index 0888692736ef62e741aa41d3a72b9b8c3075dfcd..7fa68654c2e0c87dd779a1354fc103be } CraftServer server = player.level().getCraftServer(); -@@ -1464,8 +1464,18 @@ public class CraftEventFactory { +@@ -1477,8 +1477,18 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0217-Vanished-players-don-t-have-rights.patch b/patches/server/0217-Vanished-players-don-t-have-rights.patch index b81b6e54e3..3ee31bb1d3 100644 --- a/patches/server/0217-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0217-Vanished-players-don-t-have-rights.patch @@ -89,10 +89,10 @@ index a9227581ec78a56e96dc3a342006e4a649906326..5929b450a26e7c3cf63de3dc1d0e67cb public boolean isClientSide() { return this.isClientSide; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 7fa68654c2e0c87dd779a1354fc103be4d7d7a46..a221ae7ec1a7db9c38037fa71ea35b5309b99973 100644 +index ad271871b207b425ef8d599fe74a67d065d66686..d1b473ef83df0ed4ae7cd9dd0525dac5e8a41223 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1314,6 +1314,14 @@ public class CraftEventFactory { +@@ -1327,6 +1327,14 @@ public class CraftEventFactory { Projectile projectile = (Projectile) entity.getBukkitEntity(); org.bukkit.entity.Entity collided = position.getEntity().getBukkitEntity(); com.destroystokyo.paper.event.entity.ProjectileCollideEvent event = new com.destroystokyo.paper.event.entity.ProjectileCollideEvent(projectile, collided); diff --git a/patches/server/0235-Optimize-CraftBlockData-Creation.patch b/patches/server/0235-Optimize-CraftBlockData-Creation.patch index 8f037e052a..501971aa29 100644 --- a/patches/server/0235-Optimize-CraftBlockData-Creation.patch +++ b/patches/server/0235-Optimize-CraftBlockData-Creation.patch @@ -7,10 +7,10 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData and cloning it when one is needed. diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 4ac248f9f5f4f7aa95ddd6e3c3dab1ce94e73d66..d02f7a547dbe8943f82c07103b1fff203e4533c2 100644 +index 59fcaca90b67c03e1a6799e58061dbae3b1f1ceb..46dd499c2023ec482ae7204d2894fb4100d9233b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -813,6 +813,14 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -820,6 +820,14 @@ public abstract class BlockBehaviour implements FeatureElement { this.instrument = blockbase_info.instrument; this.replaceable = blockbase_info.replaceable; } diff --git a/patches/server/0243-Improve-death-events.patch b/patches/server/0243-Improve-death-events.patch index ccf6f18a9d..235279b5fe 100644 --- a/patches/server/0243-Improve-death-events.patch +++ b/patches/server/0243-Improve-death-events.patch @@ -443,10 +443,10 @@ index 92f9502a2d5721ebb1757a069a0f138db66628d7..6c5bd88777ff79c7408cf5ffed0f099a public void injectScaledMaxHealth(Collection collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e3ac117d3 100644 +index d1b473ef83df0ed4ae7cd9dd0525dac5e8a41223..a9a2b35378d6654ba00a48737f596553445214aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -897,9 +897,16 @@ public class CraftEventFactory { +@@ -901,9 +901,16 @@ public class CraftEventFactory { CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource); EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity())); @@ -463,7 +463,7 @@ index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e victim.expToDrop = event.getDroppedExp(); for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -@@ -917,7 +924,14 @@ public class CraftEventFactory { +@@ -921,7 +928,14 @@ public class CraftEventFactory { PlayerDeathEvent event = new PlayerDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity()), 0, deathMessage); event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel @@ -478,7 +478,7 @@ index a221ae7ec1a7db9c38037fa71ea35b5309b99973..d3baf38cf45d13eeffedcc697468842e victim.keepLevel = event.getKeepLevel(); victim.newLevel = event.getNewLevel(); -@@ -940,6 +954,31 @@ public class CraftEventFactory { +@@ -944,6 +958,31 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0316-Improve-java-version-check.patch b/patches/server/0316-Improve-java-version-check.patch index 4bd8947722..3d9eed5372 100644 --- a/patches/server/0316-Improve-java-version-check.patch +++ b/patches/server/0316-Improve-java-version-check.patch @@ -6,42 +6,31 @@ Subject: [PATCH] Improve java version check Co-Authored-By: MiniDigger diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 8245b38d37b4cee6f4e7b61d7af40a18e54a3f43..e226eda5efc0e45e59cb5f6251ed008b67d5299a 100644 +index 446403f73fb1b5687d587889e6f32dce464d05a6..ed167d0d399924d54d9ff99c10ab8ee093efc149 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -203,23 +203,27 @@ public class Main { +@@ -203,11 +203,20 @@ public class Main { return; } -+ // Paper start - Improve java version check -+ boolean skip = Boolean.getBoolean("Paper.IgnoreJavaVersion"); - float javaVersion = Float.parseFloat(System.getProperty("java.class.version")); -- if (javaVersion < 61.0) { -- System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'."); -- return; -- } +- float javaVersion = Float.parseFloat(System.getProperty("java.class.version")); - if (javaVersion > 66.0) { - System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 22 is supported."); -+ boolean isOldVersion = javaVersion < 61.0; -+ if (!skip && isOldVersion) { -+ System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 21. Check your Java version with the command 'java -version'. For more info see https://docs.papermc.io/misc/java-install"); - return; - } - String javaVersionName = System.getProperty("java.version"); - // J2SE SDK/JRE Version String Naming Convention - boolean isPreRelease = javaVersionName.contains("-"); -- if (isPreRelease && javaVersion == 61.0) { -- System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an outdated, pre-release version. Only general availability versions of Java are supported. Please update your Java version."); -+ if (!skip && isPreRelease) { -+ System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an unsupported, non official, version. Only general availability versions of Java are supported. Please update your Java version. See https://docs.papermc.io/paper/faq#unsupported-java-detected-what-do-i-do for more information."); - return; - } - -+ if (skip && (isOldVersion || isPreRelease)) { -+ System.err.println("Unsupported Java detected ("+ javaVersionName + "), but the check was skipped. Proceed with caution! "); -+ } -+ // Paper end - Improve java version check +- return; ++ // Paper start - Improve java version check ++ boolean skip = Boolean.getBoolean("Paper.IgnoreJavaVersion"); ++ String javaVersionName = System.getProperty("java.version"); ++ // J2SE SDK/JRE Version String Naming Convention ++ boolean isPreRelease = javaVersionName.contains("-"); ++ if (isPreRelease) { ++ if (!skip) { ++ System.err.println("Unsupported Java detected (" + javaVersionName + "). You are running an unsupported, non official, version. Only general availability versions of Java are supported. Please update your Java version. See https://docs.papermc.io/paper/faq#unsupported-java-detected-what-do-i-do for more information."); ++ return; ++ } + ++ System.err.println("Unsupported Java detected ("+ javaVersionName + "), but the check was skipped. Proceed with caution! "); + } ++ // Paper end - Improve java version check + try { // Paper start - Handled by TerminalConsoleAppender - /* diff --git a/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch index a80da71d1f..ca43013242 100644 --- a/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0321-add-hand-to-BlockMultiPlaceEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d3baf38cf45d13eeffedcc697468842e3ac117d3..3ba695a29dcf9e7137dae16835e6f7a375d560f7 100644 +index a9a2b35378d6654ba00a48737f596553445214aa..7d21f3ec394b53461ca5fb73449b551fbe6e96aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -406,13 +406,18 @@ public class CraftEventFactory { +@@ -410,13 +410,18 @@ public class CraftEventFactory { } org.bukkit.inventory.ItemStack item; diff --git a/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch index 9e2640a497..3482c69ed8 100644 --- a/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0349-Fix-item-duplication-and-teleport-issues.patch @@ -124,10 +124,10 @@ index 92bb0c63330ad3a4cb13b2dc655020714e9b1ffd..cc1189c2d7dc57ba8f29aad4ba5d2a07 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3ba695a29dcf9e7137dae16835e6f7a375d560f7..e0cbef395c479da40dc7079835f0eae1ee122da1 100644 +index 7d21f3ec394b53461ca5fb73449b551fbe6e96aa..408f677337759f529fa41f6ba2b516b71a7940f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -899,6 +899,11 @@ public class CraftEventFactory { +@@ -903,6 +903,11 @@ public class CraftEventFactory { } public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, DamageSource damageSource, List drops) { @@ -139,7 +139,7 @@ index 3ba695a29dcf9e7137dae16835e6f7a375d560f7..e0cbef395c479da40dc7079835f0eae1 CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource); EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, drops, victim.getExpReward(damageSource.getEntity())); -@@ -913,11 +918,13 @@ public class CraftEventFactory { +@@ -917,11 +922,13 @@ public class CraftEventFactory { playDeathSound(victim, event); // Paper end victim.expToDrop = event.getDroppedExp(); diff --git a/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch b/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch index 4afcd62001..6d45bdaa2f 100644 --- a/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch +++ b/patches/server/0357-ExperienceOrb-merging-stacking-API-and-fixes.patch @@ -77,10 +77,10 @@ index 5a7d314ec0562e472f5dc45924a7b24841cff126..650e4a01cecc4cc08e7ff9ebcc4c3670 public java.util.UUID getTriggerEntityId() { return getHandle().triggerEntityId; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e0cbef395c479da40dc7079835f0eae1ee122da1..ec364ab90df6276c1976e876337636f4bb06d097 100644 +index 408f677337759f529fa41f6ba2b516b71a7940f1..1177a9310f686f3b4d75a713cdac75c5628e8bbb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -708,15 +708,29 @@ public class CraftEventFactory { +@@ -712,15 +712,29 @@ public class CraftEventFactory { if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; if (radius > 0) { diff --git a/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch b/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch index 802f698e6f..680235a49a 100644 --- a/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch +++ b/patches/server/0379-Add-BlockStateMeta-clearBlockState.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockStateMeta#clearBlockState diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -index 80ace77a9b11d63a1b2271c868c59711f5d2f89d..4faada5f974214f3054dc1bec9c79e2600c8df48 100644 +index 301d883a7626e3abd222517400367fc40d6fa2bd..23dbc56edf0d16cf07ced2899942abae28397694 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -@@ -195,6 +195,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -198,6 +198,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta return this.blockEntityTag != null; } @@ -22,3 +22,21 @@ index 80ace77a9b11d63a1b2271c868c59711f5d2f89d..4faada5f974214f3054dc1bec9c79e26 @Override public BlockState getBlockState() { return (this.blockEntityTag != null) ? this.blockEntityTag.copy() : CraftMetaBlockState.getBlockState(this.material, null); +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +index 3542c6e72f5ff459d50b73fa210ea835f52dfa49..c8eec04685456d89cb41466cddcc3975d0ceeb29 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +@@ -257,6 +257,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + this.banner = (Banner) blockState; + } + ++ // Paper start - add method to clear block state ++ @Override ++ public void clearBlockState() { ++ this.banner = null; ++ } ++ // Paper end - add method to clear block state ++ + private static Banner getBlockState(DyeColor color) { + BlockPos pos = BlockPos.ZERO; + Material stateMaterial = CraftMetaShield.shieldToBannerHack(color); diff --git a/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch index b929596c4e..76437f1a9b 100644 --- a/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch +++ b/patches/server/0380-Convert-legacy-attributes-in-Item-Meta.patch @@ -30,10 +30,10 @@ index de40e522960469b98f987bd688489740446d9f85..5678d2007d5adf45dec0638c5dd848b6 public CraftAttributeMap(AttributeMap handle) { this.handle = handle; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 69be26f8f47854f39cfed0559d944ef4f983c0f3..0b87cfbdf039ee5bc017d2b1783c7c4853047952 100644 +index 97c40582bca095532fff9a81515f38ea4ac527e0..5c76ba7f9ceb285d27e18369172612205be96224 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -695,7 +695,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -702,7 +702,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier); diff --git a/patches/server/0384-Add-PrepareResultEvent.patch b/patches/server/0384-Add-PrepareResultEvent.patch index 05484fe151..24f55e8025 100644 --- a/patches/server/0384-Add-PrepareResultEvent.patch +++ b/patches/server/0384-Add-PrepareResultEvent.patch @@ -8,7 +8,7 @@ Adds a new event for all crafting stations that generate a result slot item Anvil, Grindstone and Smithing now extend this event diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index c6ec9fc6ccde2a5c086a2bfe32686954c074c31d..7198dc9ffc9a37dab3654e12aa497c442a9993c5 100644 +index ffda2c984c5683edb38a56f04c53b0ea339e08fc..d685511104ac552dfc9ae2111e1bfb60fa812102 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -327,6 +327,7 @@ public class AnvilMenu extends ItemCombinerMenu { @@ -56,7 +56,7 @@ index 62432c347b86fc79ab529a7dde66bef32d0424dd..be840717e180b6b5abd14db6cc926334 } diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index fb7027985c6442fc50573e96031a05a3c64f4426..4bd720a97da27c4fd97788d4c504c0174f0f6c25 100644 +index 69ed0753c224cb7746762b4b94c4d79d608951b8..2de558dd205a1078fdcac1bce256d059b9bf5d5f 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -249,7 +249,8 @@ public class LoomMenu extends AbstractContainerMenu { @@ -82,7 +82,7 @@ index 0735705def4f9505b7f16df2497cc78bbf5a8373..86e51fcce767d265ee0d3beb611be211 @Override diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index 04d9793a83c724350f74616558f650082f9805d9..bb29107cb15e2ec644a14cabb3cf91f4bde5471d 100644 +index 30ea1f9e97db86a2ad7baeea4f5a76c821874daa..5b4f03128499b0c1a4b8c5f5ccd17e4bdb391e81 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -182,6 +182,7 @@ public class StonecutterMenu extends AbstractContainerMenu { @@ -94,13 +94,13 @@ index 04d9793a83c724350f74616558f650082f9805d9..bb29107cb15e2ec644a14cabb3cf91f4 private static SingleRecipeInput createRecipeInput(Container inventory) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb0987222e4894a5 100644 +index 1177a9310f686f3b4d75a713cdac75c5628e8bbb..838ad7bc8a7488adf52d462e1a3f2faa275bebd0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1666,6 +1666,12 @@ public class CraftEventFactory { +@@ -1679,6 +1679,12 @@ public class CraftEventFactory { } - public static PrepareAnvilEvent callPrepareAnvilEvent(InventoryView view, ItemStack item) { + public static PrepareAnvilEvent callPrepareAnvilEvent(AnvilView view, ItemStack item) { + // Paper start - Add PrepareResultEvent + if (true) { + view.getTopInventory().setItem(net.minecraft.world.inventory.AnvilMenu.RESULT_SLOT, CraftItemStack.asCraftMirror(item)); @@ -110,7 +110,7 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722 PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item).clone()); event.getView().getPlayer().getServer().getPluginManager().callEvent(event); event.getInventory().setItem(2, event.getResult()); -@@ -1673,6 +1679,12 @@ public class CraftEventFactory { +@@ -1686,6 +1692,12 @@ public class CraftEventFactory { } public static PrepareGrindstoneEvent callPrepareGrindstoneEvent(InventoryView view, ItemStack item) { @@ -123,7 +123,7 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722 PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item).clone()); event.getView().getPlayer().getServer().getPluginManager().callEvent(event); event.getInventory().setItem(2, event.getResult()); -@@ -1680,12 +1692,39 @@ public class CraftEventFactory { +@@ -1693,12 +1705,39 @@ public class CraftEventFactory { } public static PrepareSmithingEvent callPrepareSmithingEvent(InventoryView view, ItemStack item) { @@ -145,8 +145,8 @@ index ec364ab90df6276c1976e876337636f4bb06d097..3159e52006ad348bfce4905dcb098722 + InventoryView view = container.getBukkitView(); + org.bukkit.inventory.ItemStack origItem = view.getTopInventory().getItem(resultSlot); + CraftItemStack result = origItem != null ? CraftItemStack.asCraftCopy(origItem) : null; -+ if (view.getTopInventory() instanceof org.bukkit.inventory.AnvilInventory) { -+ event = new PrepareAnvilEvent(view, result); ++ if (view.getTopInventory() instanceof org.bukkit.inventory.AnvilInventory && view instanceof AnvilView anvilView) { ++ event = new PrepareAnvilEvent(anvilView, result); + } else if (view.getTopInventory() instanceof org.bukkit.inventory.GrindstoneInventory) { + event = new PrepareGrindstoneEvent(view, result); + } else if (view.getTopInventory() instanceof org.bukkit.inventory.SmithingInventory) { diff --git a/patches/server/0401-Add-BellRingEvent.patch b/patches/server/0401-Add-BellRingEvent.patch index 934d70c696..1e306374a2 100644 --- a/patches/server/0401-Add-BellRingEvent.patch +++ b/patches/server/0401-Add-BellRingEvent.patch @@ -7,10 +7,10 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a village bell. Passes along the bell block and the player who rang it. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3159e52006ad348bfce4905dcb0987222e4894a5..c803948c713fa898430f478dddfb2a75f6d355ef 100644 +index a3e359d174e4c175e49a6e7c03cbca0661cf8b34..2596159784a6ae0502b9a1b5a7cc573966021380 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -372,10 +372,11 @@ public class CraftEventFactory { +@@ -376,10 +376,11 @@ public class CraftEventFactory { return tradeSelectEvent; } diff --git a/patches/server/0406-Add-more-Evoker-API.patch b/patches/server/0405-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0406-Add-more-Evoker-API.patch rename to patches/server/0405-Add-more-Evoker-API.patch diff --git a/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch deleted file mode 100644 index 2a196acb45..0000000000 --- a/patches/server/0405-PortalCreateEvent-needs-to-know-its-entity.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Mariell Hoversholm -Date: Fri, 21 Aug 2020 20:57:54 +0200 -Subject: [PATCH] PortalCreateEvent needs to know its entity - - -diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index cc8825acea0d84b36194313656a6f70d8c049072..7f7445a2b68fd2e6e5fcd509d950a0f8d680c1fe 100644 ---- a/src/main/java/net/minecraft/world/item/ItemStack.java -+++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -522,7 +522,7 @@ public final class ItemStack implements DataComponentHolder { - net.minecraft.world.level.block.state.BlockState block = world.getBlockState(newblockposition); - - if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically -- block.onPlace(world, newblockposition, oldBlock, true); -+ block.onPlace(world, newblockposition, oldBlock, true, context); // Paper - pass context - } - - world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point -diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index e499a5eb843af3e2417bcb31add3c63443c0deff..993538f613e52ecd009f01e7b68fddba76b6a3e8 100644 ---- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -@@ -144,12 +144,19 @@ public abstract class BaseFireBlock extends Block { - - @Override - protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { -+ // Paper start - UseOnContext param -+ this.onPlace(state, world, pos, oldState, notify, null); -+ } -+ -+ @Override -+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, @javax.annotation.Nullable net.minecraft.world.item.context.UseOnContext context) { -+ // Paper end - UseOnContext param - if (!oldState.is(state.getBlock())) { - if (BaseFireBlock.inPortalDimension(world)) { - Optional optional = PortalShape.findEmptyPortalShape(world, pos, Direction.Axis.X); - - if (optional.isPresent()) { -- ((PortalShape) optional.get()).createPortalBlocks(); -+ ((PortalShape) optional.get()).createPortalBlocks(context); // Paper - pass context param - return; - } - } -diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index ceaa2a7048afc4955d3695af5291e83a79d83c5d..5dad1aa26a8908cba6a08398a4bad27f31d4c2c0 100644 ---- a/src/main/java/net/minecraft/world/level/block/FireBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java -@@ -368,8 +368,10 @@ public class FireBlock extends BaseFireBlock { - } - - @Override -- protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { -- super.onPlace(state, world, pos, oldState, notify); -+ // Paper start - UseOnContext param -+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) { -+ super.onPlace(state, world, pos, oldState, notify, context); -+ // Paper end - UseOnContext param - world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random)); - } - -diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 34f03184f018d00be7c5884f29f98a9ebe461475..6fe078fdf619c4df664f1dce6a0f5d202c21b35e 100644 ---- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -154,6 +154,12 @@ public abstract class BlockBehaviour implements FeatureElement { - DebugPackets.sendNeighborsUpdatePacket(world, pos); - } - -+ // Paper start - UseOnContext param -+ protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) { -+ this.onPlace(state, world, pos, oldState, notify); -+ } -+ // Paper end - UseOnContext param -+ - protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { - org.spigotmc.AsyncCatcher.catchOp("block onPlace"); // Spigot - } -@@ -1080,6 +1086,12 @@ public abstract class BlockBehaviour implements FeatureElement { - this.getBlock().updateIndirectNeighbourShapes(this.asState(), world, pos, flags, maxUpdateDepth); - } - -+ // Paper start -+ public void onPlace(Level world, BlockPos pos, BlockState state, boolean notify, net.minecraft.world.item.context.UseOnContext context) { -+ this.getBlock().onPlace(this.asState(), world, pos, state, notify, context); -+ } -+ // Paper end -+ - public void onPlace(Level world, BlockPos pos, BlockState state, boolean notify) { - this.getBlock().onPlace(this.asState(), world, pos, state, notify); - } -diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java -index bb22b12b05de29bed00e433630c91f233fa9a366..57139a0b8adcd1ea25cd100be78402681856ee75 100644 ---- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java -+++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java -@@ -189,7 +189,14 @@ public class PortalShape { - } - - // CraftBukkit start - return boolean -+ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - public boolean createPortalBlocks() { -+ // Paper start - UseOnContext param -+ return this.createPortalBlocks(null); -+ } -+ -+ public boolean createPortalBlocks(@Nullable net.minecraft.world.item.context.UseOnContext useOnContext) { -+ // Paper end - UseOnContext param - org.bukkit.World bworld = this.level.getMinecraftWorld().getWorld(); - - // Copy below for loop -@@ -199,7 +206,7 @@ public class PortalShape { - this.blocks.setBlock(blockposition, iblockdata, 18); - }); - -- PortalCreateEvent event = new PortalCreateEvent((java.util.List) (java.util.List) this.blocks.getList(), bworld, null, PortalCreateEvent.CreateReason.FIRE); -+ PortalCreateEvent event = new PortalCreateEvent((java.util.List) (java.util.List) blocks.getList(), bworld, useOnContext == null || useOnContext.getPlayer() == null ? null : useOnContext.getPlayer().getBukkitEntity(), PortalCreateEvent.CreateReason.FIRE); // Paper - pass entity param - this.level.getMinecraftWorld().getServer().server.getPluginManager().callEvent(event); - - if (event.isCancelled()) { diff --git a/patches/server/0407-Add-methods-to-get-translation-keys.patch b/patches/server/0406-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0407-Add-methods-to-get-translation-keys.patch rename to patches/server/0406-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0408-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0407-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0408-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0407-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0409-Cache-block-data-strings.patch b/patches/server/0408-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0409-Cache-block-data-strings.patch rename to patches/server/0408-Cache-block-data-strings.patch diff --git a/patches/server/0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 100% rename from patches/server/0410-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch diff --git a/patches/server/0411-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0410-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0411-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0410-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0412-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0411-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0413-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0412-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 100% rename from patches/server/0413-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0412-Extend-block-drop-capture-to-capture-all-items-added.patch diff --git a/patches/server/0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/server/0414-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0413-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/server/0415-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0414-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0415-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0414-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0416-Entity-isTicking.patch b/patches/server/0415-Entity-isTicking.patch similarity index 100% rename from patches/server/0416-Entity-isTicking.patch rename to patches/server/0415-Entity-isTicking.patch diff --git a/patches/server/0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0417-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0416-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0418-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0417-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 100% rename from patches/server/0418-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/server/0417-Fix-Concurrency-issue-in-ShufflingList.patch diff --git a/patches/server/0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0419-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0418-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0420-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/server/0420-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/server/0421-Optimise-getType-calls.patch b/patches/server/0420-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0421-Optimise-getType-calls.patch rename to patches/server/0420-Optimise-getType-calls.patch diff --git a/patches/server/0422-Villager-resetOffers.patch b/patches/server/0421-Villager-resetOffers.patch similarity index 100% rename from patches/server/0422-Villager-resetOffers.patch rename to patches/server/0421-Villager-resetOffers.patch diff --git a/patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch index e7d46e41eb..bac1a1074b 100644 --- a/patches/server/0423-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0422-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5a3a89c568d42a2adbc2b6e2631fd4b70e54f0bf..cfd5d3e50197b38d0ffef6debbb7f5b4b208382a 100644 +index 60b04a16c6cb0a7109bda5c16e23c1d56ab7afad..144d243e0d6ba3ae3f0b0bf457fa516e2b4f416f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -152,7 +152,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0424-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0423-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0424-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0423-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0425-Fix-bell-block-entity-memory-leak.patch b/patches/server/0424-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0425-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0424-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0426-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0425-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0427-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0426-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0427-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0426-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0428-Add-ignore-discounts-API.patch b/patches/server/0427-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0428-Add-ignore-discounts-API.patch rename to patches/server/0427-Add-ignore-discounts-API.patch diff --git a/patches/server/0429-Toggle-for-removing-existing-dragon.patch b/patches/server/0428-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0429-Toggle-for-removing-existing-dragon.patch rename to patches/server/0428-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0430-Fix-client-lag-on-advancement-loading.patch b/patches/server/0429-Fix-client-lag-on-advancement-loading.patch similarity index 95% rename from patches/server/0430-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0429-Fix-client-lag-on-advancement-loading.patch index 80a48d30b1..f93c34b2cb 100644 --- a/patches/server/0430-Fix-client-lag-on-advancement-loading.patch +++ b/patches/server/0429-Fix-client-lag-on-advancement-loading.patch @@ -15,7 +15,7 @@ manually reload the advancement data for all players, which normally takes place as a part of the datapack reloading. diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 22fc5bf2024f70f85cc278ddd374bff0a6d626fa..12c4f68623119427a30c1eec28b4aff0400aa8c0 100644 +index 2979277847635c0bef54d06be30e5051557cc5e9..5fe9b94c342a91d6fb3bc582ac7e84cb25b90a9e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -317,7 +317,13 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0431-Item-no-age-no-player-pickup.patch b/patches/server/0430-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0431-Item-no-age-no-player-pickup.patch rename to patches/server/0430-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0432-Beacon-API-custom-effect-ranges.patch b/patches/server/0431-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0432-Beacon-API-custom-effect-ranges.patch rename to patches/server/0431-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0433-Add-API-for-quit-reason.patch b/patches/server/0432-Add-API-for-quit-reason.patch similarity index 98% rename from patches/server/0433-Add-API-for-quit-reason.patch rename to patches/server/0432-Add-API-for-quit-reason.patch index 6a3fe2a2e8..22a6ea3114 100644 --- a/patches/server/0433-Add-API-for-quit-reason.patch +++ b/patches/server/0432-Add-API-for-quit-reason.patch @@ -52,7 +52,7 @@ index a3c67bdc2c08b3550534f37d15b0db90b479e34f..24bf661e76fb421a8be565d9ea68edf7 this.connection.disconnect(disconnectiondetails); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 51426da5f3e7b9f8631880a04cef0a58b00233df..ec080eb8e3930b6c5cc08c3061535b379a99a7d1 100644 +index c322d8284b4d17d6b9a949d85849892d7c88817e..f11309e0a067546aa5b14272156087664dbdd021 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,7 +570,7 @@ public abstract class PlayerList { diff --git a/patches/server/0434-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0433-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0434-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0433-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0435-Add-Destroy-Speed-API.patch b/patches/server/0434-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0435-Add-Destroy-Speed-API.patch rename to patches/server/0434-Add-Destroy-Speed-API.patch diff --git a/patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 93% rename from patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 60ac65b823..ed356df971 100644 --- a/patches/server/0436-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0435-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 99799563942693ae36188092d76054fdff97d4ca..766242aa6930b37630be77e421b4b5675c5feb0d 100644 +index 1292e7b9889777448b728ef3bb3ae4cb25d42d61..a3b1a19fb28dfba93ae04ea0859f744ede1579f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2707,7 +2707,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0437-Add-LivingEntity-clearActiveItem.patch b/patches/server/0436-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0437-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0436-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0438-Add-PlayerItemCooldownEvent.patch b/patches/server/0437-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0438-Add-PlayerItemCooldownEvent.patch rename to patches/server/0437-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0439-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0438-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0439-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0438-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0440-More-lightning-API.patch b/patches/server/0439-More-lightning-API.patch similarity index 100% rename from patches/server/0440-More-lightning-API.patch rename to patches/server/0439-More-lightning-API.patch diff --git a/patches/server/0441-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0440-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 100% rename from patches/server/0441-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0440-Climbing-should-not-bypass-cramming-gamerule.patch diff --git a/patches/server/0442-Add-missing-default-perms-for-commands.patch b/patches/server/0441-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0442-Add-missing-default-perms-for-commands.patch rename to patches/server/0441-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0443-Add-PlayerShearBlockEvent.patch b/patches/server/0442-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0443-Add-PlayerShearBlockEvent.patch rename to patches/server/0442-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0444-Limit-recipe-packets.patch b/patches/server/0443-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0444-Limit-recipe-packets.patch rename to patches/server/0443-Limit-recipe-packets.patch diff --git a/patches/server/0445-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0444-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0445-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0444-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0446-Player-Chunk-Load-Unload-Events.patch b/patches/server/0445-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0446-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0445-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0447-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0446-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0447-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0446-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0448-Expose-LivingEntity-hurt-direction.patch b/patches/server/0447-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0448-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0447-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 86% rename from patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index 5affb3e4f5..e2b1ac7753 100644 --- a/patches/server/0449-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0448-Add-OBSTRUCTED-reason-to-BedEnterResult.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index c803948c713fa898430f478dddfb2a75f6d355ef..21c8dcf66847c83f38b57a592cf3b58a68a5657f 100644 +index 2596159784a6ae0502b9a1b5a7cc573966021380..2be5135d3e17c3344ffbdb3f2f55d45eb6753c61 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -307,6 +307,10 @@ public class CraftEventFactory { +@@ -311,6 +311,10 @@ public class CraftEventFactory { return BedEnterResult.TOO_FAR_AWAY; case NOT_SAFE: return BedEnterResult.NOT_SAFE; diff --git a/patches/server/0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0450-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0449-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0451-Add-TargetHitEvent.patch b/patches/server/0450-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0451-Add-TargetHitEvent.patch rename to patches/server/0450-Add-TargetHitEvent.patch diff --git a/patches/server/0452-MC-4-Fix-item-position-desync.patch b/patches/server/0451-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/server/0452-MC-4-Fix-item-position-desync.patch rename to patches/server/0451-MC-4-Fix-item-position-desync.patch diff --git a/patches/server/0453-Additional-Block-Material-API.patch b/patches/server/0452-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0453-Additional-Block-Material-API.patch rename to patches/server/0452-Additional-Block-Material-API.patch diff --git a/patches/server/0454-Fix-harming-potion-dupe.patch b/patches/server/0453-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0454-Fix-harming-potion-dupe.patch rename to patches/server/0453-Fix-harming-potion-dupe.patch diff --git a/patches/server/0455-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0454-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0455-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0454-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0456-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0455-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0457-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0456-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0457-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0456-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0458-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0457-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0458-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0457-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0459-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/server/0459-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/server/0460-Zombie-API-breaking-doors.patch b/patches/server/0459-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0460-Zombie-API-breaking-doors.patch rename to patches/server/0459-Zombie-API-breaking-doors.patch diff --git a/patches/server/0461-Fix-nerfed-slime-when-splitting.patch b/patches/server/0460-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0461-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0460-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0462-Add-EntityLoadCrossbowEvent.patch b/patches/server/0461-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0462-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0461-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0463-Add-WorldGameRuleChangeEvent.patch b/patches/server/0462-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0463-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0462-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0464-Add-ServerResourcesReloadedEvent.patch b/patches/server/0463-Add-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0464-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0463-Add-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0465-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0464-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0465-Add-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0464-Add-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0466-Add-BlockFailedDispenseEvent.patch b/patches/server/0465-Add-BlockFailedDispenseEvent.patch similarity index 92% rename from patches/server/0466-Add-BlockFailedDispenseEvent.patch rename to patches/server/0465-Add-BlockFailedDispenseEvent.patch index 835b80d34d..2b4d4bdeac 100644 --- a/patches/server/0466-Add-BlockFailedDispenseEvent.patch +++ b/patches/server/0465-Add-BlockFailedDispenseEvent.patch @@ -20,7 +20,7 @@ index c7256ffbe57c594556ee85134c9ab166f8c0e0c7..94bcbaf7daf7dfe566f508d1170a4339 ItemStack itemstack = tileentitydispenser.getItem(i); DispenseItemBehavior idispensebehavior = this.getDispenseMethod(world, itemstack); diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java -index a1599eae0d8e9f0298fc6996ad03b0d6ba78f04f..083ddfb8fffa04dad6eeca2274f290a08e62b5eb 100644 +index a08e8571f3a83afc80c2f1758a9029cd28ed6947..91b514967405115f22edf4255775361a672e5c2f 100644 --- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java @@ -60,6 +60,7 @@ public class DropperBlock extends DispenserBlock { @@ -32,10 +32,10 @@ index a1599eae0d8e9f0298fc6996ad03b0d6ba78f04f..083ddfb8fffa04dad6eeca2274f290a0 } else { ItemStack itemstack = tileentitydispenser.getItem(i); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 21c8dcf66847c83f38b57a592cf3b58a68a5657f..19ca8953facd69a5720652c3bcf1e1e3be34a3a3 100644 +index 2be5135d3e17c3344ffbdb3f2f55d45eb6753c61..c01d4302e145c779cc4031927ab555e1c7748155 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2098,4 +2098,12 @@ public class CraftEventFactory { +@@ -2111,4 +2111,12 @@ public class CraftEventFactory { return org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion()); } // Paper end - WitchReadyPotionEvent diff --git a/patches/server/0467-Add-PlayerLecternPageChangeEvent.patch b/patches/server/0466-Add-PlayerLecternPageChangeEvent.patch similarity index 96% rename from patches/server/0467-Add-PlayerLecternPageChangeEvent.patch rename to patches/server/0466-Add-PlayerLecternPageChangeEvent.patch index 2e62d2becf..15052d962d 100644 --- a/patches/server/0467-Add-PlayerLecternPageChangeEvent.patch +++ b/patches/server/0466-Add-PlayerLecternPageChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerLecternPageChangeEvent diff --git a/src/main/java/net/minecraft/world/inventory/LecternMenu.java b/src/main/java/net/minecraft/world/inventory/LecternMenu.java -index 19858ecd7cfaaf0fb09552292bf573bb02b3a6ec..ccba06c419732c63f6b255f5f8c1f7a95f3ecbee 100644 +index 1b3119751617366cf753008d38be566cd7ee2453..df4ae5d37b9aa5b8fb26c5773a47a5a85f831982 100644 --- a/src/main/java/net/minecraft/world/inventory/LecternMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LecternMenu.java @@ -64,6 +64,7 @@ public class LecternMenu extends AbstractContainerMenu { diff --git a/patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch b/patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch similarity index 96% rename from patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch rename to patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch index 4d74c20681..fbbc2f6ae8 100644 --- a/patches/server/0468-Add-PlayerLoomPatternSelectEvent.patch +++ b/patches/server/0467-Add-PlayerLoomPatternSelectEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerLoomPatternSelectEvent diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index 4bd720a97da27c4fd97788d4c504c0174f0f6c25..72ad78659a373213ed1f37498754adaf18f1f68b 100644 +index 2de558dd205a1078fdcac1bce256d059b9bf5d5f..f76ef029132c6a08d4e70585bc440eccdc626b16 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -174,8 +174,32 @@ public class LoomMenu extends AbstractContainerMenu { diff --git a/patches/server/0469-Configurable-door-breaking-difficulty.patch b/patches/server/0468-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0469-Configurable-door-breaking-difficulty.patch rename to patches/server/0468-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0470-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0469-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0470-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0469-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0471-Remove-stale-POIs.patch b/patches/server/0470-Remove-stale-POIs.patch similarity index 100% rename from patches/server/0471-Remove-stale-POIs.patch rename to patches/server/0470-Remove-stale-POIs.patch diff --git a/patches/server/0472-Fix-villager-boat-exploit.patch b/patches/server/0471-Fix-villager-boat-exploit.patch similarity index 93% rename from patches/server/0472-Fix-villager-boat-exploit.patch rename to patches/server/0471-Fix-villager-boat-exploit.patch index 8f9249892b..e835b1ee94 100644 --- a/patches/server/0472-Fix-villager-boat-exploit.patch +++ b/patches/server/0471-Fix-villager-boat-exploit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ec080eb8e3930b6c5cc08c3061535b379a99a7d1..846132dad557b04a3d52184cfb1c0dd35673f8c6 100644 +index f11309e0a067546aa5b14272156087664dbdd021..44422100246a61f8353f26d5149f3e96c8832fea 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -595,6 +595,14 @@ public abstract class PlayerList { diff --git a/patches/server/0473-Add-sendOpLevel-API.patch b/patches/server/0472-Add-sendOpLevel-API.patch similarity index 92% rename from patches/server/0473-Add-sendOpLevel-API.patch rename to patches/server/0472-Add-sendOpLevel-API.patch index 25dff52343..d1c8e24cc4 100644 --- a/patches/server/0473-Add-sendOpLevel-API.patch +++ b/patches/server/0472-Add-sendOpLevel-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 846132dad557b04a3d52184cfb1c0dd35673f8c6..5100b2d00452f97849239ca32164eed4345e4024 100644 +index 44422100246a61f8353f26d5149f3e96c8832fea..3c7d31725c4a5dd7728fa394f88d37a0e493e919 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1062,6 +1062,11 @@ public abstract class PlayerList { @@ -32,7 +32,7 @@ index 846132dad557b04a3d52184cfb1c0dd35673f8c6..5100b2d00452f97849239ca32164eed4 public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 766242aa6930b37630be77e421b4b5675c5feb0d..7652da85170cd5a64d1b443430b85c388e2939a9 100644 +index a3b1a19fb28dfba93ae04ea0859f744ede1579f6..963ae66acc25602e15134d30d3e496802b17dc41 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -677,6 +677,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch b/patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch similarity index 98% rename from patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch rename to patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch index 1c7e1f531e..0ee306bcf5 100644 --- a/patches/server/0474-Add-RegistryAccess-for-managing-Registries.patch +++ b/patches/server/0473-Add-RegistryAccess-for-managing-Registries.patch @@ -12,10 +12,10 @@ public net.minecraft.server.RegistryLayer STATIC_ACCESS diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java new file mode 100644 -index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef7deb3d97 +index 0000000000000000000000000000000000000000..675f5d03478907e3d8284cbea191f01c1eb15769 --- /dev/null +++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java -@@ -0,0 +1,141 @@ +@@ -0,0 +1,143 @@ +package io.papermc.paper.registry; + +import io.papermc.paper.adventure.PaperAdventure; @@ -35,10 +35,12 @@ index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef +import org.bukkit.Keyed; +import org.bukkit.MusicInstrument; +import org.bukkit.block.BlockType; ++import org.bukkit.block.banner.PatternType; +import org.bukkit.craftbukkit.CraftGameEvent; +import org.bukkit.craftbukkit.CraftJukeboxSong; +import org.bukkit.craftbukkit.CraftMusicInstrument; +import org.bukkit.craftbukkit.block.CraftBlockType; ++import org.bukkit.craftbukkit.block.banner.CraftPatternType; +import org.bukkit.craftbukkit.damage.CraftDamageType; +import org.bukkit.craftbukkit.enchantments.CraftEnchantment; +import org.bukkit.craftbukkit.entity.CraftCat; @@ -102,12 +104,12 @@ index 0000000000000000000000000000000000000000..ead718efde812846fefec3e86d896fef + entry(Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, Wolf.Variant.class, CraftWolf.CraftVariant::new).delayed(), + entry(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(), + entry(Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, JukeboxSong.class, CraftJukeboxSong::new).delayed(), ++ entry(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, PatternType.class, CraftPatternType::new).delayed(), + + // api-only + apiOnly(Registries.BIOME, RegistryKey.BIOME, () -> org.bukkit.Registry.BIOME), + apiOnly(Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT, () -> org.bukkit.Registry.ART), + apiOnly(Registries.ATTRIBUTE, RegistryKey.ATTRIBUTE, () -> org.bukkit.Registry.ATTRIBUTE), -+ apiOnly(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, () -> org.bukkit.Registry.BANNER_PATTERN), + apiOnly(Registries.ENTITY_TYPE, RegistryKey.ENTITY_TYPE, () -> org.bukkit.Registry.ENTITY_TYPE), + apiOnly(Registries.PARTICLE_TYPE, RegistryKey.PARTICLE_TYPE, () -> org.bukkit.Registry.PARTICLE_TYPE), + apiOnly(Registries.POTION, RegistryKey.POTION, () -> org.bukkit.Registry.POTION), @@ -727,10 +729,10 @@ index 1dd22f11b7e2983a3069dea94c0f02b43ff1f736..397bdacab9517354875ebc0bc68d3505 String string = Registries.elementsDirPath(type.registryKey()); SimpleJsonResourceReloadListener.scanDirectory(resourceManager, string, GSON, map); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e7192670eaf869e 100644 +index a9832482500f08df30568ecbc65e4496ee01b414..154733684a53ff84ca8c2a994b96b68733e9fba5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -@@ -118,75 +118,12 @@ public class CraftRegistry implements Registry { +@@ -120,78 +120,12 @@ public class CraftRegistry implements Registry { + ", this can happen if a plugin creates its own registry entry with out properly registering it."); } @@ -796,6 +798,9 @@ index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e719267 - if (bukkitClass == MapCursor.Type.class) { - return new CraftRegistry<>(MapCursor.Type.class, registryHolder.registryOrThrow(Registries.MAP_DECORATION_TYPE), CraftMapCursor.CraftType::new, FieldRename.NONE); - } +- if (bukkitClass == PatternType.class) { +- return new CraftRegistry<>(PatternType.class, registryHolder.registryOrThrow(Registries.BANNER_PATTERN), CraftPatternType::new, FieldRename.NONE); +- } - - return null; - } @@ -809,7 +814,7 @@ index 10ce6b9f748b69283e03454e9b1ed0b7df379a17..002449e66f83a419afa8357d2e719267 } if (bukkit instanceof Registry.SimpleRegistry simple) { -@@ -212,23 +149,21 @@ public class CraftRegistry implements Registry { +@@ -217,23 +151,21 @@ public class CraftRegistry implements Registry { return bukkit.get(namespacedKey); } @@ -893,10 +898,10 @@ index 1f58b92c17d28e14621e8dc28042a5368f1f4a1f..ef80e6b4dff557daaab1b9fde4d8d401 // PatternType private static final FieldRenameData PATTERN_TYPE_DATA = FieldRenameData.Builder.newBuilder() diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 38339b8b1b3b70bbbf0259d7095b02ee8c22b609..9fffb9c9161caad8eb62a99b37d0f31862b568a5 100644 +index e1b86308f737b957b6d00bc902b91856694b7cbf..0cb2b616e0fa060b7aae6c47502f75ee7647e917 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -189,20 +189,10 @@ public class Commodore { +@@ -190,20 +190,10 @@ public class Commodore { public static byte[] convert(byte[] b, final String pluginName, final ApiVersion pluginVersion, final Set activeCompatibilities) { final boolean modern = pluginVersion.isNewerThanOrSameAs(ApiVersion.FLATTENING); @@ -917,7 +922,7 @@ index 38339b8b1b3b70bbbf0259d7095b02ee8c22b609..9fffb9c9161caad8eb62a99b37d0f318 visitor = io.papermc.paper.pluginremap.reflect.ReflectionRemapper.visitor(visitor); // Paper cr.accept(new ClassRemapper(new ClassVisitor(Opcodes.ASM9, visitor) { -@@ -269,15 +259,6 @@ public class Commodore { +@@ -270,15 +260,6 @@ public class Commodore { @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { @@ -1157,7 +1162,7 @@ index bfbd80b60ac5df500d03c80de57e38aa7548dd46..cce9e2226ef554c10e1df1dbaa179165 when(instance.getTag(any(), any(), any())).then(mock -> { String registry = mock.getArgument(0); diff --git a/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java b/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java -index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6afb7343477 100644 +index 9d6c3d91b505a683b353577bf39f869173243459..c1f886c906a9f9313d97a223f719095fa2624c57 100644 --- a/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java +++ b/src/test/java/org/bukkit/support/provider/RegistriesArgumentProvider.java @@ -1,6 +1,7 @@ @@ -1168,7 +1173,7 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af import java.util.List; import java.util.stream.Stream; import net.minecraft.core.registries.Registries; -@@ -56,34 +57,34 @@ public class RegistriesArgumentProvider implements ArgumentsProvider { +@@ -59,35 +60,34 @@ public class RegistriesArgumentProvider implements ArgumentsProvider { private static final List DATA = Lists.newArrayList(); static { @@ -1191,6 +1196,8 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af - register(Frog.Variant.class, Registries.FROG_VARIANT, CraftFrog.CraftVariant.class, FrogVariant.class); - register(Cat.Type.class, Registries.CAT_VARIANT, CraftCat.CraftType.class, CatVariant.class); - register(MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, CraftMapCursor.CraftType.class, MapDecorationType.class); +- register(PatternType.class, Registries.BANNER_PATTERN, CraftPatternType.class, BannerPattern.class); +- + // Order: RegistryKey, Bukkit class, Minecraft Registry key, CraftBukkit class, Minecraft class + register(RegistryKey.ENCHANTMENT, Enchantment.class, Registries.ENCHANTMENT, CraftEnchantment.class, net.minecraft.world.item.enchantment.Enchantment.class); + register(RegistryKey.GAME_EVENT, GameEvent.class, Registries.GAME_EVENT, CraftGameEvent.class, net.minecraft.world.level.gameevent.GameEvent.class); @@ -1210,7 +1217,7 @@ index b4d2546094a154af8fca2f63d02090ed9cb355a5..38b0e091234a00d57e9e9d4fb3eac6af + register(RegistryKey.FROG_VARIANT, Frog.Variant.class, Registries.FROG_VARIANT, CraftFrog.CraftVariant.class, FrogVariant.class); + register(RegistryKey.CAT_VARIANT, Cat.Type.class, Registries.CAT_VARIANT, CraftCat.CraftType.class, CatVariant.class); + register(RegistryKey.MAP_DECORATION_TYPE, MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, CraftMapCursor.CraftType.class, MapDecorationType.class); - ++ register(RegistryKey.BANNER_PATTERN, PatternType.class, Registries.BANNER_PATTERN, CraftPatternType.class, BannerPattern.class); } - private static void register(Class bukkit, ResourceKey registry, Class craft, Class minecraft) { diff --git a/patches/server/0475-Add-StructuresLocateEvent.patch b/patches/server/0474-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0475-Add-StructuresLocateEvent.patch rename to patches/server/0474-Add-StructuresLocateEvent.patch diff --git a/patches/server/0476-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0475-Collision-option-for-requiring-a-player-participant.patch similarity index 100% rename from patches/server/0476-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0475-Collision-option-for-requiring-a-player-participant.patch diff --git a/patches/server/0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0477-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0476-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0478-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0477-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0478-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0477-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0479-Make-schedule-command-per-world.patch b/patches/server/0478-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0479-Make-schedule-command-per-world.patch rename to patches/server/0478-Make-schedule-command-per-world.patch diff --git a/patches/server/0480-Configurable-max-leash-distance.patch b/patches/server/0479-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0480-Configurable-max-leash-distance.patch rename to patches/server/0479-Configurable-max-leash-distance.patch diff --git a/patches/server/0481-Add-BlockPreDispenseEvent.patch b/patches/server/0480-Add-BlockPreDispenseEvent.patch similarity index 92% rename from patches/server/0481-Add-BlockPreDispenseEvent.patch rename to patches/server/0480-Add-BlockPreDispenseEvent.patch index a1d2d79f35..b60aca7f7d 100644 --- a/patches/server/0481-Add-BlockPreDispenseEvent.patch +++ b/patches/server/0480-Add-BlockPreDispenseEvent.patch @@ -17,7 +17,7 @@ index 94bcbaf7daf7dfe566f508d1170a433930d9d49a..f6edfea463b3725d3a79aca38825e86d tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack)); } diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java -index 083ddfb8fffa04dad6eeca2274f290a08e62b5eb..45fafee2cf1893dccf477939dad05e9e1938ec8c 100644 +index 91b514967405115f22edf4255775361a672e5c2f..ddecf443df3679e3098eb54edd19585a0512e342 100644 --- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java @@ -71,6 +71,7 @@ public class DropperBlock extends DispenserBlock { @@ -29,10 +29,10 @@ index 083ddfb8fffa04dad6eeca2274f290a08e62b5eb..45fafee2cf1893dccf477939dad05e9e } else { // CraftBukkit start - Fire event when pushing items into other inventories diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 19ca8953facd69a5720652c3bcf1e1e3be34a3a3..5c511fe60bf59ca1fe773b8c9c39bc88eebf2752 100644 +index c01d4302e145c779cc4031927ab555e1c7748155..97a17f2b782196b51ebbc6740aad1768fc73f7ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2105,5 +2105,11 @@ public class CraftEventFactory { +@@ -2118,5 +2118,11 @@ public class CraftEventFactory { io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block); return event.callEvent(); } diff --git a/patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch similarity index 96% rename from patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch index b3444419ee..1903c21ba8 100644 --- a/patches/server/0482-Add-PlayerChangeBeaconEffectEvent.patch +++ b/patches/server/0481-Add-PlayerChangeBeaconEffectEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerChangeBeaconEffectEvent diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index c2fa423e14fc08c10483415baa2148af269c3758..5b6133f6758d322713321b7e918db0c3e0d4be51 100644 +index 7c4d2c184d9a1e4a1856e6771d39db384381e300..396559c281eee9e8c677cb222721414e8d9e12a2 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -171,12 +171,25 @@ public class BeaconMenu extends AbstractContainerMenu { diff --git a/patches/server/0483-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0482-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0483-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0482-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 97% rename from patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch index ec46b8f54b..0c96d8fa15 100644 --- a/patches/server/0484-Add-PlayerStonecutterRecipeSelectEvent.patch +++ b/patches/server/0483-Add-PlayerStonecutterRecipeSelectEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerStonecutterRecipeSelectEvent Co-Authored-By: MiniDigger diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index bb29107cb15e2ec644a14cabb3cf91f4bde5471d..977ccef3c9fa7685209f3eca894a3b69501ebcc1 100644 +index 5b4f03128499b0c1a4b8c5f5ccd17e4bdb391e81..37e75c02c374314372630f4bda0b92519809f2a4 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -64,7 +64,7 @@ public class StonecutterMenu extends AbstractContainerMenu { diff --git a/patches/server/0485-Expand-EntityUnleashEvent.patch b/patches/server/0484-Expand-EntityUnleashEvent.patch similarity index 98% rename from patches/server/0485-Expand-EntityUnleashEvent.patch rename to patches/server/0484-Expand-EntityUnleashEvent.patch index b83bd1bb30..4c9e6f4afd 100644 --- a/patches/server/0485-Expand-EntityUnleashEvent.patch +++ b/patches/server/0484-Expand-EntityUnleashEvent.patch @@ -121,10 +121,10 @@ index 3c0af74ed65610b1d5e3b72fdcf28c5a3423f0da..01173fc7177d78588978e087e63efda0 flag1 = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5c511fe60bf59ca1fe773b8c9c39bc88eebf2752..204c6ef33725eee1c582fdbc4e29caface0f27e9 100644 +index 97a17f2b782196b51ebbc6740aad1768fc73f7ba..2786398e99af94d8dc1251009cdb5fa71206bcf3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1583,8 +1583,10 @@ public class CraftEventFactory { +@@ -1596,8 +1596,10 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(new PlayerRecipeBookSettingsChangeEvent(player.getBukkitEntity(), bukkitType, open, filter)); } diff --git a/patches/server/0486-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0486-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0485-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0487-Add-DragonEggFormEvent.patch b/patches/server/0486-Add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0487-Add-DragonEggFormEvent.patch rename to patches/server/0486-Add-DragonEggFormEvent.patch diff --git a/patches/server/0488-Add-EntityMoveEvent.patch b/patches/server/0487-Add-EntityMoveEvent.patch similarity index 100% rename from patches/server/0488-Add-EntityMoveEvent.patch rename to patches/server/0487-Add-EntityMoveEvent.patch diff --git a/patches/server/0489-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0488-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 100% rename from patches/server/0489-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0488-added-option-to-disable-pathfinding-updates-on-block.patch diff --git a/patches/server/0490-Inline-shift-direction-fields.patch b/patches/server/0489-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0490-Inline-shift-direction-fields.patch rename to patches/server/0489-Inline-shift-direction-fields.patch diff --git a/patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 93% rename from patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch index e58287a5fb..9b70fab956 100644 --- a/patches/server/0491-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0490-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 204c6ef33725eee1c582fdbc4e29caface0f27e9..3d64a514b4932bf80953b8e18b0fc9fd14868021 100644 +index 2786398e99af94d8dc1251009cdb5fa71206bcf3..4f05f8d73b824cd2985e6c6d90338fc7479ef2a5 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -456,13 +456,30 @@ public class CraftEventFactory { +@@ -460,13 +460,30 @@ public class CraftEventFactory { } public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List items) { diff --git a/patches/server/0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0492-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0491-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0493-living-entity-allow-attribute-registration.patch b/patches/server/0492-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0493-living-entity-allow-attribute-registration.patch rename to patches/server/0492-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0494-fix-dead-slime-setSize-invincibility.patch b/patches/server/0493-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0494-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0493-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0495-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0494-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0495-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0494-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0496-Expose-Tracked-Players.patch b/patches/server/0495-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0496-Expose-Tracked-Players.patch rename to patches/server/0495-Expose-Tracked-Players.patch diff --git a/patches/server/0497-Improve-ServerGUI.patch b/patches/server/0496-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0497-Improve-ServerGUI.patch rename to patches/server/0496-Improve-ServerGUI.patch diff --git a/patches/server/0498-fix-converting-txt-to-json-file.patch b/patches/server/0497-fix-converting-txt-to-json-file.patch similarity index 97% rename from patches/server/0498-fix-converting-txt-to-json-file.patch rename to patches/server/0497-fix-converting-txt-to-json-file.patch index efc09dd833..dde0a0677e 100644 --- a/patches/server/0498-fix-converting-txt-to-json-file.patch +++ b/patches/server/0497-fix-converting-txt-to-json-file.patch @@ -48,7 +48,7 @@ index 2b1d7a2360a9ee7bca9d93a2dc8c61d1648a8348..d5153f804cfcfd1a70c46975e3fb1e50 if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5100b2d00452f97849239ca32164eed4345e4024..6ef0e5c607c1b7ef9ba6a9f5c7bc452ce9a84250 100644 +index 3c7d31725c4a5dd7728fa394f88d37a0e493e919..59c30bb1fd19b718662dd10b0eb9dcd5ed79e400 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -179,6 +179,7 @@ public abstract class PlayerList { diff --git a/patches/server/0499-Add-worldborder-events.patch b/patches/server/0498-Add-worldborder-events.patch similarity index 100% rename from patches/server/0499-Add-worldborder-events.patch rename to patches/server/0498-Add-worldborder-events.patch diff --git a/patches/server/0500-Add-PlayerNameEntityEvent.patch b/patches/server/0499-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0500-Add-PlayerNameEntityEvent.patch rename to patches/server/0499-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0501-Add-recipe-to-cook-events.patch b/patches/server/0500-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0501-Add-recipe-to-cook-events.patch rename to patches/server/0500-Add-recipe-to-cook-events.patch diff --git a/patches/server/0502-Add-Block-isValidTool.patch b/patches/server/0501-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0502-Add-Block-isValidTool.patch rename to patches/server/0501-Add-Block-isValidTool.patch diff --git a/patches/server/0503-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/server/0503-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0502-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/server/0504-Expand-world-key-API.patch b/patches/server/0503-Expand-world-key-API.patch similarity index 100% rename from patches/server/0504-Expand-world-key-API.patch rename to patches/server/0503-Expand-world-key-API.patch diff --git a/patches/server/0505-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0504-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0505-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0504-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch similarity index 93% rename from patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch index 757cfd681e..5a79f00284 100644 --- a/patches/server/0506-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0505-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6ef0e5c607c1b7ef9ba6a9f5c7bc452ce9a84250..7ef760cb1c88f557947e9b88409a2935666f86f0 100644 +index 59c30bb1fd19b718662dd10b0eb9dcd5ed79e400..0cbd4e6bc9b3695fd2ff0b943a69b8fd393e0f36 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -588,6 +588,14 @@ public abstract class PlayerList { diff --git a/patches/server/0507-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0506-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0507-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0506-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/server/0508-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/server/0509-Expose-protocol-version.patch b/patches/server/0508-Expose-protocol-version.patch similarity index 100% rename from patches/server/0509-Expose-protocol-version.patch rename to patches/server/0508-Expose-protocol-version.patch diff --git a/patches/server/0510-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0509-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0510-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0509-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0511-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0510-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0512-Add-bypass-host-check.patch b/patches/server/0511-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0512-Add-bypass-host-check.patch rename to patches/server/0511-Add-bypass-host-check.patch diff --git a/patches/server/0513-Set-area-affect-cloud-rotation.patch b/patches/server/0512-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0513-Set-area-affect-cloud-rotation.patch rename to patches/server/0512-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0514-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0513-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0514-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0513-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0515-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0514-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0515-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0514-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0516-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0515-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0516-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0515-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0517-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0516-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0517-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0516-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0518-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/server/0518-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0519-Add-PlayerDeepSleepEvent.patch b/patches/server/0518-Add-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0519-Add-PlayerDeepSleepEvent.patch rename to patches/server/0518-Add-PlayerDeepSleepEvent.patch diff --git a/patches/server/0520-More-World-API.patch b/patches/server/0519-More-World-API.patch similarity index 100% rename from patches/server/0520-More-World-API.patch rename to patches/server/0519-More-World-API.patch diff --git a/patches/server/0521-Add-PlayerBedFailEnterEvent.patch b/patches/server/0520-Add-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0521-Add-PlayerBedFailEnterEvent.patch rename to patches/server/0520-Add-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0522-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0521-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0522-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0521-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 100% rename from patches/server/0523-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch rename to patches/server/0522-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch diff --git a/patches/server/0524-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0523-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0524-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0523-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0525-Add-Channel-initialization-listeners.patch b/patches/server/0524-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0525-Add-Channel-initialization-listeners.patch rename to patches/server/0524-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0526-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0525-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0526-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0525-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0527-Add-more-WanderingTrader-API.patch b/patches/server/0526-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0527-Add-more-WanderingTrader-API.patch rename to patches/server/0526-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0528-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0527-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0528-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0527-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0529-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0528-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0530-Add-HiddenPotionEffect-API.patch b/patches/server/0529-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/0530-Add-HiddenPotionEffect-API.patch rename to patches/server/0529-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/0531-Inventory-close.patch b/patches/server/0530-Inventory-close.patch similarity index 100% rename from patches/server/0531-Inventory-close.patch rename to patches/server/0530-Inventory-close.patch diff --git a/patches/server/0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0532-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0531-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0533-Add-basic-Datapack-API.patch b/patches/server/0532-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0533-Add-basic-Datapack-API.patch rename to patches/server/0532-Add-basic-Datapack-API.patch diff --git a/patches/server/0534-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0533-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0534-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0533-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0535-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0535-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0534-Expand-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0536-ItemStack-repair-check-API.patch b/patches/server/0535-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0536-ItemStack-repair-check-API.patch rename to patches/server/0535-ItemStack-repair-check-API.patch diff --git a/patches/server/0537-More-Enchantment-API.patch b/patches/server/0536-More-Enchantment-API.patch similarity index 100% rename from patches/server/0537-More-Enchantment-API.patch rename to patches/server/0536-More-Enchantment-API.patch diff --git a/patches/server/0538-Move-range-check-for-block-placing-up.patch b/patches/server/0537-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0538-Move-range-check-for-block-placing-up.patch rename to patches/server/0537-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0539-Add-Mob-lookAt-API.patch b/patches/server/0538-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0539-Add-Mob-lookAt-API.patch rename to patches/server/0538-Add-Mob-lookAt-API.patch diff --git a/patches/server/0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/0540-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0539-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/0541-Add-Unix-domain-socket-support.patch b/patches/server/0540-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0541-Add-Unix-domain-socket-support.patch rename to patches/server/0540-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0542-Add-EntityInsideBlockEvent.patch b/patches/server/0541-Add-EntityInsideBlockEvent.patch similarity index 99% rename from patches/server/0542-Add-EntityInsideBlockEvent.patch rename to patches/server/0541-Add-EntityInsideBlockEvent.patch index 5080baf21f..0e0939b39f 100644 --- a/patches/server/0542-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0541-Add-EntityInsideBlockEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityInsideBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 993538f613e52ecd009f01e7b68fddba76b6a3e8..c36e64c3df09f14ffb06b81ef20c5e200e386e50 100644 +index 779d188bac9744889c1f4f554b300311e0effa29..0c5409af685ef1f251db3d9f9e21295c82a1e02a 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -@@ -124,6 +124,7 @@ public abstract class BaseFireBlock extends Block { +@@ -125,6 +125,7 @@ public abstract class BaseFireBlock extends Block { @Override protected void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { diff --git a/patches/server/0543-Improve-item-default-attribute-API.patch b/patches/server/0542-Improve-item-default-attribute-API.patch similarity index 100% rename from patches/server/0543-Improve-item-default-attribute-API.patch rename to patches/server/0542-Improve-item-default-attribute-API.patch diff --git a/patches/server/0544-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0543-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0544-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0543-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0545-More-Lidded-Block-API.patch b/patches/server/0544-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0545-More-Lidded-Block-API.patch rename to patches/server/0544-More-Lidded-Block-API.patch diff --git a/patches/server/0546-Limit-item-frame-cursors-on-maps.patch b/patches/server/0545-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0546-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0545-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0547-Add-PlayerKickEvent-causes.patch b/patches/server/0546-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0547-Add-PlayerKickEvent-causes.patch rename to patches/server/0546-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0548-Add-PufferFishStateChangeEvent.patch b/patches/server/0547-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0548-Add-PufferFishStateChangeEvent.patch rename to patches/server/0547-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0549-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0548-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0550-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0549-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0551-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0550-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0551-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0550-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0552-Add-BellRevealRaiderEvent.patch b/patches/server/0551-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0552-Add-BellRevealRaiderEvent.patch rename to patches/server/0551-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0553-Fix-invulnerable-end-crystals.patch b/patches/server/0552-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0553-Fix-invulnerable-end-crystals.patch rename to patches/server/0552-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0554-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0553-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0554-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0553-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0555-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0554-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0556-Line-Of-Sight-Changes.patch b/patches/server/0555-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0556-Line-Of-Sight-Changes.patch rename to patches/server/0555-Line-Of-Sight-Changes.patch diff --git a/patches/server/0557-add-per-world-spawn-limits.patch b/patches/server/0556-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0557-add-per-world-spawn-limits.patch rename to patches/server/0556-add-per-world-spawn-limits.patch diff --git a/patches/server/0558-Fix-potions-splash-events.patch b/patches/server/0557-Fix-potions-splash-events.patch similarity index 98% rename from patches/server/0558-Fix-potions-splash-events.patch rename to patches/server/0557-Fix-potions-splash-events.patch index dfcd16159d..d086a3db0a 100644 --- a/patches/server/0558-Fix-potions-splash-events.patch +++ b/patches/server/0557-Fix-potions-splash-events.patch @@ -143,10 +143,10 @@ index be787a5b52e90796d4f06e17e564f4324807c3e6..cb34cc9443da56c0497c7a0192c8b836 public boolean isLingering() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3d64a514b4932bf80953b8e18b0fc9fd14868021..be9fc7a0f5b4ad651847a20367cdc82b8f67ff29 100644 +index 4f05f8d73b824cd2985e6c6d90338fc7479ef2a5..61caedf05b28b2ba351e231c5f76e4df1ebd271a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -880,6 +880,32 @@ public class CraftEventFactory { +@@ -884,6 +884,32 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0559-Add-more-LimitedRegion-API.patch b/patches/server/0558-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0559-Add-more-LimitedRegion-API.patch rename to patches/server/0558-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0560-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0560-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0561-Missing-Entity-API.patch b/patches/server/0560-Missing-Entity-API.patch similarity index 100% rename from patches/server/0561-Missing-Entity-API.patch rename to patches/server/0560-Missing-Entity-API.patch diff --git a/patches/server/0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0562-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0561-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 97% rename from patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch index 0fb834902a..b2446b7c2b 100644 --- a/patches/server/0563-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0562-Use-getChunkIfLoadedImmediately-in-places.patch @@ -21,7 +21,7 @@ index 055650b315d53b56798ded7af2054c3e8e3ee319..c72687fb23e8d01639cce7d79e3f9780 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cfd5d3e50197b38d0ffef6debbb7f5b4b208382a..ed1fc466151ebebf7c3ac135c6893f4ea9a55a52 100644 +index 144d243e0d6ba3ae3f0b0bf457fa516e2b4f416f..20a14b4163807b806bf2ce5a88d3c35098bed929 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -180,6 +180,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0564-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0563-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0564-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0563-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0565-Add-PlayerArmSwingEvent.patch b/patches/server/0564-Add-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0565-Add-PlayerArmSwingEvent.patch rename to patches/server/0564-Add-PlayerArmSwingEvent.patch diff --git a/patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch similarity index 98% rename from patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch index 7b01621edd..73566101ba 100644 --- a/patches/server/0566-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch @@ -101,7 +101,7 @@ index 0a5cad166e852888208125a80b5e2d5e7e9a3a82..dd728c297335581ad69c94f768ec5201 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 0474b88416e0d016da38909196d32fe992b37d00..5b449dd681390eb7aee229a3b6366dcbb96ce2d7 100644 +index 46f46685081c3c164bd4ba306dfb1220a4e13e52..b36cb031b153c452c7f030105f6963072b5858fc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -561,6 +561,11 @@ public abstract class PlayerList { diff --git a/patches/server/0567-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0567-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0566-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0568-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0567-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0568-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0567-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0569-Add-missing-forceDrop-toggles.patch b/patches/server/0568-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0569-Add-missing-forceDrop-toggles.patch rename to patches/server/0568-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0570-Stinger-API.patch b/patches/server/0569-Stinger-API.patch similarity index 100% rename from patches/server/0570-Stinger-API.patch rename to patches/server/0569-Stinger-API.patch diff --git a/patches/server/0571-Add-System.out-err-catcher.patch b/patches/server/0570-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0571-Add-System.out-err-catcher.patch rename to patches/server/0570-Add-System.out-err-catcher.patch index 1a4bfc12d1..905517df95 100644 --- a/patches/server/0571-Add-System.out-err-catcher.patch +++ b/patches/server/0570-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d0eefb53fb88c56d72dea68269bd2b0ce6fd1c1b..0fc2e453c63b63e12f33cde28ad5afea5657ac57 100644 +index 691ad3df67ff32528ac18c2927e96c91db25741e..c57428b235f7bc0444ba0024d05c7c15b5e74fc4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -307,6 +307,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0572-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0571-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0572-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0571-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0573-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0572-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0573-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0572-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0574-Add-PlayerSetSpawnEvent.patch b/patches/server/0573-Add-PlayerSetSpawnEvent.patch similarity index 99% rename from patches/server/0574-Add-PlayerSetSpawnEvent.patch rename to patches/server/0573-Add-PlayerSetSpawnEvent.patch index 4b9bd3eb51..75839ec637 100644 --- a/patches/server/0574-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0573-Add-PlayerSetSpawnEvent.patch @@ -154,7 +154,7 @@ index e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da..db4bdce4eae9a91babe95c28cb0f6c96 public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5b449dd681390eb7aee229a3b6366dcbb96ce2d7..2eced5d3b539dfd072b8b4eafb34f21f849b1bd5 100644 +index b36cb031b153c452c7f030105f6963072b5858fc..d4fa173cebcef5fa86e5d077c2bad8e831392bf0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -841,7 +841,7 @@ public abstract class PlayerList { diff --git a/patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 91% rename from patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch index a062b815e2..c5b4e66926 100644 --- a/patches/server/0575-Make-hoppers-respect-inventory-max-stack-size.patch +++ b/patches/server/0574-Make-hoppers-respect-inventory-max-stack-size.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make hoppers respect inventory max stack size diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 6d948b6151c6194bdba1cd461960397615c4bc40..0d6132abd49d66fbf84c046e09144cb33651be15 100644 +index 1c8a08e317591413426285874de74f4de54efa07..542a5501ac94f57810d34e0f769a9a7855604f91 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -487,15 +487,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -495,15 +495,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (itemstack1.isEmpty()) { // Spigot start - SPIGOT-6693, InventorySubcontainer#setItem diff --git a/patches/server/0576-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0575-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0576-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0575-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0577-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0576-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0577-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0576-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0578-Add-EntityDamageItemEvent.patch b/patches/server/0577-Add-EntityDamageItemEvent.patch similarity index 98% rename from patches/server/0578-Add-EntityDamageItemEvent.patch rename to patches/server/0577-Add-EntityDamageItemEvent.patch index d9c3b86a2a..e289bb08f8 100644 --- a/patches/server/0578-Add-EntityDamageItemEvent.patch +++ b/patches/server/0577-Add-EntityDamageItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityDamageItemEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 7f7445a2b68fd2e6e5fcd509d950a0f8d680c1fe..ebc5f2e8d59da4bec25ff156ec95fe49366be59c 100644 +index 2ee949e1b0015c62499c557d5e359df4b9de6027..14d6e4548703b9b8640913f77406fff85f28d7ef 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -646,14 +646,14 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0579-Optimize-indirect-passenger-iteration.patch b/patches/server/0578-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0579-Optimize-indirect-passenger-iteration.patch rename to patches/server/0578-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0580-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0579-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0580-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0579-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0581-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0580-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0581-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0580-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0582-Add-BlockBreakBlockEvent.patch b/patches/server/0581-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0582-Add-BlockBreakBlockEvent.patch rename to patches/server/0581-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0583-Option-to-prevent-data-components-copy-in-smithing-r.patch b/patches/server/0582-Option-to-prevent-data-components-copy-in-smithing-r.patch similarity index 100% rename from patches/server/0583-Option-to-prevent-data-components-copy-in-smithing-r.patch rename to patches/server/0582-Option-to-prevent-data-components-copy-in-smithing-r.patch diff --git a/patches/server/0584-More-CommandBlock-API.patch b/patches/server/0583-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0584-More-CommandBlock-API.patch rename to patches/server/0583-More-CommandBlock-API.patch diff --git a/patches/server/0585-Add-missing-team-sidebar-display-slots.patch b/patches/server/0584-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0585-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0584-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0586-Add-back-EntityPortalExitEvent.patch b/patches/server/0585-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0586-Add-back-EntityPortalExitEvent.patch rename to patches/server/0585-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0587-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0586-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0587-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0586-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0588-Get-entity-default-attributes.patch b/patches/server/0587-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0588-Get-entity-default-attributes.patch rename to patches/server/0587-Get-entity-default-attributes.patch diff --git a/patches/server/0589-Left-handed-API.patch b/patches/server/0588-Left-handed-API.patch similarity index 100% rename from patches/server/0589-Left-handed-API.patch rename to patches/server/0588-Left-handed-API.patch diff --git a/patches/server/0590-Add-more-advancement-API.patch b/patches/server/0589-Add-more-advancement-API.patch similarity index 98% rename from patches/server/0590-Add-more-advancement-API.patch rename to patches/server/0589-Add-more-advancement-API.patch index 160686a23d..ed610abf5d 100644 --- a/patches/server/0590-Add-more-advancement-API.patch +++ b/patches/server/0589-Add-more-advancement-API.patch @@ -164,10 +164,10 @@ index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c private final DisplayInfo handle; diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 9fffb9c9161caad8eb62a99b37d0f31862b568a5..72eca2c6e2107f695ad6c1d85e02dae1890ea410 100644 +index 0cb2b616e0fa060b7aae6c47502f75ee7647e917..17d6a4cdd16d34f83e0752c3bdaee08288425a07 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -434,6 +434,11 @@ public class Commodore { +@@ -435,6 +435,11 @@ public class Commodore { super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf); return; } diff --git a/patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch similarity index 96% rename from patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch index e31dc566fb..c4fffcd5cc 100644 --- a/patches/server/0591-Add-ItemFactory-getSpawnEgg-API.patch +++ b/patches/server/0590-Add-ItemFactory-getSpawnEgg-API.patch @@ -37,10 +37,10 @@ index eabb8b42b890224dd19b879ff276e9908674310d..803a19063c03627dbea79cb1c395ae35 + // Paper end - old getSpawnEgg API } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 72eca2c6e2107f695ad6c1d85e02dae1890ea410..b67dfb358a9c1ae26793557ca2151357db4b1691 100644 +index 17d6a4cdd16d34f83e0752c3bdaee08288425a07..157fbe09ab22f3218d9d3f72e8c0a5a3d727eaeb 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -441,6 +441,15 @@ public class Commodore { +@@ -442,6 +442,15 @@ public class Commodore { } // Paper end diff --git a/patches/server/0592-Add-critical-damage-API.patch b/patches/server/0591-Add-critical-damage-API.patch similarity index 96% rename from patches/server/0592-Add-critical-damage-API.patch rename to patches/server/0591-Add-critical-damage-API.patch index e738b6fb6e..0cb51d12e2 100644 --- a/patches/server/0592-Add-critical-damage-API.patch +++ b/patches/server/0591-Add-critical-damage-API.patch @@ -61,10 +61,10 @@ index 746bb8a36bd6c6ef953289576af499caad588d79..57ebb96707748e90810dc07471f9769f int k = entity.getRemainingFireTicks(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb106a95bf 100644 +index 61caedf05b28b2ba351e231c5f76e4df1ebd271a..4180b86620aa18a95e0793f646515779801a343e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1074,7 +1074,7 @@ public class CraftEventFactory { +@@ -1078,7 +1078,7 @@ public class CraftEventFactory { return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.BLOCK_EXPLOSION, bukkitDamageSource, modifiers, modifierFunctions, cancelled); } DamageCause damageCause = (damager.getBukkitEntity() instanceof org.bukkit.entity.TNTPrimed) ? DamageCause.BLOCK_EXPLOSION : DamageCause.ENTITY_EXPLOSION; @@ -73,7 +73,7 @@ index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb } else if (damager != null || source.getDirectEntity() != null) { DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK; -@@ -1100,7 +1100,7 @@ public class CraftEventFactory { +@@ -1104,7 +1104,7 @@ public class CraftEventFactory { cause = DamageCause.MAGIC; } @@ -82,7 +82,7 @@ index be9fc7a0f5b4ad651847a20367cdc82b8f67ff29..76be6bf839bb6aec7f2ab0295a3509fb } else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) { return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.VOID, bukkitDamageSource, modifiers, modifierFunctions, cancelled); } else if (source.is(DamageTypes.LAVA)) { -@@ -1160,13 +1160,13 @@ public class CraftEventFactory { +@@ -1164,13 +1164,13 @@ public class CraftEventFactory { cause = DamageCause.CUSTOM; } diff --git a/patches/server/0593-Fix-issues-with-mob-conversion.patch b/patches/server/0592-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0593-Fix-issues-with-mob-conversion.patch rename to patches/server/0592-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0594-Add-hasCollision-methods-to-various-places.patch b/patches/server/0593-Add-hasCollision-methods-to-various-places.patch similarity index 100% rename from patches/server/0594-Add-hasCollision-methods-to-various-places.patch rename to patches/server/0593-Add-hasCollision-methods-to-various-places.patch diff --git a/patches/server/0595-Goat-ram-API.patch b/patches/server/0594-Goat-ram-API.patch similarity index 100% rename from patches/server/0595-Goat-ram-API.patch rename to patches/server/0594-Goat-ram-API.patch diff --git a/patches/server/0596-Add-API-for-resetting-a-single-score.patch b/patches/server/0595-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0596-Add-API-for-resetting-a-single-score.patch rename to patches/server/0595-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0597-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0596-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0597-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0596-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0598-Vanilla-command-permission-fixes.patch b/patches/server/0597-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0598-Vanilla-command-permission-fixes.patch rename to patches/server/0597-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0599-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0600-Fix-GameProfileCache-concurrency.patch b/patches/server/0599-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0600-Fix-GameProfileCache-concurrency.patch rename to patches/server/0599-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0601-Improve-and-expand-AsyncCatcher.patch b/patches/server/0600-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/server/0601-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0600-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/server/0602-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0601-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0602-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0601-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0603-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0602-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0603-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0602-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0604-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0603-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0604-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0603-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0605-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0604-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0605-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0604-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index b950818c7b..23f6d7b245 100644 --- a/patches/server/0606-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0605-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ed1fc466151ebebf7c3ac135c6893f4ea9a55a52..38bcf9f410e8a9d47c7d486c28dbc16a6225b650 100644 +index 20a14b4163807b806bf2ce5a88d3c35098bed929..b4111bcc6a676dc42b233761aa667708669c2ab8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -352,7 +352,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0607-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0606-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0608-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0607-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0609-Time-scoreboard-search.patch b/patches/server/0608-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0609-Time-scoreboard-search.patch rename to patches/server/0608-Time-scoreboard-search.patch diff --git a/patches/server/0610-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0609-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0610-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0609-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0611-Add-missing-InventoryType.patch b/patches/server/0610-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0611-Add-missing-InventoryType.patch rename to patches/server/0610-Add-missing-InventoryType.patch diff --git a/patches/server/0612-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0611-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0612-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0611-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0613-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0612-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0614-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0613-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0614-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0613-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0615-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0614-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0616-Add-packet-limiter-config.patch b/patches/server/0615-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0616-Add-packet-limiter-config.patch rename to patches/server/0615-Add-packet-limiter-config.patch diff --git a/patches/server/0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0617-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0616-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0618-Ensure-valid-vehicle-status.patch b/patches/server/0617-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0618-Ensure-valid-vehicle-status.patch rename to patches/server/0617-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0619-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0618-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0619-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0618-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0620-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0619-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0621-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0620-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0621-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0620-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0622-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0621-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0622-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0621-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0623-Preserve-overstacked-loot.patch b/patches/server/0622-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0623-Preserve-overstacked-loot.patch rename to patches/server/0622-Preserve-overstacked-loot.patch diff --git a/patches/server/0624-Update-head-rotation-in-missing-places.patch b/patches/server/0623-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0624-Update-head-rotation-in-missing-places.patch rename to patches/server/0623-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0625-prevent-unintended-light-block-manipulation.patch b/patches/server/0624-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0625-prevent-unintended-light-block-manipulation.patch rename to patches/server/0624-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0626-Fix-CraftCriteria-defaults-map.patch b/patches/server/0625-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0626-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0625-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0627-Fix-upstreams-block-state-factories.patch b/patches/server/0626-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0627-Fix-upstreams-block-state-factories.patch rename to patches/server/0626-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0628-Configurable-feature-seeds.patch b/patches/server/0627-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0628-Configurable-feature-seeds.patch rename to patches/server/0627-Configurable-feature-seeds.patch diff --git a/patches/server/0629-Add-root-admin-user-detection.patch b/patches/server/0628-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0629-Add-root-admin-user-detection.patch rename to patches/server/0628-Add-root-admin-user-detection.patch diff --git a/patches/server/0630-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0629-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0630-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0629-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0631-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0630-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0631-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0630-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0632-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0631-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0632-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0631-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0633-Fix-Spigot-growth-modifiers.patch b/patches/server/0632-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0633-Fix-Spigot-growth-modifiers.patch rename to patches/server/0632-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0634-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0633-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0635-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0634-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0635-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0634-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0636-Optimize-HashMapPalette.patch b/patches/server/0635-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0636-Optimize-HashMapPalette.patch rename to patches/server/0635-Optimize-HashMapPalette.patch diff --git a/patches/server/0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0637-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0636-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0638-Add-more-Campfire-API.patch b/patches/server/0637-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0638-Add-more-Campfire-API.patch rename to patches/server/0637-Add-more-Campfire-API.patch diff --git a/patches/server/0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0639-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0638-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0640-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0639-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0640-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0639-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0641-Improve-scoreboard-entries.patch b/patches/server/0640-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0641-Improve-scoreboard-entries.patch rename to patches/server/0640-Improve-scoreboard-entries.patch diff --git a/patches/server/0642-Entity-powdered-snow-API.patch b/patches/server/0641-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0642-Entity-powdered-snow-API.patch rename to patches/server/0641-Entity-powdered-snow-API.patch diff --git a/patches/server/0643-Add-API-for-item-entity-health.patch b/patches/server/0642-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0643-Add-API-for-item-entity-health.patch rename to patches/server/0642-Add-API-for-item-entity-health.patch diff --git a/patches/server/0644-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0643-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0644-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0643-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0645-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0644-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0646-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0645-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0647-Bucketable-API.patch b/patches/server/0646-Bucketable-API.patch similarity index 100% rename from patches/server/0647-Bucketable-API.patch rename to patches/server/0646-Bucketable-API.patch diff --git a/patches/server/0648-Validate-usernames.patch b/patches/server/0647-Validate-usernames.patch similarity index 97% rename from patches/server/0648-Validate-usernames.patch rename to patches/server/0647-Validate-usernames.patch index 08d6e377eb..788e0c2a0d 100644 --- a/patches/server/0648-Validate-usernames.patch +++ b/patches/server/0647-Validate-usernames.patch @@ -32,7 +32,7 @@ index baedae23865ea80c6546d1f6f439e1d7712258b9..e9cd90b6bb2f57d605323add43f12962 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 2eced5d3b539dfd072b8b4eafb34f21f849b1bd5..97257e44163ed565b5f1152f0738649b1adbeb07 100644 +index d4fa173cebcef5fa86e5d077c2bad8e831392bf0..9563fc34579992b74451f32e8cbb24b19d1ee19e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -670,7 +670,7 @@ public abstract class PlayerList { diff --git a/patches/server/0649-Make-water-animal-spawn-height-configurable.patch b/patches/server/0648-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0649-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0648-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0649-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0651-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0650-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0651-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0650-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0652-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0651-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0653-Multiple-Entries-with-Scoreboards.patch b/patches/server/0652-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0653-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0652-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0654-Reset-placed-block-on-exception.patch b/patches/server/0653-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0654-Reset-placed-block-on-exception.patch rename to patches/server/0653-Reset-placed-block-on-exception.patch diff --git a/patches/server/0655-Add-configurable-height-for-slime-spawn.patch b/patches/server/0654-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0655-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0654-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0656-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0655-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0656-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0655-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0657-Multi-Block-Change-API-Implementation.patch b/patches/server/0656-Multi-Block-Change-API-Implementation.patch similarity index 97% rename from patches/server/0657-Multi-Block-Change-API-Implementation.patch rename to patches/server/0656-Multi-Block-Change-API-Implementation.patch index 6cf3af0bc9..edfcf23bd1 100644 --- a/patches/server/0657-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0656-Multi-Block-Change-API-Implementation.patch @@ -24,7 +24,7 @@ index 926ff9be3d9e3f5d620e4c7ccb22b9f64865ff8c..1a37654aff9a9c86c9f7af10a1cf7213 buf.writeLong(this.sectionPos.asLong()); buf.writeVarInt(this.positions.length); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 395d5b5378e122c820fd4632180cf4f859e1f502..1ffbb31f2926a1b076ab213cb32dd19c7b0f8768 100644 +index 37f220976b1f1b0a423d7354e6730b6ad8096495..4b7b812a0203ef8a586c0e0cee10c41935487309 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -930,6 +930,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0658-Fix-NotePlayEvent.patch b/patches/server/0657-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0658-Fix-NotePlayEvent.patch rename to patches/server/0657-Fix-NotePlayEvent.patch diff --git a/patches/server/0659-Freeze-Tick-Lock-API.patch b/patches/server/0658-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0659-Freeze-Tick-Lock-API.patch rename to patches/server/0658-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0660-More-PotionEffectType-API.patch b/patches/server/0659-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0660-More-PotionEffectType-API.patch rename to patches/server/0659-More-PotionEffectType-API.patch diff --git a/patches/server/0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0661-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0660-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0662-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0661-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0662-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0661-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0663-Add-missing-structure-set-seed-configs.patch b/patches/server/0662-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0663-Add-missing-structure-set-seed-configs.patch rename to patches/server/0662-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 95% rename from patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch index d4169a6e7a..1080cc2e2e 100644 --- a/patches/server/0664-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0663-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the placement. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ebc5f2e8d59da4bec25ff156ec95fe49366be59c..823146a66de8ce13e6dc6faf2fd135480bd51c3a 100644 +index 14d6e4548703b9b8640913f77406fff85f28d7ef..eeba6d3aeb50bc7ee6dcfe7cc18eee2487d47357 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,7 +422,7 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0665-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0664-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0666-Add-GameEvent-tags.patch b/patches/server/0665-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0666-Add-GameEvent-tags.patch rename to patches/server/0665-Add-GameEvent-tags.patch diff --git a/patches/server/0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0667-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0666-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0668-Furnace-RecipesUsed-API.patch b/patches/server/0667-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0668-Furnace-RecipesUsed-API.patch rename to patches/server/0667-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0669-Configurable-sculk-sensor-listener-range.patch b/patches/server/0668-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0669-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0668-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0670-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0669-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0670-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0669-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0671-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0670-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0672-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0671-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0672-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0671-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0673-Custom-Potion-Mixes.patch b/patches/server/0672-Custom-Potion-Mixes.patch similarity index 99% rename from patches/server/0673-Custom-Potion-Mixes.patch rename to patches/server/0672-Custom-Potion-Mixes.patch index 8cd0b19f49..89fb9f45a5 100644 --- a/patches/server/0673-Custom-Potion-Mixes.patch +++ b/patches/server/0672-Custom-Potion-Mixes.patch @@ -108,7 +108,7 @@ index 04286e907ff14cc8c45dbfc6ab12f520afcca2ca..8142e4a238066404f3d1685f9cee1a2b this.getPlayerList().reloadResources(); this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary()); diff --git a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java -index a7c33675c3777cfbeeecbb3a123a0b03195e679c..93c4657f345b6d3442b1f2ab17b2703ded86b525 100644 +index 993abd8b0b80bfc7a1ce936eaaf3e0804fc9e0a4..eb2cdb36366e376b4e91aea847170b82ca26d274 100644 --- a/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BrewingStandMenu.java @@ -53,9 +53,11 @@ public class BrewingStandMenu extends AbstractContainerMenu { diff --git a/patches/server/0674-Force-close-world-loading-screen.patch b/patches/server/0673-Force-close-world-loading-screen.patch similarity index 95% rename from patches/server/0674-Force-close-world-loading-screen.patch rename to patches/server/0673-Force-close-world-loading-screen.patch index 83d9e2f203..28475526c4 100644 --- a/patches/server/0674-Force-close-world-loading-screen.patch +++ b/patches/server/0673-Force-close-world-loading-screen.patch @@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 97257e44163ed565b5f1152f0738649b1adbeb07..d21d9a66ab7197ea4fa324a9af64a1457d8e602b 100644 +index 9563fc34579992b74451f32e8cbb24b19d1ee19e..2916328a5b94783e68688756b5ad7685f180e27f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -394,6 +394,16 @@ public abstract class PlayerList { diff --git a/patches/server/0675-Fix-falling-block-spawn-methods.patch b/patches/server/0674-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0675-Fix-falling-block-spawn-methods.patch rename to patches/server/0674-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0676-Expose-furnace-minecart-push-values.patch b/patches/server/0675-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0676-Expose-furnace-minecart-push-values.patch rename to patches/server/0675-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0677-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0676-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0678-More-Projectile-API.patch b/patches/server/0677-More-Projectile-API.patch similarity index 99% rename from patches/server/0678-More-Projectile-API.patch rename to patches/server/0677-More-Projectile-API.patch index 34a555256e..1fb8d2e9f1 100644 --- a/patches/server/0678-More-Projectile-API.patch +++ b/patches/server/0677-More-Projectile-API.patch @@ -713,10 +713,10 @@ index e374b9f40eddca13b30855d25a2030f8df98138f..4fc893378fb0568ddcffc7593d66df6b // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 76be6bf839bb6aec7f2ab0295a3509fb106a95bf..3504b19a3748c64a6c93c86aa0b4a7a140996e06 100644 +index 4180b86620aa18a95e0793f646515779801a343e..ffc55cf79d0e7f90ba2816d7604477f018d75ecd 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -837,19 +837,19 @@ public class CraftEventFactory { +@@ -841,19 +841,19 @@ public class CraftEventFactory { /** * PotionSplashEvent */ @@ -739,7 +739,7 @@ index 76be6bf839bb6aec7f2ab0295a3509fb106a95bf..3504b19a3748c64a6c93c86aa0b4a7a1 hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity(); } -@@ -858,20 +858,20 @@ public class CraftEventFactory { +@@ -862,20 +862,20 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0679-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0678-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0679-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0678-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0680-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0679-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0681-Implement-getComputedBiome-API.patch b/patches/server/0680-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0681-Implement-getComputedBiome-API.patch rename to patches/server/0680-Implement-getComputedBiome-API.patch diff --git a/patches/server/0682-Make-some-itemstacks-nonnull.patch b/patches/server/0681-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0682-Make-some-itemstacks-nonnull.patch rename to patches/server/0681-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0683-Implement-enchantWithLevels-API.patch b/patches/server/0682-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0683-Implement-enchantWithLevels-API.patch rename to patches/server/0682-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0684-Fix-saving-in-unloadWorld.patch b/patches/server/0683-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0684-Fix-saving-in-unloadWorld.patch rename to patches/server/0683-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0685-Buffer-OOB-setBlock-calls.patch b/patches/server/0684-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0685-Buffer-OOB-setBlock-calls.patch rename to patches/server/0684-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0686-Add-TameableDeathMessageEvent.patch b/patches/server/0685-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0686-Add-TameableDeathMessageEvent.patch rename to patches/server/0685-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 99% rename from patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 7e7e38c837..48633dc491 100644 --- a/patches/server/0687-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0686-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -196,10 +196,10 @@ index edc20745649b0837f1371c8d29e71fc0c8e5528f..932831bb5632ead5850842fc77192c84 } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3504b19a3748c64a6c93c86aa0b4a7a140996e06..55eee3a7d922f8c298b4653d733e30edc12005c5 100644 +index ffc55cf79d0e7f90ba2816d7604477f018d75ecd..697ef7d19cca2d3f51ccff9e4ab14d87a7ddaf00 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1374,11 +1374,11 @@ public class CraftEventFactory { +@@ -1378,11 +1378,11 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0688-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0687-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0688-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0687-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0689-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0688-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/server/0689-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0688-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/server/0690-cache-resource-keys.patch b/patches/server/0689-cache-resource-keys.patch similarity index 100% rename from patches/server/0690-cache-resource-keys.patch rename to patches/server/0689-cache-resource-keys.patch diff --git a/patches/server/0691-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0690-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0691-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0690-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0692-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0691-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0693-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0693-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0694-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0693-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0694-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0693-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0695-Expand-PlayerItemDamageEvent.patch b/patches/server/0694-Expand-PlayerItemDamageEvent.patch similarity index 94% rename from patches/server/0695-Expand-PlayerItemDamageEvent.patch rename to patches/server/0694-Expand-PlayerItemDamageEvent.patch index bf458d8c9b..d550002186 100644 --- a/patches/server/0695-Expand-PlayerItemDamageEvent.patch +++ b/patches/server/0694-Expand-PlayerItemDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 823146a66de8ce13e6dc6faf2fd135480bd51c3a..d825c2e3808e44db9935dab4e7b528146c6d83c2 100644 +index eeba6d3aeb50bc7ee6dcfe7cc18eee2487d47357..598507684aed7978fa2e9bae0d959c7d0f9e53d6 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -650,10 +650,11 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0696-WorldCreator-keepSpawnLoaded.patch b/patches/server/0695-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0696-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0695-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0697-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0696-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0698-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0697-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0699-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0698-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0700-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0699-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0700-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0699-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0701-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0700-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0701-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0700-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0702-Add-PlayerStopUsingItemEvent.patch b/patches/server/0701-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0702-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0701-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0703-Don-t-tick-markers.patch b/patches/server/0702-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0703-Don-t-tick-markers.patch rename to patches/server/0702-Don-t-tick-markers.patch diff --git a/patches/server/0704-Expand-FallingBlock-API.patch b/patches/server/0703-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0704-Expand-FallingBlock-API.patch rename to patches/server/0703-Expand-FallingBlock-API.patch diff --git a/patches/server/0705-Add-support-for-Proxy-Protocol.patch b/patches/server/0704-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0705-Add-support-for-Proxy-Protocol.patch rename to patches/server/0704-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0706-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0705-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0706-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0705-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0707-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0706-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0708-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0708-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0709-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0708-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0709-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0708-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0710-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0709-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/server/0710-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0709-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/server/0711-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0710-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0711-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0710-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0712-Dont-resent-entity-on-art-update.patch b/patches/server/0711-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0712-Dont-resent-entity-on-art-update.patch rename to patches/server/0711-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0713-Add-WardenAngerChangeEvent.patch b/patches/server/0712-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0713-Add-WardenAngerChangeEvent.patch rename to patches/server/0712-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0714-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0714-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0715-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0714-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0715-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0714-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0716-Nameable-Banner-API.patch b/patches/server/0715-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0716-Nameable-Banner-API.patch rename to patches/server/0715-Nameable-Banner-API.patch diff --git a/patches/server/0717-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0716-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0717-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0716-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0718-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0717-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0718-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0717-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0719-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0718-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0720-Add-Player-getFishHook.patch b/patches/server/0719-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0720-Add-Player-getFishHook.patch rename to patches/server/0719-Add-Player-getFishHook.patch diff --git a/patches/server/0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0721-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0720-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0722-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0721-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 100% rename from patches/server/0722-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0721-Add-various-missing-EntityDropItemEvent-calls.patch diff --git a/patches/server/0723-Fix-Bee-flower-NPE.patch b/patches/server/0722-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0723-Fix-Bee-flower-NPE.patch rename to patches/server/0722-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0724-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0725-More-Teleport-API.patch b/patches/server/0724-More-Teleport-API.patch similarity index 98% rename from patches/server/0725-More-Teleport-API.patch rename to patches/server/0724-More-Teleport-API.patch index 658e715895..3c95df3508 100644 --- a/patches/server/0725-More-Teleport-API.patch +++ b/patches/server/0724-More-Teleport-API.patch @@ -29,7 +29,7 @@ index 8f65943161a6621f8f7926c48322e26a854ae139..58fd502c2a735d4a102de451a002cfd6 d0 = to.getX(); d1 = to.getY(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 47f24e390efd8eb4cb7f62b5203825f4160772b7..243ac4253a1541dba52126bad96682e43c6f48a1 100644 +index 4c09f2529dd8eb7ac7d260d177f5292ff2339442..94051ae8ea93ab144f3767345b1cda0438d2afc6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -221,15 +221,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -112,7 +112,7 @@ index 47f24e390efd8eb4cb7f62b5203825f4160772b7..243ac4253a1541dba52126bad96682e4 private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1ffbb31f2926a1b076ab213cb32dd19c7b0f8768..7f449bc5a0644709b426dba70a5afccc26a37de8 100644 +index 4b7b812a0203ef8a586c0e0cee10c41935487309..d2f6fb41b16468bf03675b3a331c707e21f8c9ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1286,13 +1286,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0726-Add-EntityPortalReadyEvent.patch b/patches/server/0725-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/server/0726-Add-EntityPortalReadyEvent.patch rename to patches/server/0725-Add-EntityPortalReadyEvent.patch diff --git a/patches/server/0727-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0726-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0727-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0726-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0728-Send-block-entities-after-destroy-prediction.patch b/patches/server/0727-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0728-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0727-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 98% rename from patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch index b405c21a44..5030feaf00 100644 --- a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0728-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 38bcf9f410e8a9d47c7d486c28dbc16a6225b650..210c3b6167dac93e550fe849e34b5aa404ab6dce 100644 +index b4111bcc6a676dc42b233761aa667708669c2ab8..cc92d2e8b77c75da1d8b850c3bc251e8ac221c24 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -339,7 +339,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch similarity index 94% rename from patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch index eb2cf4cb83..45789f37e1 100644 --- a/patches/server/0730-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0729-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7f449bc5a0644709b426dba70a5afccc26a37de8..7a4ae758616225002cc14060753bb691ee1d94bb 100644 +index d2f6fb41b16468bf03675b3a331c707e21f8c9ce..5f3045630197f6d515bc66f7fa8014814dbfd8a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -691,6 +691,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0731-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0730-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0731-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0730-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0732-Collision-API.patch b/patches/server/0731-Collision-API.patch similarity index 100% rename from patches/server/0732-Collision-API.patch rename to patches/server/0731-Collision-API.patch diff --git a/patches/server/0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0733-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0732-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0734-Block-Ticking-API.patch b/patches/server/0733-Block-Ticking-API.patch similarity index 100% rename from patches/server/0734-Block-Ticking-API.patch rename to patches/server/0733-Block-Ticking-API.patch diff --git a/patches/server/0735-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0734-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0735-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0734-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0736-Add-NamespacedKey-biome-methods.patch b/patches/server/0735-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0736-Add-NamespacedKey-biome-methods.patch rename to patches/server/0735-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch similarity index 96% rename from patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch index 18da0811b4..3a9d6b48df 100644 --- a/patches/server/0737-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0736-Fix-plugin-loggers-on-server-shutdown.patch @@ -49,7 +49,7 @@ index acdba56f025fe729398c5549175baad8e6818f62..3aba668f9a34cabc26063c61660ab22f } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index b9b93a4e20eed028b76eab4dcb9610ae05f22faf..1acc0a579804dee7bb3d0f755c24240413ed7540 100644 +index ba95452f99e542638c3a3f7bbfdf6e79849014c5..618f4b2e1d012b647b3e7bf359c8ecdd7f159e63 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -19,6 +19,12 @@ public class Main { diff --git a/patches/server/0738-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0738-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0739-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0738-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0739-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0738-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0740-Missing-eating-regain-reason.patch b/patches/server/0739-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0740-Missing-eating-regain-reason.patch rename to patches/server/0739-Missing-eating-regain-reason.patch diff --git a/patches/server/0741-Missing-effect-cause.patch b/patches/server/0740-Missing-effect-cause.patch similarity index 100% rename from patches/server/0741-Missing-effect-cause.patch rename to patches/server/0740-Missing-effect-cause.patch diff --git a/patches/server/0742-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0741-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0742-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0741-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0743-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0742-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0744-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0743-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0744-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0743-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0745-Configurable-chat-thread-limit.patch b/patches/server/0744-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0745-Configurable-chat-thread-limit.patch rename to patches/server/0744-Configurable-chat-thread-limit.patch diff --git a/patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 91% rename from patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch index f517c5483b..aaf56a3c17 100644 --- a/patches/server/0746-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch +++ b/patches/server/0745-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type TODO: Remove in 1.21? diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index b67dfb358a9c1ae26793557ca2151357db4b1691..a28bd14454a599014f24ed21210a8a185ac624db 100644 +index 157fbe09ab22f3218d9d3f72e8c0a5a3d727eaeb..cae5c865388aca8041233ca52b25ecf68cd37494 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -439,6 +439,12 @@ public class Commodore { +@@ -440,6 +440,12 @@ public class Commodore { super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, runtimeCbPkgPrefix() + "advancement/CraftAdvancement", "getDisplay0", desc, false); return; } diff --git a/patches/server/0747-fix-Jigsaw-block-kicking-user.patch b/patches/server/0746-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0747-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0746-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0748-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0747-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0748-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0747-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0749-Add-getDrops-to-BlockState.patch b/patches/server/0748-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0749-Add-getDrops-to-BlockState.patch rename to patches/server/0748-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch similarity index 98% rename from patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch index 074c1a9d45..197bab1c24 100644 --- a/patches/server/0750-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0749-Fix-a-bunch-of-vanilla-bugs.patch @@ -85,7 +85,7 @@ index 6854ca4d4fec2b4fa541c3fabf63787665572609..e7b444a10b244828827b3c66c5346520 } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index b953def299faf1a13e1893d17a476f36e2d6337a..d409791325771909faaef0dffb0f7f02d1bf71af 100644 +index 071e9ef3680c5dc492c6142ccd05f6788ebc3035..61fda6927f060cdf8bcfddaaa08bbbe2c514c630 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1027,7 +1027,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -124,7 +124,7 @@ index 6abecaac8407b992d208a9108e11fd4954a4106f..03d89f326d320c5d778c3d1e2db7d6b8 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d430e6c08bae0a630e71c11c9eae26bef85bde36..a929b8f1c452db08a64e4be53b488cf2676e0a94 100644 +index b0a1f6cf2cc96a2ddc8232f929c134501d99411e..84add5cc89ec912389500b6140a39d6b7ddc9e86 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -260,7 +260,7 @@ public abstract class PlayerList { @@ -249,7 +249,7 @@ index 08dcc94c9eca9a5fd61055f05b7737ba5840b5bf..e0e5046c84941a8d17e18c177f3daea9 return 1; } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 5b6133f6758d322713321b7e918db0c3e0d4be51..6173c689013ab02c83ca6ff1fde2b1e47f3e7820 100644 +index 396559c281eee9e8c677cb222721414e8d9e12a2..8b0ebf659f6b219ce2a5d10b0d79f9b89b47c911 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -178,6 +178,11 @@ public class BeaconMenu extends AbstractContainerMenu { diff --git a/patches/server/0751-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0750-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0751-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0750-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0752-Fix-custom-piglin-loved-items.patch b/patches/server/0751-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0752-Fix-custom-piglin-loved-items.patch rename to patches/server/0751-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0753-EntityPickupItemEvent-fixes.patch b/patches/server/0752-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0753-EntityPickupItemEvent-fixes.patch rename to patches/server/0752-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 94% rename from patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch index cc9068cb42..e533866d2a 100644 --- a/patches/server/0754-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0753-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -30,10 +30,10 @@ index 03d89f326d320c5d778c3d1e2db7d6b88753faec..717d015dd4637dd9d568b751be1dc104 this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 55eee3a7d922f8c298b4653d733e30edc12005c5..82b98a9b6418614283ac512f59586877f577b35b 100644 +index 697ef7d19cca2d3f51ccff9e4ab14d87a7ddaf00..668becf24a16af6b834d05608787c8f9420e9ad3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -550,6 +550,12 @@ public class CraftEventFactory { +@@ -554,6 +554,12 @@ public class CraftEventFactory { } public static PlayerInteractEvent callPlayerInteractEvent(net.minecraft.world.entity.player.Player who, Action action, BlockPos position, Direction direction, ItemStack itemstack, boolean cancelledBlock, InteractionHand hand, Vec3 targetPos) { @@ -46,7 +46,7 @@ index 55eee3a7d922f8c298b4653d733e30edc12005c5..82b98a9b6418614283ac512f59586877 Player player = (who == null) ? null : (Player) who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); -@@ -584,6 +590,11 @@ public class CraftEventFactory { +@@ -588,6 +594,11 @@ public class CraftEventFactory { if (cancelledBlock) { event.setUseInteractedBlock(Event.Result.DENY); } diff --git a/patches/server/0755-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0754-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0755-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0754-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0756-Elder-Guardian-appearance-API.patch b/patches/server/0755-Elder-Guardian-appearance-API.patch similarity index 90% rename from patches/server/0756-Elder-Guardian-appearance-API.patch rename to patches/server/0755-Elder-Guardian-appearance-API.patch index 05ca8f144b..8f007ec892 100644 --- a/patches/server/0756-Elder-Guardian-appearance-API.patch +++ b/patches/server/0755-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7a4ae758616225002cc14060753bb691ee1d94bb..3566c607c7d66eb8d64cdcd77204b6b132287f58 100644 +index 5f3045630197f6d515bc66f7fa8014814dbfd8a7..2ec75a25de34b68e7c14416a06facce6a169bac7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3298,6 +3298,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0757-Allow-changing-bed-s-occupied-property.patch b/patches/server/0756-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0757-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0756-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0758-Add-entity-knockback-API.patch b/patches/server/0757-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0758-Add-entity-knockback-API.patch rename to patches/server/0757-Add-entity-knockback-API.patch diff --git a/patches/server/0759-Detect-headless-JREs.patch b/patches/server/0758-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0759-Detect-headless-JREs.patch rename to patches/server/0758-Detect-headless-JREs.patch diff --git a/patches/server/0760-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0759-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0760-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0759-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0761-Add-EntityToggleSitEvent.patch b/patches/server/0760-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0761-Add-EntityToggleSitEvent.patch rename to patches/server/0760-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0762-Add-fire-tick-delay-option.patch b/patches/server/0761-Add-fire-tick-delay-option.patch similarity index 66% rename from patches/server/0762-Add-fire-tick-delay-option.patch rename to patches/server/0761-Add-fire-tick-delay-option.patch index 848f831f0e..2ad454d1c6 100644 --- a/patches/server/0762-Add-fire-tick-delay-option.patch +++ b/patches/server/0761-Add-fire-tick-delay-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fire-tick-delay option diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 5dad1aa26a8908cba6a08398a4bad27f31d4c2c0..4d467ecf0dd8006b9fa4fb8fb5aadc0622a1e512 100644 +index 9db6df5f28be559a324ead2fcfbe189eac076e2e..0a77a470d78f68e8397f29f298e7f52fbd7ba9a2 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -171,7 +171,7 @@ public class FireBlock extends BaseFireBlock { @@ -13,16 +13,16 @@ index 5dad1aa26a8908cba6a08398a4bad27f31d4c2c0..4d467ecf0dd8006b9fa4fb8fb5aadc06 @Override protected void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random)); -+ world.scheduleTick(pos, this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option ++ world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option if (world.getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) { if (!state.canSurvive(world, pos)) { this.fireExtinguished(world, pos); // CraftBukkit - invalid place location @@ -372,11 +372,11 @@ public class FireBlock extends BaseFireBlock { - protected void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify, net.minecraft.world.item.context.UseOnContext context) { - super.onPlace(state, world, pos, oldState, notify, context); - // Paper end - UseOnContext param -- world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random)); -+ world.scheduleTick(pos, this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option + protected void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, UseOnContext context) { + super.onPlace(iblockdata, world, blockposition, iblockdata1, flag, context); + // CraftBukkit end +- world.scheduleTick(blockposition, (Block) this, FireBlock.getFireTickDelay(world.random)); ++ world.scheduleTick(blockposition, (Block) this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option } - private static int getFireTickDelay(RandomSource random) { diff --git a/patches/server/0763-Add-Moving-Piston-API.patch b/patches/server/0762-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0763-Add-Moving-Piston-API.patch rename to patches/server/0762-Add-Moving-Piston-API.patch diff --git a/patches/server/0764-Ignore-impossible-spawn-tick.patch b/patches/server/0763-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0764-Ignore-impossible-spawn-tick.patch rename to patches/server/0763-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0765-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 92% rename from patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index d0cf5c9861..77c18397b3 100644 --- a/patches/server/0766-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0765-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -21,10 +21,10 @@ index 43a2570196619bd239170de586626a7112066430..655a0f2328b641ce41c64e9bb1456e05 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index c36e64c3df09f14ffb06b81ef20c5e200e386e50..bdf432850f8228ed42b09afea79ecc5c1055c930 100644 +index 0c5409af685ef1f251db3d9f9e21295c82a1e02a..8b5918dc07f17ae5001c03dc743128fd9520b819 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -@@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block { +@@ -135,6 +135,10 @@ public abstract class BaseFireBlock extends Block { if (!event.isCancelled()) { entity.igniteForSeconds(event.getDuration(), false); diff --git a/patches/server/0767-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0766-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0767-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0766-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0768-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0767-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0768-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0767-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0769-Add-Player-Warden-Warning-API.patch b/patches/server/0768-Add-Player-Warden-Warning-API.patch similarity index 95% rename from patches/server/0769-Add-Player-Warden-Warning-API.patch rename to patches/server/0768-Add-Player-Warden-Warning-API.patch index 647754a109..84244f79e4 100644 --- a/patches/server/0769-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0768-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3566c607c7d66eb8d64cdcd77204b6b132287f58..cc631c6882ee623cb1191b9d422a7adc4fa742a2 100644 +index 2ec75a25de34b68e7c14416a06facce6a169bac7..cdcdb55f896bb4128f258bf2aee91dc60100b6de 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3303,6 +3303,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0770-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0769-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0770-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0769-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0771-Add-paper-dumplisteners-command.patch b/patches/server/0770-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0771-Add-paper-dumplisteners-command.patch rename to patches/server/0770-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0772-check-global-player-list-where-appropriate.patch b/patches/server/0771-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0772-check-global-player-list-where-appropriate.patch rename to patches/server/0771-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0773-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0772-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0773-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0772-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0774-ItemStack-damage-API.patch b/patches/server/0773-ItemStack-damage-API.patch similarity index 98% rename from patches/server/0774-ItemStack-damage-API.patch rename to patches/server/0773-ItemStack-damage-API.patch index 24e6ad94dd..965c0e9084 100644 --- a/patches/server/0774-ItemStack-damage-API.patch +++ b/patches/server/0773-ItemStack-damage-API.patch @@ -11,7 +11,7 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index d825c2e3808e44db9935dab4e7b528146c6d83c2..57510b85caf8914290ab0afb89cfb773158715b8 100644 +index 598507684aed7978fa2e9bae0d959c7d0f9e53d6..7c52ae813bfe47983ca94f4daf68f17e899949da 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -647,11 +647,16 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0775-Friction-API.patch b/patches/server/0774-Friction-API.patch similarity index 100% rename from patches/server/0775-Friction-API.patch rename to patches/server/0774-Friction-API.patch diff --git a/patches/server/0776-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0775-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0776-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0775-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0777-Fix-premature-player-kicks-on-shutdown.patch b/patches/server/0776-Fix-premature-player-kicks-on-shutdown.patch similarity index 100% rename from patches/server/0777-Fix-premature-player-kicks-on-shutdown.patch rename to patches/server/0776-Fix-premature-player-kicks-on-shutdown.patch diff --git a/patches/server/0778-Sync-offhand-slot-in-menus.patch b/patches/server/0777-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0778-Sync-offhand-slot-in-menus.patch rename to patches/server/0777-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0779-Player-Entity-Tracking-Events.patch b/patches/server/0778-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/server/0779-Player-Entity-Tracking-Events.patch rename to patches/server/0778-Player-Entity-Tracking-Events.patch diff --git a/patches/server/0780-Limit-pet-look-distance.patch b/patches/server/0779-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0780-Limit-pet-look-distance.patch rename to patches/server/0779-Limit-pet-look-distance.patch diff --git a/patches/server/0781-fix-Instruments.patch b/patches/server/0780-fix-Instruments.patch similarity index 96% rename from patches/server/0781-fix-Instruments.patch rename to patches/server/0780-fix-Instruments.patch index fd5c343d0b..3c7adaddd6 100644 --- a/patches/server/0781-fix-Instruments.patch +++ b/patches/server/0780-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cc631c6882ee623cb1191b9d422a7adc4fa742a2..c426dbff75f0ad3889594fba9a66669fc71b63e8 100644 +index cdcdb55f896bb4128f258bf2aee91dc60100b6de..fc0db6deca6ff3b8e083fccd312e6ff3b5a78616 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -768,7 +768,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 92% rename from patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index d563036457..420107d5c3 100644 --- a/patches/server/0782-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0781-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11434cdb69 100644 +index 46dd499c2023ec482ae7204d2894fb4100d9233b..a8bec3c405732e5863cf717b1fe948d00837bed2 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -906,15 +906,15 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -907,15 +907,15 @@ public abstract class BlockBehaviour implements FeatureElement { return this.shapeExceedsCube; // Paper - moved into shape cache init } @@ -28,7 +28,7 @@ index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11 return this.isAir; } -@@ -998,7 +998,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -999,7 +999,7 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -37,7 +37,7 @@ index 6fe078fdf619c4df664f1dce6a0f5d202c21b35e..9d6cc0b8dbc451dfff1ddd8e7be32d11 return this.canOcclude; } -@@ -1214,11 +1214,11 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1215,11 +1215,11 @@ public abstract class BlockBehaviour implements FeatureElement { return this.getBlock().builtInRegistryHolder().is(key); } diff --git a/patches/server/0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0783-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0782-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0784-Add-BlockLockCheckEvent.patch b/patches/server/0783-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0784-Add-BlockLockCheckEvent.patch rename to patches/server/0783-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0785-Add-Sneaking-API-for-Entities.patch b/patches/server/0784-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/server/0785-Add-Sneaking-API-for-Entities.patch rename to patches/server/0784-Add-Sneaking-API-for-Entities.patch index a8db30ee3c..aaee22c056 100644 --- a/patches/server/0785-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0784-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 7c223042595c7cd5ccc554211657d9375833122b..3c1e199316ae283210529d4d27b4f9d70b4d9404 100644 +index f950102a324d07aeba260bfa82fe88728f2362e5..ac513d3162a0794f226abc80bff21c799fe5802c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -874,6 +874,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0786-Improve-logging-and-errors.patch b/patches/server/0785-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0786-Improve-logging-and-errors.patch rename to patches/server/0785-Improve-logging-and-errors.patch diff --git a/patches/server/0787-Improve-PortalEvents.patch b/patches/server/0786-Improve-PortalEvents.patch similarity index 100% rename from patches/server/0787-Improve-PortalEvents.patch rename to patches/server/0786-Improve-PortalEvents.patch diff --git a/patches/server/0788-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0787-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0788-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0787-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0789-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0789-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0790-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0789-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0791-Flying-Fall-Damage.patch b/patches/server/0790-Flying-Fall-Damage.patch similarity index 96% rename from patches/server/0791-Flying-Fall-Damage.patch rename to patches/server/0790-Flying-Fall-Damage.patch index f7fc90f3fd..1731871405 100644 --- a/patches/server/0791-Flying-Fall-Damage.patch +++ b/patches/server/0790-Flying-Fall-Damage.patch @@ -26,7 +26,7 @@ index ad334f149fe1b44d4ebe48489dcd2811ff1b5cd0..950ce40d268d89ff3c503116081db6c9 } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c426dbff75f0ad3889594fba9a66669fc71b63e8..cb191389007ccaae2e3af1defc5e95ee571c46ac 100644 +index fc0db6deca6ff3b8e083fccd312e6ff3b5a78616..78ab37d1359e1d44bd921428038c733b77171cd2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2581,6 +2581,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/server/0792-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0791-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/server/0793-config-for-disabling-entity-tag-tags.patch b/patches/server/0792-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0793-config-for-disabling-entity-tag-tags.patch rename to patches/server/0792-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0794-Use-single-player-info-update-packet-on-join.patch b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0794-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0793-Use-single-player-info-update-packet-on-join.patch index 4552daec45..02e36f9270 100644 --- a/patches/server/0794-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch @@ -18,7 +18,7 @@ index 1b486d09bd1a84835183a6c8181933fcabb3373f..62b022a72954eeecfa141f4ec93ccb44 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a929b8f1c452db08a64e4be53b488cf2676e0a94..2ea29c9491186d7a25ed3eed99ee4a488bcaa272 100644 +index 84add5cc89ec912389500b6140a39d6b7ddc9e86..944c727fd7770fe4c06af67304005664a7ab9e8a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -361,6 +361,7 @@ public abstract class PlayerList { diff --git a/patches/server/0795-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0794-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0795-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0794-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0796-Win-Screen-API.patch b/patches/server/0795-Win-Screen-API.patch similarity index 93% rename from patches/server/0796-Win-Screen-API.patch rename to patches/server/0795-Win-Screen-API.patch index 95dd061087..7ab535106b 100644 --- a/patches/server/0796-Win-Screen-API.patch +++ b/patches/server/0795-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cb191389007ccaae2e3af1defc5e95ee571c46ac..756ba61af10b552c5c0bf86e506a31df0f0ce6f5 100644 +index 78ab37d1359e1d44bd921428038c733b77171cd2..384165d6747c61d0d306fa63773cbca560dfae9b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1305,6 +1305,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0797-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0796-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0797-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0796-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0798-Fix-force-opening-enchantment-tables.patch b/patches/server/0797-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0798-Fix-force-opening-enchantment-tables.patch rename to patches/server/0797-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0799-Add-Entity-Body-Yaw-API.patch b/patches/server/0798-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0799-Add-Entity-Body-Yaw-API.patch rename to patches/server/0798-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0800-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0799-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0801-Add-EntityFertilizeEggEvent.patch b/patches/server/0800-Add-EntityFertilizeEggEvent.patch similarity index 97% rename from patches/server/0801-Add-EntityFertilizeEggEvent.patch rename to patches/server/0800-Add-EntityFertilizeEggEvent.patch index 8c4e26f04a..241552c5fe 100644 --- a/patches/server/0801-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0800-Add-EntityFertilizeEggEvent.patch @@ -69,10 +69,10 @@ index d34d8fe70379dcad9540739ec0ae1c94f01fc46b..fadd341ff398886a4da102eefa1beb95 this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 82b98a9b6418614283ac512f59586877f577b35b..b35c6393c3af2519be648e75c7d09038cf94ccbf 100644 +index 668becf24a16af6b834d05608787c8f9420e9ad3..8a1f52eeace48ed65bdc077923d0763d5e4369b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2168,4 +2168,28 @@ public class CraftEventFactory { +@@ -2181,4 +2181,28 @@ public class CraftEventFactory { return event.callEvent(); } // Paper end diff --git a/patches/server/0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0802-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0801-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0803-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0802-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0804-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0803-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0804-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0803-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0805-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0804-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0805-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0804-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0806-Fix-text-display-error-on-spawn.patch b/patches/server/0805-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0806-Fix-text-display-error-on-spawn.patch rename to patches/server/0805-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0807-Fix-inventories-returning-null-Locations.patch b/patches/server/0806-Fix-inventories-returning-null-Locations.patch similarity index 97% rename from patches/server/0807-Fix-inventories-returning-null-Locations.patch rename to patches/server/0806-Fix-inventories-returning-null-Locations.patch index eabfae28c5..23413d6b03 100644 --- a/patches/server/0807-Fix-inventories-returning-null-Locations.patch +++ b/patches/server/0806-Fix-inventories-returning-null-Locations.patch @@ -30,7 +30,7 @@ index c26161784359ea167e11de8aa58eda3b4851059c..6632cf24ebe6d147950a1fdb87666093 } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 6173c689013ab02c83ca6ff1fde2b1e47f3e7820..1b6fd16d8c6195c6f7b65c7621d5f9bd15c46a75 100644 +index 8b0ebf659f6b219ce2a5d10b0d79f9b89b47c911..a735aeeb59f79154ce797c6e2f5600305f46d217 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -52,6 +52,12 @@ public class BeaconMenu extends AbstractContainerMenu { diff --git a/patches/server/0808-Add-Shearable-API.patch b/patches/server/0807-Add-Shearable-API.patch similarity index 98% rename from patches/server/0808-Add-Shearable-API.patch rename to patches/server/0807-Add-Shearable-API.patch index 675a1bf358..069dcbaf2e 100644 --- a/patches/server/0808-Add-Shearable-API.patch +++ b/patches/server/0807-Add-Shearable-API.patch @@ -32,7 +32,7 @@ index 0000000000000000000000000000000000000000..bcf254e3c81cf1e401bddc850fb24ad2 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java -index b252236369315502278e9b7c93709a347ec16636..93481e2828f945b11ae9a20a8e5286232b449fa9 100644 +index 0139e85c0751564bb4d2847b7b2e48f75fee9e53..e8e4704304504e69c7964dcd4df8ce5db9e92bf6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBogged.java @@ -4,7 +4,7 @@ import org.bukkit.craftbukkit.CraftServer; diff --git a/patches/server/0809-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0808-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0809-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0808-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0810-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0809-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0811-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0811-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0810-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0812-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0812-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0813-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0812-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0814-Use-array-for-gamerule-storage.patch b/patches/server/0813-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0814-Use-array-for-gamerule-storage.patch rename to patches/server/0813-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0815-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0814-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0815-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0814-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0816-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0815-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0816-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0815-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0817-Add-Mob-Experience-reward-API.patch b/patches/server/0816-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0817-Add-Mob-Experience-reward-API.patch rename to patches/server/0816-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0818-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0817-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0818-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0817-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0819-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0818-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0820-More-accurate-isInOpenWater-impl.patch b/patches/server/0819-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0820-More-accurate-isInOpenWater-impl.patch rename to patches/server/0819-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0821-Expand-PlayerItemMendEvent.patch b/patches/server/0820-Expand-PlayerItemMendEvent.patch similarity index 97% rename from patches/server/0821-Expand-PlayerItemMendEvent.patch rename to patches/server/0820-Expand-PlayerItemMendEvent.patch index 6437d9ecb4..5ce5d5fde3 100644 --- a/patches/server/0821-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0820-Expand-PlayerItemMendEvent.patch @@ -49,10 +49,10 @@ index 384165d6747c61d0d306fa63773cbca560dfae9b..e7235efba6b68917a646083c150655cb } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b35c6393c3af2519be648e75c7d09038cf94ccbf..23e24853e8540cecb2145471d548cad1b2539447 100644 +index 8a1f52eeace48ed65bdc077923d0763d5e4369b6..bbc5143940b5f028051cb5897a5b510e35a5d354 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1280,10 +1280,10 @@ public class CraftEventFactory { +@@ -1284,10 +1284,10 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0822-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0821-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0822-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0821-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0823-Add-transient-modifier-API.patch b/patches/server/0822-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0823-Add-transient-modifier-API.patch rename to patches/server/0822-Add-transient-modifier-API.patch diff --git a/patches/server/0824-Fix-block-place-logic.patch b/patches/server/0823-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0824-Fix-block-place-logic.patch rename to patches/server/0823-Fix-block-place-logic.patch index 3796cc773d..accea4ee7c 100644 --- a/patches/server/0824-Fix-block-place-logic.patch +++ b/patches/server/0823-Fix-block-place-logic.patch @@ -22,7 +22,7 @@ index 7d76cdc59984b156628273c8357485eb10046007..7180996027f70aef7afe32fb2adfce64 itemstack.consume(1, entityhuman); return InteractionResult.sidedSuccess(world.isClientSide); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 210c3b6167dac93e550fe849e34b5aa404ab6dce..ed1c50d31fc077e4e009719fa622a44edefcdf2c 100644 +index cc92d2e8b77c75da1d8b850c3bc251e8ac221c24..0a3e56302470f239d4840e4e32d2a0ce4611ff65 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -552,17 +552,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 94% rename from patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 89ec0d95ff..42a45f0c62 100644 --- a/patches/server/0825-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0824-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 57510b85caf8914290ab0afb89cfb773158715b8..8777e634a69825302da7ed5031a344b80724783e 100644 +index 7c52ae813bfe47983ca94f4daf68f17e899949da..7cb7443aa60b9a552d8d9b67ddbf8b3e54af24e8 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -571,7 +571,11 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0826-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0825-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0826-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0825-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 5c55e8560a..90edb8680f 100644 --- a/patches/server/0827-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0826-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 32d2e6a4ce092fee061b65d3c839c2da83865908..7197cbf15ff9382cbc59c4a58e2f189c8cacbaaa 100644 +index f63d6b4d759fbbc5f5c5dd6b39179af93f49d10f..ed6210d2490f8584c21537eaa380d990fb73e03d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -355,7 +355,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0828-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0827-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0828-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0827-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0829-Fix-sniffer-removeExploredLocation.patch b/patches/server/0828-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0829-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0828-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0830-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0829-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0830-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0829-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0831-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0830-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0832-Add-event-for-player-editing-sign.patch b/patches/server/0831-Add-event-for-player-editing-sign.patch similarity index 98% rename from patches/server/0832-Add-event-for-player-editing-sign.patch rename to patches/server/0831-Add-event-for-player-editing-sign.patch index 231c6c0fc3..8c26ae27ea 100644 --- a/patches/server/0832-Add-event-for-player-editing-sign.patch +++ b/patches/server/0831-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8777e634a69825302da7ed5031a344b80724783e..a6ca820adf6e86f8358967d8d3b2e45cd1135b2c 100644 +index 7cb7443aa60b9a552d8d9b67ddbf8b3e54af24e8..1016541b8f01cdb45ae96fbb777c6c38598fcc35 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -550,7 +550,7 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0833-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0832-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0833-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0832-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0834-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0833-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0834-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0833-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0835-Add-option-to-disable-block-updates.patch b/patches/server/0834-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0835-Add-option-to-disable-block-updates.patch rename to patches/server/0834-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0836-Call-missing-BlockDispenseEvent.patch b/patches/server/0835-Call-missing-BlockDispenseEvent.patch similarity index 97% rename from patches/server/0836-Call-missing-BlockDispenseEvent.patch rename to patches/server/0835-Call-missing-BlockDispenseEvent.patch index ae85dc5678..b1e8b7b6fb 100644 --- a/patches/server/0836-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0835-Call-missing-BlockDispenseEvent.patch @@ -50,10 +50,10 @@ index 96db0b1041a4c0f054d4f3f2bdced960b119664e..78951f50188528718cdb3dbbaabe3f9f for (int k = 0; k < 5; ++k) { worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 23e24853e8540cecb2145471d548cad1b2539447..1f73ee4e284ca6b0bd6d387337a4c1084f3210e5 100644 +index bbc5143940b5f028051cb5897a5b510e35a5d354..fd648c176733dcaa03d2bbec4000381d58fc357e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2169,6 +2169,32 @@ public class CraftEventFactory { +@@ -2182,6 +2182,32 @@ public class CraftEventFactory { } // Paper end diff --git a/patches/server/0837-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0836-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/server/0837-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0836-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/server/0838-Optimize-player-lookups-for-beacons.patch b/patches/server/0837-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0838-Optimize-player-lookups-for-beacons.patch rename to patches/server/0837-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0839-Add-Sign-getInteractableSideFor.patch b/patches/server/0838-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0839-Add-Sign-getInteractableSideFor.patch rename to patches/server/0838-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0840-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0839-fix-item-meta-for-tadpole-buckets.patch similarity index 93% rename from patches/server/0840-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0839-fix-item-meta-for-tadpole-buckets.patch index 0fc39b3ea1..43d485644b 100644 --- a/patches/server/0840-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0839-fix-item-meta-for-tadpole-buckets.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java -index 4ae9930c2d74e5b1e3ad0c2ecf6556dc59cbf23c..a6c78854c10362864c2297de903ab9594cdb1eb6 100644 +index c9fbc01be0b0e7fd1cafb091d06496f4ba1e7c2c..a4c4ba0d02f9a072236ce86c1e98e2c60b059cb8 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java -@@ -286,7 +286,7 @@ public final class CraftItemMetas { +@@ -263,7 +263,7 @@ public final class CraftItemMetas { if (itemType == ItemType.SUSPICIOUS_STEW) { return CraftItemMetas.asType(CraftItemMetas.SUSPICIOUS_STEW_META_DATA); } @@ -30,7 +30,7 @@ index 27af7ca9d62bdb4a24be5af139c181d7bc271ba5..3ff0340c40e9dc9a6e690de15ccade7a Material.GLOW_ITEM_FRAME, Material.PAINTING diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index a1d8da4e0de3f84194f28d7d18fa795d53714590..d6018439015583fa0344c7c01b2e60a13de29795 100644 +index 0715f43f3f8235d28a12b9d49d78c765a946c53f..b6da1c2902139d4c7b01ac7b3407d4f6ac3990e2 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java @@ -208,6 +208,27 @@ public class ItemMetaTest extends AbstractTestingBase { diff --git a/patches/server/0841-Fix-BanList-API.patch b/patches/server/0840-Fix-BanList-API.patch similarity index 99% rename from patches/server/0841-Fix-BanList-API.patch rename to patches/server/0840-Fix-BanList-API.patch index 780f2ca5be..b3274235b6 100644 --- a/patches/server/0841-Fix-BanList-API.patch +++ b/patches/server/0840-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b3faca24fa8bdb22d1bf3e581d0396bc444a9f5f..28536a8bfab2c8bdde03852efa0e41cf19a37a9c 100644 +index e7235efba6b68917a646083c150655cb42a738e5..32e1830464395cb1f462777f3fb14e766c5e3217 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1747,23 +1747,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0842-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0841-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0842-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0841-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0843-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0842-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0843-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0842-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0844-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0843-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 89% rename from patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch index 83756a84b2..54f3923604 100644 --- a/patches/server/0845-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0844-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 1f73ee4e284ca6b0bd6d387337a4c1084f3210e5..35afad4e995f7e94d7a4541157b237c73d1b9635 100644 +index fd648c176733dcaa03d2bbec4000381d58fc357e..3f9a309d4d0685aec0fabb16a1bd51931048525b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -740,7 +740,8 @@ public class CraftEventFactory { +@@ -744,7 +744,8 @@ public class CraftEventFactory { // Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above) if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; diff --git a/patches/server/0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0846-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0845-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0847-Add-whitelist-events.patch b/patches/server/0846-Add-whitelist-events.patch similarity index 100% rename from patches/server/0847-Add-whitelist-events.patch rename to patches/server/0846-Add-whitelist-events.patch diff --git a/patches/server/0848-Implement-PlayerFailMoveEvent.patch b/patches/server/0847-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0848-Implement-PlayerFailMoveEvent.patch rename to patches/server/0847-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0849-Folia-scheduler-and-owned-region-API.patch b/patches/server/0848-Folia-scheduler-and-owned-region-API.patch similarity index 100% rename from patches/server/0849-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0848-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/server/0850-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0849-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0850-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0849-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0851-API-for-updating-recipes-on-clients.patch b/patches/server/0850-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/server/0851-API-for-updating-recipes-on-clients.patch rename to patches/server/0850-API-for-updating-recipes-on-clients.patch diff --git a/patches/server/0852-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0851-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0852-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0851-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0853-Only-capture-actual-tree-growth.patch b/patches/server/0852-Only-capture-actual-tree-growth.patch similarity index 96% rename from patches/server/0853-Only-capture-actual-tree-growth.patch rename to patches/server/0852-Only-capture-actual-tree-growth.patch index 74ca9ab6b6..c8bdd0bb61 100644 --- a/patches/server/0853-Only-capture-actual-tree-growth.patch +++ b/patches/server/0852-Only-capture-actual-tree-growth.patch @@ -17,7 +17,7 @@ index 78951f50188528718cdb3dbbaabe3f9f2760ffe3..7826e2a52da47914aca39fef958b8f39 } } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index a6ca820adf6e86f8358967d8d3b2e45cd1135b2c..780b2fada591fb1b504fbf4828c31ec0dd1c25db 100644 +index 1016541b8f01cdb45ae96fbb777c6c38598fcc35..11c507b399f97c4c0bbe220e8a3c1cdb851c8a0a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -466,6 +466,7 @@ public final class ItemStack implements DataComponentHolder { @@ -29,7 +29,7 @@ index a6ca820adf6e86f8358967d8d3b2e45cd1135b2c..780b2fada591fb1b504fbf4828c31ec0 entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ed1c50d31fc077e4e009719fa622a44edefcdf2c..8337f2f1d650fc7efb830a7034e3676dc0695ee4 100644 +index 0a3e56302470f239d4840e4e32d2a0ce4611ff65..3f87e60c0d43703a8450b5920dac59a970809397 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1378,4 +1378,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0854-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0853-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0854-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0853-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0855-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0854-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0855-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0854-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0856-Use-correct-seed-on-api-world-load.patch b/patches/server/0855-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/server/0856-Use-correct-seed-on-api-world-load.patch rename to patches/server/0855-Use-correct-seed-on-api-world-load.patch diff --git a/patches/server/0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0857-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0856-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0858-Cache-map-ids-on-item-frames.patch b/patches/server/0857-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/server/0858-Cache-map-ids-on-item-frames.patch rename to patches/server/0857-Cache-map-ids-on-item-frames.patch diff --git a/patches/server/0859-Fix-custom-statistic-criteria-creation.patch b/patches/server/0858-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0859-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0858-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0860-Bandaid-fix-for-Effect.patch b/patches/server/0859-Bandaid-fix-for-Effect.patch similarity index 98% rename from patches/server/0860-Bandaid-fix-for-Effect.patch rename to patches/server/0859-Bandaid-fix-for-Effect.patch index 37c8fc587f..9dd7805368 100644 --- a/patches/server/0860-Bandaid-fix-for-Effect.patch +++ b/patches/server/0859-Bandaid-fix-for-Effect.patch @@ -81,7 +81,7 @@ index 0c5a583f2ced1ae5e1e92a045ef2ef1cd5b35496..5c83ca573ccaa75a1d4e8129c96a24e3 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 28536a8bfab2c8bdde03852efa0e41cf19a37a9c..cb41fad4b94c4da64a699dc1b0848fc08ff2c456 100644 +index 32e1830464395cb1f462777f3fb14e766c5e3217..9cf67deacf9d01e3835705260a358513987fc3ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -917,7 +917,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0861-SculkCatalyst-bloom-API.patch b/patches/server/0860-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0861-SculkCatalyst-bloom-API.patch rename to patches/server/0860-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0862-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0861-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0862-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0861-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0863-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0862-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0863-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0862-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0864-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0863-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0865-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0864-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0865-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0864-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0866-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0865-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0866-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0865-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0867-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0866-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/server/0867-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0866-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/server/0868-Add-Listing-API-for-Player.patch b/patches/server/0867-Add-Listing-API-for-Player.patch similarity index 98% rename from patches/server/0868-Add-Listing-API-for-Player.patch rename to patches/server/0867-Add-Listing-API-for-Player.patch index bb270bf016..f33015a234 100644 --- a/patches/server/0868-Add-Listing-API-for-Player.patch +++ b/patches/server/0867-Add-Listing-API-for-Player.patch @@ -82,7 +82,7 @@ index 6247a21c9c391abf1f6db3482c659593e4f29355..9ccca41bf23efadba5329cc584bbcdca static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index be6bf7afa3cea4ed48f363e89ccd079062edc8d9..9b1a6d8351fb473eec75a2fd08fb892b770e3586 100644 +index 1b83d8f723410c405746faa59783e6ba7a66fd56..eec536d493575f593dd71c63944b047566f3822d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -359,14 +359,22 @@ public abstract class PlayerList { @@ -119,7 +119,7 @@ index be6bf7afa3cea4ed48f363e89ccd079062edc8d9..9b1a6d8351fb473eec75a2fd08fb892b // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cb41fad4b94c4da64a699dc1b0848fc08ff2c456..c80cbc9dece765091b2ad9281bdc061df8b491dc 100644 +index 9cf67deacf9d01e3835705260a358513987fc3ba..78dcc656807cafa52707ef4139fe6176f6f16021 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -201,6 +201,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0869-Configurable-Region-Compression-Format.patch b/patches/server/0868-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0869-Configurable-Region-Compression-Format.patch rename to patches/server/0868-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch similarity index 94% rename from patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch index f2de8e9aa8..3a44f17ce6 100644 --- a/patches/server/0870-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0869-Add-BlockFace-to-BlockDamageEvent.patch @@ -18,10 +18,10 @@ index c680f081ba548f84f07a968a46811090c53e57e3..d839f8df658c894f144ba4637d290ffb if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 35afad4e995f7e94d7a4541157b237c73d1b9635..9d7bcd7a99cfda0776d267bada384304558fa6fe 100644 +index 3f9a309d4d0685aec0fabb16a1bd51931048525b..3dae4bc26ac6de7ee07eeca7763e2078cb2b7101 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -655,13 +655,13 @@ public class CraftEventFactory { +@@ -659,13 +659,13 @@ public class CraftEventFactory { /** * BlockDamageEvent */ diff --git a/patches/server/0871-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0870-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0871-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0870-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0872-Expand-Pose-API.patch b/patches/server/0871-Expand-Pose-API.patch similarity index 100% rename from patches/server/0872-Expand-Pose-API.patch rename to patches/server/0871-Expand-Pose-API.patch diff --git a/patches/server/0873-More-DragonBattle-API.patch b/patches/server/0872-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0873-More-DragonBattle-API.patch rename to patches/server/0872-More-DragonBattle-API.patch diff --git a/patches/server/0874-Add-PlayerPickItemEvent.patch b/patches/server/0873-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0874-Add-PlayerPickItemEvent.patch rename to patches/server/0873-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0875-Allow-trident-custom-damage.patch b/patches/server/0874-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0875-Allow-trident-custom-damage.patch rename to patches/server/0874-Allow-trident-custom-damage.patch diff --git a/patches/server/0876-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0875-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0876-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0875-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0877-Optimize-nearest-structure-border-iteration.patch b/patches/server/0876-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0877-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0876-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0878-Implement-OfflinePlayer-isConnected.patch b/patches/server/0877-Implement-OfflinePlayer-isConnected.patch similarity index 94% rename from patches/server/0878-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0877-Implement-OfflinePlayer-isConnected.patch index 2d00249134..96316a2a2a 100644 --- a/patches/server/0878-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0877-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 4d654c4f0b6210a9841427789ba70ce5d1d308be..9d93130f23addb18b97d7f5ec013faef public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c80cbc9dece765091b2ad9281bdc061df8b491dc..a996f721fa0794a4551ff1e99ea1b66a723bfaff 100644 +index 78dcc656807cafa52707ef4139fe6176f6f16021..a2dd33a9bb61427005e1edb1dcb1dfa23030d0ee 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -256,6 +256,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0879-Fix-inventory-desync.patch b/patches/server/0878-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0879-Fix-inventory-desync.patch rename to patches/server/0878-Fix-inventory-desync.patch diff --git a/patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 97% rename from patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch index 629f589fc2..e9c3aa9d42 100644 --- a/patches/server/0880-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch @@ -79,10 +79,10 @@ index 12ab8f7cde88cd6ce3ad474fe2843d5d30c3c0d7..c1bad887d1340ebc7c63fda3dceff929 if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9d7bcd7a99cfda0776d267bada384304558fa6fe..6ca59ba6a713e452d146182d143b99b07696af8b 100644 +index 3dae4bc26ac6de7ee07eeca7763e2078cb2b7101..a8365c67e28d530734b8527ce67d83decee41beb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1397,10 +1397,21 @@ public class CraftEventFactory { +@@ -1401,10 +1401,21 @@ public class CraftEventFactory { } public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) { @@ -105,7 +105,7 @@ index 9d7bcd7a99cfda0776d267bada384304558fa6fe..6ca59ba6a713e452d146182d143b99b0 if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } -@@ -1415,10 +1426,10 @@ public class CraftEventFactory { +@@ -1419,10 +1430,10 @@ public class CraftEventFactory { if (event.isCancelled()) { container.transferTo(player.containerMenu, craftPlayer); diff --git a/patches/server/0881-Configure-sniffer-egg-hatch-time.patch b/patches/server/0880-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0881-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0880-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0882-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0881-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0882-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0881-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0883-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0882-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0883-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0882-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0884-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0884-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0885-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0884-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0885-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0884-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0886-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0885-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0886-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0885-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0887-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0886-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0887-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0886-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0888-Fix-spigot-s-Forced-Stats.patch b/patches/server/0887-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0888-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0887-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch similarity index 97% rename from patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch index ae956d4693..abdf8c8bea 100644 --- a/patches/server/0889-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0888-Add-missing-InventoryHolders-to-inventories.patch @@ -77,7 +77,7 @@ index 428e454116804c27496cfbf796edd44780890d33..4c7e91977fa590abfe7eb3704d8008ed + // Paper end - Add missing InventoryHolders } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 1b6fd16d8c6195c6f7b65c7621d5f9bd15c46a75..7f513e8c4f81524aee9326ddbbc6bec0b3fa1b27 100644 +index a735aeeb59f79154ce797c6e2f5600305f46d217..b93c118d957f0a2f40e2f31fd6400bd69438cf72 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -42,7 +42,7 @@ public class BeaconMenu extends AbstractContainerMenu { @@ -148,10 +148,10 @@ index 85e336637db8643fc5aca1dba724c9b341cbf46f..12b466ccb7c36021cf807c4f3fd2bcb0 @Override public Optional evaluate(BiFunction getter) { diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -index 6f88ce0076460215f5c1a965aa2bd7050071b611..c1b9c3ad2cccfa520e9d73b786142624ac5f3380 100644 +index 2fa009b33bccd6aeee30f23f9207ab039740d95d..fff1c39920e7d7051dfe3dd39c77865d3bdf113e 100644 --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -@@ -66,7 +66,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { +@@ -63,7 +63,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { public EnchantmentMenu(int syncId, Inventory playerInventory, ContainerLevelAccess context) { super(MenuType.ENCHANTMENT, syncId); @@ -206,7 +206,7 @@ index be840717e180b6b5abd14db6cc9263349737f9a3..7de5e47f9a54263734eeef855a2dc07e public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index 72ad78659a373213ed1f37498754adaf18f1f68b..4f3f6ea43030853bd9df067358a1f4d16c40e6d4 100644 +index f76ef029132c6a08d4e70585bc440eccdc626b16..7d7b4e53682107a1a75a7aa205be1e6bfdc8c551 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -73,7 +73,7 @@ public class LoomMenu extends AbstractContainerMenu { @@ -261,7 +261,7 @@ index d4592218d761eb38402e3d95c642e80a708cb333..4c4266a85c38e41e6c7e6144a68624f4 public ResultContainer() { this.itemStacks = NonNullList.withSize(1, ItemStack.EMPTY); diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index 977ccef3c9fa7685209f3eca894a3b69501ebcc1..5ddae1afab0a68465ea60395c84b0997ee994f88 100644 +index 37e75c02c374314372630f4bda0b92519809f2a4..5a0015f761f6a25d7bb7b9cfe7a9b4771a6a37ec 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -69,7 +69,7 @@ public class StonecutterMenu extends AbstractContainerMenu { diff --git a/patches/server/0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0890-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0889-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0891-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0890-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0891-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0890-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0892-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0891-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0893-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0892-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0894-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0893-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0894-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0893-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0895-Fix-missing-map-initialize-event-call.patch b/patches/server/0894-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/0895-Fix-missing-map-initialize-event-call.patch rename to patches/server/0894-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/0896-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0895-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0896-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0895-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch similarity index 96% rename from patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch index d8143eab89..bee9e36bfe 100644 --- a/patches/server/0897-Fix-UnsafeValues-loadAdvancement.patch +++ b/patches/server/0896-Fix-UnsafeValues-loadAdvancement.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix UnsafeValues#loadAdvancement diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 48eeac0795c479ebb2ff64005b1405421131fcd7..1d98c0e9f138f122aa73e2f1dd6d485d7865720d 100644 +index 398068e8ffa77ac7199baf7aaab5b60c9dc639f5..9449fe944c7a06a8fdeaf0a0dfc7280950fdb6db 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -302,9 +302,30 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0898-Add-player-idle-duration-API.patch b/patches/server/0897-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/0898-Add-player-idle-duration-API.patch rename to patches/server/0897-Add-player-idle-duration-API.patch index 9e5130fc3a..0c646e1e0a 100644 --- a/patches/server/0898-Add-player-idle-duration-API.patch +++ b/patches/server/0897-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a996f721fa0794a4551ff1e99ea1b66a723bfaff..e443e260afbda55cc9888efd60d9b5f56dcbf55b 100644 +index a2dd33a9bb61427005e1edb1dcb1dfa23030d0ee..f474b6f880b8d03d6b6a29203509ac0fdd9faaf1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3419,6 +3419,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0899-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0898-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/0899-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0898-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/0900-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0899-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0900-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0899-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index ec4d42387a..fdde374c47 100644 --- a/patches/server/0901-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/0900-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e443e260afbda55cc9888efd60d9b5f56dcbf55b..f337c32fa4521d6ddd1c4d6102404db389f23b71 100644 +index f474b6f880b8d03d6b6a29203509ac0fdd9faaf1..51b524d3c7cd5e0f59056c1fd8f71171732945b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1127,7 +1127,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0902-Optimize-VarInts.patch b/patches/server/0901-Optimize-VarInts.patch similarity index 100% rename from patches/server/0902-Optimize-VarInts.patch rename to patches/server/0901-Optimize-VarInts.patch diff --git a/patches/server/0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0903-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0902-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0903-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0903-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0905-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0904-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/0905-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0904-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/0906-Expand-LingeringPotion-API.patch b/patches/server/0905-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0906-Expand-LingeringPotion-API.patch rename to patches/server/0905-Expand-LingeringPotion-API.patch diff --git a/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0906-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0908-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0907-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0908-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0907-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0909-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0908-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0909-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0908-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0910-Add-UUID-attribute-modifier-API.patch b/patches/server/0909-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0910-Add-UUID-attribute-modifier-API.patch rename to patches/server/0909-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 93% rename from patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch index 79cebb8989..d567759368 100644 --- a/patches/server/0911-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/0910-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a8b9b50991361160880b9fc0a94cad30c319e62e..b8eb9166e44da8745a056bf68f2f9316ce25d7a7 100644 +index 580427bf1521ac9fef37f7464e12a7bfe4fbfb10..9ca1fee03bfa557f1df7388c6043c9ec6d02a79a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -258,6 +258,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0912-Lazily-create-LootContext-for-criterions.patch b/patches/server/0911-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0912-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0911-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0913-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0912-Don-t-fire-sync-events-during-worldgen.patch similarity index 100% rename from patches/server/0913-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0912-Don-t-fire-sync-events-during-worldgen.patch diff --git a/patches/server/0914-Add-Structure-check-API.patch b/patches/server/0913-Add-Structure-check-API.patch similarity index 100% rename from patches/server/0914-Add-Structure-check-API.patch rename to patches/server/0913-Add-Structure-check-API.patch diff --git a/patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 89% rename from patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch index ad38c13cd7..32e393d2a8 100644 --- a/patches/server/0915-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch +++ b/patches/server/0914-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 0b87cfbdf039ee5bc017d2b1783c7c4853047952..5a455354561389194b0e61c03f4b2e9285b17a3b 100644 +index 5c76ba7f9ceb285d27e18369172612205be96224..11f55ef2645d50bbc24bd245ffe3ac98180315d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -1405,7 +1405,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1412,7 +1412,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null"); this.checkAttributeList(); for (Map.Entry entry : this.attributeModifiers.entries()) { diff --git a/patches/server/0916-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0915-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/0916-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0915-Restore-vanilla-entity-drops-behavior.patch index 41f35bee2a..6e06cd8067 100644 --- a/patches/server/0916-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0915-Restore-vanilla-entity-drops-behavior.patch @@ -152,10 +152,10 @@ index 5bcb9a53ebebeef4bd6ec2458df4b63002ebd804..2f398750bfee5758ad8b1367b6fc1436 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd6678b49c 100644 +index a8365c67e28d530734b8527ce67d83decee41beb..5ba2fb40e4db033a069b7368b481ac81be109e94 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -969,18 +969,24 @@ public class CraftEventFactory { +@@ -973,18 +973,24 @@ public class CraftEventFactory { } public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, DamageSource damageSource) { @@ -184,7 +184,7 @@ index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd populateFields(victim, event); // Paper - make cancellable CraftWorld world = (CraftWorld) entity.getWorld(); Bukkit.getServer().getPluginManager().callEvent(event); -@@ -994,20 +1000,24 @@ public class CraftEventFactory { +@@ -998,20 +1004,24 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); lootCheck.run(); // Paper - advancement triggers before destroying items @@ -213,7 +213,7 @@ index 6ca59ba6a713e452d146182d143b99b07696af8b..be1fa84dfdec0e31f9e2ca47ad3719dd event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel populateFields(victim, event); // Paper - make cancellable -@@ -1025,16 +1035,14 @@ public class CraftEventFactory { +@@ -1029,16 +1039,14 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); victim.newExp = event.getNewExp(); diff --git a/patches/server/0917-Dont-resend-blocks-on-interactions.patch b/patches/server/0916-Dont-resend-blocks-on-interactions.patch similarity index 99% rename from patches/server/0917-Dont-resend-blocks-on-interactions.patch rename to patches/server/0916-Dont-resend-blocks-on-interactions.patch index 3e498be31c..822d354138 100644 --- a/patches/server/0917-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/0916-Dont-resend-blocks-on-interactions.patch @@ -149,7 +149,7 @@ index 6caed156ed0cfe0017d578f58cb963ee68272d78..321188173918d0d60858a258400dfd68 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 780b2fada591fb1b504fbf4828c31ec0dd1c25db..fa4bdf8bdbd6eaeb854e62a2acb45d7998e4aa2b 100644 +index 11c507b399f97c4c0bbe220e8a3c1cdb851c8a0a..ebe470ca361ec5747a843b60d82f567d41d7c9fa 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -500,10 +500,12 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0918-add-more-scoreboard-API.patch b/patches/server/0917-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0918-add-more-scoreboard-API.patch rename to patches/server/0917-add-more-scoreboard-API.patch diff --git a/patches/server/0919-Improve-Registry.patch b/patches/server/0918-Improve-Registry.patch similarity index 94% rename from patches/server/0919-Improve-Registry.patch rename to patches/server/0918-Improve-Registry.patch index d912757a1f..bebb963725 100644 --- a/patches/server/0919-Improve-Registry.patch +++ b/patches/server/0918-Improve-Registry.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve Registry diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c60b85d2a 100644 +index 154733684a53ff84ca8c2a994b96b68733e9fba5..1da61e0392ec1e15c0ab9d7d71b2b2b682d10130 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -@@ -151,6 +151,7 @@ public class CraftRegistry implements Registry { +@@ -153,6 +153,7 @@ public class CraftRegistry implements Registry { private final Class bukkitClass; // Paper - relax preload class private final Map cache = new HashMap<>(); @@ -16,7 +16,7 @@ index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c private final net.minecraft.core.Registry minecraftRegistry; private final BiFunction minecraftToBukkit; private final BiFunction serializationUpdater; // Paper - rename to make it *clear* what it is *only* for -@@ -199,6 +200,7 @@ public class CraftRegistry implements Registry { +@@ -201,6 +202,7 @@ public class CraftRegistry implements Registry { } this.cache.put(namespacedKey, bukkit); @@ -24,7 +24,7 @@ index 002449e66f83a419afa8357d2e7192670eaf869e..b6c7522ff8522cdadf3b291a9c2ac87c return bukkit; } -@@ -221,4 +223,11 @@ public class CraftRegistry implements Registry { +@@ -223,4 +225,11 @@ public class CraftRegistry implements Registry { return this.minecraftToBukkit.apply(namespacedKey, minecraft); } diff --git a/patches/server/0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/0920-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0919-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/0921-Add-experience-points-API.patch b/patches/server/0920-Add-experience-points-API.patch similarity index 97% rename from patches/server/0921-Add-experience-points-API.patch rename to patches/server/0920-Add-experience-points-API.patch index f29e610a9b..92be0f2b48 100644 --- a/patches/server/0921-Add-experience-points-API.patch +++ b/patches/server/0920-Add-experience-points-API.patch @@ -18,7 +18,7 @@ index 950ce40d268d89ff3c503116081db6c9ccd65329..454b29d8c9e42e328933aa578f49d28f // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f337c32fa4521d6ddd1c4d6102404db389f23b71..4d3838c5184296451089697fd3f7438a7f1be762 100644 +index 51b524d3c7cd5e0f59056c1fd8f71171732945b8..1490d15f1ffa83653b20a4bb47584c4c554a3384 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1921,6 +1921,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0922-Add-drops-to-shear-events.patch b/patches/server/0921-Add-drops-to-shear-events.patch similarity index 99% rename from patches/server/0922-Add-drops-to-shear-events.patch rename to patches/server/0921-Add-drops-to-shear-events.patch index 6741c44832..d434c31a11 100644 --- a/patches/server/0922-Add-drops-to-shear-events.patch +++ b/patches/server/0921-Add-drops-to-shear-events.patch @@ -317,10 +317,10 @@ index dc6230458e09f7555eee7f6a567ff60ad454666b..9d50b9ac8084f3db1844cc7ad1ce9153 public boolean readyForShearing() { return !this.isSheared() && this.isAlive(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index be1fa84dfdec0e31f9e2ca47ad3719dd6678b49c..d7bf00745a9016d0fe0c1d39ffaaac44276251d4 100644 +index 5ba2fb40e4db033a069b7368b481ac81be109e94..5af27ba31f293ba6bcac37047b760db1c3bd8c5f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1676,20 +1676,20 @@ public class CraftEventFactory { +@@ -1689,20 +1689,20 @@ public class CraftEventFactory { player.level().getCraftServer().getPluginManager().callEvent(event); } diff --git a/patches/server/0923-Add-PlayerShieldDisableEvent.patch b/patches/server/0922-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0923-Add-PlayerShieldDisableEvent.patch rename to patches/server/0922-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0924-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0923-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/0924-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0923-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch similarity index 97% rename from patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch index 21b63430dd..c5ffca5d89 100644 --- a/patches/server/0925-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0924-Properly-handle-experience-dropping-on-block-break.patch @@ -68,10 +68,10 @@ index c083dc8b2a69c3747b250d13f1a28ad22b5e6119..bf52c36f31992a01a7403d8c85151327 } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 9d6cc0b8dbc451dfff1ddd8e7be32d11434cdb69..87289d8ab94705999c67457a28538e7a5576acc3 100644 +index a8bec3c405732e5863cf717b1fe948d00837bed2..240c250a93289776686d09d7eae17c07d7278da5 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -1118,6 +1118,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1119,6 +1119,7 @@ public abstract class BlockBehaviour implements FeatureElement { public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) { this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience); diff --git a/patches/server/0926-Fixup-NamespacedKey-handling.patch b/patches/server/0925-Fixup-NamespacedKey-handling.patch similarity index 87% rename from patches/server/0926-Fixup-NamespacedKey-handling.patch rename to patches/server/0925-Fixup-NamespacedKey-handling.patch index fb00b008ce..92a61d5a1e 100644 --- a/patches/server/0926-Fixup-NamespacedKey-handling.patch +++ b/patches/server/0925-Fixup-NamespacedKey-handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fixup NamespacedKey handling diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index 4f3f6ea43030853bd9df067358a1f4d16c40e6d4..531336c44c46555fef8c001fe8ca00c93624ad42 100644 +index 7d7b4e53682107a1a75a7aa205be1e6bfdc8c551..0e954dfe82ed263cbe63dbf49ff49e83f38228b8 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -171,12 +171,28 @@ public class LoomMenu extends AbstractContainerMenu { @@ -52,10 +52,10 @@ index e34deaf398dc6722c3128bdd6b9bc16da2d33bf7..f028daa4f23a1f1868c9922991259739 public static NamespacedKey minecraftToBukkitKey(ResourceKey minecraft) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -index b6c7522ff8522cdadf3b291a9c2ac87c60b85d2a..fc9aec589414bf8d3f672183928235b5b51d1a02 100644 +index 1da61e0392ec1e15c0ab9d7d71b2b2b682d10130..c2824cc07b761958a0df4b110bdfc53bd853b9e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -@@ -118,6 +118,16 @@ public class CraftRegistry implements Registry { +@@ -120,6 +120,16 @@ public class CraftRegistry implements Registry { + ", this can happen if a plugin creates its own registry entry with out properly registering it."); } @@ -143,6 +143,27 @@ index 478059eb3ad76b41e6a20e9b489a2a4fb19e7c7c..3599ef1675b6091e9b67fb5241886460 }); } +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +index c8eec04685456d89cb41466cddcc3975d0ceeb29..bcd6cc29e4e621805cbd923d747f652ced240c6d 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +@@ -17,6 +17,7 @@ import org.bukkit.block.BlockState; + import org.bukkit.block.banner.Pattern; + import org.bukkit.block.banner.PatternType; + import org.bukkit.configuration.serialization.DelegateDeserialization; ++import org.bukkit.craftbukkit.CraftRegistry; + import org.bukkit.craftbukkit.block.CraftBlockStates; + import org.bukkit.craftbukkit.block.banner.CraftPatternType; + import org.bukkit.inventory.meta.BlockStateMeta; +@@ -53,7 +54,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + for (int i = 0; i < Math.min(patterns.size(), 20); i++) { + BannerPatternLayers.Layer p = patterns.get(i); + DyeColor color = DyeColor.getByWoolData((byte) p.color().getId()); +- PatternType pattern = CraftPatternType.minecraftHolderToBukkit(p.pattern()); ++ PatternType pattern = CraftRegistry.unwrapAndConvertHolder(io.papermc.paper.registry.RegistryKey.BANNER_PATTERN, p.pattern()).orElse(null); // Paper - fix upstream not being correct + + if (color != null && pattern != null) { + this.addPattern(new Pattern(color, pattern)); diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java index 82a50b06c08b632f77d73745e1fa9bd22dfd950a..f1d8ed4a2b8959873b02d57f6a40323a841f3d7f 100644 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java diff --git a/patches/server/0927-Expose-LootTable-of-DecoratedPot.patch b/patches/server/0926-Expose-LootTable-of-DecoratedPot.patch similarity index 100% rename from patches/server/0927-Expose-LootTable-of-DecoratedPot.patch rename to patches/server/0926-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/server/0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/server/0928-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0927-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 99% rename from patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch index a58beffec5..42c7c99313 100644 --- a/patches/server/0929-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch +++ b/patches/server/0928-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch @@ -107,7 +107,7 @@ index 4c7e91977fa590abfe7eb3704d8008ed6d4e3ab3..32910f677b0522ac8ec513fa0d00b714 break; } diff --git a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java -index ecefd4075c097e2118ec23e87baf36465c40f85f..2992e86f5f83431e230162380b33721df785ba91 100644 +index e45ab844afdf1a65f23eeff4c4d6cd9e3a8a28e2..5de2030452b96a4df7ce0be82f07e002db595dee 100644 --- a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java +++ b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java @@ -135,12 +135,12 @@ public class MerchantMenu extends AbstractContainerMenu { diff --git a/patches/server/0930-Add-ShulkerDuplicateEvent.patch b/patches/server/0929-Add-ShulkerDuplicateEvent.patch similarity index 100% rename from patches/server/0930-Add-ShulkerDuplicateEvent.patch rename to patches/server/0929-Add-ShulkerDuplicateEvent.patch diff --git a/patches/server/0931-Add-api-for-spawn-egg-texture-colors.patch b/patches/server/0930-Add-api-for-spawn-egg-texture-colors.patch similarity index 100% rename from patches/server/0931-Add-api-for-spawn-egg-texture-colors.patch rename to patches/server/0930-Add-api-for-spawn-egg-texture-colors.patch diff --git a/patches/server/0932-Add-Lifecycle-Event-system.patch b/patches/server/0931-Add-Lifecycle-Event-system.patch similarity index 100% rename from patches/server/0932-Add-Lifecycle-Event-system.patch rename to patches/server/0931-Add-Lifecycle-Event-system.patch diff --git a/patches/server/0933-ItemStack-Tooltip-API.patch b/patches/server/0932-ItemStack-Tooltip-API.patch similarity index 100% rename from patches/server/0933-ItemStack-Tooltip-API.patch rename to patches/server/0932-ItemStack-Tooltip-API.patch diff --git a/patches/server/0934-Add-getChunkSnapshot-includeLightData-parameter.patch b/patches/server/0933-Add-getChunkSnapshot-includeLightData-parameter.patch similarity index 100% rename from patches/server/0934-Add-getChunkSnapshot-includeLightData-parameter.patch rename to patches/server/0933-Add-getChunkSnapshot-includeLightData-parameter.patch diff --git a/patches/server/0935-Add-FluidState-API.patch b/patches/server/0934-Add-FluidState-API.patch similarity index 100% rename from patches/server/0935-Add-FluidState-API.patch rename to patches/server/0934-Add-FluidState-API.patch diff --git a/patches/server/0936-add-number-format-api.patch b/patches/server/0935-add-number-format-api.patch similarity index 100% rename from patches/server/0936-add-number-format-api.patch rename to patches/server/0935-add-number-format-api.patch diff --git a/patches/server/0937-improve-BanList-types.patch b/patches/server/0936-improve-BanList-types.patch similarity index 100% rename from patches/server/0937-improve-BanList-types.patch rename to patches/server/0936-improve-BanList-types.patch diff --git a/patches/server/0938-Expanded-Hopper-API.patch b/patches/server/0937-Expanded-Hopper-API.patch similarity index 100% rename from patches/server/0938-Expanded-Hopper-API.patch rename to patches/server/0937-Expanded-Hopper-API.patch diff --git a/patches/server/0939-Add-BlockBreakProgressUpdateEvent.patch b/patches/server/0938-Add-BlockBreakProgressUpdateEvent.patch similarity index 100% rename from patches/server/0939-Add-BlockBreakProgressUpdateEvent.patch rename to patches/server/0938-Add-BlockBreakProgressUpdateEvent.patch diff --git a/patches/server/0940-Deprecate-ItemStack-setType.patch b/patches/server/0939-Deprecate-ItemStack-setType.patch similarity index 100% rename from patches/server/0940-Deprecate-ItemStack-setType.patch rename to patches/server/0939-Deprecate-ItemStack-setType.patch diff --git a/patches/server/0941-Add-CartographyItemEvent.patch b/patches/server/0940-Add-CartographyItemEvent.patch similarity index 100% rename from patches/server/0941-Add-CartographyItemEvent.patch rename to patches/server/0940-Add-CartographyItemEvent.patch diff --git a/patches/server/0942-More-Raid-API.patch b/patches/server/0941-More-Raid-API.patch similarity index 100% rename from patches/server/0942-More-Raid-API.patch rename to patches/server/0941-More-Raid-API.patch diff --git a/patches/server/0943-Add-onboarding-message-for-initial-server-start.patch b/patches/server/0942-Add-onboarding-message-for-initial-server-start.patch similarity index 100% rename from patches/server/0943-Add-onboarding-message-for-initial-server-start.patch rename to patches/server/0942-Add-onboarding-message-for-initial-server-start.patch diff --git a/patches/server/0944-Configurable-max-block-fluid-ticks.patch b/patches/server/0943-Configurable-max-block-fluid-ticks.patch similarity index 100% rename from patches/server/0944-Configurable-max-block-fluid-ticks.patch rename to patches/server/0943-Configurable-max-block-fluid-ticks.patch diff --git a/patches/server/0945-Fix-bees-aging-inside-hives.patch b/patches/server/0944-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0945-Fix-bees-aging-inside-hives.patch rename to patches/server/0944-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0946-Disable-memory-reserve-allocating.patch b/patches/server/0945-Disable-memory-reserve-allocating.patch similarity index 100% rename from patches/server/0946-Disable-memory-reserve-allocating.patch rename to patches/server/0945-Disable-memory-reserve-allocating.patch diff --git a/patches/server/0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch b/patches/server/0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch similarity index 100% rename from patches/server/0947-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch rename to patches/server/0946-Fire-EntityDamageByEntityEvent-for-unowned-wither-sk.patch diff --git a/patches/server/0948-Fix-DamageSource-API.patch b/patches/server/0947-Fix-DamageSource-API.patch similarity index 99% rename from patches/server/0948-Fix-DamageSource-API.patch rename to patches/server/0947-Fix-DamageSource-API.patch index d9d164622a..13022d2d45 100644 --- a/patches/server/0948-Fix-DamageSource-API.patch +++ b/patches/server/0947-Fix-DamageSource-API.patch @@ -220,10 +220,10 @@ index 4c6e15535fa40aad8cf1920f392589404f9ba79c..35eb95ef6fb6a0f7ea63351e90741c48 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d7bf00745a9016d0fe0c1d39ffaaac44276251d4..67aa8ebd1c4915fc7f18e3cf263eedf9b671a632 100644 +index 5af27ba31f293ba6bcac37047b760db1c3bd8c5f..c21acdf5b445a7f24e0d7a6dfd07a097cb6a95b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1088,7 +1088,7 @@ public class CraftEventFactory { +@@ -1092,7 +1092,7 @@ public class CraftEventFactory { private static EntityDamageEvent handleEntityDamageEvent(Entity entity, DamageSource source, Map modifiers, Map> modifierFunctions, boolean cancelled) { CraftDamageSource bukkitDamageSource = new CraftDamageSource(source); diff --git a/patches/server/0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch similarity index 100% rename from patches/server/0949-Fix-creation-of-invalid-block-entity-during-world-ge.patch rename to patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch diff --git a/patches/server/0950-Fix-possible-StackOverflowError-for-some-dispenses.patch b/patches/server/0949-Fix-possible-StackOverflowError-for-some-dispenses.patch similarity index 100% rename from patches/server/0950-Fix-possible-StackOverflowError-for-some-dispenses.patch rename to patches/server/0949-Fix-possible-StackOverflowError-for-some-dispenses.patch diff --git a/patches/server/0951-Improve-tag-parser-handling.patch b/patches/server/0950-Improve-tag-parser-handling.patch similarity index 100% rename from patches/server/0951-Improve-tag-parser-handling.patch rename to patches/server/0950-Improve-tag-parser-handling.patch diff --git a/patches/server/0952-Item-Mutation-Fixes.patch b/patches/server/0951-Item-Mutation-Fixes.patch similarity index 90% rename from patches/server/0952-Item-Mutation-Fixes.patch rename to patches/server/0951-Item-Mutation-Fixes.patch index 0e20a90a87..bad3be61f9 100644 --- a/patches/server/0952-Item-Mutation-Fixes.patch +++ b/patches/server/0951-Item-Mutation-Fixes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item Mutation Fixes diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -index c1b9c3ad2cccfa520e9d73b786142624ac5f3380..07223046761cb2186d75de8edc03a91d2e8e8b2f 100644 +index fff1c39920e7d7051dfe3dd39c77865d3bdf113e..1ef014b29645ed09ccffb898f1819428c3dc6259 100644 --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -@@ -235,7 +235,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { +@@ -232,7 +232,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { return false; } else if (this.costs[id] > 0 && !itemstack.isEmpty() && (player.experienceLevel >= j && player.experienceLevel >= this.costs[id] || player.getAbilities().instabuild)) { this.access.execute((world, blockposition) -> { @@ -17,7 +17,7 @@ index c1b9c3ad2cccfa520e9d73b786142624ac5f3380..07223046761cb2186d75de8edc03a91d List list = this.getEnchantmentList(world.registryAccess(), itemstack, id, this.costs[id]); // CraftBukkit start -@@ -258,10 +258,16 @@ public class EnchantmentMenu extends AbstractContainerMenu { +@@ -255,10 +255,16 @@ public class EnchantmentMenu extends AbstractContainerMenu { return; } // CraftBukkit end diff --git a/patches/server/0953-Per-world-ticks-per-spawn-settings.patch b/patches/server/0952-Per-world-ticks-per-spawn-settings.patch similarity index 94% rename from patches/server/0953-Per-world-ticks-per-spawn-settings.patch rename to patches/server/0952-Per-world-ticks-per-spawn-settings.patch index ea163724cf..0d7c9ea5b4 100644 --- a/patches/server/0953-Per-world-ticks-per-spawn-settings.patch +++ b/patches/server/0952-Per-world-ticks-per-spawn-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Per world ticks per spawn settings diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2f1acea765d1b6726863cdc89707ca6148548493..81bdb6e64e04641f741c2c3350236685b097ec7a 100644 +index 471fd54edf6aa962d997878ee638974f7f594fa8..b7bf7b3b91046c81467aeb483087e12b6d9191bf 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -186,6 +186,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0954-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/0953-Properly-track-the-changed-item-from-dispense-events.patch similarity index 100% rename from patches/server/0954-Properly-track-the-changed-item-from-dispense-events.patch rename to patches/server/0953-Properly-track-the-changed-item-from-dispense-events.patch diff --git a/patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 97% rename from patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 3fdb9f8fe4..419e036508 100644 --- a/patches/server/0955-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/0954-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -107,10 +107,10 @@ index e6bfbe2588e0c2a1be14e38d654e889d392ad4db..e0c62227b279a5fe0f3868fbf9ce8c78 world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3 100644 +index 240c250a93289776686d09d7eae17c07d7278da5..f2036917c5ba9f536087d7ee559704055469730e 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -173,7 +173,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -174,7 +174,7 @@ public abstract class BlockBehaviour implements FeatureElement { } protected void onExplosionHit(BlockState state, Level world, BlockPos pos, Explosion explosion, BiConsumer stackMerger) { @@ -119,7 +119,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b Block block = state.getBlock(); boolean flag = explosion.getIndirectSourceEntity() instanceof Player; -@@ -253,7 +253,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -254,7 +254,7 @@ public abstract class BlockBehaviour implements FeatureElement { } protected boolean canBeReplaced(BlockState state, BlockPlaceContext context) { @@ -128,7 +128,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b } protected boolean canBeReplaced(BlockState state, Fluid fluid) { -@@ -882,6 +882,12 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -883,6 +883,12 @@ public abstract class BlockBehaviour implements FeatureElement { return this.legacySolid; } @@ -141,7 +141,7 @@ index 87289d8ab94705999c67457a28538e7a5576acc3..fe7dc02ea55c2bcd39d12bfd4d315f0b public boolean isValidSpawn(BlockGetter world, BlockPos pos, EntityType type) { return this.getBlock().properties.isValidSpawn.test(this.asState(), world, pos, type); } -@@ -985,7 +991,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -986,7 +992,7 @@ public abstract class BlockBehaviour implements FeatureElement { } public PushReaction getPistonPushReaction() { diff --git a/patches/server/0956-Fix-tripwire-disarming-not-working-as-intended.patch b/patches/server/0955-Fix-tripwire-disarming-not-working-as-intended.patch similarity index 100% rename from patches/server/0956-Fix-tripwire-disarming-not-working-as-intended.patch rename to patches/server/0955-Fix-tripwire-disarming-not-working-as-intended.patch diff --git a/patches/server/0957-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0956-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0957-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0956-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch b/patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch similarity index 94% rename from patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch rename to patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch index f833a51efa..f559f0cd9d 100644 --- a/patches/server/0958-Deep-clone-nbt-tags-in-PDC.patch +++ b/patches/server/0957-Deep-clone-nbt-tags-in-PDC.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone nbt tags in PDC diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 5a455354561389194b0e61c03f4b2e9285b17a3b..2cf89147025066f34c12b9956d18451487fb2799 100644 +index 11f55ef2645d50bbc24bd245ffe3ac98180315d8..ba49ac74a19ee1f14706c7f769aac35fa821ef7d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -322,7 +322,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -17,7 +17,7 @@ index 5a455354561389194b0e61c03f4b2e9285b17a3b..2cf89147025066f34c12b9956d184514 this.customTag = meta.customTag; -@@ -1690,7 +1690,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1697,7 +1697,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.customTag = this.customTag.copy(); } clone.removedTags = Sets.newHashSet(this.removedTags); diff --git a/patches/server/0959-Support-old-UUID-format-for-NBT.patch b/patches/server/0958-Support-old-UUID-format-for-NBT.patch similarity index 97% rename from patches/server/0959-Support-old-UUID-format-for-NBT.patch rename to patches/server/0958-Support-old-UUID-format-for-NBT.patch index a38c2a7f7b..68ff8a5255 100644 --- a/patches/server/0959-Support-old-UUID-format-for-NBT.patch +++ b/patches/server/0958-Support-old-UUID-format-for-NBT.patch @@ -8,7 +8,7 @@ We have stored UUID in plenty of places that did not get DFU'd So just look for old format and load it if it exists. diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index df246d69591e1a5822a0109c99b0f67996da71fa..4e005b7b062e3231f564d284887ea1c2783a4e7d 100644 +index e88161e662d5605b50aead673c9b3794874e5f7f..d7bb00a946346dff0b0269cbd65276e146a63fb0 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -232,6 +232,12 @@ public class CompoundTag implements Tag { diff --git a/patches/server/0960-Fix-shield-disable-inconsistency.patch b/patches/server/0959-Fix-shield-disable-inconsistency.patch similarity index 100% rename from patches/server/0960-Fix-shield-disable-inconsistency.patch rename to patches/server/0959-Fix-shield-disable-inconsistency.patch diff --git a/patches/server/0961-Handle-Large-Packets-disconnecting-client.patch b/patches/server/0960-Handle-Large-Packets-disconnecting-client.patch similarity index 100% rename from patches/server/0961-Handle-Large-Packets-disconnecting-client.patch rename to patches/server/0960-Handle-Large-Packets-disconnecting-client.patch diff --git a/patches/server/0962-Fix-ItemFlags.patch b/patches/server/0961-Fix-ItemFlags.patch similarity index 94% rename from patches/server/0962-Fix-ItemFlags.patch rename to patches/server/0961-Fix-ItemFlags.patch index d750443ba5..46e55a9780 100644 --- a/patches/server/0962-Fix-ItemFlags.patch +++ b/patches/server/0961-Fix-ItemFlags.patch @@ -33,7 +33,7 @@ index 73fe41322e0349ad1d46a760f621b6c91112e90e..19af55ec2bf62b70bd3be44f499b32f5 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc03eefe12 100644 +index ba49ac74a19ee1f14706c7f769aac35fa821ef7d..6f3ab40a9d0bccd9a2c439bf0e200ba5cf0f5f6e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -245,6 +245,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -81,7 +81,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc Set, Optional>> keys = tag.entrySet(); for (Map.Entry, Optional> key : keys) { -@@ -620,7 +644,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -627,7 +651,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { try { CompoundTag unhandledTag = NbtIo.readCompressed(buf, NbtAccounter.unlimitedHeap()); DataComponentPatch unhandledPatch = DataComponentPatch.CODEC.parse(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), unhandledTag).result().get(); @@ -98,7 +98,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc for (Entry, Optional> entry : unhandledPatch.entrySet()) { // Move removed unhandled tags to dedicated removedTags -@@ -863,6 +895,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -870,6 +902,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { itemTag.put(CraftMetaItem.MAX_DAMAGE, this.maxDamage); } @@ -114,7 +114,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc for (Map.Entry, Optional> e : this.unhandledTags.build().entrySet()) { e.getValue().ifPresent((value) -> { itemTag.builder.set((DataComponentType) e.getKey(), value); -@@ -951,7 +992,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -958,7 +999,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Overridden boolean isEmpty() { @@ -123,7 +123,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc } // Paper start -@@ -1621,6 +1662,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1628,6 +1669,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { && (this.hasJukeboxPlayable() ? that.hasJukeboxPlayable() && this.jukebox.equals(that.jukebox) : !that.hasJukeboxPlayable()) && (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage()) && (this.hasMaxDamage() ? that.hasMaxDamage() && this.maxDamage.equals(that.maxDamage) : !that.hasMaxDamage()) @@ -132,7 +132,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc && (this.version == that.version); } -@@ -1666,6 +1709,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1673,6 +1716,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { hash = 61 * hash + (this.hasDamage() ? this.damage : 0); hash = 61 * hash + (this.hasMaxDamage() ? 1231 : 1237); hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0); @@ -141,7 +141,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc hash = 61 * hash + this.version; return hash; } -@@ -1710,6 +1755,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1717,6 +1762,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.damage = this.damage; clone.maxDamage = this.maxDamage; clone.version = this.version; @@ -156,7 +156,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc return clone; } catch (CloneNotSupportedException e) { throw new Error(e); -@@ -1827,6 +1880,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1834,6 +1887,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -173,7 +173,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc if (!this.unhandledTags.isEmpty()) { Tag unhandled = DataComponentPatch.CODEC.encodeStart(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), this.unhandledTags.build()).getOrThrow(IllegalStateException::new); try { -@@ -1837,6 +1900,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1844,6 +1907,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { Logger.getLogger(CraftMetaItem.class.getName()).log(Level.SEVERE, null, ex); } } @@ -188,7 +188,7 @@ index 2cf89147025066f34c12b9956d18451487fb2799..078b75f027b99a8a2a6a3ee19d087acc if (!this.removedTags.isEmpty()) { RegistryAccess registryAccess = CraftRegistry.getMinecraftRegistry(); -@@ -1990,6 +2061,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1997,6 +2068,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaItem.MAX_DAMAGE.TYPE, CraftMetaItem.CUSTOM_DATA.TYPE, CraftMetaItem.ATTRIBUTES.TYPE, diff --git a/patches/server/0963-Fix-Player-setBlockUpdate.patch b/patches/server/0962-Fix-Player-setBlockUpdate.patch similarity index 95% rename from patches/server/0963-Fix-Player-setBlockUpdate.patch rename to patches/server/0962-Fix-Player-setBlockUpdate.patch index 81049f5c54..af479baa93 100644 --- a/patches/server/0963-Fix-Player-setBlockUpdate.patch +++ b/patches/server/0962-Fix-Player-setBlockUpdate.patch @@ -18,7 +18,7 @@ index 397eb1a101bd60f49dbb2fa8eddf28f6f233167f..e28bc898786542f695017ff0a0366768 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4d3838c5184296451089697fd3f7438a7f1be762..94524dee7e3ff78d378bd7812c49d041d07e138d 100644 +index 1490d15f1ffa83653b20a4bb47584c4c554a3384..29c5855b9d31e803eb856584b92dfd35f6fad39a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1118,6 +1118,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch b/patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch similarity index 87% rename from patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch rename to patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch index 065e1dca21..d394f07802 100644 --- a/patches/server/0964-Fix-helmet-damage-reduction-inconsistencies.patch +++ b/patches/server/0963-Fix-helmet-damage-reduction-inconsistencies.patch @@ -7,10 +7,10 @@ Affect the falling stalactite damage type where the reduction is not applied like in Vanilla diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 67aa8ebd1c4915fc7f18e3cf263eedf9b671a632..0ab53d46f0b8f3f3791dd01766738522c86932e8 100644 +index c21acdf5b445a7f24e0d7a6dfd07a097cb6a95b4..10598b112b66d660f1b1362d9af1ac85201cd0af 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1222,7 +1222,7 @@ public class CraftEventFactory { +@@ -1226,7 +1226,7 @@ public class CraftEventFactory { modifiers.put(DamageModifier.FREEZING, freezingModifier); modifierFunctions.put(DamageModifier.FREEZING, freezing); } diff --git a/patches/server/0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch b/patches/server/0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch similarity index 100% rename from patches/server/0965-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch rename to patches/server/0964-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch diff --git a/patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch b/patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch similarity index 95% rename from patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch rename to patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch index 6e7216cfea..9284b050d0 100644 --- a/patches/server/0966-improve-checking-handled-tags-in-itemmeta.patch +++ b/patches/server/0965-improve-checking-handled-tags-in-itemmeta.patch @@ -5,10 +5,10 @@ Subject: [PATCH] improve checking handled tags in itemmeta diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java -index a6c78854c10362864c2297de903ab9594cdb1eb6..251aac8690f15be2ad0e3f6399676205b7d7860c 100644 +index a4c4ba0d02f9a072236ce86c1e98e2c60b059cb8..0930d827e96e0b41296d7723238e6735106fd3d5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java -@@ -32,116 +32,116 @@ import org.bukkit.inventory.meta.TropicalFishBucketMeta; +@@ -39,120 +39,120 @@ import org.bukkit.inventory.meta.TropicalFishBucketMeta; public final class CraftItemMetas { @@ -107,6 +107,11 @@ index a6c78854c10362864c2297de903ab9594cdb1eb6..251aac8690f15be2ad0e3f6399676205 + (item, extras) -> new CraftMetaBlockState(item.getComponentsPatch(), CraftItemType.minecraftToBukkit(item.getItem()), extras), (type, meta) -> new CraftMetaBlockState(meta, type.asMaterial())); + private static final ItemMetaData SHIELD_META_DATA = new ItemMetaData<>(ShieldMeta.class, +- item -> new CraftMetaShield(item.getComponentsPatch()), ++ (item, extras) -> new CraftMetaShield(item.getComponentsPatch(), extras), + (type, meta) -> new CraftMetaShield(meta)); + private static final ItemMetaData TROPICAL_FISH_BUCKET_META_DATA = new ItemMetaData<>(TropicalFishBucketMeta.class, - item -> new CraftMetaTropicalFishBucket(item.getComponentsPatch()), + (item, extras) -> new CraftMetaTropicalFishBucket(item.getComponentsPatch(), extras), @@ -286,10 +291,10 @@ index c56fb1eeea79176c4dbb1e9c0a8023f86220fe6a..1c17fb294d83d99ae657eff6a8a986bf getOrEmpty(tag, CraftMetaBanner.PATTERNS).ifPresent((entityTag) -> { List patterns = entityTag.layers(); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -index 4faada5f974214f3054dc1bec9c79e2600c8df48..d7e5491cc0296563fb9fdf28d64b21a10c08ea4a 100644 +index 23dbc56edf0d16cf07ced2899942abae28397694..ed6e9d1f2d42392d92f4e3ae6f67c8d4ed700fb5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -@@ -69,8 +69,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -70,8 +70,8 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta this.blockEntityTag = te.blockEntityTag; } @@ -301,7 +306,7 @@ index 4faada5f974214f3054dc1bec9c79e2600c8df48..d7e5491cc0296563fb9fdf28d64b21a1 getOrEmpty(tag, CraftMetaBlockState.BLOCK_ENTITY_TAG).ifPresent((nbt) -> { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java -index 552ebe67f87b48734adf0da8ef78dcac9dd670a2..e064af399dcae40b4f35aa993d356b1462f91d6c 100644 +index 32e5188442551b3e72e1d4826d836d622d0e438a..257c835bc280eee9ee73ae75b5249bb568a687d0 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java @@ -64,8 +64,8 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta, WritableBo @@ -316,7 +321,7 @@ index 552ebe67f87b48734adf0da8ef78dcac9dd670a2..e064af399dcae40b4f35aa993d356b14 getOrEmpty(tag, CraftMetaBook.BOOK_CONTENT).ifPresent((writable) -> { List> pages = writable.pages(); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java -index 162997fc80dfe2df1f13c802c1b610f04cb9d05a..806c1cbee7c4e23eee38c8f400ec2d924c9a360c 100644 +index fd3b12477c30d1eabdbe57ea779027931e9dd957..cbb3d80cc7cd81b2505dff999a0baede737165f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java @@ -78,8 +78,8 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta { @@ -451,7 +456,7 @@ index 8c1d2d0521da52f9a1262f5433da21700b9b0454..9600b23666668d7d581e2920a4e03e59 getOrEmpty(tag, CraftMetaFirework.FIREWORKS).ifPresent((fireworks) -> { this.power = fireworks.flightDuration(); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc3cc3000e 100644 +index 6f3ab40a9d0bccd9a2c439bf0e200ba5cf0f5f6e..bee2f2f5675b8aaeb2a04ada1f6dba9aa9a14ed3 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -339,7 +339,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -481,7 +486,7 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc key.getValue().ifPresent((value) -> { this.unhandledTags.set((DataComponentType) key.getKey(), value); }); -@@ -2036,67 +2043,75 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -2043,68 +2050,76 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.version = version; } @@ -521,6 +526,7 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc - CraftMetaMap.MAP_COLOR.TYPE, - CraftMetaMap.MAP_ID.TYPE, - CraftMetaPotion.POTION_CONTENTS.TYPE, +- CraftMetaShield.BASE_COLOR.TYPE, - CraftMetaSkull.SKULL_PROFILE.TYPE, - CraftMetaSkull.NOTE_BLOCK_SOUND.TYPE, - CraftMetaSpawnEgg.ENTITY_TAG.TYPE, @@ -579,7 +585,8 @@ index 078b75f027b99a8a2a6a3ee19d087acc03eefe12..1903a6948242e2dc40302a0acb9171fc + map.put(CraftMetaArmor.class, Set.of(CraftMetaArmor.TRIM.TYPE)); + map.put(CraftMetaArmorStand.class, Set.of(CraftMetaArmorStand.ENTITY_TAG.TYPE)); + map.put(CraftMetaAxolotlBucket.class, Set.of(CraftMetaAxolotlBucket.ENTITY_TAG.TYPE, CraftMetaAxolotlBucket.BUCKET_ENTITY_TAG.TYPE)); -+ map.put(CraftMetaBanner.class, Set.of(/*CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT, */CraftMetaBanner.PATTERNS.TYPE)); // banner uses same tag as block state ++ map.put(CraftMetaBanner.class, Set.of(CraftMetaBanner.PATTERNS.TYPE)); // banner uses same tag as block state ++ map.put(CraftMetaShield.class, Set.of(CraftMetaShield.BASE_COLOR.TYPE, CraftMetaBanner.PATTERNS.TYPE)); + map.put(CraftMetaBlockState.class, Set.of(CraftMetaBlockState.BLOCK_ENTITY_TAG.TYPE)); + map.put(CraftMetaBook.class, Set.of(CraftMetaBook.BOOK_CONTENT.TYPE)); + map.put(CraftMetaBookSigned.class, Set.of(CraftMetaBookSigned.BOOK_CONTENT.TYPE)); @@ -706,6 +713,21 @@ index d1cb8d520b6d7b0981d70412def71e7aab04560a..7f9182809f6e67ff571db0f365bc7e05 getOrEmpty(tag, CraftMetaPotion.POTION_CONTENTS).ifPresent((potionContents) -> { potionContents.potion().ifPresent((potion) -> { this.type = CraftPotionType.minecraftHolderToBukkit(potion); +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +index c10609472c1b86c3abb19a62bef4c9ce436307ea..d2b74daa5788c1e6d9eaddb47bc3a062287ba036 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +@@ -42,8 +42,8 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + } + } + +- CraftMetaShield(DataComponentPatch tag) { +- super(tag); ++ CraftMetaShield(DataComponentPatch tag, java.util.Set> extraHandledDcts) { // Paper - improve checking handled tags in item meta ++ super(tag, extraHandledDcts); // Paper - improve checking handled tags in item meta + + getOrEmpty(tag, CraftMetaShield.BASE_COLOR).ifPresent((color) -> { + this.banner = CraftMetaShield.getBlockState(DyeColor.getByWoolData((byte) color.getId())); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java index d6e161374e0235031128a6ee86d1ffa875ea48aa..ab860f1179fa2618c8fbc30ac5f48ff78b8abb60 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java @@ -722,7 +744,7 @@ index d6e161374e0235031128a6ee86d1ffa875ea48aa..ab860f1179fa2618c8fbc30ac5f48ff7 getOrEmpty(tag, CraftMetaSkull.SKULL_PROFILE).ifPresent((resolvableProfile) -> { this.setProfile(resolvableProfile.gameProfile()); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java -index 2c6ee95edea9dc959d8d31d689dc27fea4080467..e4b8637e6d82e2ce7cfee2130e6422f0ef4e1fbc 100644 +index 6c2c3b514be0dab47f3e44f65bdc6a3574e59b7c..8ddf091b3ff1262b6c97e8fe72e0a80db5e1037d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSpawnEgg.java @@ -33,8 +33,8 @@ public class CraftMetaSpawnEgg extends CraftMetaItem implements SpawnEggMeta { diff --git a/patches/server/0967-General-ItemMeta-fixes.patch b/patches/server/0966-General-ItemMeta-fixes.patch similarity index 82% rename from patches/server/0967-General-ItemMeta-fixes.patch rename to patches/server/0966-General-ItemMeta-fixes.patch index 321e5f3b03..7730aa8d80 100644 --- a/patches/server/0967-General-ItemMeta-fixes.patch +++ b/patches/server/0966-General-ItemMeta-fixes.patch @@ -12,7 +12,7 @@ public net/minecraft/world/level/block/entity/BlockEntity saveId(Lnet/minecraft/ Co-authored-by: GhastCraftHD diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index fa4bdf8bdbd6eaeb854e62a2acb45d7998e4aa2b..8309d2f7872ccdbc9d76f0fbf481411f74080148 100644 +index ebe470ca361ec5747a843b60d82f567d41d7c9fa..f9a4bebb321207abb00b1af1c17ebda623cc950e 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -1275,6 +1275,11 @@ public final class ItemStack implements DataComponentHolder { @@ -158,10 +158,10 @@ index 1c17fb294d83d99ae657eff6a8a986bf72c6ec47..b9d6a4a8f78a0e26d888b6bfdff25c3a for (Pattern p : this.patterns) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d46261c1252af 100644 +index ed6e9d1f2d42392d92f4e3ae6f67c8d4ed700fb5..d8ec01c65c6a57accf1b510499f9446e73c2f7e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java -@@ -50,9 +50,24 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -51,9 +51,24 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta @ItemMetaKey.Specific(ItemMetaKey.Specific.To.NBT) static final ItemMetaKeyType BLOCK_ENTITY_TAG = new ItemMetaKeyType<>(DataComponents.BLOCK_ENTITY_DATA, "BlockEntityTag"); @@ -181,13 +181,13 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 + this.blockEntityTag = this.blockEntityTag != null ? this.blockEntityTag : CustomData.EMPTY; + } + private Material materialForBlockEntityType() { -+ return (this.material != Material.SHIELD) ? this.material : CraftMetaBlockState.shieldToBannerHack(); ++ return this.material; + } + // Paper end private CompoundTag internalTag; CraftMetaBlockState(CraftMetaItem meta, Material material) { -@@ -61,41 +76,61 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -62,41 +77,61 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta if (!(meta instanceof CraftMetaBlockState) || ((CraftMetaBlockState) meta).material != material) { @@ -262,19 +262,16 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 } } -@@ -108,7 +143,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta - } else { +@@ -110,7 +145,7 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta this.material = Material.AIR; } -- this.blockEntityTag = CraftMetaBlockState.getBlockState(this.material, this.internalTag); -+ // Paper start -+ if (this.internalTag != null) { // legacy -+ this.setBlockState(CraftMetaBlockState.getBlockState(this.material, this.internalTag)); -+ } - this.internalTag = null; + if (this.internalTag != null) { +- this.blockEntityTag = CraftMetaBlockState.getBlockState(this.material, this.internalTag); ++ this.setBlockState(CraftMetaBlockState.getBlockState(this.material, this.internalTag)); // Paper - general item meta fixes - pass through setter + this.internalTag = null; + } } - -@@ -116,13 +154,21 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -119,13 +154,21 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta void applyToItem(CraftMetaItem.Applicator tag) { super.applyToItem(tag); @@ -301,7 +298,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 } @Override -@@ -131,14 +177,29 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -134,14 +177,29 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta if (tag.contains(CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT, CraftMagicNumbers.NBT.TAG_COMPOUND)) { this.internalTag = tag.getCompound(CraftMetaBlockState.BLOCK_ENTITY_TAG.NBT); @@ -333,7 +330,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 } @Override -@@ -152,9 +213,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -155,9 +213,10 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta int applyHash() { final int original; int hash = original = super.applyHash(); @@ -347,7 +344,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 return original != hash ? CraftMetaBlockState.class.hashCode() ^ hash : hash; } -@@ -166,45 +228,71 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -169,45 +228,71 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta if (meta instanceof CraftMetaBlockState) { CraftMetaBlockState that = (CraftMetaBlockState) meta; @@ -429,9 +426,9 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 } private static CraftBlockEntityState getBlockState(Material material, CompoundTag blockEntityTag) { -@@ -234,7 +322,23 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta +@@ -237,7 +322,23 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta Class blockStateType = CraftBlockStates.getBlockStateType(stateMaterial); - Preconditions.checkArgument(blockStateType == blockState.getClass() && blockState instanceof CraftBlockEntityState, "Invalid blockState for " + this.material); + Preconditions.checkArgument(blockStateType == blockState.getClass() && blockState instanceof CraftBlockEntityState, "Invalid blockState for %s", this.material); - this.blockEntityTag = (CraftBlockEntityState) blockState; + // Paper start - when a new BlockState is set, the components from that block entity @@ -453,7 +450,7 @@ index d7e5491cc0296563fb9fdf28d64b21a10c08ea4a..224ea52574b80bb087c5c62eaf1d4626 + // Paper end } - private static Material shieldToBannerHack() { + private static Material shieldToBannerHack(CompoundTag tag) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java index 257c835bc280eee9ee73ae75b5249bb568a687d0..70f20de37c1f8d57a8d9fe00dcd864fdd9948ec2 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java @@ -805,7 +802,7 @@ index 9600b23666668d7d581e2920a4e03e59cc2339fb..0eceacbb096481d3bd31f5f99e964c88 } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0d246e36e 100644 +index bee2f2f5675b8aaeb2a04ada1f6dba9aa9a14ed3..67181b215312f1f572d6ac5afd289c6540b12829 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -182,9 +182,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -851,7 +848,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 CraftMetaItem.getOrEmpty(tag, CraftMetaItem.NAME).ifPresent((component) -> { this.displayName = component; }); -@@ -791,7 +797,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -798,7 +804,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { Map mods = SerializableMeta.getObject(Map.class, map, key.BUKKIT, true); Multimap result = LinkedHashMultimap.create(); if (mods == null) { @@ -860,7 +857,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 } for (Object obj : mods.keySet()) { -@@ -894,7 +900,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -901,7 +907,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { itemTag.put(CraftMetaItem.JUKEBOX_PLAYABLE, this.jukebox.getHandle()); } @@ -869,7 +866,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 itemTag.put(CraftMetaItem.DAMAGE, this.damage); } -@@ -959,10 +965,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -966,10 +972,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } void applyModifiers(Multimap modifiers, CraftMetaItem.Applicator tag) { @@ -882,7 +879,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 return; } -@@ -999,7 +1003,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1006,7 +1010,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Overridden boolean isEmpty() { @@ -891,7 +888,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 } // Paper start -@@ -1095,6 +1099,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1102,6 +1106,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public void lore(final List lore) { @@ -899,7 +896,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 this.lore = lore != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(lore) : null; } // Paper end -@@ -1153,7 +1158,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1160,7 +1165,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public void removeEnchantments() { if (this.hasEnchants()) { @@ -908,7 +905,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 } } -@@ -1219,6 +1224,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1226,6 +1231,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { // Paper end @Override public void setLore(List lore) { @@ -916,7 +913,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 if (lore == null || lore.isEmpty()) { this.lore = null; } else { -@@ -1234,6 +1240,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1241,6 +1247,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { // Paper start @Override public void setLoreComponents(List lore) { @@ -924,7 +921,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 if (lore == null) { this.lore = null; } else { -@@ -1375,7 +1382,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1382,7 +1389,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public FoodComponent getFood() { @@ -933,7 +930,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 } @Override -@@ -1431,7 +1438,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1438,7 +1445,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public Multimap getAttributeModifiers(@Nullable EquipmentSlot slot) { @@ -942,7 +939,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 SetMultimap result = LinkedHashMultimap.create(); for (Map.Entry entry : this.attributeModifiers.entries()) { if (entry.getValue().getSlot() == null || entry.getValue().getSlot() == slot) { -@@ -1444,6 +1451,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1451,6 +1458,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public Collection getAttributeModifiers(@Nonnull Attribute attribute) { Preconditions.checkNotNull(attribute, "Attribute cannot be null"); @@ -950,7 +947,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 return this.attributeModifiers.containsKey(attribute) ? ImmutableList.copyOf(this.attributeModifiers.get(attribute)) : null; } -@@ -1451,22 +1459,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1458,22 +1466,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { public boolean addAttributeModifier(@Nonnull Attribute attribute, @Nonnull AttributeModifier modifier) { Preconditions.checkNotNull(attribute, "Attribute cannot be null"); Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null"); @@ -988,7 +985,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 Iterator> iterator = attributeModifiers.entries().iterator(); while (iterator.hasNext()) { -@@ -1476,6 +1495,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1483,6 +1502,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { iterator.remove(); continue; } @@ -996,7 +993,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 this.attributeModifiers.put(next.getKey(), next.getValue()); } } -@@ -1483,13 +1503,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1490,13 +1510,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public boolean removeAttributeModifier(@Nonnull Attribute attribute) { Preconditions.checkNotNull(attribute, "Attribute cannot be null"); @@ -1012,7 +1009,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 int removed = 0; Iterator> iter = this.attributeModifiers.entries().iterator(); -@@ -1509,7 +1529,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1516,7 +1536,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { public boolean removeAttributeModifier(@Nonnull Attribute attribute, @Nonnull AttributeModifier modifier) { Preconditions.checkNotNull(attribute, "Attribute cannot be null"); Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null"); @@ -1021,7 +1018,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 int removed = 0; Iterator> iter = this.attributeModifiers.entries().iterator(); -@@ -1531,7 +1551,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1538,7 +1558,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public String getAsString() { @@ -1030,7 +1027,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 this.applyToItem(tag); DataComponentPatch patch = tag.build(); Tag nbt = DataComponentPatch.CODEC.encodeStart(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), patch).getOrThrow(); -@@ -1540,7 +1560,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1547,7 +1567,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public String getAsComponentString() { @@ -1039,7 +1036,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 this.applyToItem(tag); DataComponentPatch patch = tag.build(); -@@ -1580,6 +1600,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1587,6 +1607,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (first == null || second == null) { return false; } @@ -1047,7 +1044,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 for (Map.Entry entry : first.entries()) { if (!second.containsEntry(entry.getKey(), entry.getValue())) { return false; -@@ -1595,19 +1616,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1602,19 +1623,33 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public boolean hasDamage() { @@ -1083,7 +1080,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 @Override public boolean hasMaxDamage() { return this.maxDamage != null; -@@ -1621,6 +1656,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1628,6 +1663,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public void setMaxDamage(Integer maxDamage) { @@ -1091,7 +1088,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 this.maxDamage = maxDamage; } -@@ -1652,7 +1688,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1659,7 +1695,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { && (this.hasCustomModelData() ? that.hasCustomModelData() && this.customModelData.equals(that.customModelData) : !that.hasCustomModelData()) && (this.hasBlockData() ? that.hasBlockData() && this.blockData.equals(that.blockData) : !that.hasBlockData()) && (this.hasRepairCost() ? that.hasRepairCost() && this.repairCost == that.repairCost : !that.hasRepairCost()) @@ -1100,7 +1097,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 && (this.unhandledTags.equals(that.unhandledTags)) && (this.removedTags.equals(that.removedTags)) && (Objects.equals(this.customTag, that.customTag)) -@@ -1667,7 +1703,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1674,7 +1710,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { && (this.hasFood() ? that.hasFood() && this.food.equals(that.food) : !that.hasFood()) && (this.hasTool() ? that.hasTool() && this.tool.equals(that.tool) : !that.hasTool()) && (this.hasJukeboxPlayable() ? that.hasJukeboxPlayable() && this.jukebox.equals(that.jukebox) : !that.hasJukeboxPlayable()) @@ -1109,7 +1106,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 && (this.hasMaxDamage() ? that.hasMaxDamage() && this.maxDamage.equals(that.maxDamage) : !that.hasMaxDamage()) && (this.canPlaceOnPredicates != null ? that.canPlaceOnPredicates != null && this.canPlaceOnPredicates.equals(that.canPlaceOnPredicates) : that.canPlaceOnPredicates == null) // Paper && (this.canBreakPredicates != null ? that.canBreakPredicates != null && this.canBreakPredicates.equals(that.canBreakPredicates) : that.canBreakPredicates == null) // Paper -@@ -1713,9 +1749,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1720,9 +1756,9 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { hash = 61 * hash + (this.hasFood() ? this.food.hashCode() : 0); hash = 61 * hash + (this.hasTool() ? this.tool.hashCode() : 0); hash = 61 * hash + (this.hasJukeboxPlayable() ? this.jukebox.hashCode() : 0); @@ -1122,7 +1119,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 hash = 61 * hash + (this.canPlaceOnPredicates != null ? this.canPlaceOnPredicates.hashCode() : 0); // Paper hash = 61 * hash + (this.canBreakPredicates != null ? this.canBreakPredicates.hashCode() : 0); // Paper hash = 61 * hash + this.version; -@@ -1735,7 +1771,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1742,7 +1778,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (this.enchantments != null) { clone.enchantments = new EnchantmentMap(this.enchantments); // Paper } @@ -1131,7 +1128,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers); } if (this.customTag != null) { -@@ -1863,7 +1899,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1870,7 +1906,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { builder.put(CraftMetaItem.JUKEBOX_PLAYABLE.BUKKIT, this.jukebox); } @@ -1140,7 +1137,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 builder.put(CraftMetaItem.DAMAGE.BUKKIT, this.damage); } -@@ -1964,7 +2000,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1971,7 +2007,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } static void serializeModifiers(Multimap modifiers, ImmutableMap.Builder builder, ItemMetaKey key) { @@ -1149,7 +1146,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 return; } -@@ -2046,7 +2082,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -2053,7 +2089,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { // Paper start - improve checking handled tags @org.jetbrains.annotations.VisibleForTesting public static final Map, Set>> HANDLED_DCTS_PER_TYPE = new HashMap<>(); @@ -1158,7 +1155,7 @@ index 1903a6948242e2dc40302a0acb9171fc3cc3000e..a9acbb181dd72238b63fb08fda1b3bc0 CraftMetaItem.NAME.TYPE, CraftMetaItem.ITEM_NAME.TYPE, CraftMetaItem.LORE.TYPE, -@@ -2114,7 +2150,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -2122,7 +2158,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { // Paper end - improve checking handled data component types protected static Optional getOrEmpty(DataComponentPatch tag, ItemMetaKeyType type) { @@ -1390,6 +1387,306 @@ index 7f9182809f6e67ff571db0f365bc7e05f600775a..01c49df291f721bab3acb788ff2f2787 } @Override +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +index 967d8940aec0065bce496d5d7a8c73de5733bd2c..57a2dc0581d1e59ce201d84ca0c0f7606577bf4c 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +@@ -28,17 +28,29 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + + static final ItemMetaKeyType BASE_COLOR = new ItemMetaKeyType<>(DataComponents.BASE_COLOR, "Base", "base-color"); + +- private Banner banner; ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ private @org.jetbrains.annotations.Nullable List patterns; ++ private @org.jetbrains.annotations.Nullable DyeColor baseColor; ++ ++ // An empty pattern list is the same as the default on the Shield item, and will hence not be present in the data components of the stack. ++ private boolean hasPatterns() { ++ return this.patterns != null && !this.patterns.isEmpty(); ++ } ++ // Paper end - general item meta fixes - decoupled base colour and patterns + + CraftMetaShield(CraftMetaItem meta) { + super(meta); + + if (meta instanceof CraftMetaShield craftMetaShield) { +- if (craftMetaShield.banner != null) { +- this.banner = (Banner) craftMetaShield.banner.copy(); +- } ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ if (craftMetaShield.patterns != null) this.patterns = new ArrayList<>(craftMetaShield.getPatterns()); ++ if (craftMetaShield.baseColor != null) this.baseColor = craftMetaShield.baseColor; ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } else if (meta instanceof CraftMetaBlockState state && state.hasBlockState() && state.getBlockState() instanceof Banner banner) { +- this.banner = (Banner) banner.copy(); ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ this.patterns = banner.getPatterns(); ++ this.baseColor = banner.getBaseColor(); ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } + } + +@@ -46,7 +58,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + super(tag, extraHandledDcts); // Paper - improve checking handled tags in item meta + + getOrEmpty(tag, CraftMetaShield.BASE_COLOR).ifPresent((color) -> { +- this.banner = CraftMetaShield.getBlockState(DyeColor.getByWoolData((byte) color.getId())); ++ this.baseColor = DyeColor.getByWoolData((byte) color.getId()); // Paper - general item meta fixes - decoupled base colour and patterns + }); + + getOrEmpty(tag, CraftMetaBanner.PATTERNS).ifPresent((entityTag) -> { +@@ -68,7 +80,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + + String baseColor = SerializableMeta.getString(map, CraftMetaShield.BASE_COLOR.BUKKIT, true); + if (baseColor != null) { +- this.banner = CraftMetaShield.getBlockState(DyeColor.valueOf(baseColor)); ++ this.baseColor = DyeColor.valueOf(baseColor); // Paper - general item meta fixes - decoupled base colour and patterns + } + + Iterable rawPatternList = SerializableMeta.getObject(Iterable.class, map, CraftMetaBanner.PATTERNS.BUKKIT, true); +@@ -86,13 +98,14 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + void applyToItem(CraftMetaItem.Applicator tag) { + super.applyToItem(tag); + +- if (this.banner != null) { +- tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byId(this.banner.getBaseColor().getWoolData())); +- +- if (this.banner.numberOfPatterns() > 0) { ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ if (this.baseColor != null) tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byId(this.baseColor.getWoolData())); ++ if (this.patterns != null && !this.patterns.isEmpty()) { ++ { ++ // Paper end - general item meta fixes - decoupled base colour and patterns + List newPatterns = new ArrayList<>(); + +- for (Pattern p : this.banner.getPatterns()) { ++ for (Pattern p : this.patterns) { // Paper - general item meta fixes - decoupled base colour and patterns + newPatterns.add(new BannerPatternLayers.Layer(CraftPatternType.bukkitToMinecraftHolder(p.getPattern()), net.minecraft.world.item.DyeColor.byId(p.getColor().getWoolData()))); + } + +@@ -103,108 +116,84 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + + @Override + public List getPatterns() { +- if (this.banner == null) { ++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns + return new ArrayList<>(); + } + +- return this.banner.getPatterns(); ++ return new ArrayList<>(this.patterns); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public void setPatterns(List patterns) { +- if (this.banner == null) { +- if (patterns.isEmpty()) { +- return; +- } +- +- this.banner = CraftMetaShield.getBlockState(null); +- } +- +- this.banner.setPatterns(patterns); ++ this.patterns = new ArrayList<>(patterns); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public void addPattern(Pattern pattern) { +- if (this.banner == null) { +- this.banner = CraftMetaShield.getBlockState(null); +- } +- +- this.banner.addPattern(pattern); ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ if (this.patterns == null) this.patterns = new ArrayList<>(); ++ this.patterns.add(pattern); ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } + + @Override + public Pattern getPattern(int i) { +- if (this.banner == null) { ++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns + throw new IndexOutOfBoundsException(i); + } + +- return this.banner.getPattern(i); ++ return this.patterns.get(i); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public Pattern removePattern(int i) { +- if (this.banner == null) { ++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns + throw new IndexOutOfBoundsException(i); + } + +- return this.banner.removePattern(i); ++ return this.patterns.remove(i); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public void setPattern(int i, Pattern pattern) { +- if (this.banner == null) { ++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns + throw new IndexOutOfBoundsException(i); + } + +- this.banner.setPattern(i, pattern); ++ this.patterns.set(i, pattern); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public int numberOfPatterns() { +- if (this.banner == null) { ++ if (this.patterns == null) { // Paper - general item meta fixes - decoupled base colour and patterns + return 0; + } + +- return this.banner.numberOfPatterns(); ++ return this.patterns.size(); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public DyeColor getBaseColor() { +- if (this.banner == null) { +- return null; +- } +- +- return this.banner.getBaseColor(); ++ return this.baseColor; // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public void setBaseColor(DyeColor baseColor) { +- if (baseColor == null) { +- if (this.banner.numberOfPatterns() > 0) { +- this.banner.setBaseColor(DyeColor.WHITE); +- } else { +- this.banner = null; +- } +- } else { +- if (this.banner == null) { +- this.banner = CraftMetaShield.getBlockState(baseColor); +- } +- +- this.banner.setBaseColor(baseColor); +- } ++ this.baseColor = baseColor; // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + ImmutableMap.Builder serialize(ImmutableMap.Builder builder) { + super.serialize(builder); + +- if (this.banner != null) { +- builder.put(CraftMetaShield.BASE_COLOR.BUKKIT, this.banner.getBaseColor().toString()); +- +- if (this.banner.numberOfPatterns() > 0) { +- builder.put(CraftMetaBanner.PATTERNS.BUKKIT, this.banner.getPatterns()); +- } ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ if (this.baseColor != null) { ++ builder.put(CraftMetaShield.BASE_COLOR.BUKKIT, this.baseColor.toString()); ++ } ++ if (hasPatterns()) { ++ builder.put(CraftMetaBanner.PATTERNS.BUKKIT, this.patterns); + } ++ // Paper end - general item meta fixes - decoupled base colour and patterns + + return builder; + } +@@ -213,8 +202,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + int applyHash() { + final int original; + int hash = original = super.applyHash(); +- if (this.banner != null) { +- hash = 61 * hash + this.banner.hashCode(); ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ if (this.baseColor != null) { ++ hash = 61 * hash + this.baseColor.hashCode(); ++ } ++ if (hasPatterns()) { ++ hash = 61 * hash + this.patterns.hashCode(); ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } + return original != hash ? CraftMetaShield.class.hashCode() ^ hash : hash; + } +@@ -225,29 +219,33 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + return false; + } + if (meta instanceof CraftMetaShield that) { +- return Objects.equal(this.banner, that.banner); ++ return Objects.equal(this.baseColor, that.baseColor) && Objects.equal(this.hasPatterns(), that.hasPatterns()); // Paper - general item meta fixes - decoupled base colour and patterns + } + return true; + } + + @Override + boolean notUncommon(CraftMetaItem meta) { +- return super.notUncommon(meta) && (meta instanceof CraftMetaShield || this.banner == null); ++ return super.notUncommon(meta) && (meta instanceof CraftMetaShield || (this.baseColor == null && !hasPatterns())); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + boolean isEmpty() { +- return super.isEmpty() && this.banner == null; ++ return super.isEmpty() && this.baseColor == null && !hasPatterns(); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public boolean hasBlockState() { +- return this.banner != null; ++ return this.baseColor != null || hasPatterns(); // Paper - general item meta fixes - decoupled base colour and patterns + } + + @Override + public BlockState getBlockState() { +- return (this.banner != null) ? this.banner.copy() : CraftMetaShield.getBlockState(null); ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ final Banner banner = CraftMetaShield.getBlockState(this.baseColor); ++ if (this.patterns != null) banner.setPatterns(this.patterns); ++ return banner; ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } + + @Override +@@ -255,13 +253,18 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + Preconditions.checkArgument(blockState != null, "blockState must not be null"); + Preconditions.checkArgument(blockState instanceof Banner, "Invalid blockState"); + +- this.banner = (Banner) blockState; ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ final Banner banner = (Banner) blockState; ++ this.baseColor = banner.getBaseColor(); ++ this.patterns = banner.getPatterns(); ++ // Paper end - general item meta fixes - decoupled base colour and patterns + } + + // Paper start - add method to clear block state + @Override + public void clearBlockState() { +- this.banner = null; ++ this.baseColor = null; ++ this.patterns = null; + } + // Paper end - add method to clear block state + +@@ -275,9 +278,10 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS + @Override + public CraftMetaShield clone() { + CraftMetaShield meta = (CraftMetaShield) super.clone(); +- if (this.banner != null) { +- meta.banner = (Banner) this.banner.copy(); +- } ++ // Paper start - general item meta fixes - decoupled base colour and patterns ++ meta.baseColor = this.baseColor; ++ meta.patterns = this.patterns == null ? null : new ArrayList<>(this.patterns); ++ // Paper start - general item meta fixes - decoupled base colour and patterns + return meta; + } + diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java index ab860f1179fa2618c8fbc30ac5f48ff78b8abb60..7de2ed297d0b2bf8adf2058e75a9b594ec2197bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java @@ -1458,10 +1755,10 @@ index 17705059b81942e4df43a4a5180092e09c985ade..80e6b85a107d5236edba99540cb5074e } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java b/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java -index b7e93a6ec72ec3e3390fefa52fda0c2cd8e17c0c..758778650bebf7b96eefab42543e812849124b2f 100644 +index e00b757d6059715e8697428008fcb3e6e7abbe2e..dcf02bd0f7f4c67f5ab98003cc932b960704eef1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/SerializableMeta.java -@@ -128,4 +128,21 @@ public final class SerializableMeta implements ConfigurationSerializable { +@@ -136,4 +136,21 @@ public final class SerializableMeta implements ConfigurationSerializable { } throw new IllegalArgumentException(field + "(" + object + ") is not a valid " + clazz); } @@ -1484,10 +1781,10 @@ index b7e93a6ec72ec3e3390fefa52fda0c2cd8e17c0c..758778650bebf7b96eefab42543e8128 + // Paper end - General ItemMeta Fixes } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java b/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java -index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38a674b61c 100644 +index 92cad73219e11dc5922630769f9dd3a329ea6da1..bde61de7eda72b2e24ddef56ff93a0b46c08670c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/components/CraftFoodComponent.java -@@ -109,6 +109,7 @@ public final class CraftFoodComponent implements FoodComponent { +@@ -114,6 +114,7 @@ public final class CraftFoodComponent implements FoodComponent { @Override public void setEatSeconds(float eatSeconds) { @@ -1495,7 +1792,7 @@ index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38 this.handle = new FoodProperties(this.handle.nutrition(), this.handle.saturation(), this.handle.canAlwaysEat(), eatSeconds, this.handle.usingConvertsTo(), this.handle.effects()); } -@@ -119,6 +120,7 @@ public final class CraftFoodComponent implements FoodComponent { +@@ -124,6 +125,7 @@ public final class CraftFoodComponent implements FoodComponent { @Override public void setUsingConvertsTo(ItemStack item) { @@ -1503,7 +1800,7 @@ index 63fc9138dc3388ceb9acf672b3f75ba0976e8e54..5986aa3588487c2caef4c895f8883e38 this.handle = new FoodProperties(this.handle.nutrition(), this.handle.saturation(), this.handle.canAlwaysEat(), this.handle.eatSeconds(), Optional.ofNullable(item).map(CraftItemStack::asNMSCopy), this.handle.effects()); } -@@ -134,6 +136,7 @@ public final class CraftFoodComponent implements FoodComponent { +@@ -139,6 +141,7 @@ public final class CraftFoodComponent implements FoodComponent { @Override public FoodEffect addEffect(PotionEffect effect, float probability) { @@ -1561,7 +1858,7 @@ index 6bed0a5c8d9f1ca72678cdf4699128e441a24541..8e03e14d0e65bfdf2196a08220d1408b assertEquals(itemMeta, new CraftMetaItem(compound.build(), null)); // Paper diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index d6018439015583fa0344c7c01b2e60a13de29795..aabe3730fa582f442ee0544dd1a9f3123f719c68 100644 +index b6da1c2902139d4c7b01ac7b3407d4f6ac3990e2..1a582ee78334835df79f93cc9fd3669c347d8b3a 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java @@ -66,7 +66,7 @@ import org.junit.jupiter.api.Test; diff --git a/patches/server/0968-Expose-hasColor-to-leather-armor.patch b/patches/server/0967-Expose-hasColor-to-leather-armor.patch similarity index 100% rename from patches/server/0968-Expose-hasColor-to-leather-armor.patch rename to patches/server/0967-Expose-hasColor-to-leather-armor.patch diff --git a/patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch b/patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch similarity index 97% rename from patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch rename to patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch index 305f6bd981..3b19743dfc 100644 --- a/patches/server/0969-Added-API-to-get-player-ha-proxy-address.patch +++ b/patches/server/0968-Added-API-to-get-player-ha-proxy-address.patch @@ -35,7 +35,7 @@ index 96355e1da8feb6687ea0069dda4a82fcd7e25e8a..1f696644b958538e9f5d568a2e4bba69 } else { super.channelRead(ctx, msg); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 94524dee7e3ff78d378bd7812c49d041d07e138d..65a6952d48f40f3fd73d6693b61be9d29741f2f6 100644 +index 29c5855b9d31e803eb856584b92dfd35f6fad39a..12010a078542b7e89f0f4c0e7983eb15e75c4f1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -265,7 +265,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0970-More-Chest-Block-API.patch b/patches/server/0969-More-Chest-Block-API.patch similarity index 100% rename from patches/server/0970-More-Chest-Block-API.patch rename to patches/server/0969-More-Chest-Block-API.patch diff --git a/patches/server/0971-Print-data-component-type-on-encoding-error.patch b/patches/server/0970-Print-data-component-type-on-encoding-error.patch similarity index 100% rename from patches/server/0971-Print-data-component-type-on-encoding-error.patch rename to patches/server/0970-Print-data-component-type-on-encoding-error.patch diff --git a/patches/server/0972-Brigadier-based-command-API.patch b/patches/server/0971-Brigadier-based-command-API.patch similarity index 100% rename from patches/server/0972-Brigadier-based-command-API.patch rename to patches/server/0971-Brigadier-based-command-API.patch diff --git a/patches/server/0973-Fix-issues-with-Recipe-API.patch b/patches/server/0972-Fix-issues-with-Recipe-API.patch similarity index 100% rename from patches/server/0973-Fix-issues-with-Recipe-API.patch rename to patches/server/0972-Fix-issues-with-Recipe-API.patch diff --git a/patches/server/0974-Fix-equipment-slot-and-group-API.patch b/patches/server/0973-Fix-equipment-slot-and-group-API.patch similarity index 96% rename from patches/server/0974-Fix-equipment-slot-and-group-API.patch rename to patches/server/0973-Fix-equipment-slot-and-group-API.patch index 05b6eafa06..a843a57c9f 100644 --- a/patches/server/0974-Fix-equipment-slot-and-group-API.patch +++ b/patches/server/0973-Fix-equipment-slot-and-group-API.patch @@ -52,10 +52,10 @@ index 9d74577af071954e1e37201a96368c1360076209..eafa54c870c3e2aef30c3f9f96f51660 throw new IllegalArgumentException("Not implemented. This is a bug"); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index a9acbb181dd72238b63fb08fda1b3bc0d246e36e..d87bfdda1f06a94e97465c105d28989e1d64e1e0 100644 +index 18d2531bade0bdd3da7116679b38a687c2f664ca..5a3162740b572f55431fbe3d9d41c5cb38ad338d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -1441,7 +1441,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1448,7 +1448,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (this.attributeModifiers == null) return LinkedHashMultimap.create(); // Paper - don't change the components SetMultimap result = LinkedHashMultimap.create(); for (Map.Entry entry : this.attributeModifiers.entries()) { @@ -64,7 +64,7 @@ index a9acbb181dd72238b63fb08fda1b3bc0d246e36e..d87bfdda1f06a94e97465c105d28989e result.put(entry.getKey(), entry.getValue()); } } -@@ -1515,9 +1515,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1522,9 +1522,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { while (iter.hasNext()) { Map.Entry entry = iter.next(); diff --git a/patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch b/patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch similarity index 97% rename from patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch rename to patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch index 980c3dc8a0..8b39d13b43 100644 --- a/patches/server/0975-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch +++ b/patches/server/0974-Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow Bukkit plugin to use Paper PluginLoader API diff --git a/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java b/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java -index f9d4b33050a6fe8c2dabe8e5eec075d95dc513e0..dc106685ecb483c33c06e4f83eda27be58251aad 100644 +index f871a329eb52da077f58d0ceaaabd3349f84cad0..21a0a4e29c0eb1b4f7dc89ad3df481ca89dbf1a4 100644 --- a/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java +++ b/src/main/java/io/papermc/paper/plugin/loader/PaperClasspathBuilder.java @@ -41,15 +41,7 @@ public class PaperClasspathBuilder implements PluginClasspathBuilder { @@ -76,7 +76,7 @@ index 75a2b687d58d76b94f8bec111df8613f120ff74b..0fd1040ed376f19c6d5326767baaf304 throw ex; } catch (Throwable ex) { diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java b/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java -index fdb52ad85cfaa1d53aadcad72cec3d3c8c12c058..38075b7348ad7ca3cfece2bfae63e0cce827c694 100644 +index 1bf0fa1530b8e5f94d726d0313b7a00f675b500c..9edf79dffd2836b40d41da4437c18d6145853f89 100644 --- a/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java +++ b/src/main/java/io/papermc/paper/plugin/provider/type/spigot/SpigotPluginProviderFactory.java @@ -1,9 +1,18 @@ diff --git a/patches/server/0976-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0976-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0977-Prevent-NPE-if-hooked-entity-was-cleared.patch b/patches/server/0976-Prevent-NPE-if-hooked-entity-was-cleared.patch similarity index 100% rename from patches/server/0977-Prevent-NPE-if-hooked-entity-was-cleared.patch rename to patches/server/0976-Prevent-NPE-if-hooked-entity-was-cleared.patch diff --git a/patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch b/patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch similarity index 94% rename from patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch rename to patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch index 8af7943ca8..42e5eac389 100644 --- a/patches/server/0978-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch +++ b/patches/server/0977-Fix-cancelling-BlockPlaceEvent-calling-onRemove.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cancelling BlockPlaceEvent calling onRemove diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8309d2f7872ccdbc9d76f0fbf481411f74080148..de32bf4947af8d2ec64e8799580a129b038dd35e 100644 +index f9a4bebb321207abb00b1af1c17ebda623cc950e..bb28e35c0d53fcc0145518123795d54ff59514a8 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -494,9 +494,11 @@ public final class ItemStack implements DataComponentHolder { @@ -21,7 +21,7 @@ index 8309d2f7872ccdbc9d76f0fbf481411f74080148..de32bf4947af8d2ec64e8799580a129b // Brute force all possible updates diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c6c9400fa155831ab11d0f059971d0123617e622..e27d3547d1e19c137e05e6b8d075127a8bafb237 100644 +index a2877f3eb206ab9ccb93e3606f1c9b3401def5d6..e5abde76c354c3dd9940dd4e5ae3fe8b6a2b4680 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -151,6 +151,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0979-Add-missing-fishing-event-state.patch b/patches/server/0978-Add-missing-fishing-event-state.patch similarity index 100% rename from patches/server/0979-Add-missing-fishing-event-state.patch rename to patches/server/0978-Add-missing-fishing-event-state.patch diff --git a/patches/server/0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch b/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch similarity index 100% rename from patches/server/0980-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch rename to patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch diff --git a/patches/server/0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch b/patches/server/0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch similarity index 100% rename from patches/server/0981-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch rename to patches/server/0980-Fix-sending-disconnect-packet-in-phases-where-it-doe.patch diff --git a/patches/server/0982-Adopt-MaterialRerouting.patch b/patches/server/0981-Adopt-MaterialRerouting.patch similarity index 100% rename from patches/server/0982-Adopt-MaterialRerouting.patch rename to patches/server/0981-Adopt-MaterialRerouting.patch diff --git a/patches/server/0983-Suspicious-Effect-Entry-API.patch b/patches/server/0982-Suspicious-Effect-Entry-API.patch similarity index 100% rename from patches/server/0983-Suspicious-Effect-Entry-API.patch rename to patches/server/0982-Suspicious-Effect-Entry-API.patch diff --git a/patches/server/0984-check-if-itemstack-is-stackable-first.patch b/patches/server/0983-check-if-itemstack-is-stackable-first.patch similarity index 100% rename from patches/server/0984-check-if-itemstack-is-stackable-first.patch rename to patches/server/0983-check-if-itemstack-is-stackable-first.patch diff --git a/patches/server/0985-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0984-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0985-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0984-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0986-Configurable-damage-tick-when-blocking-with-shield.patch b/patches/server/0985-Configurable-damage-tick-when-blocking-with-shield.patch similarity index 100% rename from patches/server/0986-Configurable-damage-tick-when-blocking-with-shield.patch rename to patches/server/0985-Configurable-damage-tick-when-blocking-with-shield.patch diff --git a/patches/server/0987-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/server/0986-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/server/0987-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/server/0986-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/server/0988-Moonrise-optimisation-patches.patch b/patches/server/0987-Moonrise-optimisation-patches.patch similarity index 99% rename from patches/server/0988-Moonrise-optimisation-patches.patch rename to patches/server/0987-Moonrise-optimisation-patches.patch index 8e70453dec..f027d72f2c 100644 --- a/patches/server/0988-Moonrise-optimisation-patches.patch +++ b/patches/server/0987-Moonrise-optimisation-patches.patch @@ -28981,10 +28981,10 @@ index d775ab8b0d37797f29e650842191d40691fb7afc..a7108b2be0746aa1f0e574d8c6f5ffad public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) {} diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a28472dd49a6 100644 +index f2036917c5ba9f536087d7ee559704055469730e..d0109633e8bdf109cfc9178963d7b6cf92f8b189 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -762,7 +762,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -763,7 +763,7 @@ public abstract class BlockBehaviour implements FeatureElement { boolean test(BlockState state, BlockGetter world, BlockPos pos); } @@ -28993,7 +28993,7 @@ index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a284 private final int lightEmission; private final boolean useShapeForLightOcclusion; -@@ -794,6 +794,76 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -795,6 +795,76 @@ public abstract class BlockBehaviour implements FeatureElement { private FluidState fluidState; private boolean isRandomlyTicking; @@ -29070,7 +29070,7 @@ index fe7dc02ea55c2bcd39d12bfd4d315f0b8c7014c3..ded6d148110fe3fbb6272ce44582a284 protected BlockStateBase(Block block, Reference2ObjectArrayMap, Comparable> propertyMap, MapCodec codec) { super(block, propertyMap, codec); this.fluidState = Fluids.EMPTY.defaultFluidState(); -@@ -858,6 +928,43 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -859,6 +929,43 @@ public abstract class BlockBehaviour implements FeatureElement { this.shapeExceedsCube = this.cache == null || this.cache.largeCollisionShape; // Paper - moved from actual method to here this.legacySolid = this.calculateSolid(); diff --git a/patches/server/0989-Rewrite-dataconverter-system.patch b/patches/server/0988-Rewrite-dataconverter-system.patch similarity index 100% rename from patches/server/0989-Rewrite-dataconverter-system.patch rename to patches/server/0988-Rewrite-dataconverter-system.patch diff --git a/patches/server/0990-disable-forced-empty-world-ticks.patch b/patches/server/0989-disable-forced-empty-world-ticks.patch similarity index 100% rename from patches/server/0990-disable-forced-empty-world-ticks.patch rename to patches/server/0989-disable-forced-empty-world-ticks.patch diff --git a/patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 98% rename from patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch index ed5debe49c..3046e40be7 100644 --- a/patches/server/0991-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch +++ b/patches/server/0990-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch @@ -29,7 +29,7 @@ index 02367ef1371dde94ff6c4cd40bd32e800d6ccaaf..7b0fc7135bc107103dcaed6dc0707b18 this.x = x; this.y = y; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a016fb2140d6a43172c3fbc623b23f6d57798d9e..5b893b93a3495b13ae266fb8054d0a454cf02660 100644 +index 347334130e99dbf938d570bd36440a96f92d475a..c69ed3e899fc8d48afeb731bb3b2d97b5969e6e3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -824,7 +824,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl diff --git a/patches/server/0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/server/0992-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/0991-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 98% rename from patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch index 23a10511a6..38ce2a6066 100644 --- a/patches/server/0993-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch +++ b/patches/server/0992-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch @@ -62,7 +62,7 @@ index bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3..0fa131a6c98adb498fc8d534e0e39647 default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { // Paper start - Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5b893b93a3495b13ae266fb8054d0a454cf02660..77b7c252d27f527d9b51e8419abe7af1d4b51d29 100644 +index c69ed3e899fc8d48afeb731bb3b2d97b5969e6e3..574175449af5b767f28e95ff8708ed37fedf4c7d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -816,10 +816,87 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl diff --git a/patches/server/0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/0994-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0993-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/0995-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0994-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/0995-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/0994-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/0996-Flat-bedrock-generator-settings.patch b/patches/server/0995-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0996-Flat-bedrock-generator-settings.patch rename to patches/server/0995-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0997-Entity-Activation-Range-2.0.patch b/patches/server/0996-Entity-Activation-Range-2.0.patch similarity index 100% rename from patches/server/0997-Entity-Activation-Range-2.0.patch rename to patches/server/0996-Entity-Activation-Range-2.0.patch diff --git a/patches/server/0998-Optional-per-player-mob-spawns.patch b/patches/server/0997-Optional-per-player-mob-spawns.patch similarity index 100% rename from patches/server/0998-Optional-per-player-mob-spawns.patch rename to patches/server/0997-Optional-per-player-mob-spawns.patch diff --git a/patches/server/0999-Anti-Xray.patch b/patches/server/0998-Anti-Xray.patch similarity index 100% rename from patches/server/0999-Anti-Xray.patch rename to patches/server/0998-Anti-Xray.patch diff --git a/patches/server/1000-Eigencraft-redstone-implementation.patch b/patches/server/0999-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1000-Eigencraft-redstone-implementation.patch rename to patches/server/0999-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1001-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1000-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/1001-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1000-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/server/1002-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/1001-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/server/1003-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1002-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/1003-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1002-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/1004-Optimize-Collision-to-not-load-chunks.patch b/patches/server/1003-Optimize-Collision-to-not-load-chunks.patch similarity index 100% rename from patches/server/1004-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/1003-Optimize-Collision-to-not-load-chunks.patch diff --git a/patches/server/1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/1005-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/1004-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/1006-Optimize-Hoppers.patch b/patches/server/1005-Optimize-Hoppers.patch similarity index 94% rename from patches/server/1006-Optimize-Hoppers.patch rename to patches/server/1005-Optimize-Hoppers.patch index dc55a79c71..4d6c370ff4 100644 --- a/patches/server/1006-Optimize-Hoppers.patch +++ b/patches/server/1005-Optimize-Hoppers.patch @@ -62,7 +62,7 @@ index 4a4ce372dd105d07f58d7d93d856cb3969969806..fb3dcce4e1888f96fdd260740d9d9559 this.profiler.push(() -> { String s = String.valueOf(worldserver); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index de32bf4947af8d2ec64e8799580a129b038dd35e..0f2b3c5ca88478a541bf9e61ae61cc99a7d08836 100644 +index bb28e35c0d53fcc0145518123795d54ff59514a8..3254124180df02d787202f4b00a4c52d40c6e7cf 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -809,10 +809,16 @@ public final class ItemStack implements DataComponentHolder { @@ -105,7 +105,7 @@ index cd3b952a228c09077c2e74183a34ddb32811280b..c0563260277f9f4bd9ff08993b2efb4b } diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500fe7350ce 100644 +index 542a5501ac94f57810d34e0f769a9a7855604f91..cab403efd471bb61835224eea4e99570d34dcaaa 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -156,6 +156,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen @@ -370,7 +370,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 private static boolean ejectItems(Level world, BlockPos pos, HopperBlockEntity blockEntity) { Container iinventory = HopperBlockEntity.getAttachedContainer(world, pos, blockEntity); -@@ -209,48 +443,51 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -209,52 +443,55 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (HopperBlockEntity.isFullContainer(iinventory, enumdirection)) { return false; } else { @@ -400,6 +400,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 - blockEntity.setCooldown(world.spigotConfig.hopperTransfer); // Delay hopper checks // Spigot - return false; - } +- int origCount = event.getItem().getAmount(); // Spigot - ItemStack itemstack1 = HopperBlockEntity.addItem(blockEntity, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection); - // CraftBukkit end - @@ -409,7 +410,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 - } - - itemstack.setCount(j); -- if (j == 1) { +- // Spigot start +- itemstack.shrink(origCount - itemstack1.getCount()); +- if (j <= world.spigotConfig.hopperAmount) { +- // Spigot end - blockEntity.setItem(i, itemstack); - } - } @@ -444,6 +448,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 + // blockEntity.setCooldown(world.spigotConfig.hopperTransfer); // Delay hopper checks // Spigot + // return false; + // } ++ // int origCount = event.getItem().getAmount(); // Spigot + // ItemStack itemstack1 = HopperBlockEntity.addItem(blockEntity, iinventory, CraftItemStack.asNMSCopy(event.getItem()), enumdirection); + // // CraftBukkit end + @@ -453,7 +458,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 + // } + + // itemstack.setCount(j); -+ // if (j == 1) { ++ // // Spigot start ++ // itemstack.shrink(origCount - itemstack1.getCount()); ++ // if (j <= world.spigotConfig.hopperAmount) { ++ // // Spigot end + // blockEntity.setItem(i, itemstack); + // } + // } @@ -464,7 +472,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 } } } -@@ -301,7 +538,6 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -305,7 +542,6 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen return false; } } @@ -472,7 +480,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 return true; } -@@ -312,6 +548,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -316,6 +552,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (iinventory != null) { Direction enumdirection = Direction.DOWN; @@ -480,7 +488,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 int[] aint = HopperBlockEntity.getSlots(iinventory, enumdirection); int i = aint.length; -@@ -347,45 +584,48 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -351,49 +588,52 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen ItemStack itemstack = iinventory.getItem(i); if (!itemstack.isEmpty() && HopperBlockEntity.canTakeItemFromContainer(ihopper, iinventory, itemstack, i, enumdirection)) { @@ -511,6 +519,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 - - return false; - } +- int origCount = event.getItem().getAmount(); // Spigot - ItemStack itemstack1 = HopperBlockEntity.addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null); - // CraftBukkit end - @@ -520,7 +529,10 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 - } - - itemstack.setCount(j); -- if (j == 1) { +- // Spigot start +- itemstack.shrink(origCount - itemstack1.getCount()); +- if (j <= world.spigotConfig.hopperAmount) { +- // Spigot end - iinventory.setItem(i, itemstack); - } + // Paper start - Perf: Optimize Hoppers @@ -552,6 +564,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 + + // return false; + // } ++ // int origCount = event.getItem().getAmount(); // Spigot + // ItemStack itemstack1 = HopperBlockEntity.addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null); + // // CraftBukkit end + @@ -561,14 +574,17 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 + // } + + // itemstack.setCount(j); -+ // if (j == 1) { ++ // // Spigot start ++ // itemstack.shrink(origCount - itemstack1.getCount()); ++ // if (j <= world.spigotConfig.hopperAmount) { ++ // // Spigot end + // iinventory.setItem(i, itemstack); + // } + // Paper end - Perf: Optimize Hoppers } return false; -@@ -394,12 +634,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -402,12 +642,14 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen public static boolean addItem(Container inventory, ItemEntity itemEntity) { boolean flag = false; // CraftBukkit start @@ -584,7 +600,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 ItemStack itemstack = itemEntity.getItem().copy(); ItemStack itemstack1 = HopperBlockEntity.addItem((Container) null, inventory, itemstack, (Direction) null); -@@ -493,7 +735,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -501,7 +743,9 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen stack = stack.split(to.getMaxStackSize()); } // Spigot end @@ -594,7 +610,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 stack = leftover; // Paper - Make hoppers respect inventory max stack size flag = true; } else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) { -@@ -573,14 +817,20 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -581,14 +825,20 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen @Nullable public static Container getContainerAt(Level world, BlockPos pos) { @@ -617,7 +633,7 @@ index 0d6132abd49d66fbf84c046e09144cb33651be15..53f9d28bf3c6aafd4fdd6c12e0285500 iinventory = HopperBlockEntity.getEntityContainer(world, x, y, z); } -@@ -615,13 +865,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -623,13 +873,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen @Nullable private static Container getEntityContainer(Level world, double x, double y, double z) { diff --git a/patches/server/1007-Entity-load-save-limit-per-chunk.patch b/patches/server/1006-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/1007-Entity-load-save-limit-per-chunk.patch rename to patches/server/1006-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/1008-Optimize-Voxel-Shape-Merging.patch b/patches/server/1007-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/1008-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1007-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/1009-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1008-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1009-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1008-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1010-Remove-streams-from-hot-code.patch b/patches/server/1009-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1010-Remove-streams-from-hot-code.patch rename to patches/server/1009-Remove-streams-from-hot-code.patch diff --git a/patches/server/1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1011-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1010-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1012-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1011-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1013-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1012-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1013-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1012-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1014-Handle-Oversized-block-entities-in-chunks.patch b/patches/server/1013-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from patches/server/1014-Handle-Oversized-block-entities-in-chunks.patch rename to patches/server/1013-Handle-Oversized-block-entities-in-chunks.patch diff --git a/patches/server/1015-API-for-checking-sent-chunks.patch b/patches/server/1014-API-for-checking-sent-chunks.patch similarity index 100% rename from patches/server/1015-API-for-checking-sent-chunks.patch rename to patches/server/1014-API-for-checking-sent-chunks.patch diff --git a/patches/server/1016-Check-distance-in-entity-interactions.patch b/patches/server/1015-Check-distance-in-entity-interactions.patch similarity index 100% rename from patches/server/1016-Check-distance-in-entity-interactions.patch rename to patches/server/1015-Check-distance-in-entity-interactions.patch diff --git a/patches/server/1017-Configurable-Sand-Duping.patch b/patches/server/1016-Configurable-Sand-Duping.patch similarity index 100% rename from patches/server/1017-Configurable-Sand-Duping.patch rename to patches/server/1016-Configurable-Sand-Duping.patch diff --git a/patches/server/1018-Optimise-general-POI-access.patch b/patches/server/1017-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/1018-Optimise-general-POI-access.patch rename to patches/server/1017-Optimise-general-POI-access.patch diff --git a/patches/server/1019-Improve-performance-of-mass-crafts.patch b/patches/server/1018-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1019-Improve-performance-of-mass-crafts.patch rename to patches/server/1018-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1020-Properly-resend-entities.patch b/patches/server/1019-Properly-resend-entities.patch similarity index 100% rename from patches/server/1020-Properly-resend-entities.patch rename to patches/server/1019-Properly-resend-entities.patch diff --git a/patches/server/1021-Registry-Modification-API.patch b/patches/server/1020-Registry-Modification-API.patch similarity index 99% rename from patches/server/1021-Registry-Modification-API.patch rename to patches/server/1020-Registry-Modification-API.patch index 8c55ac4526..f478968684 100644 --- a/patches/server/1021-Registry-Modification-API.patch +++ b/patches/server/1020-Registry-Modification-API.patch @@ -9,7 +9,7 @@ public net.minecraft.resources.RegistryOps lookupProvider public net.minecraft.resources.RegistryOps$HolderLookupAdapter diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java -index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c3893c7960d6 100644 +index 675f5d03478907e3d8284cbea191f01c1eb15769..32ade3ed8533b127e8f5c1cc8b3466249e5444a3 100644 --- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java +++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java @@ -2,6 +2,7 @@ package io.papermc.paper.registry; @@ -20,7 +20,7 @@ index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c389 import java.util.Collections; import java.util.IdentityHashMap; import java.util.List; -@@ -54,6 +55,7 @@ import org.checkerframework.framework.qual.DefaultQualifier; +@@ -56,6 +57,7 @@ import org.checkerframework.framework.qual.DefaultQualifier; import static io.papermc.paper.registry.entry.RegistryEntry.apiOnly; import static io.papermc.paper.registry.entry.RegistryEntry.entry; @@ -28,7 +28,7 @@ index ead718efde812846fefec3e86d896fef7deb3d97..722e3786f5b36f9b9ccff4028a58c389 @DefaultQualifier(NonNull.class) public final class PaperRegistries { -@@ -136,6 +138,15 @@ public final class PaperRegistries { +@@ -138,6 +140,15 @@ public final class PaperRegistries { return ResourceKey.create((ResourceKey>) PaperRegistries.registryToNms(typedKey.registryKey()), PaperAdventure.asVanilla(typedKey.key())); } @@ -1311,10 +1311,10 @@ index 397bdacab9517354875ebc0bc68d35059b3c318b..908431652a0fea79b5a0cee1efd0c7a7 return writableRegistry; }, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -index fc9aec589414bf8d3f672183928235b5b51d1a02..0f3c46b8bb93fc42160300c9988d04bed68f493b 100644 +index c2824cc07b761958a0df4b110bdfc53bd853b9e7..cacbb35d365c66881f2a42d099bb88c494b584ee 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java -@@ -163,11 +163,11 @@ public class CraftRegistry implements Registry { +@@ -165,11 +165,11 @@ public class CraftRegistry implements Registry { private final Map cache = new HashMap<>(); private final Map byValue = new java.util.IdentityHashMap<>(); // Paper - improve Registry private final net.minecraft.core.Registry minecraftRegistry; @@ -1328,7 +1328,7 @@ index fc9aec589414bf8d3f672183928235b5b51d1a02..0f3c46b8bb93fc42160300c9988d04be this.bukkitClass = bukkitClass; this.minecraftRegistry = minecraftRegistry; this.minecraftToBukkit = minecraftToBukkit; -@@ -240,4 +240,17 @@ public class CraftRegistry implements Registry { +@@ -242,4 +242,17 @@ public class CraftRegistry implements Registry { return this.byValue.get(value); } // Paper end - improve Registry diff --git a/patches/server/1022-Add-registry-entry-and-builders.patch b/patches/server/1021-Add-registry-entry-and-builders.patch similarity index 98% rename from patches/server/1022-Add-registry-entry-and-builders.patch rename to patches/server/1021-Add-registry-entry-and-builders.patch index cbb53a94e4..ff658dd1be 100644 --- a/patches/server/1022-Add-registry-entry-and-builders.patch +++ b/patches/server/1021-Add-registry-entry-and-builders.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add registry entry and builders diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java -index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d4a0f4ee5 100644 +index 32ade3ed8533b127e8f5c1cc8b3466249e5444a3..6ec9d9b9acf557aa2ebf39d38a14225b0205fae1 100644 --- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java +++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java @@ -1,6 +1,8 @@ @@ -17,7 +17,7 @@ index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d import io.papermc.paper.registry.entry.RegistryEntry; import io.papermc.paper.registry.tag.TagKey; import java.util.Collections; -@@ -66,7 +68,7 @@ public final class PaperRegistries { +@@ -68,7 +70,7 @@ public final class PaperRegistries { static { REGISTRY_ENTRIES = List.of( // built-ins @@ -26,15 +26,15 @@ index 722e3786f5b36f9b9ccff4028a58c3893c7960d6..745536f79b376c385247682042ae455d entry(Registries.INSTRUMENT, RegistryKey.INSTRUMENT, MusicInstrument.class, CraftMusicInstrument::new), entry(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, PotionEffectType.class, CraftPotionEffectType::new), entry(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, StructureType.class, CraftStructureType::new), -@@ -84,7 +86,7 @@ public final class PaperRegistries { +@@ -86,7 +88,7 @@ public final class PaperRegistries { entry(Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, TrimPattern.class, CraftTrimPattern::new).delayed(), entry(Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE, DamageType.class, CraftDamageType::new).delayed(), entry(Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, Wolf.Variant.class, CraftWolf.CraftVariant::new).delayed(), - entry(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(), + writable(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, Enchantment.class, CraftEnchantment::new, PaperEnchantmentRegistryEntry.PaperBuilder::new).withSerializationUpdater(FieldRename.ENCHANTMENT_RENAME).delayed(), entry(Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, JukeboxSong.class, CraftJukeboxSong::new).delayed(), + entry(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, PatternType.class, CraftPatternType::new).delayed(), - // api-only diff --git a/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java b/src/main/java/io/papermc/paper/registry/data/PaperEnchantmentRegistryEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..b9501554a0738776c265852184c7dbae3fe98c8c diff --git a/patches/server/1023-Improved-Watchdog-Support.patch b/patches/server/1022-Improved-Watchdog-Support.patch similarity index 100% rename from patches/server/1023-Improved-Watchdog-Support.patch rename to patches/server/1022-Improved-Watchdog-Support.patch diff --git a/patches/server/1024-Proxy-ItemStack-to-CraftItemStack.patch b/patches/server/1023-Proxy-ItemStack-to-CraftItemStack.patch similarity index 100% rename from patches/server/1024-Proxy-ItemStack-to-CraftItemStack.patch rename to patches/server/1023-Proxy-ItemStack-to-CraftItemStack.patch diff --git a/patches/server/1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch b/patches/server/1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch similarity index 100% rename from patches/server/1025-Make-a-PDC-view-accessible-directly-from-ItemStack.patch rename to patches/server/1024-Make-a-PDC-view-accessible-directly-from-ItemStack.patch diff --git a/patches/server/1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch b/patches/server/1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch similarity index 100% rename from patches/server/1026-Prioritize-Minecraft-commands-in-function-parsing-an.patch rename to patches/server/1025-Prioritize-Minecraft-commands-in-function-parsing-an.patch diff --git a/patches/server/1027-optimize-dirt-and-snow-spreading.patch b/patches/server/1026-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1027-optimize-dirt-and-snow-spreading.patch rename to patches/server/1026-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1028-Fix-NPE-for-Jukebox-setRecord.patch b/patches/server/1027-Fix-NPE-for-Jukebox-setRecord.patch similarity index 100% rename from patches/server/1028-Fix-NPE-for-Jukebox-setRecord.patch rename to patches/server/1027-Fix-NPE-for-Jukebox-setRecord.patch diff --git a/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch b/patches/server/1028-Fix-CraftWorld-isChunkGenerated.patch similarity index 100% rename from patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch rename to patches/server/1028-Fix-CraftWorld-isChunkGenerated.patch diff --git a/patches/server/1030-fix-horse-inventories.patch b/patches/server/1029-fix-horse-inventories.patch similarity index 100% rename from patches/server/1030-fix-horse-inventories.patch rename to patches/server/1029-fix-horse-inventories.patch diff --git a/patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch b/patches/server/1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch similarity index 100% rename from patches/server/1031-Only-call-EntityDamageEvents-before-actuallyHurt.patch rename to patches/server/1030-Only-call-EntityDamageEvents-before-actuallyHurt.patch diff --git a/patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch b/patches/server/1031-Fix-entity-tracker-desync-when-new-players-are-added.patch similarity index 100% rename from patches/server/1032-Fix-entity-tracker-desync-when-new-players-are-added.patch rename to patches/server/1031-Fix-entity-tracker-desync-when-new-players-are-added.patch diff --git a/patches/server/1033-Lag-compensation-ticks.patch b/patches/server/1032-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1033-Lag-compensation-ticks.patch rename to patches/server/1032-Lag-compensation-ticks.patch diff --git a/patches/server/1034-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1033-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/1034-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1033-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/1035-Write-SavedData-IO-async.patch b/patches/server/1034-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1035-Write-SavedData-IO-async.patch rename to patches/server/1034-Write-SavedData-IO-async.patch diff --git a/patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch b/patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch similarity index 95% rename from patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch rename to patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch index 6637cd6cd0..5dd198b395 100644 --- a/patches/server/1036-Correctly-call-PlayerItemBreakEvent.patch +++ b/patches/server/1035-Correctly-call-PlayerItemBreakEvent.patch @@ -17,7 +17,7 @@ stack to not disrupt potential new vanilla changes that might depend on this behaviour. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 0f2b3c5ca88478a541bf9e61ae61cc99a7d08836..2c312c0b741fb96a008881e9e01fa660a1fb63ab 100644 +index 3254124180df02d787202f4b00a4c52d40c6e7cf..d1340691d508c21c15237ec4a4626e9219d7c4f7 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -731,8 +731,10 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/1037-Add-ItemType-getItemRarity.patch b/patches/server/1036-Add-ItemType-getItemRarity.patch similarity index 100% rename from patches/server/1037-Add-ItemType-getItemRarity.patch rename to patches/server/1036-Add-ItemType-getItemRarity.patch diff --git a/patches/server/1038-Incremental-chunk-and-player-saving.patch b/patches/server/1037-Incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/1038-Incremental-chunk-and-player-saving.patch rename to patches/server/1037-Incremental-chunk-and-player-saving.patch diff --git a/patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/1039-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1038-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/1042-Bundle-spark.patch b/patches/server/1039-Bundle-spark.patch similarity index 100% rename from patches/server/1042-Bundle-spark.patch rename to patches/server/1039-Bundle-spark.patch diff --git a/patches/server/1043-Add-plugin-info-at-startup.patch b/patches/server/1040-Add-plugin-info-at-startup.patch similarity index 100% rename from patches/server/1043-Add-plugin-info-at-startup.patch rename to patches/server/1040-Add-plugin-info-at-startup.patch diff --git a/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch b/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch deleted file mode 100644 index 3e85c7f987..0000000000 --- a/patches/server/1040-Move-CraftComplexRecipe-to-extend-CraftingRecipe.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bjarne Koll -Date: Fri, 19 Jul 2024 17:27:38 +0200 -Subject: [PATCH] Move CraftComplexRecipe to extend CraftingRecipe - -A craft complex recipe wraps a CustomRecipe, which itself is a -CraftingRecipe. -As such, this complex recipe should also be a crafting recipe. - -diff --git a/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java b/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java -index b57a2ba09f160409b5df9a2ae7ec159af3e4bf93..69a7e500c725e9da950df30f2cc4ff5f72e527d0 100644 ---- a/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java -+++ b/src/main/java/net/minecraft/world/item/crafting/CustomRecipe.java -@@ -34,7 +34,12 @@ public abstract class CustomRecipe implements CraftingRecipe { - // CraftBukkit start - @Override - public Recipe toBukkitRecipe(NamespacedKey id) { -- return new org.bukkit.craftbukkit.inventory.CraftComplexRecipe(id, this); -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start -+ final org.bukkit.craftbukkit.inventory.CraftComplexRecipe recipe = new org.bukkit.craftbukkit.inventory.CraftComplexRecipe(id, this); -+ recipe.setGroup(this.getGroup()); -+ recipe.setCategory(org.bukkit.craftbukkit.inventory.CraftRecipe.getCategory(this.category())); -+ return recipe; -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end - } - // CraftBukkit end - } -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java -index dcaeaa3367351eb54e2cf8e62be19ecc125a4bb4..05f42ec6177218960b22dc2c224f63cbf37d696f 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftComplexRecipe.java -@@ -9,12 +9,17 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey; - import org.bukkit.inventory.ComplexRecipe; - import org.bukkit.inventory.ItemStack; - --public class CraftComplexRecipe implements CraftRecipe, ComplexRecipe { -+public class CraftComplexRecipe extends org.bukkit.inventory.CraftingRecipe implements CraftRecipe, ComplexRecipe { // Paper - make CraftComplexRecipe extend CraftingRecipe - - private final NamespacedKey key; - private final CustomRecipe recipe; - - public CraftComplexRecipe(NamespacedKey key, CustomRecipe recipe) { -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - start -+ super(); -+ super.key = key; -+ super.output = ItemStack.empty(); -+ // Paper - make CraftComplexRecipe extend CraftingRecipe - end - this.key = key; - this.recipe = recipe; - } diff --git a/patches/server/1041-Add-CrafterCraftEvent.patch b/patches/server/1041-Add-CrafterCraftEvent.patch deleted file mode 100644 index 28eb5f5746..0000000000 --- a/patches/server/1041-Add-CrafterCraftEvent.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: ploppyperson -Date: Thu, 18 Jul 2024 16:38:48 +0200 -Subject: [PATCH] Add CrafterCraftEvent - -While not a one-to-one copy from the proposed commit upstream, -the patch calls the preemtively pulled CrafterCraftEvent. - -See: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/pull-requests/1450/overview - -diff --git a/src/main/java/net/minecraft/world/level/block/CrafterBlock.java b/src/main/java/net/minecraft/world/level/block/CrafterBlock.java -index 6c24b25a7c8ce6e34aceb5702f1a0a6732ebca44..391a6af36d4c27a04000b31583297a25b89125d3 100644 ---- a/src/main/java/net/minecraft/world/level/block/CrafterBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/CrafterBlock.java -@@ -163,6 +163,16 @@ public class CrafterBlock extends BaseEntityBlock { - } else { - RecipeHolder recipeHolder = optional.get(); - ItemStack itemStack = recipeHolder.value().assemble(var11, world.registryAccess()); -+ // Paper start - call CrafterCraftEvent -+ final org.bukkit.event.block.CrafterCraftEvent event = new org.bukkit.event.block.CrafterCraftEvent( -+ org.bukkit.craftbukkit.block.CraftBlock.at(world, pos), -+ (org.bukkit.inventory.CraftingRecipe) recipeHolder.toBukkitRecipe(), -+ org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack) -+ ); -+ if (!event.callEvent()) return; -+ -+ itemStack = org.bukkit.craftbukkit.inventory.CraftItemStack.unwrap(event.getResult()); -+ // Paper end - call CrafterCraftEvent - if (itemStack.isEmpty()) { - world.levelEvent(1050, pos, 0); - } else { diff --git a/patches/server/1044-Make-interaction-leniency-distance-configurable.patch b/patches/server/1041-Make-interaction-leniency-distance-configurable.patch similarity index 100% rename from patches/server/1044-Make-interaction-leniency-distance-configurable.patch rename to patches/server/1041-Make-interaction-leniency-distance-configurable.patch diff --git a/patches/server/1045-Fix-PickupStatus-getting-reset.patch b/patches/server/1042-Fix-PickupStatus-getting-reset.patch similarity index 100% rename from patches/server/1045-Fix-PickupStatus-getting-reset.patch rename to patches/server/1042-Fix-PickupStatus-getting-reset.patch diff --git a/patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch b/patches/server/1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch similarity index 100% rename from patches/server/1046-Check-for-block-type-in-SculkSensorBlock-canActivate.patch rename to patches/server/1043-Check-for-block-type-in-SculkSensorBlock-canActivate.patch diff --git a/work/Bukkit b/work/Bukkit index 3a3bea5205..2ec53f498e 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 3a3bea52057e094e4060239ad8a5ce16cf4c8dcb +Subproject commit 2ec53f498e32b3af989cb24672fc54dfab087154 diff --git a/work/CraftBukkit b/work/CraftBukkit index 403accd563..8ee6fd1b8d 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 403accd56333f091f4ef8b5f870591785e26cdfe +Subproject commit 8ee6fd1b8db9896590aa321d0199453de1fc35db diff --git a/work/Spigot b/work/Spigot index 5bbef5ad33..fb8fb722a3 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 5bbef5ad33ea0f6a5f743ce123b385d3d22ff3f9 +Subproject commit fb8fb722a327a2f9f097f2ded700ac5de8157408 From 4d7cef34181162e301365ada2d0a3e98b4a7cc88 Mon Sep 17 00:00:00 2001 From: Joo200 Date: Fri, 9 Aug 2024 22:57:55 +0200 Subject: [PATCH 06/23] Fix source of knockback for spigot events (#11176) --- .../0202-Add-entity-knockback-events.patch | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/patches/server/0202-Add-entity-knockback-events.patch b/patches/server/0202-Add-entity-knockback-events.patch index 19f7aa3388..f6ab3bd4fe 100644 --- a/patches/server/0202-Add-entity-knockback-events.patch +++ b/patches/server/0202-Add-entity-knockback-events.patch @@ -38,7 +38,7 @@ index fd49b9d739b1bbab8cf110659cb83bad03b56102..a2b727dea997ed0d7b1ef677a94b5957 } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cccc60602360f25f0aeddbd16dad2bb63a1728a8..bf1b8ee85551ff1989369268edf8012758b86fd7 100644 +index cccc60602360f25f0aeddbd16dad2bb63a1728a8..ada79af49d1cafe25ca6c1fb456e1c4c3a42cb73 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1528,7 +1528,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -80,7 +80,7 @@ index cccc60602360f25f0aeddbd16dad2bb63a1728a8..bf1b8ee85551ff1989369268edf80127 + // Paper start - knockback events + Vec3 finalVelocity = new Vec3(vec3d.x / 2.0D - vec3d1.x, this.onGround() ? Math.min(0.4D, vec3d.y / 2.0D + d0) : vec3d.y, vec3d.z / 2.0D - vec3d1.z); + Vec3 diff = finalVelocity.subtract(vec3d); -+ io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) this.getBukkitEntity(), attacker, cause, d0, diff); ++ io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) this.getBukkitEntity(), attacker, attacker, cause, d0, diff); + // Paper end - knockback events if (event.isCancelled()) { return; @@ -251,7 +251,7 @@ index de2bc78415ab4efb651030be6560d9c9778a1d17..1e00df3fa3c3b61daa3d59ee1173269a public abstract void explode(Vec3 pos); diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 6476c644d3da824c5ee4190cb45cde678ff1188f..a5f4ecb96c508b94a92a43c864c075f6c61e296e 100644 +index 6476c644d3da824c5ee4190cb45cde678ff1188f..b216140a8be65e210250358af8daf49344850f20 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -297,13 +297,10 @@ public class Explosion { @@ -266,7 +266,7 @@ index 6476c644d3da824c5ee4190cb45cde678ff1188f..a5f4ecb96c508b94a92a43c864c075f6 - // want the vector to be the relative velocity will the event provides the absolute velocity - vec3d1 = (event.isCancelled()) ? Vec3.ZERO : new Vec3(event.getFinalKnockback().getX(), event.getFinalKnockback().getY(), event.getFinalKnockback().getZ()).subtract(entity.getDeltaMovement()); + // Paper start - knockback events -+ io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) entity.getBukkitEntity(), this.damageSource.getEntity() != null ? this.damageSource.getEntity() : this.source, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.EXPLOSION, d13, vec3d1); ++ io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) entity.getBukkitEntity(), this.source, this.damageSource.getEntity() != null ? this.damageSource.getEntity() : this.source, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.EXPLOSION, d13, vec3d1); + vec3d1 = event.isCancelled() ? Vec3.ZERO : org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getKnockback()); + // Paper end - knockback events } @@ -282,33 +282,33 @@ index cfdabb93c2d30845af9108552ed9bee9929250ce..e1b7bd5c23ba79b84ad257b7fb45e251 - public static EntityKnockbackEvent callEntityKnockbackEvent(CraftLivingEntity entity, Entity attacker, EntityKnockbackEvent.KnockbackCause cause, double force, Vec3 raw, double x, double y, double z) { - Vector bukkitRaw = new Vector(-raw.x, raw.y, -raw.z); // Due to how the knockback calculation works, we need to invert x and z. -- -- EntityKnockbackEvent event; + // Paper start - replace knockback events -+ public static io.papermc.paper.event.entity.EntityKnockbackEvent callEntityKnockbackEvent(CraftLivingEntity entity, Entity attacker, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause cause, double force, Vec3 knockback) { ++ public static io.papermc.paper.event.entity.EntityKnockbackEvent callEntityKnockbackEvent(CraftLivingEntity entity, Entity pusher, Entity attacker, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause cause, double force, Vec3 knockback) { + Vector apiKnockback = CraftVector.toBukkit(knockback); + + final Vector currentVelocity = entity.getVelocity(); + final Vector legacyFinalKnockback = currentVelocity.clone().add(apiKnockback); + final org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause legacyCause = org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause.valueOf(cause.name()); + EntityKnockbackEvent legacyEvent; - if (attacker != null) { -- event = new EntityKnockbackByEntityEvent(entity, attacker.getBukkitEntity(), cause, force, new Vector(-raw.x, raw.y, -raw.z), new Vector(x, y, z)); -+ legacyEvent = new EntityKnockbackByEntityEvent(entity, attacker.getBukkitEntity(), legacyCause, force, apiKnockback, legacyFinalKnockback); - } else { -- event = new EntityKnockbackEvent(entity, cause, force, new Vector(-raw.x, raw.y, -raw.z), new Vector(x, y, z)); ++ if (pusher != null) { ++ legacyEvent = new EntityKnockbackByEntityEvent(entity, pusher.getBukkitEntity(), legacyCause, force, apiKnockback, legacyFinalKnockback); ++ } else { + legacyEvent = new EntityKnockbackEvent(entity, legacyCause, force, apiKnockback, legacyFinalKnockback); - } ++ } + legacyEvent.callEvent(); -- Bukkit.getPluginManager().callEvent(event); +- EntityKnockbackEvent event; + final io.papermc.paper.event.entity.EntityKnockbackEvent event; + apiKnockback = legacyEvent.getFinalKnockback().subtract(currentVelocity); -+ if (attacker != null) { + if (attacker != null) { +- event = new EntityKnockbackByEntityEvent(entity, attacker.getBukkitEntity(), cause, force, new Vector(-raw.x, raw.y, -raw.z), new Vector(x, y, z)); + event = new com.destroystokyo.paper.event.entity.EntityKnockbackByEntityEvent(entity, attacker.getBukkitEntity(), cause, (float) force, apiKnockback); -+ } else { + } else { +- event = new EntityKnockbackEvent(entity, cause, force, new Vector(-raw.x, raw.y, -raw.z), new Vector(x, y, z)); + event = new io.papermc.paper.event.entity.EntityKnockbackEvent(entity, cause, apiKnockback); -+ } + } +- +- Bukkit.getPluginManager().callEvent(event); + event.setCancelled(legacyEvent.isCancelled()); + event.callEvent(); return event; From b1b5d4c1e4b7c95afd5c932ca392bee66533a60c Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 10 Aug 2024 11:55:08 +0200 Subject: [PATCH 07/23] Check shooter in configurable projectile relative velocity patch --- ...figurable-projectile-relative-velocity.patch | 17 ++++++++++++----- patches/server/0677-More-Projectile-API.patch | 6 +++--- ...-look-changes-from-crashing-the-server.patch | 6 +++--- .../1042-Fix-PickupStatus-getting-reset.patch | 4 ++-- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/patches/server/0295-Configurable-projectile-relative-velocity.patch b/patches/server/0295-Configurable-projectile-relative-velocity.patch index 9406e01b81..1616b1c050 100644 --- a/patches/server/0295-Configurable-projectile-relative-velocity.patch +++ b/patches/server/0295-Configurable-projectile-relative-velocity.patch @@ -25,15 +25,22 @@ P3) Solutions for 1) and especially 2) might not be future-proof, while this server-internal fix makes this change future-proof. diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 30eb86b52f00cfa61af4f93aca50ffc3547c95e8..7863625d49baa13ea87f2ee295b16706071fb960 100644 +index 30eb86b52f00cfa61af4f93aca50ffc3547c95e8..19452d1e591afc06675d57bbebae963517ab7217 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -183,7 +183,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -182,8 +182,14 @@ public abstract class Projectile extends Entity implements TraceableEntity { + this.shoot((double) f5, (double) f6, (double) f7, speed, divergence); Vec3 vec3d = shooter.getKnownMovement(); - -- this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z)); -+ if (!shooter.level().paperConfig().misc.disableRelativeProjectileVelocity) this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z)); // Paper - allow disabling relative velocity +- ++ // Paper start - allow disabling relative velocity ++ if (vec3d.lengthSqr() > 4D * 4D) { ++ vec3d = vec3d.normalize().scale(2D); ++ } ++ if (!shooter.level().paperConfig().misc.disableRelativeProjectileVelocity) { + this.setDeltaMovement(this.getDeltaMovement().add(vec3d.x, shooter.onGround() ? 0.0D : vec3d.y, vec3d.z)); ++ } ++ // Paper end - allow disabling relative velocity } // CraftBukkit start - call projectile hit event diff --git a/patches/server/0677-More-Projectile-API.patch b/patches/server/0677-More-Projectile-API.patch index 1fb8d2e9f1..3d4ddc9624 100644 --- a/patches/server/0677-More-Projectile-API.patch +++ b/patches/server/0677-More-Projectile-API.patch @@ -50,10 +50,10 @@ index 5b7734020b496ade3740d92908ad2d399bfd55e6..e70ca1b2e6fbbc1f20e65429298d01b4 public boolean calculateOpenWater(BlockPos pos) { FishingHook.OpenWaterType entityfishinghook_waterposition = FishingHook.OpenWaterType.INVALID; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 7863625d49baa13ea87f2ee295b16706071fb960..ff6007bbf8361db7967b6bf621b27a1d23102e77 100644 +index 19452d1e591afc06675d57bbebae963517ab7217..bc65321aee27192c40428ac6f58ccec0f0cdc2ee 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -187,7 +187,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -193,7 +193,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { } // CraftBukkit start - call projectile hit event @@ -713,7 +713,7 @@ index e374b9f40eddca13b30855d25a2030f8df98138f..4fc893378fb0568ddcffc7593d66df6b // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 4180b86620aa18a95e0793f646515779801a343e..ffc55cf79d0e7f90ba2816d7604477f018d75ecd 100644 +index 48f320333fa859796f4fff01f721fda903238197..9c85cbc65bf7e1f539f12644ed391c98118c08d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -841,19 +841,19 @@ public class CraftEventFactory { diff --git a/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch index 592bb75b03..93357dd58b 100644 --- a/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch +++ b/patches/server/0737-Stop-large-look-changes-from-crashing-the-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Stop large look changes from crashing the server Co-authored-by: Jaren Knodel diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fa9512da351ef92a8606b3e68ee060dac4c63346..e6335a55d87444d56d6f20dfc51cc4fc797de2cf 100644 +index 4a9abb2457b175c640d1e59de161fa2370053613..9c8e23f92a4cf902b060af4ce74777753e32f207 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3158,37 +3158,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,10 +54,10 @@ index fa9512da351ef92a8606b3e68ee060dac4c63346..e6335a55d87444d56d6f20dfc51cc4fc this.level().getProfiler().pop(); this.animStep += f2; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index ff6007bbf8361db7967b6bf621b27a1d23102e77..d147f3cc1af28c384005c1c20e37bb588588c88d 100644 +index bc65321aee27192c40428ac6f58ccec0f0cdc2ee..dd53501d39113c4b0b5950bad70a5c667c0781c5 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -310,13 +310,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -316,13 +316,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { } protected static float lerpRotation(float prevRot, float newRot) { diff --git a/patches/server/1042-Fix-PickupStatus-getting-reset.patch b/patches/server/1042-Fix-PickupStatus-getting-reset.patch index 795972058b..2a772419ce 100644 --- a/patches/server/1042-Fix-PickupStatus-getting-reset.patch +++ b/patches/server/1042-Fix-PickupStatus-getting-reset.patch @@ -24,10 +24,10 @@ index ddf47dab1ab92c45e3eea09239d418a9798ed59e..9ca29b3d4bf8bca5f51f3644e12fcbec byte b0 = 0; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 5f7d152f41eb85f17bcded4bc8099b998e5a338b..a01c0d9ae53d1b748c5da914069bd672cb1215c7 100644 +index 4b71538d5e921af89c4b13200484d4767e4dd6f9..de64de5d1328d3e0826c9990eb7c7eca5088cb9c 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -237,7 +237,13 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -243,7 +243,13 @@ public abstract class Projectile extends Entity implements TraceableEntity { public boolean deflect(ProjectileDeflection deflection, @Nullable Entity deflector, @Nullable Entity owner, boolean fromAttack) { if (!this.level().isClientSide) { deflection.deflect(this, deflector, this.random); From 83b6b26d39e2fd9f9dfe7713e70cd28f5080b17a Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 10 Aug 2024 12:24:38 +0200 Subject: [PATCH 08/23] Update to 1.21.1 --- README.md | 4 ++-- build.gradle.kts | 2 +- gradle.properties | 4 ++-- patches/api/0001-Convert-project-to-Gradle.patch | 4 ++-- patches/server/0001-Setup-Gradle-project.patch | 4 ++-- patches/server/0009-MC-Utils.patch | 8 ++++---- patches/server/0010-Adventure.patch | 8 ++++---- patches/server/0023-Timings-v2.patch | 12 ++++++------ ...Prevent-block-entity-and-entity-crashes.patch | 14 +++++++------- .../0062-Add-exception-reporting-event.patch | 6 +++--- ...-to-get-a-BlockState-without-a-snapshot.patch | 12 ++++++------ ...626-Fix-upstreams-block-state-factories.patch | 4 ++-- .../0707-Sanitize-sent-BlockEntity-NBT.patch | 4 ++-- ...ument-suggestion-permissions-to-align-w.patch | 6 +++--- ...of-invalid-block-entity-during-world-ge.patch | 4 ++-- patches/server/0966-General-ItemMeta-fixes.patch | 4 ++-- .../0971-Brigadier-based-command-API.patch | 6 +++--- ...ng-oversized-item-data-in-equipment-and.patch | 14 +++++++------- .../0987-Moonrise-optimisation-patches.patch | 16 ++++++++-------- patches/server/1005-Optimize-Hoppers.patch | 4 ++-- ...tity-type-tags-suggestions-in-selectors.patch | 14 +++++--------- .../server/1022-Improved-Watchdog-Support.patch | 4 ++-- work/BuildData | 2 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 26 files changed, 81 insertions(+), 85 deletions(-) diff --git a/README.md b/README.md index 0da22f4faa..062f378c86 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ How To (Plugin Developers) io.papermc.paper paper-api - 1.21-R0.1-SNAPSHOT + 1.21.1-R0.1-SNAPSHOT provided ``` @@ -53,7 +53,7 @@ repositories { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.21-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT") } java { diff --git a/build.gradle.kts b/build.gradle.kts index 5a2840e06e..95035067be 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -67,7 +67,7 @@ repositories { } dependencies { - paramMappings("net.fabricmc:yarn:1.21+build.1:mergedv2") + paramMappings("net.fabricmc:yarn:1.21.1+build.3:mergedv2") remapper("net.fabricmc:tiny-remapper:0.10.3:fat") decompiler("org.vineflower:vineflower:1.10.1") spigotDecompiler("io.papermc:patched-spigot-fernflower:0.1+build.13") diff --git a/gradle.properties b/gradle.properties index 7aa001f7cc..4d595c30f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ group=io.papermc.paper -version=1.21-R0.1-SNAPSHOT -mcVersion=1.21 +version=1.21.1-R0.1-SNAPSHOT +mcVersion=1.21.1 # Set to true while updating Minecraft version updatingMinecraft=false diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch index aa54057aba..339ca372f0 100644 --- a/patches/api/0001-Convert-project-to-Gradle.patch +++ b/patches/api/0001-Convert-project-to-Gradle.patch @@ -124,7 +124,7 @@ index 0000000000000000000000000000000000000000..6271e2bad0ed937c2c46a8c8fdf186c4 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 86628114c1d111f6d256186ca739ba8a44b3412a..0000000000000000000000000000000000000000 +index 2c5ac393cffbe61330c5aa95115e7e906c0775d3..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,267 +0,0 @@ @@ -135,7 +135,7 @@ index 86628114c1d111f6d256186ca739ba8a44b3412a..00000000000000000000000000000000 - - org.spigotmc - spigot-api -- 1.21-R0.1-SNAPSHOT +- 1.21.1-R0.1-SNAPSHOT - jar - - Spigot-API diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 8cdbf973d7..d8dace80ea 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -160,7 +160,7 @@ index 0000000000000000000000000000000000000000..9ea079d14a92367629dc8fb30d1be043 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index e6f88c20b3a3ba28b917bea9a671b2709d32b3cd..0000000000000000000000000000000000000000 +index 5abcca1894a0d7795d394834f56c189c0bbeb82f..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,604 +0,0 @@ @@ -170,7 +170,7 @@ index e6f88c20b3a3ba28b917bea9a671b2709d32b3cd..00000000000000000000000000000000 - org.spigotmc - spigot - jar -- 1.21-R0.1-SNAPSHOT +- 1.21.1-R0.1-SNAPSHOT - Spigot - https://www.spigotmc.org/ - diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 64c984e330..1fc2a2627a 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5421,7 +5421,7 @@ index a52077f0d93c94b0ea644bc14b9b28e84fd1b154..dcc0acd259920463a4464213b9a5e793 @Nullable @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index b537e7a079497db428db405edfccde74f32f4208..c664021dbfffcf0db3247041270ce9a1ee6940de 100644 +index 5b73fcfe278f57de249f3a96da58dc08eda7aff6..25380a44e5cc94f3924cfee6a03c3091fea04ae2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -116,6 +116,10 @@ public class LevelChunk extends ChunkAccess { @@ -5480,7 +5480,7 @@ index b537e7a079497db428db405edfccde74f32f4208..c664021dbfffcf0db3247041270ce9a1 @Override public FluidState getFluidState(BlockPos pos) { return this.getFluidState(pos.getX(), pos.getY(), pos.getZ()); -@@ -549,7 +582,11 @@ public class LevelChunk extends ChunkAccess { +@@ -554,7 +587,11 @@ public class LevelChunk extends ChunkAccess { // CraftBukkit start public void loadCallback() { @@ -5492,7 +5492,7 @@ index b537e7a079497db428db405edfccde74f32f4208..c664021dbfffcf0db3247041270ce9a1 if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -590,6 +627,10 @@ public class LevelChunk extends ChunkAccess { +@@ -595,6 +632,10 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); @@ -5563,7 +5563,7 @@ index 34933c5324126f9afdc5cba9dea997ace8f01806..1cfc906317f07a44f06a4adf021c44e3 return false; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f04c0f8b3905b488aac221fedde335a54ad1ff58..7f8864da8a6f9c2410191851add1ba566b8c171c 100644 +index a094eb1348509fea0c3d253cddfe409998dcbf23..2ea3ad9ab43dec0555d6716bebefbc3bb6553f1a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2601,4 +2601,9 @@ public final class CraftServer implements Server { diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 1352a5e435..bed3f0467a 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2191,10 +2191,10 @@ index f30cdfa5fd294479e35680b2f758b3295f659b74..ec34e402104d7a696ea95e0b11ee7018 public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { this(output, pos, rot, world, level, name, displayName, server, entity, false, CommandResultCallback.EMPTY, EntityAnchorArgument.Anchor.FEET, CommandSigningContext.ANONYMOUS, TaskChainer.immediate(server)); diff --git a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -index 0047fd758ad43cc7b13355b60c410a9bcc37bec0..982b2bab27e3d55d0ba07060862c0c3183ad91b0 100644 +index 8f03eed020a99b96189f4f5d42d806d06f4d6b5e..55484826fc5ddd04ae024e25a0251796d7fa9c28 100644 --- a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -@@ -53,17 +53,21 @@ public class MessageArgument implements SignedArgument +@@ -54,17 +54,21 @@ public class MessageArgument implements SignedArgument private static void resolveSignedMessage(Consumer callback, CommandSourceStack source, PlayerChatMessage message) { MinecraftServer minecraftServer = source.getServer(); CompletableFuture completableFuture = filterPlainText(source, message); @@ -3327,7 +3327,7 @@ index 49c037e961c5ca5ba8d6a870cb32ffe8719adc91..2772c19f58a35713d61aab24f6f0d6f5 } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7f8864da8a6f9c2410191851add1ba566b8c171c..bec1fdabbc3727c1f7297b2d23914a5179f4adcb 100644 +index 2ea3ad9ab43dec0555d6716bebefbc3bb6553f1a..be068650a568fc1d0d3b9c5acd040adafb2344e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -644,8 +644,10 @@ public final class CraftServer implements Server { @@ -5589,7 +5589,7 @@ index ff040613083c015d9c52c0995591b64305fd5018..1b552b3f05ac7fc44450de4b1ec78907 boolean hadFormat = false; diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index aa6a9dcd5528df38dddc0c661334c35658a19cee..5a89b9ca6a62f0bfb5fe01ed4097870788cf5d83 100644 +index eeffc4be4ae7168c9f69edbbff6642fd4c214b3d..b64be3f292d88fa60746a3fe542740ef8ad2b41c 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -77,6 +77,43 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0023-Timings-v2.patch b/patches/server/0023-Timings-v2.patch index 0d0d81a7a8..2af23f8ad7 100644 --- a/patches/server/0023-Timings-v2.patch +++ b/patches/server/0023-Timings-v2.patch @@ -1526,7 +1526,7 @@ index d1cfcc8a36964f006f1af6764c52b5ca458b478d..def3e28edc206e0ba41111e26332db46 private String descriptionId; @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index e6c586eb85c6c477a3c130e1e1a37b41f17c30c8..6e35709f2a7c32050908e7e5af5529c9f342b787 100644 +index 6a4e5bfa70b31311a9076eb314c0a0146d5b08a5..17cda4c8b61efd99c1a43f921ed604827bb064f3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java @@ -34,10 +34,12 @@ import org.bukkit.inventory.InventoryHolder; @@ -1544,10 +1544,10 @@ index e6c586eb85c6c477a3c130e1e1a37b41f17c30c8..6e35709f2a7c32050908e7e5af5529c9 private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c664021dbfffcf0db3247041270ce9a1ee6940de..332351b78fa22cd354b916c4a29bea5b4b223e40 100644 +index 25380a44e5cc94f3924cfee6a03c3091fea04ae2..418ba374886d93f69afd614e4be05f6561e1f897 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -597,6 +597,7 @@ public class LevelChunk extends ChunkAccess { +@@ -602,6 +602,7 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { @@ -1555,7 +1555,7 @@ index c664021dbfffcf0db3247041270ce9a1ee6940de..332351b78fa22cd354b916c4a29bea5b this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -616,6 +617,7 @@ public class LevelChunk extends ChunkAccess { +@@ -621,6 +622,7 @@ public class LevelChunk extends ChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -1590,7 +1590,7 @@ index 46a090123e205394791cdbde2af84c58ce55f7e1..47f5f3d58bb3bf85cf35f9baae77df7f }; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7839e34cbd42e1b77c533b0dede42e0a19daf2a4..f2355612b497079f1de84e953c36720794da51d8 100644 +index ee63b8134b8b3187a65d2b99962cfacbee18ff9f..29bb34e9207bd6c49cfbe58d4b598dcd35b7a65c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -376,7 +376,7 @@ public final class CraftServer implements Server { @@ -1985,7 +1985,7 @@ index f97eccb6a17c7876e1e002d798eb67bbe80571a0..76effc345d362047e64d064eb64a5222 + } // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index fa2e43020fafc283a9c063d10a82280158c7f93d..9576cabff99d154ef77595b074082adf9212698d 100644 +index 6aa5b1e05893bcf61a91cb4de578d8996ca0a868..9383bf47404fca8d008d5c401ed37ddaa7bef4f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -197,6 +197,12 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0037-Prevent-block-entity-and-entity-crashes.patch b/patches/server/0037-Prevent-block-entity-and-entity-crashes.patch index 8c0b53d52b..59cb59cc0f 100644 --- a/patches/server/0037-Prevent-block-entity-and-entity-crashes.patch +++ b/patches/server/0037-Prevent-block-entity-and-entity-crashes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent block entity and entity crashes diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1702cd6aa8b4fc29b8f2539604f6e203bf95d020..e19ee11905417918c7ec142fd2016ab3f000e4e2 100644 +index 79d5423be919dfe4db75ad7dd0ce403ad0214462..e8b8475dd6fd7b89651f744da2cb9696c73ddc3e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -731,11 +731,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -26,12 +26,12 @@ index 1702cd6aa8b4fc29b8f2539604f6e203bf95d020..e19ee11905417918c7ec142fd2016ab3 } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 6e35709f2a7c32050908e7e5af5529c9f342b787..d20f71a2098b327423cbdbbc096aa9e358cb809d 100644 +index 17cda4c8b61efd99c1a43f921ed604827bb064f3..d6ad310d3b472c40c128cfb459171d9f48e50915 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -263,7 +263,12 @@ public abstract class BlockEntity { - return s + " // " + this.getClass().getCanonicalName(); - }); +@@ -272,7 +272,12 @@ public abstract class BlockEntity { + public void fillCrashReportCategory(CrashReportCategory crashReportSection) { + crashReportSection.setDetail("Name", this::getNameForReporting); if (this.level != null) { - CrashReportCategory.populateBlockDetails(crashReportSection, this.level, this.worldPosition, this.getBlockState()); + // Paper start - Prevent block entity and entity crashes @@ -44,10 +44,10 @@ index 6e35709f2a7c32050908e7e5af5529c9f342b787..d20f71a2098b327423cbdbbc096aa9e3 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 332351b78fa22cd354b916c4a29bea5b4b223e40..7bfe757b605f4e5a16b28214ac3b497e738b45b5 100644 +index 418ba374886d93f69afd614e4be05f6561e1f897..6889991885cc2075e0936b2c480befeef30d308c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -948,11 +948,11 @@ public class LevelChunk extends ChunkAccess { +@@ -953,11 +953,11 @@ public class LevelChunk extends ChunkAccess { gameprofilerfiller.pop(); } catch (Throwable throwable) { diff --git a/patches/server/0062-Add-exception-reporting-event.patch b/patches/server/0062-Add-exception-reporting-event.patch index 3efe1b1f98..36051c1835 100644 --- a/patches/server/0062-Add-exception-reporting-event.patch +++ b/patches/server/0062-Add-exception-reporting-event.patch @@ -123,10 +123,10 @@ index 6a80479554f0c860a8dd6baa1a6506858fca83e3..6324689f52363f19501143c1649f0885 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 7bfe757b605f4e5a16b28214ac3b497e738b45b5..fb953b2172c322e8abf5aa50060adbc00fe92832 100644 +index 6889991885cc2075e0936b2c480befeef30d308c..4495c5051b0c7a04d433c39d91f74cb7924d3ff2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -466,8 +466,13 @@ public class LevelChunk extends ChunkAccess { +@@ -471,8 +471,13 @@ public class LevelChunk extends ChunkAccess { BlockState iblockdata = this.getBlockState(blockposition); if (!iblockdata.hasBlockEntity()) { @@ -142,7 +142,7 @@ index 7bfe757b605f4e5a16b28214ac3b497e738b45b5..fb953b2172c322e8abf5aa50060adbc0 } else { BlockState iblockdata1 = blockEntity.getBlockState(); -@@ -951,6 +956,7 @@ public class LevelChunk extends ChunkAccess { +@@ -956,6 +961,7 @@ public class LevelChunk extends ChunkAccess { // Paper start - Prevent block entity and entity crashes final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable); diff --git a/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch index c7fd071747..b2a5f27dd2 100644 --- a/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/server/0160-API-to-get-a-BlockState-without-a-snapshot.patch @@ -13,18 +13,18 @@ also Avoid NPE during CraftBlockEntityState load if could not get TE If Tile Entity was null, correct Sign to return empty lines instead of null diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index d20f71a2098b327423cbdbbc096aa9e358cb809d..7147484eefad44ba67db03b6ef2090a596e278de 100644 +index d6ad310d3b472c40c128cfb459171d9f48e50915..48bee70ba4188a4a55beb6584224b0f23784dd88 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -58,6 +58,7 @@ public abstract class BlockEntity { - this.type = type; +@@ -59,6 +59,7 @@ public abstract class BlockEntity { this.worldPosition = pos.immutable(); + this.validateBlockState(state); this.blockState = state; + this.persistentDataContainer = new CraftPersistentDataContainer(DATA_TYPE_REGISTRY); // Paper - always init } - public static BlockPos getPosFromTag(CompoundTag nbt) { -@@ -79,7 +80,7 @@ public abstract class BlockEntity { + private void validateBlockState(BlockState state) { +@@ -92,7 +93,7 @@ public abstract class BlockEntity { // CraftBukkit start - read container protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { @@ -33,7 +33,7 @@ index d20f71a2098b327423cbdbbc096aa9e358cb809d..7147484eefad44ba67db03b6ef2090a5 net.minecraft.nbt.Tag persistentDataTag = nbt.get("PublicBukkitValues"); if (persistentDataTag instanceof CompoundTag) { -@@ -363,8 +364,15 @@ public abstract class BlockEntity { +@@ -379,8 +380,15 @@ public abstract class BlockEntity { // CraftBukkit start - add method public InventoryHolder getOwner() { diff --git a/patches/server/0626-Fix-upstreams-block-state-factories.patch b/patches/server/0626-Fix-upstreams-block-state-factories.patch index a48a6b0d09..bfb0aa8f8a 100644 --- a/patches/server/0626-Fix-upstreams-block-state-factories.patch +++ b/patches/server/0626-Fix-upstreams-block-state-factories.patch @@ -13,10 +13,10 @@ the material type of the block at that location. public net.minecraft.world.level.block.entity.BlockEntityType validBlocks diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 7147484eefad44ba67db03b6ef2090a596e278de..6f6693456cf518b7bd9eb21ba681540a40c588ef 100644 +index 48bee70ba4188a4a55beb6584224b0f23784dd88..cbb777f499a4e8a447153c04d09c0c71321c663c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -371,7 +371,7 @@ public abstract class BlockEntity { +@@ -387,7 +387,7 @@ public abstract class BlockEntity { // Paper end if (this.level == null) return null; org.bukkit.block.Block block = this.level.getWorld().getBlockAt(this.worldPosition.getX(), this.worldPosition.getY(), this.worldPosition.getZ()); diff --git a/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch index 0f97b535cc..152674ac06 100644 --- a/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch +++ b/patches/server/0707-Sanitize-sent-BlockEntity-NBT.patch @@ -30,10 +30,10 @@ index ac900dfdc5c90e9e60d47efa734be8f0a5b20dca..ec1cb034d840633240f2b379b09f7d2f } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 6f6693456cf518b7bd9eb21ba681540a40c588ef..6207c6063cd11ccb1177fe7016c49c02a3416990 100644 +index cbb777f499a4e8a447153c04d09c0c71321c663c..41f43d7d12a47563360f48a793e63db8cf92ac69 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -378,6 +378,14 @@ public abstract class BlockEntity { +@@ -394,6 +394,14 @@ public abstract class BlockEntity { } // CraftBukkit end diff --git a/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch index c42422ceca..6ec183532e 100644 --- a/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch +++ b/patches/server/0764-Fix-EntityArgument-suggestion-permissions-to-align-w.patch @@ -9,14 +9,14 @@ suggestions, which especially matters when we force suggestions to the server for this type diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index 78eca3243a276260ff26c3587fb60e17e0439af0..2043001c16b3530c2d3f52efda10bcad424881c0 100644 +index a327939abe2cce22747366051b6b7aaa2db3a8cc..a8487c18d7ef28143a7750bf096d00bcf1e67113 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -@@ -127,7 +127,12 @@ public class EntityArgument implements ArgumentType { +@@ -135,7 +135,12 @@ public class EntityArgument implements ArgumentType { StringReader stringreader = new StringReader(suggestionsbuilder.getInput()); stringreader.setCursor(suggestionsbuilder.getStart()); -- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2)); +- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, EntitySelectorParser.allowSelectors(icompletionprovider)); + // Paper start - Fix EntityArgument suggestion permissions + final boolean permission = object instanceof CommandSourceStack stack + ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") diff --git a/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch b/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch index d810be487e..8e09c4fb05 100644 --- a/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch +++ b/patches/server/0948-Fix-creation-of-invalid-block-entity-during-world-ge.patch @@ -36,10 +36,10 @@ index 682c8cfbd917c086072f1756861a340800ea40da..b26a4a38144ec1b171db911bbf949b53 nbttagcompound.putInt("x", pos.getX()); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c7be1f8fdca34bcc12ecbe40ee5f426e0cd068d7..7f8983a2102787b13e5d28d6981055da6acd1012 100644 +index 59f9ff720e92c69e11afe7f6ccecd81b0e54a74d..86eb9029969f4de3ada7be9e135e9764172b85f5 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -956,9 +956,14 @@ public class LevelChunk extends ChunkAccess { +@@ -961,9 +961,14 @@ public class LevelChunk extends ChunkAccess { if (this.blockEntity.getType().isValid(iblockdata)) { this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), iblockdata, this.blockEntity); this.loggedInvalidBlockState = false; diff --git a/patches/server/0966-General-ItemMeta-fixes.patch b/patches/server/0966-General-ItemMeta-fixes.patch index 7730aa8d80..220ff9693e 100644 --- a/patches/server/0966-General-ItemMeta-fixes.patch +++ b/patches/server/0966-General-ItemMeta-fixes.patch @@ -28,10 +28,10 @@ index ebe470ca361ec5747a843b60d82f567d41d7c9fa..f9a4bebb321207abb00b1af1c17ebda6 // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 6207c6063cd11ccb1177fe7016c49c02a3416990..cd3b952a228c09077c2e74183a34ddb32811280b 100644 +index 41f43d7d12a47563360f48a793e63db8cf92ac69..a1d7ae987327382d9566860b991dc361225c7938 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -139,6 +139,11 @@ public abstract class BlockEntity { +@@ -152,6 +152,11 @@ public abstract class BlockEntity { CompoundTag nbttagcompound = new CompoundTag(); this.saveAdditional(nbttagcompound, registryLookup); diff --git a/patches/server/0971-Brigadier-based-command-API.patch b/patches/server/0971-Brigadier-based-command-API.patch index ed16e97611..bc2d8d0321 100644 --- a/patches/server/0971-Brigadier-based-command-API.patch +++ b/patches/server/0971-Brigadier-based-command-API.patch @@ -2220,10 +2220,10 @@ index 7b86e064564d3a285e3971fd08ea6168bac0720e..e8dcbe7c6d6ed20ad19d2ba1893ad16d argumentbuilder.requires((icompletionprovider) -> { return true; diff --git a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -index 982b2bab27e3d55d0ba07060862c0c3183ad91b0..5fa8a3343ffc11e82c20b78a73205fd8a42d3c5d 100644 +index 55484826fc5ddd04ae024e25a0251796d7fa9c28..237e4f7b24908e9ade9a483eb7ae05fa3b7931d8 100644 --- a/src/main/java/net/minecraft/commands/arguments/MessageArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/MessageArgument.java -@@ -39,6 +39,11 @@ public class MessageArgument implements SignedArgument +@@ -40,6 +40,11 @@ public class MessageArgument implements SignedArgument public static void resolveChatMessage(CommandContext context, String name, Consumer callback) throws CommandSyntaxException { MessageArgument.Message message = context.getArgument(name, MessageArgument.Message.class); @@ -2400,7 +2400,7 @@ index 134f31cce8d8eca669948a784e2766216fb91ab5..60c65af218d533d53b765ba2175fed16 // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b72a71d6a37956b0f4ca74c2ed8eaf044cac4b81..6321ae23f07bc3e07577914e6cf035e0c2cd4992 100644 +index 36997d8d15c23587317b4c115726892980a9086e..43a94a67b337f40522c25cc2252a6a5e1294ca0b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -272,11 +272,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch index 077dab00a8..6a21b1b7db 100644 --- a/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -154,21 +154,21 @@ index 59c1c103545f04fd35e6932df64a9910a1d74cd7..56bde49e6b7790155b032d0be40961d5 buf.writeByte(255); } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java -index e092a486c4041ab1cfe9e29c88d0d94528a6e9a6..3945ca04ede578121b370592482ac917f2d4cf96 100644 +index 2ea7e90d582866b4e29db80836e250163d811763..d152871142d3def2ac04f50037db53b0527f7894 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java @@ -19,6 +19,13 @@ public class ClientboundSetEquipmentPacket implements Packet> slots; - public ClientboundSetEquipmentPacket(int id, List> equipmentList) { + public ClientboundSetEquipmentPacket(int entityId, List> equipmentList) { + // Paper start - data sanitization -+ this(id, equipmentList, false); ++ this(entityId, equipmentList, false); + } -+ private boolean sanitize = false; -+ public ClientboundSetEquipmentPacket(int id, List> equipmentList, boolean sanitize) { ++ private boolean sanitize; ++ public ClientboundSetEquipmentPacket(int entityId, List> equipmentList, boolean sanitize) { + this.sanitize = sanitize; + // Paper end - data sanitization - this.entity = id; + this.entity = entityId; this.slots = equipmentList; } @@ -41,6 +48,7 @@ public class ClientboundSetEquipmentPacket implements Packet { +@@ -139,7 +139,7 @@ public class EntityArgument implements ArgumentType { final boolean permission = object instanceof CommandSourceStack stack ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") : icompletionprovider.hasPermission(2); @@ -72,7 +72,7 @@ index 2043001c16b3530c2d3f52efda10bcad424881c0..7976885b902a6ce7d80f31e49448c994 // Paper end - Fix EntityArgument suggestion permissions try { -@@ -141,7 +141,19 @@ public class EntityArgument implements ArgumentType { +@@ -149,7 +149,19 @@ public class EntityArgument implements ArgumentType { } return argumentparserselector.fillSuggestions(suggestionsbuilder, (suggestionsbuilder1) -> { @@ -94,19 +94,15 @@ index 2043001c16b3530c2d3f52efda10bcad424881c0..7976885b902a6ce7d80f31e49448c994 SharedSuggestionProvider.suggest((Iterable) iterable, suggestionsbuilder1); diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -index 6b6756625f3fb1f36f940c6e31e97b84f32a9990..32b39803380456f40bafdb790eaa27efab5f06a6 100644 +index dd50a530439576f56f245ff0b7eb090f9f0c9180..1f05594d5f00b6d57ec189273edbd25f2d679d61 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -@@ -115,12 +115,19 @@ public class EntitySelectorParser { +@@ -116,8 +116,15 @@ public class EntitySelectorParser { private boolean hasScores; private boolean hasAdvancements; private boolean usesSelectors; + public boolean parsingEntityArgumentSuggestions; // Paper - tell clients to ask server for suggestions for EntityArguments - public EntitySelectorParser(StringReader reader) { - this(reader, true); - } - public EntitySelectorParser(StringReader reader, boolean atAllowed) { + // Paper start - tell clients to ask server for suggestions for EntityArguments + this(reader, atAllowed, false); diff --git a/patches/server/1022-Improved-Watchdog-Support.patch b/patches/server/1022-Improved-Watchdog-Support.patch index be44d14993..3c17cbaba2 100644 --- a/patches/server/1022-Improved-Watchdog-Support.patch +++ b/patches/server/1022-Improved-Watchdog-Support.patch @@ -341,10 +341,10 @@ index 5c4eaa6bcf20b0fcec14bd5ef76ea6f29a8613a2..e2a0487089eb5a7bdc1433e4c75f69d8 final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 8c865cd4e50ad55679a8bd89835caa40cc101f35..5453b7051337908ac1c8201827c1b5eec9e1608b 100644 +index b1a6dc25b04ab6a43e8d62378e14d88d1c60bbbe..7c11853c5090fbc4fa5b3e73a69acf166158fdec 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -1039,6 +1039,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -1044,6 +1044,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p gameprofilerfiller.pop(); } catch (Throwable throwable) { diff --git a/work/BuildData b/work/BuildData index ae1e7b1e31..533b02cd6b 160000 --- a/work/BuildData +++ b/work/BuildData @@ -1 +1 @@ -Subproject commit ae1e7b1e31cd3a3892bb05a6ccdcecc48c73c455 +Subproject commit 533b02cd6ba8dbf8c8607250b02bf2d8c36421e8 diff --git a/work/Bukkit b/work/Bukkit index 2ec53f498e..facd52d216 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 2ec53f498e32b3af989cb24672fc54dfab087154 +Subproject commit facd52d216243e2b7f90a9f4d5cc54a8f4bbcbf7 diff --git a/work/CraftBukkit b/work/CraftBukkit index 8ee6fd1b8d..b95736b13f 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 8ee6fd1b8db9896590aa321d0199453de1fc35db +Subproject commit b95736b13f776ba47322313f482c0520630c3533 diff --git a/work/Spigot b/work/Spigot index fb8fb722a3..5a6439b9ec 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit fb8fb722a327a2f9f097f2ded700ac5de8157408 +Subproject commit 5a6439b9eca2e28522873a0488e142cfc089c0fe From 306d0dfdf09eefe34028b82542a94dea606f7cbe Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 10 Aug 2024 12:43:24 +0200 Subject: [PATCH 09/23] Update generated code --- .../paper/entity/ai/VanillaGoal.java | 2 +- .../paper/registry/keys/BiomeKeys.java | 2 +- .../paper/registry/keys/DamageTypeKeys.java | 2 +- .../paper/registry/keys/EnchantmentKeys.java | 2 +- .../paper/registry/keys/GameEventKeys.java | 2 +- .../paper/registry/keys/InstrumentKeys.java | 2 +- .../paper/registry/keys/ItemTypeKeys.java | 2 +- .../paper/registry/keys/MobEffectKeys.java | 2 +- .../paper/registry/keys/StructureKeys.java | 2 +- .../registry/keys/StructureTypeKeys.java | 2 +- .../paper/registry/keys/TrimMaterialKeys.java | 2 +- .../paper/registry/keys/TrimPatternKeys.java | 2 +- .../paper/registry/keys/WolfVariantKeys.java | 2 +- .../keys/tags/EnchantmentTagKeys.java | 312 +-- .../registry/keys/tags/ItemTypeTagKeys.java | 2004 ++++++++--------- 15 files changed, 1171 insertions(+), 1171 deletions(-) diff --git a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java index 3add91218d..8f929d636f 100644 --- a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java @@ -66,7 +66,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") public interface VanillaGoal extends Goal { GoalKey RANDOM_STAND = create("random_stand", AbstractHorse.class); diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java index 9552d0bc39..70d27cf7b6 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class BiomeKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java index bc74d22dc8..b258a4422f 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class DamageTypeKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java index c3e649e05e..dd15885acd 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class EnchantmentKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java index d8246a92d3..18649e5336 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class GameEventKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java index 218932a292..79bc6c061e 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class InstrumentKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java index 47dcc09e91..5532156b2b 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class ItemTypeKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java index a6c99ef964..10e0a8ce2e 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class MobEffectKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java index d1149e828e..e53a14ca3d 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class StructureKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java index 3da18a90c5..06d5fa4d56 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class StructureTypeKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java index 8b45ea515c..c02ea8a98b 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class TrimMaterialKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java index cff40f6c97..e32d647ebd 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class TrimPatternKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java index 0da194922a..ba84940943 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class WolfVariantKeys { /** diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java index 0ddbb9fcd2..085263e66b 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java @@ -24,87 +24,9 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class EnchantmentTagKeys { - /** - * {@code #minecraft:trades/swamp_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SWAMP_SPECIAL = create(key("trades/swamp_special")); - - /** - * {@code #minecraft:trades/plains_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_PLAINS_SPECIAL = create(key("trades/plains_special")); - - /** - * {@code #minecraft:on_traded_equipment} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ON_TRADED_EQUIPMENT = create(key("on_traded_equipment")); - - /** - * {@code #minecraft:trades/desert_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_DESERT_SPECIAL = create(key("trades/desert_special")); - - /** - * {@code #minecraft:prevents_ice_melting} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_ICE_MELTING = create(key("prevents_ice_melting")); - - /** - * {@code #minecraft:trades/taiga_common} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_TAIGA_COMMON = create(key("trades/taiga_common")); - - /** - * {@code #minecraft:tradeable} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRADEABLE = create(key("tradeable")); - - /** - * {@code #minecraft:curse} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CURSE = create(key("curse")); - - /** - * {@code #minecraft:treasure} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TREASURE = create(key("treasure")); - - /** - * {@code #minecraft:prevents_infested_spawns} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_INFESTED_SPAWNS = create(key("prevents_infested_spawns")); - /** * {@code #minecraft:trades/savanna_special} * @@ -115,18 +37,60 @@ public final class EnchantmentTagKeys { public static final TagKey TRADES_SAVANNA_SPECIAL = create(key("trades/savanna_special")); /** - * {@code #minecraft:exclusive_set/riptide} + * {@code #minecraft:smelts_loot} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey EXCLUSIVE_SET_RIPTIDE = create(key("exclusive_set/riptide")); + public static final TagKey SMELTS_LOOT = create(key("smelts_loot")); /** - * {@code #minecraft:double_trade_price} + * {@code #minecraft:exclusive_set/crossbow} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey DOUBLE_TRADE_PRICE = create(key("double_trade_price")); + public static final TagKey EXCLUSIVE_SET_CROSSBOW = create(key("exclusive_set/crossbow")); + + /** + * {@code #minecraft:tradeable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRADEABLE = create(key("tradeable")); + + /** + * {@code #minecraft:exclusive_set/damage} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_DAMAGE = create(key("exclusive_set/damage")); + + /** + * {@code #minecraft:prevents_bee_spawns_when_mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_BEE_SPAWNS_WHEN_MINING = create(key("prevents_bee_spawns_when_mining")); + + /** + * {@code #minecraft:in_enchanting_table} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IN_ENCHANTING_TABLE = create(key("in_enchanting_table")); + + /** + * {@code #minecraft:treasure} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TREASURE = create(key("treasure")); + + /** + * {@code #minecraft:exclusive_set/mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_MINING = create(key("exclusive_set/mining")); /** * {@code #minecraft:trades/taiga_special} @@ -137,20 +101,6 @@ public final class EnchantmentTagKeys { @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) public static final TagKey TRADES_TAIGA_SPECIAL = create(key("trades/taiga_special")); - /** - * {@code #minecraft:smelts_loot} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SMELTS_LOOT = create(key("smelts_loot")); - - /** - * {@code #minecraft:exclusive_set/boots} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_BOOTS = create(key("exclusive_set/boots")); - /** * {@code #minecraft:trades/plains_common} * @@ -168,34 +118,77 @@ public final class EnchantmentTagKeys { public static final TagKey ON_MOB_SPAWN_EQUIPMENT = create(key("on_mob_spawn_equipment")); /** - * {@code #minecraft:trades/desert_common} + * {@code #minecraft:exclusive_set/armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_ARMOR = create(key("exclusive_set/armor")); + + /** + * {@code #minecraft:non_treasure} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey NON_TREASURE = create(key("non_treasure")); + + /** + * {@code #minecraft:trades/snow_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_DESERT_COMMON = create(key("trades/desert_common")); + public static final TagKey TRADES_SNOW_SPECIAL = create(key("trades/snow_special")); /** - * {@code #minecraft:exclusive_set/mining} + * {@code #minecraft:trades/plains_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey EXCLUSIVE_SET_MINING = create(key("exclusive_set/mining")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_PLAINS_SPECIAL = create(key("trades/plains_special")); /** - * {@code #minecraft:tooltip_order} + * {@code #minecraft:trades/jungle_common} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey TOOLTIP_ORDER = create(key("tooltip_order")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_JUNGLE_COMMON = create(key("trades/jungle_common")); /** - * {@code #minecraft:prevents_decorated_pot_shattering} + * {@code #minecraft:trades/jungle_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey PREVENTS_DECORATED_POT_SHATTERING = create(key("prevents_decorated_pot_shattering")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_JUNGLE_SPECIAL = create(key("trades/jungle_special")); + + /** + * {@code #minecraft:trades/savanna_common} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_SAVANNA_COMMON = create(key("trades/savanna_common")); + + /** + * {@code #minecraft:curse} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CURSE = create(key("curse")); + + /** + * {@code #minecraft:prevents_infested_spawns} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_INFESTED_SPAWNS = create(key("prevents_infested_spawns")); /** * {@code #minecraft:exclusive_set/bow} @@ -212,84 +205,52 @@ public final class EnchantmentTagKeys { public static final TagKey ON_RANDOM_LOOT = create(key("on_random_loot")); /** - * {@code #minecraft:exclusive_set/armor} + * {@code #minecraft:exclusive_set/boots} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey EXCLUSIVE_SET_ARMOR = create(key("exclusive_set/armor")); + public static final TagKey EXCLUSIVE_SET_BOOTS = create(key("exclusive_set/boots")); /** - * {@code #minecraft:trades/jungle_common} + * {@code #minecraft:trades/taiga_common} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_JUNGLE_COMMON = create(key("trades/jungle_common")); + public static final TagKey TRADES_TAIGA_COMMON = create(key("trades/taiga_common")); /** - * {@code #minecraft:in_enchanting_table} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IN_ENCHANTING_TABLE = create(key("in_enchanting_table")); - - /** - * {@code #minecraft:trades/swamp_common} + * {@code #minecraft:trades/desert_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SWAMP_COMMON = create(key("trades/swamp_common")); + public static final TagKey TRADES_DESERT_SPECIAL = create(key("trades/desert_special")); /** - * {@code #minecraft:trades/snow_special} + * {@code #minecraft:exclusive_set/riptide} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_RIPTIDE = create(key("exclusive_set/riptide")); + + /** + * {@code #minecraft:trades/swamp_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SNOW_SPECIAL = create(key("trades/snow_special")); + public static final TagKey TRADES_SWAMP_SPECIAL = create(key("trades/swamp_special")); /** - * {@code #minecraft:non_treasure} + * {@code #minecraft:prevents_ice_melting} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey NON_TREASURE = create(key("non_treasure")); - - /** - * {@code #minecraft:trades/jungle_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_JUNGLE_SPECIAL = create(key("trades/jungle_special")); - - /** - * {@code #minecraft:prevents_bee_spawns_when_mining} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_BEE_SPAWNS_WHEN_MINING = create(key("prevents_bee_spawns_when_mining")); - - /** - * {@code #minecraft:exclusive_set/damage} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_DAMAGE = create(key("exclusive_set/damage")); - - /** - * {@code #minecraft:trades/savanna_common} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SAVANNA_COMMON = create(key("trades/savanna_common")); + public static final TagKey PREVENTS_ICE_MELTING = create(key("prevents_ice_melting")); /** * {@code #minecraft:trades/snow_common} @@ -301,11 +262,50 @@ public final class EnchantmentTagKeys { public static final TagKey TRADES_SNOW_COMMON = create(key("trades/snow_common")); /** - * {@code #minecraft:exclusive_set/crossbow} + * {@code #minecraft:on_traded_equipment} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey EXCLUSIVE_SET_CROSSBOW = create(key("exclusive_set/crossbow")); + public static final TagKey ON_TRADED_EQUIPMENT = create(key("on_traded_equipment")); + + /** + * {@code #minecraft:double_trade_price} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DOUBLE_TRADE_PRICE = create(key("double_trade_price")); + + /** + * {@code #minecraft:trades/swamp_common} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_SWAMP_COMMON = create(key("trades/swamp_common")); + + /** + * {@code #minecraft:trades/desert_common} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_DESERT_COMMON = create(key("trades/desert_common")); + + /** + * {@code #minecraft:prevents_decorated_pot_shattering} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_DECORATED_POT_SHATTERING = create(key("prevents_decorated_pot_shattering")); + + /** + * {@code #minecraft:tooltip_order} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TOOLTIP_ORDER = create(key("tooltip_order")); private EnchantmentTagKeys() { } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java index 9efe93fdec..98441a5943 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.NotNull; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21") +@GeneratedFrom("1.21.1") @ApiStatus.Experimental public final class ItemTypeTagKeys { /** @@ -33,160 +33,6 @@ public final class ItemTypeTagKeys { */ public static final TagKey WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates")); - /** - * {@code #minecraft:terracotta} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TERRACOTTA = create(key("terracotta")); - - /** - * {@code #minecraft:doors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DOORS = create(key("doors")); - - /** - * {@code #minecraft:enchantable/sharp_weapon} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_SHARP_WEAPON = create(key("enchantable/sharp_weapon")); - - /** - * {@code #minecraft:enchantable/chest_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_CHEST_ARMOR = create(key("enchantable/chest_armor")); - - /** - * {@code #minecraft:fox_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FOX_FOOD = create(key("fox_food")); - - /** - * {@code #minecraft:fence_gates} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FENCE_GATES = create(key("fence_gates")); - - /** - * {@code #minecraft:shovels} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SHOVELS = create(key("shovels")); - - /** - * {@code #minecraft:enchantable/vanishing} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_VANISHING = create(key("enchantable/vanishing")); - - /** - * {@code #minecraft:trim_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIM_MATERIALS = create(key("trim_materials")); - - /** - * {@code #minecraft:sniffer_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SNIFFER_FOOD = create(key("sniffer_food")); - - /** - * {@code #minecraft:compasses} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COMPASSES = create(key("compasses")); - - /** - * {@code #minecraft:dyeable} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DYEABLE = create(key("dyeable")); - - /** - * {@code #minecraft:strider_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STRIDER_FOOD = create(key("strider_food")); - - /** - * {@code #minecraft:soul_fire_base_blocks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SOUL_FIRE_BASE_BLOCKS = create(key("soul_fire_base_blocks")); - - /** - * {@code #minecraft:cherry_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHERRY_LOGS = create(key("cherry_logs")); - - /** - * {@code #minecraft:enchantable/sword} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_SWORD = create(key("enchantable/sword")); - - /** - * {@code #minecraft:oak_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey OAK_LOGS = create(key("oak_logs")); - - /** - * {@code #minecraft:goat_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey GOAT_FOOD = create(key("goat_food")); - - /** - * {@code #minecraft:trimmable_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIMMABLE_ARMOR = create(key("trimmable_armor")); - - /** - * {@code #minecraft:stone_crafting_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_CRAFTING_MATERIALS = create(key("stone_crafting_materials")); - - /** - * {@code #minecraft:piglin_loved} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_LOVED = create(key("piglin_loved")); - - /** - * {@code #minecraft:logs_that_burn} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LOGS_THAT_BURN = create(key("logs_that_burn")); - /** * {@code #minecraft:bookshelf_books} * @@ -194,853 +40,6 @@ public final class ItemTypeTagKeys { */ public static final TagKey BOOKSHELF_BOOKS = create(key("bookshelf_books")); - /** - * {@code #minecraft:leaves} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LEAVES = create(key("leaves")); - - /** - * {@code #minecraft:turtle_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TURTLE_FOOD = create(key("turtle_food")); - - /** - * {@code #minecraft:stairs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STAIRS = create(key("stairs")); - - /** - * {@code #minecraft:wool_carpets} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOOL_CARPETS = create(key("wool_carpets")); - - /** - * {@code #minecraft:lectern_books} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LECTERN_BOOKS = create(key("lectern_books")); - - /** - * {@code #minecraft:enchantable/mace} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MACE = create(key("enchantable/mace")); - - /** - * {@code #minecraft:enchantable/crossbow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_CROSSBOW = create(key("enchantable/crossbow")); - - /** - * {@code #minecraft:frog_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FROG_FOOD = create(key("frog_food")); - - /** - * {@code #minecraft:strider_tempt_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STRIDER_TEMPT_ITEMS = create(key("strider_tempt_items")); - - /** - * {@code #minecraft:wooden_stairs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_STAIRS = create(key("wooden_stairs")); - - /** - * {@code #minecraft:enchantable/foot_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FOOT_ARMOR = create(key("enchantable/foot_armor")); - - /** - * {@code #minecraft:emerald_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EMERALD_ORES = create(key("emerald_ores")); - - /** - * {@code #minecraft:meat} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey MEAT = create(key("meat")); - - /** - * {@code #minecraft:piglin_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_FOOD = create(key("piglin_food")); - - /** - * {@code #minecraft:cat_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CAT_FOOD = create(key("cat_food")); - - /** - * {@code #minecraft:ignored_by_piglin_babies} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IGNORED_BY_PIGLIN_BABIES = create(key("ignored_by_piglin_babies")); - - /** - * {@code #minecraft:enchantable/head_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_HEAD_ARMOR = create(key("enchantable/head_armor")); - - /** - * {@code #minecraft:warped_stems} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WARPED_STEMS = create(key("warped_stems")); - - /** - * {@code #minecraft:villager_plantable_seeds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey VILLAGER_PLANTABLE_SEEDS = create(key("villager_plantable_seeds")); - - /** - * {@code #minecraft:completes_find_tree_tutorial} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial")); - - /** - * {@code #minecraft:pig_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIG_FOOD = create(key("pig_food")); - - /** - * {@code #minecraft:skulls} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SKULLS = create(key("skulls")); - - /** - * {@code #minecraft:swords} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SWORDS = create(key("swords")); - - /** - * {@code #minecraft:birch_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BIRCH_LOGS = create(key("birch_logs")); - - /** - * {@code #minecraft:buttons} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BUTTONS = create(key("buttons")); - - /** - * {@code #minecraft:beds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEDS = create(key("beds")); - - /** - * {@code #minecraft:fishes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FISHES = create(key("fishes")); - - /** - * {@code #minecraft:enchantable/weapon} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_WEAPON = create(key("enchantable/weapon")); - - /** - * {@code #minecraft:stone_buttons} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_BUTTONS = create(key("stone_buttons")); - - /** - * {@code #minecraft:horse_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HORSE_FOOD = create(key("horse_food")); - - /** - * {@code #minecraft:coals} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COALS = create(key("coals")); - - /** - * {@code #minecraft:cluster_max_harvestables} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CLUSTER_MAX_HARVESTABLES = create(key("cluster_max_harvestables")); - - /** - * {@code #minecraft:hanging_signs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HANGING_SIGNS = create(key("hanging_signs")); - - /** - * {@code #minecraft:beacon_payment_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEACON_PAYMENT_ITEMS = create(key("beacon_payment_items")); - - /** - * {@code #minecraft:foot_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FOOT_ARMOR = create(key("foot_armor")); - - /** - * {@code #minecraft:enchantable/durability} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_DURABILITY = create(key("enchantable/durability")); - - /** - * {@code #minecraft:sand} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SAND = create(key("sand")); - - /** - * {@code #minecraft:wooden_buttons} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_BUTTONS = create(key("wooden_buttons")); - - /** - * {@code #minecraft:hoglin_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HOGLIN_FOOD = create(key("hoglin_food")); - - /** - * {@code #minecraft:enchantable/equippable} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_EQUIPPABLE = create(key("enchantable/equippable")); - - /** - * {@code #minecraft:crimson_stems} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CRIMSON_STEMS = create(key("crimson_stems")); - - /** - * {@code #minecraft:flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FLOWERS = create(key("flowers")); - - /** - * {@code #minecraft:horse_tempt_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HORSE_TEMPT_ITEMS = create(key("horse_tempt_items")); - - /** - * {@code #minecraft:enchantable/mining_loot} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MINING_LOOT = create(key("enchantable/mining_loot")); - - /** - * {@code #minecraft:rails} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey RAILS = create(key("rails")); - - /** - * {@code #minecraft:cow_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COW_FOOD = create(key("cow_food")); - - /** - * {@code #minecraft:slabs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SLABS = create(key("slabs")); - - /** - * {@code #minecraft:bamboo_blocks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BAMBOO_BLOCKS = create(key("bamboo_blocks")); - - /** - * {@code #minecraft:boats} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BOATS = create(key("boats")); - - /** - * {@code #minecraft:jungle_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey JUNGLE_LOGS = create(key("jungle_logs")); - - /** - * {@code #minecraft:coal_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COAL_ORES = create(key("coal_ores")); - - /** - * {@code #minecraft:trapdoors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRAPDOORS = create(key("trapdoors")); - - /** - * {@code #minecraft:piglin_repellents} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_REPELLENTS = create(key("piglin_repellents")); - - /** - * {@code #minecraft:banners} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BANNERS = create(key("banners")); - - /** - * {@code #minecraft:chest_boats} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHEST_BOATS = create(key("chest_boats")); - - /** - * {@code #minecraft:acacia_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ACACIA_LOGS = create(key("acacia_logs")); - - /** - * {@code #minecraft:rabbit_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey RABBIT_FOOD = create(key("rabbit_food")); - - /** - * {@code #minecraft:gold_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey GOLD_ORES = create(key("gold_ores")); - - /** - * {@code #minecraft:small_flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SMALL_FLOWERS = create(key("small_flowers")); - - /** - * {@code #minecraft:axes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey AXES = create(key("axes")); - - /** - * {@code #minecraft:enchantable/armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_ARMOR = create(key("enchantable/armor")); - - /** - * {@code #minecraft:wooden_doors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_DOORS = create(key("wooden_doors")); - - /** - * {@code #minecraft:sheep_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SHEEP_FOOD = create(key("sheep_food")); - - /** - * {@code #minecraft:creeper_drop_music_discs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CREEPER_DROP_MUSIC_DISCS = create(key("creeper_drop_music_discs")); - - /** - * {@code #minecraft:iron_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IRON_ORES = create(key("iron_ores")); - - /** - * {@code #minecraft:armadillo_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ARMADILLO_FOOD = create(key("armadillo_food")); - - /** - * {@code #minecraft:decorated_pot_sherds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DECORATED_POT_SHERDS = create(key("decorated_pot_sherds")); - - /** - * {@code #minecraft:enchantable/leg_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_LEG_ARMOR = create(key("enchantable/leg_armor")); - - /** - * {@code #minecraft:llama_tempt_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LLAMA_TEMPT_ITEMS = create(key("llama_tempt_items")); - - /** - * {@code #minecraft:enchantable/fire_aspect} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FIRE_ASPECT = create(key("enchantable/fire_aspect")); - - /** - * {@code #minecraft:arrows} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ARROWS = create(key("arrows")); - - /** - * {@code #minecraft:parrot_poisonous_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PARROT_POISONOUS_FOOD = create(key("parrot_poisonous_food")); - - /** - * {@code #minecraft:stone_bricks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_BRICKS = create(key("stone_bricks")); - - /** - * {@code #minecraft:noteblock_top_instruments} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey NOTEBLOCK_TOP_INSTRUMENTS = create(key("noteblock_top_instruments")); - - /** - * {@code #minecraft:fences} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FENCES = create(key("fences")); - - /** - * {@code #minecraft:walls} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WALLS = create(key("walls")); - - /** - * {@code #minecraft:breaks_decorated_pots} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots")); - - /** - * {@code #minecraft:mangrove_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey MANGROVE_LOGS = create(key("mangrove_logs")); - - /** - * {@code #minecraft:wooden_slabs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_SLABS = create(key("wooden_slabs")); - - /** - * {@code #minecraft:planks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PLANKS = create(key("planks")); - - /** - * {@code #minecraft:dampens_vibrations} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DAMPENS_VIBRATIONS = create(key("dampens_vibrations")); - - /** - * {@code #minecraft:logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LOGS = create(key("logs")); - - /** - * {@code #minecraft:dark_oak_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DARK_OAK_LOGS = create(key("dark_oak_logs")); - - /** - * {@code #minecraft:diamond_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DIAMOND_ORES = create(key("diamond_ores")); - - /** - * {@code #minecraft:spruce_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SPRUCE_LOGS = create(key("spruce_logs")); - - /** - * {@code #minecraft:camel_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CAMEL_FOOD = create(key("camel_food")); - - /** - * {@code #minecraft:chicken_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHICKEN_FOOD = create(key("chicken_food")); - - /** - * {@code #minecraft:enchantable/fishing} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FISHING = create(key("enchantable/fishing")); - - /** - * {@code #minecraft:ocelot_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey OCELOT_FOOD = create(key("ocelot_food")); - - /** - * {@code #minecraft:leg_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LEG_ARMOR = create(key("leg_armor")); - - /** - * {@code #minecraft:decorated_pot_ingredients} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DECORATED_POT_INGREDIENTS = create(key("decorated_pot_ingredients")); - - /** - * {@code #minecraft:wooden_trapdoors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_TRAPDOORS = create(key("wooden_trapdoors")); - - /** - * {@code #minecraft:trim_templates} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIM_TEMPLATES = create(key("trim_templates")); - - /** - * {@code #minecraft:wart_blocks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WART_BLOCKS = create(key("wart_blocks")); - - /** - * {@code #minecraft:llama_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LLAMA_FOOD = create(key("llama_food")); - - /** - * {@code #minecraft:enchantable/mining} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MINING = create(key("enchantable/mining")); - - /** - * {@code #minecraft:axolotl_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey AXOLOTL_FOOD = create(key("axolotl_food")); - - /** - * {@code #minecraft:lapis_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LAPIS_ORES = create(key("lapis_ores")); - - /** - * {@code #minecraft:smelts_to_glass} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SMELTS_TO_GLASS = create(key("smelts_to_glass")); - - /** - * {@code #minecraft:candles} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CANDLES = create(key("candles")); - - /** - * {@code #minecraft:wolf_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOLF_FOOD = create(key("wolf_food")); - - /** - * {@code #minecraft:copper_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COPPER_ORES = create(key("copper_ores")); - - /** - * {@code #minecraft:stone_tool_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_TOOL_MATERIALS = create(key("stone_tool_materials")); - - /** - * {@code #minecraft:tall_flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TALL_FLOWERS = create(key("tall_flowers")); - - /** - * {@code #minecraft:hoes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HOES = create(key("hoes")); - - /** - * {@code #minecraft:wooden_fences} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_FENCES = create(key("wooden_fences")); - - /** - * {@code #minecraft:non_flammable_wood} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey NON_FLAMMABLE_WOOD = create(key("non_flammable_wood")); - - /** - * {@code #minecraft:signs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SIGNS = create(key("signs")); - - /** - * {@code #minecraft:bee_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEE_FOOD = create(key("bee_food")); - - /** - * {@code #minecraft:enchantable/trident} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_TRIDENT = create(key("enchantable/trident")); - - /** - * {@code #minecraft:parrot_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PARROT_FOOD = create(key("parrot_food")); - - /** - * {@code #minecraft:saplings} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SAPLINGS = create(key("saplings")); - - /** - * {@code #minecraft:head_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HEAD_ARMOR = create(key("head_armor")); - - /** - * {@code #minecraft:chest_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHEST_ARMOR = create(key("chest_armor")); - - /** - * {@code #minecraft:freeze_immune_wearables} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FREEZE_IMMUNE_WEARABLES = create(key("freeze_immune_wearables")); - - /** - * {@code #minecraft:panda_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PANDA_FOOD = create(key("panda_food")); - - /** - * {@code #minecraft:creeper_igniters} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CREEPER_IGNITERS = create(key("creeper_igniters")); - - /** - * {@code #minecraft:wool} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOOL = create(key("wool")); - - /** - * {@code #minecraft:dirt} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DIRT = create(key("dirt")); - - /** - * {@code #minecraft:redstone_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey REDSTONE_ORES = create(key("redstone_ores")); - - /** - * {@code #minecraft:enchantable/bow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_BOW = create(key("enchantable/bow")); - /** * {@code #minecraft:anvil} * @@ -1048,6 +47,202 @@ public final class ItemTypeTagKeys { */ public static final TagKey ANVIL = create(key("anvil")); + /** + * {@code #minecraft:wooden_buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_BUTTONS = create(key("wooden_buttons")); + + /** + * {@code #minecraft:iron_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IRON_ORES = create(key("iron_ores")); + + /** + * {@code #minecraft:lapis_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LAPIS_ORES = create(key("lapis_ores")); + + /** + * {@code #minecraft:sand} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SAND = create(key("sand")); + + /** + * {@code #minecraft:rabbit_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey RABBIT_FOOD = create(key("rabbit_food")); + + /** + * {@code #minecraft:saplings} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SAPLINGS = create(key("saplings")); + + /** + * {@code #minecraft:leg_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LEG_ARMOR = create(key("leg_armor")); + + /** + * {@code #minecraft:cow_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COW_FOOD = create(key("cow_food")); + + /** + * {@code #minecraft:enchantable/weapon} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_WEAPON = create(key("enchantable/weapon")); + + /** + * {@code #minecraft:strider_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STRIDER_FOOD = create(key("strider_food")); + + /** + * {@code #minecraft:banners} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BANNERS = create(key("banners")); + + /** + * {@code #minecraft:fishes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FISHES = create(key("fishes")); + + /** + * {@code #minecraft:strider_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STRIDER_TEMPT_ITEMS = create(key("strider_tempt_items")); + + /** + * {@code #minecraft:enchantable/trident} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_TRIDENT = create(key("enchantable/trident")); + + /** + * {@code #minecraft:bee_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BEE_FOOD = create(key("bee_food")); + + /** + * {@code #minecraft:decorated_pot_sherds} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DECORATED_POT_SHERDS = create(key("decorated_pot_sherds")); + + /** + * {@code #minecraft:wool_carpets} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOOL_CARPETS = create(key("wool_carpets")); + + /** + * {@code #minecraft:acacia_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ACACIA_LOGS = create(key("acacia_logs")); + + /** + * {@code #minecraft:wart_blocks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WART_BLOCKS = create(key("wart_blocks")); + + /** + * {@code #minecraft:stairs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STAIRS = create(key("stairs")); + + /** + * {@code #minecraft:breaks_decorated_pots} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots")); + + /** + * {@code #minecraft:wool} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOOL = create(key("wool")); + + /** + * {@code #minecraft:crimson_stems} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CRIMSON_STEMS = create(key("crimson_stems")); + + /** + * {@code #minecraft:enchantable/durability} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_DURABILITY = create(key("enchantable/durability")); + + /** + * {@code #minecraft:boats} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BOATS = create(key("boats")); + + /** + * {@code #minecraft:sniffer_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SNIFFER_FOOD = create(key("sniffer_food")); + + /** + * {@code #minecraft:piglin_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_FOOD = create(key("piglin_food")); + + /** + * {@code #minecraft:logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LOGS = create(key("logs")); + /** * {@code #minecraft:pickaxes} * @@ -1055,6 +250,811 @@ public final class ItemTypeTagKeys { */ public static final TagKey PICKAXES = create(key("pickaxes")); + /** + * {@code #minecraft:piglin_loved} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_LOVED = create(key("piglin_loved")); + + /** + * {@code #minecraft:fox_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FOX_FOOD = create(key("fox_food")); + + /** + * {@code #minecraft:wolf_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOLF_FOOD = create(key("wolf_food")); + + /** + * {@code #minecraft:terracotta} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TERRACOTTA = create(key("terracotta")); + + /** + * {@code #minecraft:enchantable/bow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_BOW = create(key("enchantable/bow")); + + /** + * {@code #minecraft:lectern_books} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LECTERN_BOOKS = create(key("lectern_books")); + + /** + * {@code #minecraft:smelts_to_glass} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SMELTS_TO_GLASS = create(key("smelts_to_glass")); + + /** + * {@code #minecraft:copper_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COPPER_ORES = create(key("copper_ores")); + + /** + * {@code #minecraft:wooden_trapdoors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_TRAPDOORS = create(key("wooden_trapdoors")); + + /** + * {@code #minecraft:enchantable/armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_ARMOR = create(key("enchantable/armor")); + + /** + * {@code #minecraft:enchantable/sharp_weapon} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_SHARP_WEAPON = create(key("enchantable/sharp_weapon")); + + /** + * {@code #minecraft:non_flammable_wood} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey NON_FLAMMABLE_WOOD = create(key("non_flammable_wood")); + + /** + * {@code #minecraft:decorated_pot_ingredients} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DECORATED_POT_INGREDIENTS = create(key("decorated_pot_ingredients")); + + /** + * {@code #minecraft:enchantable/sword} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_SWORD = create(key("enchantable/sword")); + + /** + * {@code #minecraft:stone_crafting_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_CRAFTING_MATERIALS = create(key("stone_crafting_materials")); + + /** + * {@code #minecraft:hanging_signs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HANGING_SIGNS = create(key("hanging_signs")); + + /** + * {@code #minecraft:flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FLOWERS = create(key("flowers")); + + /** + * {@code #minecraft:emerald_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EMERALD_ORES = create(key("emerald_ores")); + + /** + * {@code #minecraft:chest_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHEST_ARMOR = create(key("chest_armor")); + + /** + * {@code #minecraft:buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BUTTONS = create(key("buttons")); + + /** + * {@code #minecraft:leaves} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LEAVES = create(key("leaves")); + + /** + * {@code #minecraft:sheep_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SHEEP_FOOD = create(key("sheep_food")); + + /** + * {@code #minecraft:fence_gates} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FENCE_GATES = create(key("fence_gates")); + + /** + * {@code #minecraft:horse_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HORSE_FOOD = create(key("horse_food")); + + /** + * {@code #minecraft:enchantable/fishing} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FISHING = create(key("enchantable/fishing")); + + /** + * {@code #minecraft:piglin_repellents} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_REPELLENTS = create(key("piglin_repellents")); + + /** + * {@code #minecraft:goat_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey GOAT_FOOD = create(key("goat_food")); + + /** + * {@code #minecraft:frog_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FROG_FOOD = create(key("frog_food")); + + /** + * {@code #minecraft:axolotl_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey AXOLOTL_FOOD = create(key("axolotl_food")); + + /** + * {@code #minecraft:warped_stems} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WARPED_STEMS = create(key("warped_stems")); + + /** + * {@code #minecraft:slabs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SLABS = create(key("slabs")); + + /** + * {@code #minecraft:walls} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WALLS = create(key("walls")); + + /** + * {@code #minecraft:stone_buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_BUTTONS = create(key("stone_buttons")); + + /** + * {@code #minecraft:axes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey AXES = create(key("axes")); + + /** + * {@code #minecraft:enchantable/chest_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_CHEST_ARMOR = create(key("enchantable/chest_armor")); + + /** + * {@code #minecraft:coals} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COALS = create(key("coals")); + + /** + * {@code #minecraft:noteblock_top_instruments} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey NOTEBLOCK_TOP_INSTRUMENTS = create(key("noteblock_top_instruments")); + + /** + * {@code #minecraft:beacon_payment_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BEACON_PAYMENT_ITEMS = create(key("beacon_payment_items")); + + /** + * {@code #minecraft:signs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SIGNS = create(key("signs")); + + /** + * {@code #minecraft:chest_boats} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHEST_BOATS = create(key("chest_boats")); + + /** + * {@code #minecraft:completes_find_tree_tutorial} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial")); + + /** + * {@code #minecraft:foot_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FOOT_ARMOR = create(key("foot_armor")); + + /** + * {@code #minecraft:wooden_doors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_DOORS = create(key("wooden_doors")); + + /** + * {@code #minecraft:small_flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SMALL_FLOWERS = create(key("small_flowers")); + + /** + * {@code #minecraft:diamond_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DIAMOND_ORES = create(key("diamond_ores")); + + /** + * {@code #minecraft:llama_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LLAMA_FOOD = create(key("llama_food")); + + /** + * {@code #minecraft:planks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PLANKS = create(key("planks")); + + /** + * {@code #minecraft:hoes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HOES = create(key("hoes")); + + /** + * {@code #minecraft:oak_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey OAK_LOGS = create(key("oak_logs")); + + /** + * {@code #minecraft:beds} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BEDS = create(key("beds")); + + /** + * {@code #minecraft:compasses} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COMPASSES = create(key("compasses")); + + /** + * {@code #minecraft:enchantable/vanishing} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_VANISHING = create(key("enchantable/vanishing")); + + /** + * {@code #minecraft:shovels} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SHOVELS = create(key("shovels")); + + /** + * {@code #minecraft:creeper_igniters} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CREEPER_IGNITERS = create(key("creeper_igniters")); + + /** + * {@code #minecraft:meat} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey MEAT = create(key("meat")); + + /** + * {@code #minecraft:ignored_by_piglin_babies} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IGNORED_BY_PIGLIN_BABIES = create(key("ignored_by_piglin_babies")); + + /** + * {@code #minecraft:coal_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COAL_ORES = create(key("coal_ores")); + + /** + * {@code #minecraft:enchantable/foot_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FOOT_ARMOR = create(key("enchantable/foot_armor")); + + /** + * {@code #minecraft:skulls} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SKULLS = create(key("skulls")); + + /** + * {@code #minecraft:trimmable_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIMMABLE_ARMOR = create(key("trimmable_armor")); + + /** + * {@code #minecraft:panda_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PANDA_FOOD = create(key("panda_food")); + + /** + * {@code #minecraft:dark_oak_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DARK_OAK_LOGS = create(key("dark_oak_logs")); + + /** + * {@code #minecraft:enchantable/mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MINING = create(key("enchantable/mining")); + + /** + * {@code #minecraft:dampens_vibrations} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DAMPENS_VIBRATIONS = create(key("dampens_vibrations")); + + /** + * {@code #minecraft:fences} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FENCES = create(key("fences")); + + /** + * {@code #minecraft:redstone_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey REDSTONE_ORES = create(key("redstone_ores")); + + /** + * {@code #minecraft:pig_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIG_FOOD = create(key("pig_food")); + + /** + * {@code #minecraft:doors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DOORS = create(key("doors")); + + /** + * {@code #minecraft:ocelot_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey OCELOT_FOOD = create(key("ocelot_food")); + + /** + * {@code #minecraft:cluster_max_harvestables} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CLUSTER_MAX_HARVESTABLES = create(key("cluster_max_harvestables")); + + /** + * {@code #minecraft:villager_plantable_seeds} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey VILLAGER_PLANTABLE_SEEDS = create(key("villager_plantable_seeds")); + + /** + * {@code #minecraft:jungle_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey JUNGLE_LOGS = create(key("jungle_logs")); + + /** + * {@code #minecraft:wooden_slabs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_SLABS = create(key("wooden_slabs")); + + /** + * {@code #minecraft:dyeable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DYEABLE = create(key("dyeable")); + + /** + * {@code #minecraft:trapdoors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRAPDOORS = create(key("trapdoors")); + + /** + * {@code #minecraft:swords} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SWORDS = create(key("swords")); + + /** + * {@code #minecraft:cherry_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHERRY_LOGS = create(key("cherry_logs")); + + /** + * {@code #minecraft:tall_flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TALL_FLOWERS = create(key("tall_flowers")); + + /** + * {@code #minecraft:mangrove_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey MANGROVE_LOGS = create(key("mangrove_logs")); + + /** + * {@code #minecraft:birch_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BIRCH_LOGS = create(key("birch_logs")); + + /** + * {@code #minecraft:soul_fire_base_blocks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SOUL_FIRE_BASE_BLOCKS = create(key("soul_fire_base_blocks")); + + /** + * {@code #minecraft:chicken_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHICKEN_FOOD = create(key("chicken_food")); + + /** + * {@code #minecraft:turtle_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TURTLE_FOOD = create(key("turtle_food")); + + /** + * {@code #minecraft:freeze_immune_wearables} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FREEZE_IMMUNE_WEARABLES = create(key("freeze_immune_wearables")); + + /** + * {@code #minecraft:enchantable/fire_aspect} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FIRE_ASPECT = create(key("enchantable/fire_aspect")); + + /** + * {@code #minecraft:rails} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey RAILS = create(key("rails")); + + /** + * {@code #minecraft:trim_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIM_MATERIALS = create(key("trim_materials")); + + /** + * {@code #minecraft:parrot_poisonous_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PARROT_POISONOUS_FOOD = create(key("parrot_poisonous_food")); + + /** + * {@code #minecraft:wooden_fences} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_FENCES = create(key("wooden_fences")); + + /** + * {@code #minecraft:head_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HEAD_ARMOR = create(key("head_armor")); + + /** + * {@code #minecraft:stone_bricks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_BRICKS = create(key("stone_bricks")); + + /** + * {@code #minecraft:stone_tool_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_TOOL_MATERIALS = create(key("stone_tool_materials")); + + /** + * {@code #minecraft:llama_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LLAMA_TEMPT_ITEMS = create(key("llama_tempt_items")); + + /** + * {@code #minecraft:gold_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey GOLD_ORES = create(key("gold_ores")); + + /** + * {@code #minecraft:cat_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CAT_FOOD = create(key("cat_food")); + + /** + * {@code #minecraft:trim_templates} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIM_TEMPLATES = create(key("trim_templates")); + + /** + * {@code #minecraft:hoglin_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HOGLIN_FOOD = create(key("hoglin_food")); + + /** + * {@code #minecraft:logs_that_burn} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LOGS_THAT_BURN = create(key("logs_that_burn")); + + /** + * {@code #minecraft:wooden_stairs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_STAIRS = create(key("wooden_stairs")); + + /** + * {@code #minecraft:enchantable/crossbow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_CROSSBOW = create(key("enchantable/crossbow")); + + /** + * {@code #minecraft:enchantable/mace} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MACE = create(key("enchantable/mace")); + + /** + * {@code #minecraft:arrows} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ARROWS = create(key("arrows")); + + /** + * {@code #minecraft:parrot_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PARROT_FOOD = create(key("parrot_food")); + + /** + * {@code #minecraft:bamboo_blocks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BAMBOO_BLOCKS = create(key("bamboo_blocks")); + + /** + * {@code #minecraft:horse_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HORSE_TEMPT_ITEMS = create(key("horse_tempt_items")); + + /** + * {@code #minecraft:creeper_drop_music_discs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CREEPER_DROP_MUSIC_DISCS = create(key("creeper_drop_music_discs")); + + /** + * {@code #minecraft:enchantable/equippable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_EQUIPPABLE = create(key("enchantable/equippable")); + + /** + * {@code #minecraft:camel_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CAMEL_FOOD = create(key("camel_food")); + + /** + * {@code #minecraft:enchantable/mining_loot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MINING_LOOT = create(key("enchantable/mining_loot")); + + /** + * {@code #minecraft:armadillo_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ARMADILLO_FOOD = create(key("armadillo_food")); + + /** + * {@code #minecraft:candles} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CANDLES = create(key("candles")); + + /** + * {@code #minecraft:spruce_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SPRUCE_LOGS = create(key("spruce_logs")); + + /** + * {@code #minecraft:dirt} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DIRT = create(key("dirt")); + + /** + * {@code #minecraft:enchantable/head_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_HEAD_ARMOR = create(key("enchantable/head_armor")); + + /** + * {@code #minecraft:enchantable/leg_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_LEG_ARMOR = create(key("enchantable/leg_armor")); + private ItemTypeTagKeys() { } From 70dfa467e796a0dfaf74147fe3560e07a5816054 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sat, 10 Aug 2024 15:08:00 +0200 Subject: [PATCH 10/23] Fix CraftMetaShield equality (#11232) --- patches/server/0966-General-ItemMeta-fixes.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/server/0966-General-ItemMeta-fixes.patch b/patches/server/0966-General-ItemMeta-fixes.patch index 220ff9693e..81edf89f6d 100644 --- a/patches/server/0966-General-ItemMeta-fixes.patch +++ b/patches/server/0966-General-ItemMeta-fixes.patch @@ -1388,7 +1388,7 @@ index 7f9182809f6e67ff571db0f365bc7e05f600775a..01c49df291f721bab3acb788ff2f2787 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java -index 967d8940aec0065bce496d5d7a8c73de5733bd2c..57a2dc0581d1e59ce201d84ca0c0f7606577bf4c 100644 +index 967d8940aec0065bce496d5d7a8c73de5733bd2c..e229ca6acb6dbc3185f326f6653b3d66d835a9e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java @@ -28,17 +28,29 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS @@ -1618,7 +1618,7 @@ index 967d8940aec0065bce496d5d7a8c73de5733bd2c..57a2dc0581d1e59ce201d84ca0c0f760 } if (meta instanceof CraftMetaShield that) { - return Objects.equal(this.banner, that.banner); -+ return Objects.equal(this.baseColor, that.baseColor) && Objects.equal(this.hasPatterns(), that.hasPatterns()); // Paper - general item meta fixes - decoupled base colour and patterns ++ return Objects.equal(this.baseColor, that.baseColor) && Objects.equal(this.patterns, that.patterns); // Paper - general item meta fixes - decoupled base colour and patterns } return true; } From 1cecc24cadd1ebae6299c8113d3378aaa93704c7 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sun, 11 Aug 2024 00:11:57 +0200 Subject: [PATCH 11/23] Fix tag key generator output inconsistencies (#11218) * Fix tag key generator output inconsistencies * use NonNull instead of NotNull for generated api --------- Co-authored-by: Jake Potrebic --- .../paper/entity/ai/VanillaGoal.java | 6 +- .../paper/registry/keys/BiomeKeys.java | 6 +- .../paper/registry/keys/DamageTypeKeys.java | 6 +- .../paper/registry/keys/EnchantmentKeys.java | 4 +- .../paper/registry/keys/GameEventKeys.java | 4 +- .../paper/registry/keys/InstrumentKeys.java | 4 +- .../paper/registry/keys/ItemTypeKeys.java | 4 +- .../paper/registry/keys/MobEffectKeys.java | 4 +- .../paper/registry/keys/StructureKeys.java | 6 +- .../registry/keys/StructureTypeKeys.java | 4 +- .../paper/registry/keys/TrimMaterialKeys.java | 6 +- .../paper/registry/keys/TrimPatternKeys.java | 6 +- .../paper/registry/keys/WolfVariantKeys.java | 6 +- .../keys/tags/EnchantmentTagKeys.java | 346 +-- .../registry/keys/tags/ItemTypeTagKeys.java | 1882 ++++++++--------- .../generator/types/GeneratedKeyType.java | 10 +- .../generator/types/GeneratedTagKeyType.java | 22 +- .../types/goal/MobGoalGenerator.java | 3 +- .../papermc/generator/utils/Annotations.java | 10 +- .../generator/utils/CollectingContext.java | 1 - .../papermc/generator/utils/TagCollector.java | 8 +- ...1021-Add-registry-entry-and-builders.patch | 4 +- 22 files changed, 1166 insertions(+), 1186 deletions(-) diff --git a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java index 8f929d636f..02411466bd 100644 --- a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java @@ -51,7 +51,7 @@ import org.bukkit.entity.WanderingTrader; import org.bukkit.entity.Wither; import org.bukkit.entity.Wolf; import org.bukkit.entity.Zombie; -import org.jetbrains.annotations.NotNull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Vanilla keys for Mob Goals. @@ -436,8 +436,8 @@ public interface VanillaGoal extends Goal { GoalKey ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class); - private static @NotNull GoalKey create(final @NotNull String key, - final @NotNull Class type) { + private static @NonNull GoalKey create(final @NonNull String key, + final @NonNull Class type) { return GoalKey.of(type, NamespacedKey.minecraft(key)); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java index 70d27cf7b6..f0c6abf8bf 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.block.Biome; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#BIOME}. @@ -478,13 +478,13 @@ public final class BiomeKeys { } /** - * Creates a key for {@link Biome} in a registry. + * Creates a key for {@link Biome} in the registry {@code minecraft:worldgen/biome}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.BIOME, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java index b258a4422f..9cb651fb14 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/DamageTypeKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.damage.DamageType; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#DAMAGE_TYPE}. @@ -359,13 +359,13 @@ public final class DamageTypeKeys { } /** - * Creates a key for {@link DamageType} in a registry. + * Creates a key for {@link DamageType} in the registry {@code minecraft:damage_type}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.DAMAGE_TYPE, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java index dd15885acd..8a7b691af6 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/EnchantmentKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.enchantments.Enchantment; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#ENCHANTMENT}. @@ -323,7 +323,7 @@ public final class EnchantmentKeys { private EnchantmentKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.ENCHANTMENT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java index 18649e5336..e8a8e5f89a 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.GameEvent; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#GAME_EVENT}. @@ -449,7 +449,7 @@ public final class GameEventKeys { private GameEventKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.GAME_EVENT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java index 79bc6c061e..4d59a6b6e1 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/InstrumentKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.MusicInstrument; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#INSTRUMENT}. @@ -85,7 +85,7 @@ public final class InstrumentKeys { private InstrumentKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.INSTRUMENT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java index 5532156b2b..052d129630 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/ItemTypeKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.inventory.ItemType; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#ITEM}. @@ -9360,7 +9360,7 @@ public final class ItemTypeKeys { private ItemTypeKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.ITEM, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java index 10e0a8ce2e..621705fe8a 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/MobEffectKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.potion.PotionEffectType; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#MOB_EFFECT}. @@ -302,7 +302,7 @@ public final class MobEffectKeys { private MobEffectKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.MOB_EFFECT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java index e53a14ca3d..a49c8cff2e 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.generator.structure.Structure; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#STRUCTURE}. @@ -268,13 +268,13 @@ public final class StructureKeys { } /** - * Creates a key for {@link Structure} in a registry. + * Creates a key for {@link Structure} in the registry {@code minecraft:worldgen/structure}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.STRUCTURE, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java index 06d5fa4d56..353c0fa302 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.generator.structure.StructureType; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#STRUCTURE_TYPE}. @@ -141,7 +141,7 @@ public final class StructureTypeKeys { private StructureTypeKeys() { } - private static @NotNull TypedKey create(final @NotNull Key key) { + private static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.STRUCTURE_TYPE, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java index c02ea8a98b..e75f850a31 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#TRIM_MATERIAL}. @@ -100,13 +100,13 @@ public final class TrimMaterialKeys { } /** - * Creates a key for {@link TrimMaterial} in a registry. + * Creates a key for {@link TrimMaterial} in the registry {@code minecraft:trim_material}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.TRIM_MATERIAL, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java index e32d647ebd..65d2d63e85 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.inventory.meta.trim.TrimPattern; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#TRIM_PATTERN}. @@ -156,13 +156,13 @@ public final class TrimPatternKeys { } /** - * Creates a key for {@link TrimPattern} in a registry. + * Creates a key for {@link TrimPattern} in the registry {@code minecraft:trim_pattern}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.TRIM_PATTERN, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java index ba84940943..7108d41c8d 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/WolfVariantKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; import net.kyori.adventure.key.Key; import org.bukkit.entity.Wolf; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#WOLF_VARIANT}. @@ -93,13 +93,13 @@ public final class WolfVariantKeys { } /** - * Creates a key for {@link Wolf.Variant} in a registry. + * Creates a key for {@link Wolf.Variant} in the registry {@code minecraft:wolf_variant}. * * @param key the value's key in the registry * @return a new typed key */ @ApiStatus.Experimental - public static @NotNull TypedKey create(final @NotNull Key key) { + public static @NonNull TypedKey create(final @NonNull Key key) { return TypedKey.create(RegistryKey.WOLF_VARIANT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java index 085263e66b..5d2a22742f 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java @@ -8,8 +8,8 @@ import io.papermc.paper.registry.tag.TagKey; import net.kyori.adventure.key.Key; import org.bukkit.MinecraftExperimental; import org.bukkit.enchantments.Enchantment; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#ENCHANTMENT}. @@ -28,94 +28,18 @@ import org.jetbrains.annotations.NotNull; @ApiStatus.Experimental public final class EnchantmentTagKeys { /** - * {@code #minecraft:trades/savanna_special} + * {@code #minecraft:curse} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SAVANNA_SPECIAL = create(key("trades/savanna_special")); + public static final TagKey CURSE = create(key("curse")); /** - * {@code #minecraft:smelts_loot} + * {@code #minecraft:double_trade_price} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey SMELTS_LOOT = create(key("smelts_loot")); - - /** - * {@code #minecraft:exclusive_set/crossbow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_CROSSBOW = create(key("exclusive_set/crossbow")); - - /** - * {@code #minecraft:tradeable} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRADEABLE = create(key("tradeable")); - - /** - * {@code #minecraft:exclusive_set/damage} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_DAMAGE = create(key("exclusive_set/damage")); - - /** - * {@code #minecraft:prevents_bee_spawns_when_mining} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_BEE_SPAWNS_WHEN_MINING = create(key("prevents_bee_spawns_when_mining")); - - /** - * {@code #minecraft:in_enchanting_table} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IN_ENCHANTING_TABLE = create(key("in_enchanting_table")); - - /** - * {@code #minecraft:treasure} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TREASURE = create(key("treasure")); - - /** - * {@code #minecraft:exclusive_set/mining} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_MINING = create(key("exclusive_set/mining")); - - /** - * {@code #minecraft:trades/taiga_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_TAIGA_SPECIAL = create(key("trades/taiga_special")); - - /** - * {@code #minecraft:trades/plains_common} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_PLAINS_COMMON = create(key("trades/plains_common")); - - /** - * {@code #minecraft:on_mob_spawn_equipment} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ON_MOB_SPAWN_EQUIPMENT = create(key("on_mob_spawn_equipment")); + public static final TagKey DOUBLE_TRADE_PRICE = create(key("double_trade_price")); /** * {@code #minecraft:exclusive_set/armor} @@ -124,6 +48,55 @@ public final class EnchantmentTagKeys { */ public static final TagKey EXCLUSIVE_SET_ARMOR = create(key("exclusive_set/armor")); + /** + * {@code #minecraft:exclusive_set/boots} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_BOOTS = create(key("exclusive_set/boots")); + + /** + * {@code #minecraft:exclusive_set/bow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_BOW = create(key("exclusive_set/bow")); + + /** + * {@code #minecraft:exclusive_set/crossbow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_CROSSBOW = create(key("exclusive_set/crossbow")); + + /** + * {@code #minecraft:exclusive_set/damage} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_DAMAGE = create(key("exclusive_set/damage")); + + /** + * {@code #minecraft:exclusive_set/mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_MINING = create(key("exclusive_set/mining")); + + /** + * {@code #minecraft:exclusive_set/riptide} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EXCLUSIVE_SET_RIPTIDE = create(key("exclusive_set/riptide")); + + /** + * {@code #minecraft:in_enchanting_table} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IN_ENCHANTING_TABLE = create(key("in_enchanting_table")); + /** * {@code #minecraft:non_treasure} * @@ -132,22 +105,92 @@ public final class EnchantmentTagKeys { public static final TagKey NON_TREASURE = create(key("non_treasure")); /** - * {@code #minecraft:trades/snow_special} + * {@code #minecraft:on_mob_spawn_equipment} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SNOW_SPECIAL = create(key("trades/snow_special")); + public static final TagKey ON_MOB_SPAWN_EQUIPMENT = create(key("on_mob_spawn_equipment")); /** - * {@code #minecraft:trades/plains_special} + * {@code #minecraft:on_random_loot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ON_RANDOM_LOOT = create(key("on_random_loot")); + + /** + * {@code #minecraft:on_traded_equipment} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ON_TRADED_EQUIPMENT = create(key("on_traded_equipment")); + + /** + * {@code #minecraft:prevents_bee_spawns_when_mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_BEE_SPAWNS_WHEN_MINING = create(key("prevents_bee_spawns_when_mining")); + + /** + * {@code #minecraft:prevents_decorated_pot_shattering} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_DECORATED_POT_SHATTERING = create(key("prevents_decorated_pot_shattering")); + + /** + * {@code #minecraft:prevents_ice_melting} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_ICE_MELTING = create(key("prevents_ice_melting")); + + /** + * {@code #minecraft:prevents_infested_spawns} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PREVENTS_INFESTED_SPAWNS = create(key("prevents_infested_spawns")); + + /** + * {@code #minecraft:smelts_loot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SMELTS_LOOT = create(key("smelts_loot")); + + /** + * {@code #minecraft:tooltip_order} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TOOLTIP_ORDER = create(key("tooltip_order")); + + /** + * {@code #minecraft:tradeable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRADEABLE = create(key("tradeable")); + + /** + * {@code #minecraft:trades/desert_common} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_PLAINS_SPECIAL = create(key("trades/plains_special")); + public static final TagKey TRADES_DESERT_COMMON = create(key("trades/desert_common")); + + /** + * {@code #minecraft:trades/desert_special} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_DESERT_SPECIAL = create(key("trades/desert_special")); /** * {@code #minecraft:trades/jungle_common} @@ -167,6 +210,24 @@ public final class EnchantmentTagKeys { @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) public static final TagKey TRADES_JUNGLE_SPECIAL = create(key("trades/jungle_special")); + /** + * {@code #minecraft:trades/plains_common} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_PLAINS_COMMON = create(key("trades/plains_common")); + + /** + * {@code #minecraft:trades/plains_special} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_PLAINS_SPECIAL = create(key("trades/plains_special")); + /** * {@code #minecraft:trades/savanna_common} * @@ -177,80 +238,13 @@ public final class EnchantmentTagKeys { public static final TagKey TRADES_SAVANNA_COMMON = create(key("trades/savanna_common")); /** - * {@code #minecraft:curse} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CURSE = create(key("curse")); - - /** - * {@code #minecraft:prevents_infested_spawns} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_INFESTED_SPAWNS = create(key("prevents_infested_spawns")); - - /** - * {@code #minecraft:exclusive_set/bow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_BOW = create(key("exclusive_set/bow")); - - /** - * {@code #minecraft:on_random_loot} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ON_RANDOM_LOOT = create(key("on_random_loot")); - - /** - * {@code #minecraft:exclusive_set/boots} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_BOOTS = create(key("exclusive_set/boots")); - - /** - * {@code #minecraft:trades/taiga_common} + * {@code #minecraft:trades/savanna_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_TAIGA_COMMON = create(key("trades/taiga_common")); - - /** - * {@code #minecraft:trades/desert_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_DESERT_SPECIAL = create(key("trades/desert_special")); - - /** - * {@code #minecraft:exclusive_set/riptide} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EXCLUSIVE_SET_RIPTIDE = create(key("exclusive_set/riptide")); - - /** - * {@code #minecraft:trades/swamp_special} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - @ApiStatus.Experimental - @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_SWAMP_SPECIAL = create(key("trades/swamp_special")); - - /** - * {@code #minecraft:prevents_ice_melting} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PREVENTS_ICE_MELTING = create(key("prevents_ice_melting")); + public static final TagKey TRADES_SAVANNA_SPECIAL = create(key("trades/savanna_special")); /** * {@code #minecraft:trades/snow_common} @@ -262,18 +256,13 @@ public final class EnchantmentTagKeys { public static final TagKey TRADES_SNOW_COMMON = create(key("trades/snow_common")); /** - * {@code #minecraft:on_traded_equipment} + * {@code #minecraft:trades/snow_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey ON_TRADED_EQUIPMENT = create(key("on_traded_equipment")); - - /** - * {@code #minecraft:double_trade_price} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DOUBLE_TRADE_PRICE = create(key("double_trade_price")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_SNOW_SPECIAL = create(key("trades/snow_special")); /** * {@code #minecraft:trades/swamp_common} @@ -285,39 +274,50 @@ public final class EnchantmentTagKeys { public static final TagKey TRADES_SWAMP_COMMON = create(key("trades/swamp_common")); /** - * {@code #minecraft:trades/desert_common} + * {@code #minecraft:trades/swamp_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ @ApiStatus.Experimental @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) - public static final TagKey TRADES_DESERT_COMMON = create(key("trades/desert_common")); + public static final TagKey TRADES_SWAMP_SPECIAL = create(key("trades/swamp_special")); /** - * {@code #minecraft:prevents_decorated_pot_shattering} + * {@code #minecraft:trades/taiga_common} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey PREVENTS_DECORATED_POT_SHATTERING = create(key("prevents_decorated_pot_shattering")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_TAIGA_COMMON = create(key("trades/taiga_common")); /** - * {@code #minecraft:tooltip_order} + * {@code #minecraft:trades/taiga_special} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey TOOLTIP_ORDER = create(key("tooltip_order")); + @ApiStatus.Experimental + @MinecraftExperimental(MinecraftExperimental.Requires.TRADE_REBALANCE) + public static final TagKey TRADES_TAIGA_SPECIAL = create(key("trades/taiga_special")); + + /** + * {@code #minecraft:treasure} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TREASURE = create(key("treasure")); private EnchantmentTagKeys() { } /** - * Creates a tag key for {@link Enchantment} in the registry {@code minecraft:root}. + * Creates a tag key for {@link Enchantment} in the registry {@code minecraft:enchantment}. * * @param key the tag key's key * @return a new tag key */ @ApiStatus.Experimental - public static @NotNull TagKey create(final @NotNull Key key) { + public static @NonNull TagKey create(final @NonNull Key key) { return TagKey.create(RegistryKey.ENCHANTMENT, key); } } diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java index 98441a5943..b0a153f670 100644 --- a/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java @@ -7,8 +7,8 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.tag.TagKey; import net.kyori.adventure.key.Key; import org.bukkit.inventory.ItemType; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; /** * Vanilla keys for {@link RegistryKey#ITEM}. @@ -27,18 +27,11 @@ import org.jetbrains.annotations.NotNull; @ApiStatus.Experimental public final class ItemTypeTagKeys { /** - * {@code #minecraft:wooden_pressure_plates} + * {@code #minecraft:acacia_logs} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates")); - - /** - * {@code #minecraft:bookshelf_books} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BOOKSHELF_BOOKS = create(key("bookshelf_books")); + public static final TagKey ACACIA_LOGS = create(key("acacia_logs")); /** * {@code #minecraft:anvil} @@ -48,914 +41,11 @@ public final class ItemTypeTagKeys { public static final TagKey ANVIL = create(key("anvil")); /** - * {@code #minecraft:wooden_buttons} + * {@code #minecraft:armadillo_food} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey WOODEN_BUTTONS = create(key("wooden_buttons")); - - /** - * {@code #minecraft:iron_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IRON_ORES = create(key("iron_ores")); - - /** - * {@code #minecraft:lapis_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LAPIS_ORES = create(key("lapis_ores")); - - /** - * {@code #minecraft:sand} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SAND = create(key("sand")); - - /** - * {@code #minecraft:rabbit_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey RABBIT_FOOD = create(key("rabbit_food")); - - /** - * {@code #minecraft:saplings} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SAPLINGS = create(key("saplings")); - - /** - * {@code #minecraft:leg_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LEG_ARMOR = create(key("leg_armor")); - - /** - * {@code #minecraft:cow_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COW_FOOD = create(key("cow_food")); - - /** - * {@code #minecraft:enchantable/weapon} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_WEAPON = create(key("enchantable/weapon")); - - /** - * {@code #minecraft:strider_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STRIDER_FOOD = create(key("strider_food")); - - /** - * {@code #minecraft:banners} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BANNERS = create(key("banners")); - - /** - * {@code #minecraft:fishes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FISHES = create(key("fishes")); - - /** - * {@code #minecraft:strider_tempt_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STRIDER_TEMPT_ITEMS = create(key("strider_tempt_items")); - - /** - * {@code #minecraft:enchantable/trident} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_TRIDENT = create(key("enchantable/trident")); - - /** - * {@code #minecraft:bee_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEE_FOOD = create(key("bee_food")); - - /** - * {@code #minecraft:decorated_pot_sherds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DECORATED_POT_SHERDS = create(key("decorated_pot_sherds")); - - /** - * {@code #minecraft:wool_carpets} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOOL_CARPETS = create(key("wool_carpets")); - - /** - * {@code #minecraft:acacia_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ACACIA_LOGS = create(key("acacia_logs")); - - /** - * {@code #minecraft:wart_blocks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WART_BLOCKS = create(key("wart_blocks")); - - /** - * {@code #minecraft:stairs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STAIRS = create(key("stairs")); - - /** - * {@code #minecraft:breaks_decorated_pots} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots")); - - /** - * {@code #minecraft:wool} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOOL = create(key("wool")); - - /** - * {@code #minecraft:crimson_stems} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CRIMSON_STEMS = create(key("crimson_stems")); - - /** - * {@code #minecraft:enchantable/durability} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_DURABILITY = create(key("enchantable/durability")); - - /** - * {@code #minecraft:boats} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BOATS = create(key("boats")); - - /** - * {@code #minecraft:sniffer_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SNIFFER_FOOD = create(key("sniffer_food")); - - /** - * {@code #minecraft:piglin_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_FOOD = create(key("piglin_food")); - - /** - * {@code #minecraft:logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LOGS = create(key("logs")); - - /** - * {@code #minecraft:pickaxes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PICKAXES = create(key("pickaxes")); - - /** - * {@code #minecraft:piglin_loved} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_LOVED = create(key("piglin_loved")); - - /** - * {@code #minecraft:fox_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FOX_FOOD = create(key("fox_food")); - - /** - * {@code #minecraft:wolf_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOLF_FOOD = create(key("wolf_food")); - - /** - * {@code #minecraft:terracotta} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TERRACOTTA = create(key("terracotta")); - - /** - * {@code #minecraft:enchantable/bow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_BOW = create(key("enchantable/bow")); - - /** - * {@code #minecraft:lectern_books} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LECTERN_BOOKS = create(key("lectern_books")); - - /** - * {@code #minecraft:smelts_to_glass} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SMELTS_TO_GLASS = create(key("smelts_to_glass")); - - /** - * {@code #minecraft:copper_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COPPER_ORES = create(key("copper_ores")); - - /** - * {@code #minecraft:wooden_trapdoors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_TRAPDOORS = create(key("wooden_trapdoors")); - - /** - * {@code #minecraft:enchantable/armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_ARMOR = create(key("enchantable/armor")); - - /** - * {@code #minecraft:enchantable/sharp_weapon} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_SHARP_WEAPON = create(key("enchantable/sharp_weapon")); - - /** - * {@code #minecraft:non_flammable_wood} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey NON_FLAMMABLE_WOOD = create(key("non_flammable_wood")); - - /** - * {@code #minecraft:decorated_pot_ingredients} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DECORATED_POT_INGREDIENTS = create(key("decorated_pot_ingredients")); - - /** - * {@code #minecraft:enchantable/sword} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_SWORD = create(key("enchantable/sword")); - - /** - * {@code #minecraft:stone_crafting_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_CRAFTING_MATERIALS = create(key("stone_crafting_materials")); - - /** - * {@code #minecraft:hanging_signs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HANGING_SIGNS = create(key("hanging_signs")); - - /** - * {@code #minecraft:flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FLOWERS = create(key("flowers")); - - /** - * {@code #minecraft:emerald_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey EMERALD_ORES = create(key("emerald_ores")); - - /** - * {@code #minecraft:chest_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHEST_ARMOR = create(key("chest_armor")); - - /** - * {@code #minecraft:buttons} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BUTTONS = create(key("buttons")); - - /** - * {@code #minecraft:leaves} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LEAVES = create(key("leaves")); - - /** - * {@code #minecraft:sheep_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SHEEP_FOOD = create(key("sheep_food")); - - /** - * {@code #minecraft:fence_gates} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FENCE_GATES = create(key("fence_gates")); - - /** - * {@code #minecraft:horse_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HORSE_FOOD = create(key("horse_food")); - - /** - * {@code #minecraft:enchantable/fishing} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FISHING = create(key("enchantable/fishing")); - - /** - * {@code #minecraft:piglin_repellents} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIGLIN_REPELLENTS = create(key("piglin_repellents")); - - /** - * {@code #minecraft:goat_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey GOAT_FOOD = create(key("goat_food")); - - /** - * {@code #minecraft:frog_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FROG_FOOD = create(key("frog_food")); - - /** - * {@code #minecraft:axolotl_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey AXOLOTL_FOOD = create(key("axolotl_food")); - - /** - * {@code #minecraft:warped_stems} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WARPED_STEMS = create(key("warped_stems")); - - /** - * {@code #minecraft:slabs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SLABS = create(key("slabs")); - - /** - * {@code #minecraft:walls} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WALLS = create(key("walls")); - - /** - * {@code #minecraft:stone_buttons} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_BUTTONS = create(key("stone_buttons")); - - /** - * {@code #minecraft:axes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey AXES = create(key("axes")); - - /** - * {@code #minecraft:enchantable/chest_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_CHEST_ARMOR = create(key("enchantable/chest_armor")); - - /** - * {@code #minecraft:coals} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COALS = create(key("coals")); - - /** - * {@code #minecraft:noteblock_top_instruments} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey NOTEBLOCK_TOP_INSTRUMENTS = create(key("noteblock_top_instruments")); - - /** - * {@code #minecraft:beacon_payment_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEACON_PAYMENT_ITEMS = create(key("beacon_payment_items")); - - /** - * {@code #minecraft:signs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SIGNS = create(key("signs")); - - /** - * {@code #minecraft:chest_boats} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHEST_BOATS = create(key("chest_boats")); - - /** - * {@code #minecraft:completes_find_tree_tutorial} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial")); - - /** - * {@code #minecraft:foot_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FOOT_ARMOR = create(key("foot_armor")); - - /** - * {@code #minecraft:wooden_doors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_DOORS = create(key("wooden_doors")); - - /** - * {@code #minecraft:small_flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SMALL_FLOWERS = create(key("small_flowers")); - - /** - * {@code #minecraft:diamond_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DIAMOND_ORES = create(key("diamond_ores")); - - /** - * {@code #minecraft:llama_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LLAMA_FOOD = create(key("llama_food")); - - /** - * {@code #minecraft:planks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PLANKS = create(key("planks")); - - /** - * {@code #minecraft:hoes} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HOES = create(key("hoes")); - - /** - * {@code #minecraft:oak_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey OAK_LOGS = create(key("oak_logs")); - - /** - * {@code #minecraft:beds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BEDS = create(key("beds")); - - /** - * {@code #minecraft:compasses} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COMPASSES = create(key("compasses")); - - /** - * {@code #minecraft:enchantable/vanishing} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_VANISHING = create(key("enchantable/vanishing")); - - /** - * {@code #minecraft:shovels} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SHOVELS = create(key("shovels")); - - /** - * {@code #minecraft:creeper_igniters} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CREEPER_IGNITERS = create(key("creeper_igniters")); - - /** - * {@code #minecraft:meat} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey MEAT = create(key("meat")); - - /** - * {@code #minecraft:ignored_by_piglin_babies} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey IGNORED_BY_PIGLIN_BABIES = create(key("ignored_by_piglin_babies")); - - /** - * {@code #minecraft:coal_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey COAL_ORES = create(key("coal_ores")); - - /** - * {@code #minecraft:enchantable/foot_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FOOT_ARMOR = create(key("enchantable/foot_armor")); - - /** - * {@code #minecraft:skulls} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SKULLS = create(key("skulls")); - - /** - * {@code #minecraft:trimmable_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIMMABLE_ARMOR = create(key("trimmable_armor")); - - /** - * {@code #minecraft:panda_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PANDA_FOOD = create(key("panda_food")); - - /** - * {@code #minecraft:dark_oak_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DARK_OAK_LOGS = create(key("dark_oak_logs")); - - /** - * {@code #minecraft:enchantable/mining} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MINING = create(key("enchantable/mining")); - - /** - * {@code #minecraft:dampens_vibrations} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DAMPENS_VIBRATIONS = create(key("dampens_vibrations")); - - /** - * {@code #minecraft:fences} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FENCES = create(key("fences")); - - /** - * {@code #minecraft:redstone_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey REDSTONE_ORES = create(key("redstone_ores")); - - /** - * {@code #minecraft:pig_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PIG_FOOD = create(key("pig_food")); - - /** - * {@code #minecraft:doors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DOORS = create(key("doors")); - - /** - * {@code #minecraft:ocelot_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey OCELOT_FOOD = create(key("ocelot_food")); - - /** - * {@code #minecraft:cluster_max_harvestables} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CLUSTER_MAX_HARVESTABLES = create(key("cluster_max_harvestables")); - - /** - * {@code #minecraft:villager_plantable_seeds} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey VILLAGER_PLANTABLE_SEEDS = create(key("villager_plantable_seeds")); - - /** - * {@code #minecraft:jungle_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey JUNGLE_LOGS = create(key("jungle_logs")); - - /** - * {@code #minecraft:wooden_slabs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_SLABS = create(key("wooden_slabs")); - - /** - * {@code #minecraft:dyeable} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey DYEABLE = create(key("dyeable")); - - /** - * {@code #minecraft:trapdoors} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRAPDOORS = create(key("trapdoors")); - - /** - * {@code #minecraft:swords} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SWORDS = create(key("swords")); - - /** - * {@code #minecraft:cherry_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHERRY_LOGS = create(key("cherry_logs")); - - /** - * {@code #minecraft:tall_flowers} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TALL_FLOWERS = create(key("tall_flowers")); - - /** - * {@code #minecraft:mangrove_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey MANGROVE_LOGS = create(key("mangrove_logs")); - - /** - * {@code #minecraft:birch_logs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey BIRCH_LOGS = create(key("birch_logs")); - - /** - * {@code #minecraft:soul_fire_base_blocks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey SOUL_FIRE_BASE_BLOCKS = create(key("soul_fire_base_blocks")); - - /** - * {@code #minecraft:chicken_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CHICKEN_FOOD = create(key("chicken_food")); - - /** - * {@code #minecraft:turtle_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TURTLE_FOOD = create(key("turtle_food")); - - /** - * {@code #minecraft:freeze_immune_wearables} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey FREEZE_IMMUNE_WEARABLES = create(key("freeze_immune_wearables")); - - /** - * {@code #minecraft:enchantable/fire_aspect} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_FIRE_ASPECT = create(key("enchantable/fire_aspect")); - - /** - * {@code #minecraft:rails} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey RAILS = create(key("rails")); - - /** - * {@code #minecraft:trim_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIM_MATERIALS = create(key("trim_materials")); - - /** - * {@code #minecraft:parrot_poisonous_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey PARROT_POISONOUS_FOOD = create(key("parrot_poisonous_food")); - - /** - * {@code #minecraft:wooden_fences} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_FENCES = create(key("wooden_fences")); - - /** - * {@code #minecraft:head_armor} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HEAD_ARMOR = create(key("head_armor")); - - /** - * {@code #minecraft:stone_bricks} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_BRICKS = create(key("stone_bricks")); - - /** - * {@code #minecraft:stone_tool_materials} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey STONE_TOOL_MATERIALS = create(key("stone_tool_materials")); - - /** - * {@code #minecraft:llama_tempt_items} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LLAMA_TEMPT_ITEMS = create(key("llama_tempt_items")); - - /** - * {@code #minecraft:gold_ores} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey GOLD_ORES = create(key("gold_ores")); - - /** - * {@code #minecraft:cat_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey CAT_FOOD = create(key("cat_food")); - - /** - * {@code #minecraft:trim_templates} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey TRIM_TEMPLATES = create(key("trim_templates")); - - /** - * {@code #minecraft:hoglin_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey HOGLIN_FOOD = create(key("hoglin_food")); - - /** - * {@code #minecraft:logs_that_burn} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey LOGS_THAT_BURN = create(key("logs_that_burn")); - - /** - * {@code #minecraft:wooden_stairs} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey WOODEN_STAIRS = create(key("wooden_stairs")); - - /** - * {@code #minecraft:enchantable/crossbow} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_CROSSBOW = create(key("enchantable/crossbow")); - - /** - * {@code #minecraft:enchantable/mace} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MACE = create(key("enchantable/mace")); + public static final TagKey ARMADILLO_FOOD = create(key("armadillo_food")); /** * {@code #minecraft:arrows} @@ -965,11 +55,18 @@ public final class ItemTypeTagKeys { public static final TagKey ARROWS = create(key("arrows")); /** - * {@code #minecraft:parrot_food} + * {@code #minecraft:axes} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey PARROT_FOOD = create(key("parrot_food")); + public static final TagKey AXES = create(key("axes")); + + /** + * {@code #minecraft:axolotl_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey AXOLOTL_FOOD = create(key("axolotl_food")); /** * {@code #minecraft:bamboo_blocks} @@ -979,25 +76,67 @@ public final class ItemTypeTagKeys { public static final TagKey BAMBOO_BLOCKS = create(key("bamboo_blocks")); /** - * {@code #minecraft:horse_tempt_items} + * {@code #minecraft:banners} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey HORSE_TEMPT_ITEMS = create(key("horse_tempt_items")); + public static final TagKey BANNERS = create(key("banners")); /** - * {@code #minecraft:creeper_drop_music_discs} + * {@code #minecraft:beacon_payment_items} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey CREEPER_DROP_MUSIC_DISCS = create(key("creeper_drop_music_discs")); + public static final TagKey BEACON_PAYMENT_ITEMS = create(key("beacon_payment_items")); /** - * {@code #minecraft:enchantable/equippable} + * {@code #minecraft:beds} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey ENCHANTABLE_EQUIPPABLE = create(key("enchantable/equippable")); + public static final TagKey BEDS = create(key("beds")); + + /** + * {@code #minecraft:bee_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BEE_FOOD = create(key("bee_food")); + + /** + * {@code #minecraft:birch_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BIRCH_LOGS = create(key("birch_logs")); + + /** + * {@code #minecraft:boats} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BOATS = create(key("boats")); + + /** + * {@code #minecraft:bookshelf_books} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BOOKSHELF_BOOKS = create(key("bookshelf_books")); + + /** + * {@code #minecraft:breaks_decorated_pots} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots")); + + /** + * {@code #minecraft:buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey BUTTONS = create(key("buttons")); /** * {@code #minecraft:camel_food} @@ -1006,20 +145,6 @@ public final class ItemTypeTagKeys { */ public static final TagKey CAMEL_FOOD = create(key("camel_food")); - /** - * {@code #minecraft:enchantable/mining_loot} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ENCHANTABLE_MINING_LOOT = create(key("enchantable/mining_loot")); - - /** - * {@code #minecraft:armadillo_food} - * - * @apiNote This field is version-dependant and may be removed in future Minecraft versions - */ - public static final TagKey ARMADILLO_FOOD = create(key("armadillo_food")); - /** * {@code #minecraft:candles} * @@ -1028,11 +153,144 @@ public final class ItemTypeTagKeys { public static final TagKey CANDLES = create(key("candles")); /** - * {@code #minecraft:spruce_logs} + * {@code #minecraft:cat_food} * * @apiNote This field is version-dependant and may be removed in future Minecraft versions */ - public static final TagKey SPRUCE_LOGS = create(key("spruce_logs")); + public static final TagKey CAT_FOOD = create(key("cat_food")); + + /** + * {@code #minecraft:cherry_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHERRY_LOGS = create(key("cherry_logs")); + + /** + * {@code #minecraft:chest_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHEST_ARMOR = create(key("chest_armor")); + + /** + * {@code #minecraft:chest_boats} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHEST_BOATS = create(key("chest_boats")); + + /** + * {@code #minecraft:chicken_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CHICKEN_FOOD = create(key("chicken_food")); + + /** + * {@code #minecraft:cluster_max_harvestables} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CLUSTER_MAX_HARVESTABLES = create(key("cluster_max_harvestables")); + + /** + * {@code #minecraft:coal_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COAL_ORES = create(key("coal_ores")); + + /** + * {@code #minecraft:coals} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COALS = create(key("coals")); + + /** + * {@code #minecraft:compasses} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COMPASSES = create(key("compasses")); + + /** + * {@code #minecraft:completes_find_tree_tutorial} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial")); + + /** + * {@code #minecraft:copper_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COPPER_ORES = create(key("copper_ores")); + + /** + * {@code #minecraft:cow_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey COW_FOOD = create(key("cow_food")); + + /** + * {@code #minecraft:creeper_drop_music_discs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CREEPER_DROP_MUSIC_DISCS = create(key("creeper_drop_music_discs")); + + /** + * {@code #minecraft:creeper_igniters} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CREEPER_IGNITERS = create(key("creeper_igniters")); + + /** + * {@code #minecraft:crimson_stems} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey CRIMSON_STEMS = create(key("crimson_stems")); + + /** + * {@code #minecraft:dampens_vibrations} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DAMPENS_VIBRATIONS = create(key("dampens_vibrations")); + + /** + * {@code #minecraft:dark_oak_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DARK_OAK_LOGS = create(key("dark_oak_logs")); + + /** + * {@code #minecraft:decorated_pot_ingredients} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DECORATED_POT_INGREDIENTS = create(key("decorated_pot_ingredients")); + + /** + * {@code #minecraft:decorated_pot_sherds} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DECORATED_POT_SHERDS = create(key("decorated_pot_sherds")); + + /** + * {@code #minecraft:diamond_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DIAMOND_ORES = create(key("diamond_ores")); /** * {@code #minecraft:dirt} @@ -1041,6 +299,90 @@ public final class ItemTypeTagKeys { */ public static final TagKey DIRT = create(key("dirt")); + /** + * {@code #minecraft:doors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DOORS = create(key("doors")); + + /** + * {@code #minecraft:dyeable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey DYEABLE = create(key("dyeable")); + + /** + * {@code #minecraft:emerald_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey EMERALD_ORES = create(key("emerald_ores")); + + /** + * {@code #minecraft:enchantable/armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_ARMOR = create(key("enchantable/armor")); + + /** + * {@code #minecraft:enchantable/bow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_BOW = create(key("enchantable/bow")); + + /** + * {@code #minecraft:enchantable/chest_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_CHEST_ARMOR = create(key("enchantable/chest_armor")); + + /** + * {@code #minecraft:enchantable/crossbow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_CROSSBOW = create(key("enchantable/crossbow")); + + /** + * {@code #minecraft:enchantable/durability} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_DURABILITY = create(key("enchantable/durability")); + + /** + * {@code #minecraft:enchantable/equippable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_EQUIPPABLE = create(key("enchantable/equippable")); + + /** + * {@code #minecraft:enchantable/fire_aspect} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FIRE_ASPECT = create(key("enchantable/fire_aspect")); + + /** + * {@code #minecraft:enchantable/fishing} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FISHING = create(key("enchantable/fishing")); + + /** + * {@code #minecraft:enchantable/foot_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_FOOT_ARMOR = create(key("enchantable/foot_armor")); + /** * {@code #minecraft:enchantable/head_armor} * @@ -1055,17 +397,675 @@ public final class ItemTypeTagKeys { */ public static final TagKey ENCHANTABLE_LEG_ARMOR = create(key("enchantable/leg_armor")); + /** + * {@code #minecraft:enchantable/mace} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MACE = create(key("enchantable/mace")); + + /** + * {@code #minecraft:enchantable/mining} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MINING = create(key("enchantable/mining")); + + /** + * {@code #minecraft:enchantable/mining_loot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_MINING_LOOT = create(key("enchantable/mining_loot")); + + /** + * {@code #minecraft:enchantable/sharp_weapon} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_SHARP_WEAPON = create(key("enchantable/sharp_weapon")); + + /** + * {@code #minecraft:enchantable/sword} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_SWORD = create(key("enchantable/sword")); + + /** + * {@code #minecraft:enchantable/trident} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_TRIDENT = create(key("enchantable/trident")); + + /** + * {@code #minecraft:enchantable/vanishing} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_VANISHING = create(key("enchantable/vanishing")); + + /** + * {@code #minecraft:enchantable/weapon} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey ENCHANTABLE_WEAPON = create(key("enchantable/weapon")); + + /** + * {@code #minecraft:fence_gates} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FENCE_GATES = create(key("fence_gates")); + + /** + * {@code #minecraft:fences} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FENCES = create(key("fences")); + + /** + * {@code #minecraft:fishes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FISHES = create(key("fishes")); + + /** + * {@code #minecraft:flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FLOWERS = create(key("flowers")); + + /** + * {@code #minecraft:foot_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FOOT_ARMOR = create(key("foot_armor")); + + /** + * {@code #minecraft:fox_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FOX_FOOD = create(key("fox_food")); + + /** + * {@code #minecraft:freeze_immune_wearables} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FREEZE_IMMUNE_WEARABLES = create(key("freeze_immune_wearables")); + + /** + * {@code #minecraft:frog_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey FROG_FOOD = create(key("frog_food")); + + /** + * {@code #minecraft:goat_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey GOAT_FOOD = create(key("goat_food")); + + /** + * {@code #minecraft:gold_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey GOLD_ORES = create(key("gold_ores")); + + /** + * {@code #minecraft:hanging_signs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HANGING_SIGNS = create(key("hanging_signs")); + + /** + * {@code #minecraft:head_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HEAD_ARMOR = create(key("head_armor")); + + /** + * {@code #minecraft:hoes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HOES = create(key("hoes")); + + /** + * {@code #minecraft:hoglin_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HOGLIN_FOOD = create(key("hoglin_food")); + + /** + * {@code #minecraft:horse_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HORSE_FOOD = create(key("horse_food")); + + /** + * {@code #minecraft:horse_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey HORSE_TEMPT_ITEMS = create(key("horse_tempt_items")); + + /** + * {@code #minecraft:ignored_by_piglin_babies} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IGNORED_BY_PIGLIN_BABIES = create(key("ignored_by_piglin_babies")); + + /** + * {@code #minecraft:iron_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey IRON_ORES = create(key("iron_ores")); + + /** + * {@code #minecraft:jungle_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey JUNGLE_LOGS = create(key("jungle_logs")); + + /** + * {@code #minecraft:lapis_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LAPIS_ORES = create(key("lapis_ores")); + + /** + * {@code #minecraft:leaves} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LEAVES = create(key("leaves")); + + /** + * {@code #minecraft:lectern_books} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LECTERN_BOOKS = create(key("lectern_books")); + + /** + * {@code #minecraft:leg_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LEG_ARMOR = create(key("leg_armor")); + + /** + * {@code #minecraft:llama_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LLAMA_FOOD = create(key("llama_food")); + + /** + * {@code #minecraft:llama_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LLAMA_TEMPT_ITEMS = create(key("llama_tempt_items")); + + /** + * {@code #minecraft:logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LOGS = create(key("logs")); + + /** + * {@code #minecraft:logs_that_burn} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey LOGS_THAT_BURN = create(key("logs_that_burn")); + + /** + * {@code #minecraft:mangrove_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey MANGROVE_LOGS = create(key("mangrove_logs")); + + /** + * {@code #minecraft:meat} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey MEAT = create(key("meat")); + + /** + * {@code #minecraft:non_flammable_wood} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey NON_FLAMMABLE_WOOD = create(key("non_flammable_wood")); + + /** + * {@code #minecraft:noteblock_top_instruments} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey NOTEBLOCK_TOP_INSTRUMENTS = create(key("noteblock_top_instruments")); + + /** + * {@code #minecraft:oak_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey OAK_LOGS = create(key("oak_logs")); + + /** + * {@code #minecraft:ocelot_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey OCELOT_FOOD = create(key("ocelot_food")); + + /** + * {@code #minecraft:panda_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PANDA_FOOD = create(key("panda_food")); + + /** + * {@code #minecraft:parrot_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PARROT_FOOD = create(key("parrot_food")); + + /** + * {@code #minecraft:parrot_poisonous_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PARROT_POISONOUS_FOOD = create(key("parrot_poisonous_food")); + + /** + * {@code #minecraft:pickaxes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PICKAXES = create(key("pickaxes")); + + /** + * {@code #minecraft:pig_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIG_FOOD = create(key("pig_food")); + + /** + * {@code #minecraft:piglin_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_FOOD = create(key("piglin_food")); + + /** + * {@code #minecraft:piglin_loved} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_LOVED = create(key("piglin_loved")); + + /** + * {@code #minecraft:piglin_repellents} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PIGLIN_REPELLENTS = create(key("piglin_repellents")); + + /** + * {@code #minecraft:planks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey PLANKS = create(key("planks")); + + /** + * {@code #minecraft:rabbit_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey RABBIT_FOOD = create(key("rabbit_food")); + + /** + * {@code #minecraft:rails} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey RAILS = create(key("rails")); + + /** + * {@code #minecraft:redstone_ores} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey REDSTONE_ORES = create(key("redstone_ores")); + + /** + * {@code #minecraft:sand} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SAND = create(key("sand")); + + /** + * {@code #minecraft:saplings} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SAPLINGS = create(key("saplings")); + + /** + * {@code #minecraft:sheep_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SHEEP_FOOD = create(key("sheep_food")); + + /** + * {@code #minecraft:shovels} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SHOVELS = create(key("shovels")); + + /** + * {@code #minecraft:signs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SIGNS = create(key("signs")); + + /** + * {@code #minecraft:skulls} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SKULLS = create(key("skulls")); + + /** + * {@code #minecraft:slabs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SLABS = create(key("slabs")); + + /** + * {@code #minecraft:small_flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SMALL_FLOWERS = create(key("small_flowers")); + + /** + * {@code #minecraft:smelts_to_glass} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SMELTS_TO_GLASS = create(key("smelts_to_glass")); + + /** + * {@code #minecraft:sniffer_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SNIFFER_FOOD = create(key("sniffer_food")); + + /** + * {@code #minecraft:soul_fire_base_blocks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SOUL_FIRE_BASE_BLOCKS = create(key("soul_fire_base_blocks")); + + /** + * {@code #minecraft:spruce_logs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SPRUCE_LOGS = create(key("spruce_logs")); + + /** + * {@code #minecraft:stairs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STAIRS = create(key("stairs")); + + /** + * {@code #minecraft:stone_bricks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_BRICKS = create(key("stone_bricks")); + + /** + * {@code #minecraft:stone_buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_BUTTONS = create(key("stone_buttons")); + + /** + * {@code #minecraft:stone_crafting_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_CRAFTING_MATERIALS = create(key("stone_crafting_materials")); + + /** + * {@code #minecraft:stone_tool_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STONE_TOOL_MATERIALS = create(key("stone_tool_materials")); + + /** + * {@code #minecraft:strider_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STRIDER_FOOD = create(key("strider_food")); + + /** + * {@code #minecraft:strider_tempt_items} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey STRIDER_TEMPT_ITEMS = create(key("strider_tempt_items")); + + /** + * {@code #minecraft:swords} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey SWORDS = create(key("swords")); + + /** + * {@code #minecraft:tall_flowers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TALL_FLOWERS = create(key("tall_flowers")); + + /** + * {@code #minecraft:terracotta} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TERRACOTTA = create(key("terracotta")); + + /** + * {@code #minecraft:trapdoors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRAPDOORS = create(key("trapdoors")); + + /** + * {@code #minecraft:trim_materials} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIM_MATERIALS = create(key("trim_materials")); + + /** + * {@code #minecraft:trim_templates} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIM_TEMPLATES = create(key("trim_templates")); + + /** + * {@code #minecraft:trimmable_armor} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TRIMMABLE_ARMOR = create(key("trimmable_armor")); + + /** + * {@code #minecraft:turtle_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey TURTLE_FOOD = create(key("turtle_food")); + + /** + * {@code #minecraft:villager_plantable_seeds} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey VILLAGER_PLANTABLE_SEEDS = create(key("villager_plantable_seeds")); + + /** + * {@code #minecraft:walls} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WALLS = create(key("walls")); + + /** + * {@code #minecraft:warped_stems} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WARPED_STEMS = create(key("warped_stems")); + + /** + * {@code #minecraft:wart_blocks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WART_BLOCKS = create(key("wart_blocks")); + + /** + * {@code #minecraft:wolf_food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOLF_FOOD = create(key("wolf_food")); + + /** + * {@code #minecraft:wooden_buttons} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_BUTTONS = create(key("wooden_buttons")); + + /** + * {@code #minecraft:wooden_doors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_DOORS = create(key("wooden_doors")); + + /** + * {@code #minecraft:wooden_fences} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_FENCES = create(key("wooden_fences")); + + /** + * {@code #minecraft:wooden_pressure_plates} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates")); + + /** + * {@code #minecraft:wooden_slabs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_SLABS = create(key("wooden_slabs")); + + /** + * {@code #minecraft:wooden_stairs} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_STAIRS = create(key("wooden_stairs")); + + /** + * {@code #minecraft:wooden_trapdoors} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOODEN_TRAPDOORS = create(key("wooden_trapdoors")); + + /** + * {@code #minecraft:wool} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOOL = create(key("wool")); + + /** + * {@code #minecraft:wool_carpets} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TagKey WOOL_CARPETS = create(key("wool_carpets")); + private ItemTypeTagKeys() { } /** - * Creates a tag key for {@link ItemType} in the registry {@code minecraft:root}. + * Creates a tag key for {@link ItemType} in the registry {@code minecraft:item}. * * @param key the tag key's key * @return a new tag key */ @ApiStatus.Experimental - public static @NotNull TagKey create(final @NotNull Key key) { + public static @NonNull TagKey create(final @NonNull Key key) { return TagKey.create(RegistryKey.ITEM, key); } } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java index 19cbf63cd4..cf6846134a 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java @@ -31,8 +31,6 @@ import net.minecraft.core.RegistrySetBuilder; import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.world.flag.FeatureElement; -import net.minecraft.world.flag.FeatureFlags; -import org.bukkit.MinecraftExperimental; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.framework.qual.DefaultQualifier; @@ -72,7 +70,7 @@ public class GeneratedKeyType extends SimpleGenerator { } private static final String CREATE_JAVADOC = """ - Creates a key for {@link $T} in a registry. + Creates a key for {@link $T} in the registry {@code $L}. @param key the value's key in the registry @return a new typed key @@ -102,7 +100,7 @@ public class GeneratedKeyType extends SimpleGenerator { .returns(returnType.annotated(NOT_NULL)); if (this.publicCreateKeyMethod) { create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental - create.addJavadoc(CREATE_JAVADOC, this.apiType); + create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString()); } return create; } @@ -190,8 +188,6 @@ public class GeneratedKeyType extends SimpleGenerator { @Override protected JavaFile.Builder file(final JavaFile.Builder builder) { return builder - .skipJavaLangImports(true) - .addStaticImport(Key.class, "key") - .indent(" "); + .addStaticImport(Key.class, "key"); } } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java index 88079df443..ff8d8b612c 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java @@ -15,15 +15,11 @@ import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.tag.TagKey; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.Collectors; import net.kyori.adventure.key.Key; import net.minecraft.core.Registry; -import net.minecraft.core.RegistrySetBuilder; -import net.minecraft.data.registries.VanillaRegistries; import net.minecraft.resources.ResourceKey; import org.bukkit.MinecraftExperimental; @@ -39,11 +35,6 @@ import static javax.lang.model.element.Modifier.STATIC; public class GeneratedTagKeyType extends SimpleGenerator { - private static final Map>, RegistrySetBuilder.RegistryBootstrap> VANILLA_REGISTRY_ENTRIES = VanillaRegistries.BUILDER.entries.stream() - .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); - - private static final Map>, RegistrySetBuilder.RegistryBootstrap> EXPERIMENTAL_REGISTRY_ENTRIES = Collections.emptyMap(); // Update for Experimental API - private static final Map, String> REGISTRY_KEY_FIELD_NAMES; static { final Map, String> map = new HashMap<>(); @@ -91,7 +82,7 @@ public class GeneratedTagKeyType extends SimpleGenerator { .returns(returnType.annotated(NOT_NULL)); if (this.publicCreateKeyMethod) { create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental - create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.registry().toString()); + create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString()); } return create; } @@ -102,8 +93,8 @@ public class GeneratedTagKeyType extends SimpleGenerator { .addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) .addAnnotations(Annotations.CLASS_HEADER) .addMethod(MethodSpec.constructorBuilder() - .addModifiers(PRIVATE) - .build() + .addModifiers(PRIVATE) + .build() ); } @@ -117,8 +108,7 @@ public class GeneratedTagKeyType extends SimpleGenerator { final Registry registry = Main.REGISTRY_ACCESS.registryOrThrow(this.registryKey); final AtomicBoolean allExperimental = new AtomicBoolean(true); - registry.getTags().forEach(pair -> { - final net.minecraft.tags.TagKey nmsTagKey = pair.getFirst(); + registry.getTagNames().sorted(Formatting.alphabeticKeyOrder(nmsTagKey -> nmsTagKey.location().getPath())).forEach(nmsTagKey -> { final String fieldName = Formatting.formatKeyAsField(nmsTagKey.location().getPath()); final FieldSpec.Builder fieldBuilder = FieldSpec.builder(tagKey, fieldName, PUBLIC, STATIC, FINAL) .initializer("$N(key($S))", createMethod.build(), nmsTagKey.location().getPath()) @@ -142,8 +132,6 @@ public class GeneratedTagKeyType extends SimpleGenerator { @Override protected JavaFile.Builder file(final JavaFile.Builder builder) { return builder - .skipJavaLangImports(true) - .addStaticImport(Key.class, "key") - .indent(" "); + .addStaticImport(Key.class, "key"); } } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java index aaa6e6ad19..ffe3c48572 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java @@ -132,8 +132,7 @@ public class MobGoalGenerator extends SimpleGenerator { @Override protected JavaFile.Builder file(JavaFile.Builder builder) { - return builder - .skipJavaLangImports(true); + return builder; } record DeprecatedEntry(Class entity, String entryName, @Nullable String removalVersion, diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java index 52c876edba..f625c25a55 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java @@ -7,8 +7,8 @@ import java.util.List; import io.papermc.paper.generated.GeneratedFrom; import net.minecraft.SharedConstants; import org.bukkit.MinecraftExperimental; +import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public final class Annotations { @@ -26,10 +26,10 @@ public final class Annotations { return annotationSpecs; } - public static AnnotationSpec deprecatedVersioned(final @Nullable String version, boolean forRemoval) { - AnnotationSpec.Builder annotationSpec = AnnotationSpec.builder(Deprecated.class); + public static AnnotationSpec deprecatedVersioned(final @Nullable String version, final boolean forRemoval) { + final AnnotationSpec.Builder annotationSpec = AnnotationSpec.builder(Deprecated.class); if (forRemoval) { - annotationSpec.addMember("forRemoval", "$L", forRemoval); + annotationSpec.addMember("forRemoval", "$L", true); } if (version != null) { annotationSpec.addMember("since", "$S", version); @@ -46,7 +46,7 @@ public final class Annotations { @ApiStatus.Experimental public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); - public static final AnnotationSpec NOT_NULL = AnnotationSpec.builder(NotNull.class).build(); + public static final AnnotationSpec NOT_NULL = AnnotationSpec.builder(NonNull.class).build(); private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class) .addMember("value", "$S", "unused") .addMember("value", "$S", "SpellCheckingInspection") diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java index 15cb4ac3e7..bb0687aa24 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java @@ -2,7 +2,6 @@ package io.papermc.generator.utils; import com.mojang.serialization.Lifecycle; import io.papermc.generator.Main; -import java.util.List; import java.util.Set; import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java index 5254478c41..2c537dba93 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java @@ -4,7 +4,6 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.mojang.logging.LogUtils; import io.papermc.generator.Main; -import io.papermc.generator.utils.Formatting; import java.util.Collections; import java.util.IdentityHashMap; import java.util.Map; @@ -19,7 +18,6 @@ import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.repository.BuiltInPackSource; import net.minecraft.server.packs.resources.MultiPackResourceManager; import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagManager; import org.slf4j.Logger; // collect all the tags by grabbing the json from the data-packs @@ -50,9 +48,9 @@ public final class TagCollector { } result.put(entry.value().getTagNames() - .filter(tagKey -> tagKey.location().getPath().equals(path)) - .findFirst() - .orElseThrow(), packId); + .filter(tagKey -> tagKey.location().getPath().equals(path)) + .findFirst() + .orElseThrow(), packId); }); }); return Collections.unmodifiableMap(result); diff --git a/patches/server/1021-Add-registry-entry-and-builders.patch b/patches/server/1021-Add-registry-entry-and-builders.patch index ff658dd1be..7978bd6ce2 100644 --- a/patches/server/1021-Add-registry-entry-and-builders.patch +++ b/patches/server/1021-Add-registry-entry-and-builders.patch @@ -340,7 +340,7 @@ index 0000000000000000000000000000000000000000..18f9463ae23ba2d9c65ffb7531a87c92 +} diff --git a/src/main/java/io/papermc/paper/registry/data/util/Checks.java b/src/main/java/io/papermc/paper/registry/data/util/Checks.java new file mode 100644 -index 0000000000000000000000000000000000000000..a66cebe2b918a22b84e346127ffb671621050e5f +index 0000000000000000000000000000000000000000..3241a94731fe8163876614efdcf30f8b551535af --- /dev/null +++ b/src/main/java/io/papermc/paper/registry/data/util/Checks.java @@ -0,0 +1,48 @@ @@ -370,7 +370,7 @@ index 0000000000000000000000000000000000000000..a66cebe2b918a22b84e346127ffb6716 + + public static T asArgument(final @Nullable T value, final String field) { + if (value == null) { -+ throw new IllegalArgumentException("argument " + value + " cannot be null"); ++ throw new IllegalArgumentException("argument " + field + " cannot be null"); + } + return value; + } From 7d7f123e98e63d466f771e63eff33b9d615544fe Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sun, 11 Aug 2024 00:19:54 +0200 Subject: [PATCH 12/23] Fix wrong spawn reason for trial spawners (#11229) --- patches/server/0141-Entity-fromMobSpawner.patch | 14 +++++++++++++- ...xes-and-additions-to-the-spawn-reason-API.patch | 12 ++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/patches/server/0141-Entity-fromMobSpawner.patch b/patches/server/0141-Entity-fromMobSpawner.patch index 0f1ce9369a..4afd9e1ed2 100644 --- a/patches/server/0141-Entity-fromMobSpawner.patch +++ b/patches/server/0141-Entity-fromMobSpawner.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46a21ed2408a42aafd16647e17e556730e799cbd..946f289e0e681524c6fde696921965dbdedda372 100644 +index 85d8c4865b65792b99f812b579d7c23823d76e52..0e800e3aeeec84f5f7ed0a391c9b66ae5689bd40 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -402,6 +402,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -48,6 +48,18 @@ index aa54237205989f619ac6a3faa2e4285427b9e31d..43d399e1a0ba2fb0541f851a28032fa6 // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { continue; +diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java +index 571756dacfa16f6755b67457e17969c35104f971..52d71a03cd5b2af56704f265ce5b5f14d3236ebb 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java +@@ -225,6 +225,7 @@ public final class TrialSpawner { + optional1.ifPresent(entityinsentient::equip); + } + ++ entity.spawnedViaMobSpawner = true; // Paper + // CraftBukkit start + if (org.bukkit.craftbukkit.event.CraftEventFactory.callTrialSpawnerSpawnEvent(entity, pos).isCancelled()) { + return Optional.empty(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index df6da730134da754d0ff23bd1b57c82486b9ab73..69b5946625a53a1351ffc4bdf61c6874949bbeae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/patches/server/0281-Fixes-and-additions-to-the-spawn-reason-API.patch b/patches/server/0281-Fixes-and-additions-to-the-spawn-reason-API.patch index 223d99ce64..944ab1ff65 100644 --- a/patches/server/0281-Fixes-and-additions-to-the-spawn-reason-API.patch +++ b/patches/server/0281-Fixes-and-additions-to-the-spawn-reason-API.patch @@ -201,6 +201,18 @@ index dbc0b69603dcffbf3d41d79719aa0f2b7da4a131..dd86f5ec5b2051aeea4e19ff97146362 .isPresent(); } +diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java +index 52d71a03cd5b2af56704f265ce5b5f14d3236ebb..ffca6563c20f53c92b162054fec727d83e54e58a 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java +@@ -226,6 +226,7 @@ public final class TrialSpawner { + } + + entity.spawnedViaMobSpawner = true; // Paper ++ entity.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.TRIAL_SPAWNER; // Paper - Entity#getEntitySpawnReason + // CraftBukkit start + if (org.bukkit.craftbukkit.event.CraftEventFactory.callTrialSpawnerSpawnEvent(entity, pos).isCancelled()) { + return Optional.empty(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index bddf98bdf60473eb1d2e533cf533ed7eee797aaa..ce70c8fddbe63d0af2b1f988ce9a2b40c5d48066 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java From 1c3c47ab0b3a45b6c1d2a0b37c02ba52e6258b20 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 11 Aug 2024 13:27:24 -0700 Subject: [PATCH 13/23] Correctly check enchants for ItemStack#damage (#11240) --- patches/server/0773-ItemStack-damage-API.patch | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/patches/server/0773-ItemStack-damage-API.patch b/patches/server/0773-ItemStack-damage-API.patch index 965c0e9084..2f71087902 100644 --- a/patches/server/0773-ItemStack-damage-API.patch +++ b/patches/server/0773-ItemStack-damage-API.patch @@ -11,10 +11,10 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 598507684aed7978fa2e9bae0d959c7d0f9e53d6..7c52ae813bfe47983ca94f4daf68f17e899949da 100644 +index 598507684aed7978fa2e9bae0d959c7d0f9e53d6..e6588a7fc03df4036b38f9a2011e7a716ff111f4 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -647,11 +647,16 @@ public final class ItemStack implements DataComponentHolder { +@@ -647,8 +647,13 @@ public final class ItemStack implements DataComponentHolder { } public void hurtAndBreak(int amount, ServerLevel world, @Nullable LivingEntity player, Consumer breakCallback) { // Paper - Add EntityDamageItemEvent @@ -28,11 +28,7 @@ index 598507684aed7978fa2e9bae0d959c7d0f9e53d6..7c52ae813bfe47983ca94f4daf68f17e + if (player == null || !player.hasInfiniteMaterials() || force) { // Paper if (amount > 0) { int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent -- amount = EnchantmentHelper.processDurabilityChange(world, this, amount); -+ if (!force) amount = EnchantmentHelper.processDurabilityChange(world, this, amount); // Paper - itemstack damage API - do not consider enchantments when damaging from API - // CraftBukkit start - if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent - PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Add EntityDamageItemEvent & Expand PlayerItemDamageEvent + amount = EnchantmentHelper.processDurabilityChange(world, this, amount); @@ -699,6 +704,11 @@ public final class ItemStack implements DataComponentHolder { } From 1187544fb0946e1480acdd52213c2ecb3f321a74 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 11 Aug 2024 13:42:39 -0700 Subject: [PATCH 14/23] Fix teleport event getTo returning null (#11239) --- .../server/0786-Improve-PortalEvents.patch | 50 ++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/patches/server/0786-Improve-PortalEvents.patch b/patches/server/0786-Improve-PortalEvents.patch index 3686fbed23..53e3b1ff5f 100644 --- a/patches/server/0786-Improve-PortalEvents.patch +++ b/patches/server/0786-Improve-PortalEvents.patch @@ -4,6 +4,19 @@ Date: Thu, 15 Dec 2022 10:33:39 -0800 Subject: [PATCH] Improve PortalEvents +diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java +index 7604aef2e03e7d688e7b6504283ed631488ec2d6..6868025551065e0c9418b9e1387579b6bd35923b 100644 +--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java ++++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +@@ -1341,7 +1341,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { + } + // CraftBukkit start + Location enter = this.getBukkitEntity().getLocation(); +- Location exit = (worldserver == null) ? null : CraftLocation.toBukkit(teleportTarget.pos(), worldserver.getWorld(), teleportTarget.yRot(), teleportTarget.xRot()); ++ Location exit =/* (worldserver == null) ? null : // Paper - always non-null */CraftLocation.toBukkit(teleportTarget.pos(), worldserver.getWorld(), teleportTarget.yRot(), teleportTarget.xRot()); + PlayerTeleportEvent tpEvent = new PlayerTeleportEvent(this.getBukkitEntity(), enter, exit, teleportTarget.cause()); + Bukkit.getServer().getPluginManager().callEvent(tpEvent); + if (tpEvent.isCancelled() || tpEvent.getTo() == null) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index 3c410f22c92a64b50d77b22c4b3027d51bcd7e05..1c4ec9049d84adbeb26b7abda82836f8ce0ff0ba 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java @@ -41,7 +54,7 @@ index 11486419dd98a013c7387d3d73f322a95a18c574..3f5bb5c9ceb5b31fcc9ef0a7a6157e1e if (!world.isClientSide && tileentity instanceof TheEndGatewayBlockEntity) { diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index cff3e9869340f1ffb7093431cbe1ac5e67792a4e..01333f69b622141b2eb53441c6cbd69e4a059d55 100644 +index cff3e9869340f1ffb7093431cbe1ac5e67792a4e..6937d334b70791c094f6b752373225cfb64ee7ac 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java @@ -66,8 +66,9 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -55,8 +68,17 @@ index cff3e9869340f1ffb7093431cbe1ac5e67792a4e..01333f69b622141b2eb53441c6cbd69e // CraftBukkit end if (!world.isClientSide && world.dimension() == Level.END && entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; +@@ -89,7 +90,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { + ServerLevel worldserver1 = world.getServer().getLevel(resourcekey); + + if (worldserver1 == null) { +- return new DimensionTransition(PlayerTeleportEvent.TeleportCause.END_PORTAL); // CraftBukkit- always fire event in case plugins wish to change it ++ return null; // Paper - keep previous behavior of not firing PlayerTeleportEvent if the target world doesn't exist + } else { + boolean flag = resourcekey == Level.END; + BlockPos blockposition1 = flag ? ServerLevel.END_SPAWN_POINT : worldserver1.getSharedSpawnPos(); diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index a530276b0123dee5680d7e09ad3d2f0414909c91..ddab7de1d376e9e486e2f920174397ea8804aa29 100644 +index a530276b0123dee5680d7e09ad3d2f0414909c91..1722188fbfccd233625db540ddcaf646762fd023 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -110,8 +110,9 @@ public class NetherPortalBlock extends Block implements Portal { @@ -70,3 +92,27 @@ index a530276b0123dee5680d7e09ad3d2f0414909c91..ddab7de1d376e9e486e2f920174397ea // CraftBukkit end entity.setAsInsidePortal(this, pos); } +@@ -143,7 +144,7 @@ public class NetherPortalBlock extends Block implements Portal { + // Paper end - Add EntityPortalReadyEvent + + if (worldserver1 == null) { +- return new DimensionTransition(PlayerTeleportEvent.TeleportCause.NETHER_PORTAL); // always fire event in case plugins wish to change it ++ return null; // Paper - keep previous behavior of not firing PlayerTeleportEvent if the target world doesn't exist + } else { + boolean flag = worldserver1.getTypeKey() == LevelStem.NETHER; + // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java b/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java +index 788f79dc38012595b385ee6a449daa0bccf0079a..36c8735312c885eb153f4ffdf0f2a5495e9c9f65 100644 +--- a/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java ++++ b/src/main/java/net/minecraft/world/level/portal/DimensionTransition.java +@@ -15,9 +15,7 @@ public record DimensionTransition(ServerLevel newLevel, Vec3 pos, Vec3 speed, fl + this(newLevel, pos, speed, yRot, xRot, missingRespawnBlock, postDimensionTransition, PlayerTeleportEvent.TeleportCause.UNKNOWN); + } + +- public DimensionTransition(PlayerTeleportEvent.TeleportCause cause) { +- this(null, Vec3.ZERO, Vec3.ZERO, 0.0F, 0.0F, false, DO_NOTHING, cause); +- } ++ // Paper - remove unused constructor (for safety) + // CraftBukkit end + + public static final DimensionTransition.PostDimensionTransition DO_NOTHING = (entity) -> { From dd941cc40a25a4c6217f09c121b891962726f3ee Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 11 Aug 2024 13:51:37 -0700 Subject: [PATCH 15/23] Re-add patches for can-place/can-destroy API (#11238) * Re-add patches for can-place/can-destroy API This API is all deprecated for removal and has to be replaced as the structure of it has too radically changed * update patches * add link to MaterialRerouting * Deprecation --------- Co-authored-by: Bjarne Koll --- ...CanPlaceOn-and-CanDestroy-NBT-values.patch | 332 +++++++++++++++ ...CanPlaceOn-and-CanDestroy-NBT-values.patch | 397 ------------------ .../server/0981-Adopt-MaterialRerouting.patch | 6 +- ...CanPlaceOn-and-CanDestroy-NBT-values.patch | 155 +++++++ 4 files changed, 490 insertions(+), 400 deletions(-) create mode 100644 patches/api/0482-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch delete mode 100644 patches/removed/1.20.5/0259-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch create mode 100644 patches/server/1044-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch diff --git a/patches/api/0482-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/api/0482-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch new file mode 100644 index 0000000000..3dd2df1411 --- /dev/null +++ b/patches/api/0482-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch @@ -0,0 +1,332 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Vainomaa +Date: Wed, 12 Sep 2018 18:53:35 +0300 +Subject: [PATCH] Add an API for CanPlaceOn and CanDestroy NBT values + + +diff --git a/src/main/java/com/destroystokyo/paper/Namespaced.java b/src/main/java/com/destroystokyo/paper/Namespaced.java +new file mode 100644 +index 0000000000000000000000000000000000000000..e708cc48f480e91a60834897e447e4a2fc1244d4 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/Namespaced.java +@@ -0,0 +1,41 @@ ++package com.destroystokyo.paper; ++ ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a namespaced resource, see {@link org.bukkit.NamespacedKey} for single elements ++ * or {@link com.destroystokyo.paper.NamespacedTag} for a collection of elements ++ * ++ * Namespaces may only contain lowercase alphanumeric characters, periods, ++ * underscores, and hyphens. ++ *

++ * Keys may only contain lowercase alphanumeric characters, periods, ++ * underscores, hyphens, and forward slashes. ++ *

++ * You should not be implementing this interface yourself, use {@link org.bukkit.NamespacedKey} ++ * or {@link com.destroystokyo.paper.NamespacedTag} as needed instead. ++ */ ++@Deprecated(forRemoval = true, since = "1.20.6") ++public interface Namespaced { ++ /** ++ * Gets the namespace this resource is a part of ++ *

++ * This is contractually obligated to only contain lowercase alphanumeric characters, ++ * periods, underscores, and hyphens. ++ * ++ * @return resource namespace ++ */ ++ @NotNull ++ String getNamespace(); ++ ++ /** ++ * Gets the key corresponding to this resource ++ *

++ * This is contractually obligated to only contain lowercase alphanumeric characters, ++ * periods, underscores, hyphens, and forward slashes. ++ * ++ * @return resource key ++ */ ++ @NotNull ++ String getKey(); ++} +diff --git a/src/main/java/com/destroystokyo/paper/NamespacedTag.java b/src/main/java/com/destroystokyo/paper/NamespacedTag.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c976995a0fceaf0cbddd399906a866747b12a202 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/NamespacedTag.java +@@ -0,0 +1,143 @@ ++package com.destroystokyo.paper; ++ ++import com.google.common.base.Preconditions; ++import java.util.Locale; ++import java.util.UUID; ++import java.util.regex.Pattern; ++import org.bukkit.plugin.Plugin; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a String based key pertaining to a tagged entry. Consists of two components - a namespace ++ * and a key. ++ *

++ * Namespaces may only contain lowercase alphanumeric characters, periods, ++ * underscores, and hyphens. ++ *

++ * Keys may only contain lowercase alphanumeric characters, periods, ++ * underscores, hyphens, and forward slashes. ++ * ++ */ ++// Paper - entire class, based on org.bukkit.NamespacedKey ++@Deprecated(forRemoval = true, since = "1.20.6") ++public final class NamespacedTag implements com.destroystokyo.paper.Namespaced { ++ ++ /** ++ * The namespace representing all inbuilt keys. ++ */ ++ public static final String MINECRAFT = "minecraft"; ++ /** ++ * The namespace representing all keys generated by Bukkit for backwards ++ * compatibility measures. ++ */ ++ public static final String BUKKIT = "bukkit"; ++ // ++ private static final Pattern VALID_NAMESPACE = Pattern.compile("[a-z0-9._-]+"); ++ private static final Pattern VALID_KEY = Pattern.compile("[a-z0-9/._-]+"); ++ // ++ private final String namespace; ++ private final String key; ++ ++ /** ++ * Create a key in a specific namespace. ++ * ++ * @param namespace String representing a grouping of keys ++ * @param key Name for this specific key ++ * @deprecated should never be used by plugins, for internal use only!! ++ */ ++ @Deprecated ++ public NamespacedTag(@NotNull String namespace, @NotNull String key) { ++ Preconditions.checkArgument(namespace != null && VALID_NAMESPACE.matcher(namespace).matches(), "Invalid namespace. Must be [a-z0-9._-]: %s", namespace); ++ Preconditions.checkArgument(key != null && VALID_KEY.matcher(key).matches(), "Invalid key. Must be [a-z0-9/._-]: %s", key); ++ ++ this.namespace = namespace; ++ this.key = key; ++ ++ String string = toString(); ++ Preconditions.checkArgument(string.length() < 256, "NamespacedTag must be less than 256 characters", string); ++ } ++ ++ /** ++ * Create a key in the plugin's namespace. ++ *

++ * Namespaces may only contain lowercase alphanumeric characters, periods, ++ * underscores, and hyphens. ++ *

++ * Keys may only contain lowercase alphanumeric characters, periods, ++ * underscores, hyphens, and forward slashes. ++ * ++ * @param plugin the plugin to use for the namespace ++ * @param key the key to create ++ */ ++ public NamespacedTag(@NotNull Plugin plugin, @NotNull String key) { ++ Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); ++ Preconditions.checkArgument(key != null, "Key cannot be null"); ++ ++ this.namespace = plugin.getName().toLowerCase(Locale.ROOT); ++ this.key = key.toLowerCase().toLowerCase(Locale.ROOT); ++ ++ // Check validity after normalization ++ Preconditions.checkArgument(VALID_NAMESPACE.matcher(this.namespace).matches(), "Invalid namespace. Must be [a-z0-9._-]: %s", this.namespace); ++ Preconditions.checkArgument(VALID_KEY.matcher(this.key).matches(), "Invalid key. Must be [a-z0-9/._-]: %s", this.key); ++ ++ String string = toString(); ++ Preconditions.checkArgument(string.length() < 256, "NamespacedTag must be less than 256 characters (%s)", string); ++ } ++ ++ @NotNull ++ public String getNamespace() { ++ return namespace; ++ } ++ ++ @NotNull ++ public String getKey() { ++ return key; ++ } ++ ++ @Override ++ public int hashCode() { ++ int hash = 7; ++ hash = 47 * hash + this.namespace.hashCode(); ++ hash = 47 * hash + this.key.hashCode(); ++ return hash; ++ } ++ ++ @Override ++ public boolean equals(Object obj) { ++ if (obj == null) { ++ return false; ++ } ++ if (getClass() != obj.getClass()) { ++ return false; ++ } ++ final NamespacedTag other = (NamespacedTag) obj; ++ return this.namespace.equals(other.namespace) && this.key.equals(other.key); ++ } ++ ++ @Override ++ public String toString() { ++ return "#" + this.namespace + ":" + this.key; ++ } ++ ++ /** ++ * Return a new random key in the {@link #BUKKIT} namespace. ++ * ++ * @return new key ++ * @deprecated should never be used by plugins, for internal use only!! ++ */ ++ @Deprecated ++ public static NamespacedTag randomKey() { ++ return new NamespacedTag(BUKKIT, UUID.randomUUID().toString()); ++ } ++ ++ /** ++ * Get a key in the Minecraft namespace. ++ * ++ * @param key the key to use ++ * @return new key in the Minecraft namespace ++ */ ++ @NotNull ++ public static NamespacedTag minecraft(@NotNull String key) { ++ return new NamespacedTag(MINECRAFT, key); ++ } ++} +diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java +index 7ff6d60deb129e23b2a4d772aee123eb6c0b6433..52a2763773b234c581b2dcc6f0584f8d8b0fbc60 100644 +--- a/src/main/java/org/bukkit/NamespacedKey.java ++++ b/src/main/java/org/bukkit/NamespacedKey.java +@@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable; + * underscores, hyphens, and forward slashes. + * + */ +-public final class NamespacedKey implements net.kyori.adventure.key.Key { // Paper - implement Key ++public final class NamespacedKey implements net.kyori.adventure.key.Key, com.destroystokyo.paper.Namespaced { // Paper - implement Key and Namespaced + + /** + * The namespace representing all inbuilt keys. +@@ -121,11 +121,13 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap + } + + @NotNull ++ @Override // Paper + public String getNamespace() { + return namespace; + } + + @NotNull ++ @Override // Paper + public String getKey() { + return key; + } +diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +index 5d5fcb2720b62e47d47f441032c4de02574b051a..f5541454ba5e508a72c83989c6feaef5406e2535 100644 +--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java ++++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java +@@ -806,4 +806,98 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste + @SuppressWarnings("javadoc") + @NotNull + ItemMeta clone(); ++ ++ // Paper start - Add an API for can-place-on/can-break adventure mode predicates ++ /** ++ * Gets set of materials what given item can destroy in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @return Set of materials ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.14") ++ Set getCanDestroy(); ++ ++ /** ++ * Sets set of materials what given item can destroy in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @param canDestroy Set of materials ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.14") ++ void setCanDestroy(Set canDestroy); ++ ++ /** ++ * Gets set of materials where given item can be placed on in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @return Set of materials ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.14") ++ Set getCanPlaceOn(); ++ ++ /** ++ * Sets set of materials where given item can be placed on in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @param canPlaceOn Set of materials ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.14") ++ void setCanPlaceOn(Set canPlaceOn); ++ ++ /** ++ * Gets the collection of namespaced keys that the item can destroy in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @return Set of {@link com.destroystokyo.paper.Namespaced} ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ @NotNull ++ Set getDestroyableKeys(); ++ ++ /** ++ * Sets the collection of namespaced keys that the item can destroy in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @param canDestroy Collection of {@link com.destroystokyo.paper.Namespaced} ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ void setDestroyableKeys(@NotNull Collection canDestroy); ++ ++ /** ++ * Gets the collection of namespaced keys that the item can be placed on in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @return Set of {@link com.destroystokyo.paper.Namespaced} ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @NotNull ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ Set getPlaceableKeys(); ++ ++ /** ++ * Sets the set of namespaced keys that the item can be placed on in {@link org.bukkit.GameMode#ADVENTURE} ++ * ++ * @param canPlaceOn Collection of {@link com.destroystokyo.paper.Namespaced} ++ * @deprecated this API is unsupported and will be replaced, its usage may result in data loss related to place/destroy predicates. ++ */ ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ void setPlaceableKeys(@NotNull Collection canPlaceOn); ++ ++ /** ++ * Checks for the existence of any keys that the item can be placed on ++ * ++ * @return true if this item has placeable keys ++ * @deprecated this API is unsupported and will be replaced ++ */ ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ boolean hasPlaceableKeys(); ++ ++ /** ++ * Checks for the existence of any keys that the item can destroy ++ * ++ * @return true if this item has destroyable keys ++ * @deprecated this API is unsupported and will be replaced ++ */ ++ @Deprecated(forRemoval = true, since = "1.20.6") ++ boolean hasDestroyableKeys(); ++ // Paper end - Add an API for can-place-on/can-break adventure mode predicates + } diff --git a/patches/removed/1.20.5/0259-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/removed/1.20.5/0259-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch deleted file mode 100644 index f179b48bd7..0000000000 --- a/patches/removed/1.20.5/0259-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch +++ /dev/null @@ -1,397 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Mark Vainomaa -Date: Wed, 12 Sep 2018 18:53:55 +0300 -Subject: [PATCH] Add API for CanPlaceOn and CanDestroy NBT values - - -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 1920cf7ad846f57cd278cb9a72dce03f3d014fbb..7cf1153ae532a9d53ee85b05f77ed74b94cf5fbc 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -85,6 +85,12 @@ import org.bukkit.persistence.PersistentDataContainer; - import static org.spigotmc.ValidateUtils.*; - // Spigot end - -+// Paper start -+import com.destroystokyo.paper.Namespaced; -+import com.destroystokyo.paper.NamespacedTag; -+import java.util.Collections; -+// Paper end -+ - /** - * Children must include the following: - * -@@ -273,6 +279,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - @Specific(Specific.To.NBT) - static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag"); - static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues"); -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ static final ItemMetaKey CAN_DESTROY = new ItemMetaKey("CanDestroy"); -+ static final ItemMetaKey CAN_PLACE_ON = new ItemMetaKey("CanPlaceOn"); -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - - // We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304 - private String displayName; -@@ -286,6 +296,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - private int hideFlag; - private boolean unbreakable; - private int damage; -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ private Set placeableKeys = Sets.newHashSet(); -+ private Set destroyableKeys = Sets.newHashSet(); -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - - private static final Set HANDLED_TAGS = Sets.newHashSet(); - private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); -@@ -323,6 +337,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - this.hideFlag = meta.hideFlag; - this.unbreakable = meta.unbreakable; - this.damage = meta.damage; -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ if (meta.hasPlaceableKeys()) { -+ this.placeableKeys = new java.util.HashSet<>(meta.placeableKeys); -+ } -+ -+ if (meta.hasDestroyableKeys()) { -+ this.destroyableKeys = new java.util.HashSet<>(meta.destroyableKeys); -+ } -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - this.unhandledTags.putAll(meta.unhandledTags); - this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); - -@@ -386,6 +409,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - this.persistentDataContainer.put(key, compound.get(key).copy()); - } - } -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ if (tag.contains(CAN_DESTROY.NBT)) { -+ ListTag list = tag.getList(CAN_DESTROY.NBT, CraftMagicNumbers.NBT.TAG_STRING); -+ for (int i = 0; i < list.size(); i++) { -+ Namespaced namespaced = this.blockKeyFromString(list.getString(i)); -+ if (namespaced == null) { -+ continue; -+ } -+ -+ this.destroyableKeys.add(namespaced); -+ } -+ } -+ -+ if (tag.contains(CAN_PLACE_ON.NBT)) { -+ ListTag list = tag.getList(CAN_PLACE_ON.NBT, CraftMagicNumbers.NBT.TAG_STRING); -+ for (int i = 0; i < list.size(); i++) { -+ Namespaced namespaced = this.blockKeyFromString(list.getString(i)); -+ if (namespaced == null) { -+ continue; -+ } -+ -+ this.placeableKeys.add(namespaced); -+ } -+ } -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - - Set keys = tag.getAllKeys(); - for (String key : keys) { -@@ -524,6 +572,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - this.setDamage(damage); - } - -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ Iterable canPlaceOnSerialized = SerializableMeta.getObject(Iterable.class, map, CAN_PLACE_ON.BUKKIT, true); -+ if (canPlaceOnSerialized != null) { -+ for (Object canPlaceOnElement : canPlaceOnSerialized) { -+ String canPlaceOnRaw = (String) canPlaceOnElement; -+ Namespaced value = this.blockKeyFromString(canPlaceOnRaw); -+ if (value == null) { -+ continue; -+ } -+ -+ this.placeableKeys.add(value); -+ } -+ } -+ -+ Iterable canDestroySerialized = SerializableMeta.getObject(Iterable.class, map, CAN_DESTROY.BUKKIT, true); -+ if (canDestroySerialized != null) { -+ for (Object canDestroyElement : canDestroySerialized) { -+ String canDestroyRaw = (String) canDestroyElement; -+ Namespaced value = this.blockKeyFromString(canDestroyRaw); -+ if (value == null) { -+ continue; -+ } -+ -+ this.destroyableKeys.add(value); -+ } -+ } -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values -+ - String internal = SerializableMeta.getString(map, "internal", true); - if (internal != null) { - ByteArrayInputStream buf = new ByteArrayInputStream(Base64.getDecoder().decode(internal)); -@@ -652,6 +728,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - if (this.hasDamage()) { - itemTag.putInt(CraftMetaItem.DAMAGE.NBT, this.damage); - } -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ if (hasPlaceableKeys()) { -+ List items = this.placeableKeys.stream() -+ .map(this::serializeNamespaced) -+ .collect(java.util.stream.Collectors.toList()); -+ -+ itemTag.put(CAN_PLACE_ON.NBT, createNonComponentStringList(items)); -+ } -+ -+ if (hasDestroyableKeys()) { -+ List items = this.destroyableKeys.stream() -+ .map(this::serializeNamespaced) -+ .collect(java.util.stream.Collectors.toList()); -+ -+ itemTag.put(CAN_DESTROY.NBT, createNonComponentStringList(items)); -+ } -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - - for (Map.Entry e : this.unhandledTags.entrySet()) { - itemTag.put(e.getKey(), e.getValue()); -@@ -668,6 +761,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - } - } - -+ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values -+ static ListTag createNonComponentStringList(List list) { -+ if (list == null || list.isEmpty()) { -+ return null; -+ } -+ -+ ListTag tagList = new ListTag(); -+ for (String value : list) { -+ tagList.add(StringTag.valueOf(value)); // Paper - NBTTagString.of(String str) -+ } -+ -+ return tagList; -+ } -+ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values -+ - ListTag createStringList(List list) { - if (list == null) { - return null; -@@ -751,7 +859,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - - @Overridden - boolean isEmpty() { -- return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers()); -+ return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers() || this.hasPlaceableKeys() || this.hasDestroyableKeys()); // Paper - Implement an API for CanPlaceOn and CanDestroy NBT values - } - - // Paper start -@@ -1223,7 +1331,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - && (this.hideFlag == that.hideFlag) - && (this.isUnbreakable() == that.isUnbreakable()) - && (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage()) -- && (this.version == that.version); -+ && (this.version == that.version) -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values -+ && (this.hasPlaceableKeys() ? that.hasPlaceableKeys() && this.placeableKeys.equals(that.placeableKeys) : !that.hasPlaceableKeys()) -+ && (this.hasDestroyableKeys() ? that.hasDestroyableKeys() && this.destroyableKeys.equals(that.destroyableKeys) : !that.hasDestroyableKeys()); -+ // Paper end - } - - /** -@@ -1258,6 +1370,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - hash = 61 * hash + (this.hasDamage() ? this.damage : 0); - hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0); - hash = 61 * hash + this.version; -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values -+ hash = 61 * hash + (this.hasPlaceableKeys() ? this.placeableKeys.hashCode() : 0); -+ hash = 61 * hash + (this.hasDestroyableKeys() ? this.destroyableKeys.hashCode() : 0); -+ // Paper end - return hash; - } - -@@ -1282,6 +1398,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - clone.unbreakable = this.unbreakable; - clone.damage = this.damage; - clone.version = this.version; -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values -+ if (this.placeableKeys != null) { -+ clone.placeableKeys = Sets.newHashSet(this.placeableKeys); -+ } -+ if (this.destroyableKeys != null) { -+ clone.destroyableKeys = Sets.newHashSet(this.destroyableKeys); -+ } -+ // Paper end - return clone; - } catch (CloneNotSupportedException e) { - throw new Error(e); -@@ -1339,6 +1463,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - builder.put(CraftMetaItem.DAMAGE.BUKKIT, this.damage); - } - -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values -+ if (this.hasPlaceableKeys()) { -+ List cerealPlaceable = this.placeableKeys.stream() -+ .map(this::serializeNamespaced) -+ .collect(java.util.stream.Collectors.toList()); -+ -+ builder.put(CAN_PLACE_ON.BUKKIT, cerealPlaceable); -+ } -+ -+ if (this.hasDestroyableKeys()) { -+ List cerealDestroyable = this.destroyableKeys.stream() -+ .map(this::serializeNamespaced) -+ .collect(java.util.stream.Collectors.toList()); -+ -+ builder.put(CAN_DESTROY.BUKKIT, cerealDestroyable); -+ } -+ // Paper end - final Map internalTags = new HashMap(this.unhandledTags); - this.serializeInternal(internalTags); - if (!internalTags.isEmpty()) { -@@ -1516,6 +1657,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - CraftMetaArmorStand.SHOW_ARMS.NBT, - CraftMetaArmorStand.SMALL.NBT, - CraftMetaArmorStand.MARKER.NBT, -+ CAN_DESTROY.NBT, -+ CAN_PLACE_ON.NBT, - // Paper end - CraftMetaCompass.LODESTONE_DIMENSION.NBT, - CraftMetaCompass.LODESTONE_POS.NBT, -@@ -1545,4 +1688,141 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { - } - // Paper end - -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values -+ @Override -+ @SuppressWarnings("deprecation") -+ public Set getCanDestroy() { -+ return !hasDestroyableKeys() ? Collections.emptySet() : legacyGetMatsFromKeys(this.destroyableKeys); -+ } -+ -+ @Override -+ @SuppressWarnings("deprecation") -+ public void setCanDestroy(Set canDestroy) { -+ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null set!"); -+ legacyClearAndReplaceKeys(this.destroyableKeys, canDestroy); -+ } -+ -+ @Override -+ @SuppressWarnings("deprecation") -+ public Set getCanPlaceOn() { -+ return !hasPlaceableKeys() ? Collections.emptySet() : legacyGetMatsFromKeys(this.placeableKeys); -+ } -+ -+ @Override -+ @SuppressWarnings("deprecation") -+ public void setCanPlaceOn(Set canPlaceOn) { -+ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null set!"); -+ legacyClearAndReplaceKeys(this.placeableKeys, canPlaceOn); -+ } -+ -+ @Override -+ public Set getDestroyableKeys() { -+ return !hasDestroyableKeys() ? Collections.emptySet() : Sets.newHashSet(this.destroyableKeys); -+ } -+ -+ @Override -+ public void setDestroyableKeys(Collection canDestroy) { -+ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null collection!"); -+ Preconditions.checkArgument(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!"); -+ this.destroyableKeys.clear(); -+ this.destroyableKeys.addAll(canDestroy); -+ } -+ -+ @Override -+ public Set getPlaceableKeys() { -+ return !hasPlaceableKeys() ? Collections.emptySet() : Sets.newHashSet(this.placeableKeys); -+ } -+ -+ @Override -+ public void setPlaceableKeys(Collection canPlaceOn) { -+ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null collection!"); -+ Preconditions.checkArgument(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!"); -+ this.placeableKeys.clear(); -+ this.placeableKeys.addAll(canPlaceOn); -+ } -+ -+ @Override -+ public boolean hasPlaceableKeys() { -+ return this.placeableKeys != null && !this.placeableKeys.isEmpty(); -+ } -+ -+ @Override -+ public boolean hasDestroyableKeys() { -+ return this.destroyableKeys != null && !this.destroyableKeys.isEmpty(); -+ } -+ -+ @Deprecated -+ private void legacyClearAndReplaceKeys(Collection toUpdate, Collection beingSet) { -+ if (beingSet.stream().anyMatch(Material::isLegacy)) { -+ throw new IllegalArgumentException("Set must not contain any legacy materials!"); -+ } -+ -+ toUpdate.clear(); -+ toUpdate.addAll(beingSet.stream().map(Material::getKey).collect(java.util.stream.Collectors.toSet())); -+ } -+ -+ @Deprecated -+ private Set legacyGetMatsFromKeys(Collection names) { -+ Set mats = Sets.newHashSet(); -+ for (Namespaced key : names) { -+ if (!(key instanceof org.bukkit.NamespacedKey)) { -+ continue; -+ } -+ -+ Material material = Material.matchMaterial(key.toString(), false); -+ if (material != null) { -+ mats.add(material); -+ } -+ } -+ -+ return mats; -+ } -+ -+ private @Nullable Namespaced blockKeyFromString(String raw) { -+ boolean isTag = !raw.isEmpty() && raw.codePointAt(0) == '#'; -+ com.mojang.datafixers.util.Either result; -+ try { -+ result = net.minecraft.commands.arguments.blocks.BlockStateParser.parseForTesting(net.minecraft.core.registries.BuiltInRegistries.BLOCK.asLookup(), raw, false); -+ } catch (com.mojang.brigadier.exceptions.CommandSyntaxException e) { -+ return null; -+ } -+ -+ net.minecraft.resources.ResourceLocation key = null; -+ if (isTag && result.right().isPresent() && result.right().get().tag() instanceof net.minecraft.core.HolderSet.Named namedSet) { -+ key = namedSet.key().location(); -+ } else if (result.left().isPresent()) { -+ key = net.minecraft.core.registries.BuiltInRegistries.BLOCK.getKey(result.left().get().blockState().getBlock()); -+ } -+ -+ if (key == null) { -+ return null; -+ } -+ -+ try { -+ if (isTag) { -+ return new NamespacedTag(key.getNamespace(), key.getPath()); -+ -+ } -+ return CraftNamespacedKey.fromMinecraft(key); -+ } catch (IllegalArgumentException ignored) { -+ return null; -+ } -+ } -+ -+ private @Nonnull String serializeNamespaced(Namespaced resource) { -+ return resource.toString(); -+ } -+ -+ // not a fan of this -+ private boolean ofAcceptableType(Collection namespacedResources) { -+ -+ for (Namespaced resource : namespacedResources) { -+ if (!(resource instanceof org.bukkit.NamespacedKey || resource instanceof com.destroystokyo.paper.NamespacedTag)) { -+ return false; -+ } -+ } -+ -+ return true; -+ } -+ // Paper end - } diff --git a/patches/server/0981-Adopt-MaterialRerouting.patch b/patches/server/0981-Adopt-MaterialRerouting.patch index acdc787b2c..e6473ef21a 100644 --- a/patches/server/0981-Adopt-MaterialRerouting.patch +++ b/patches/server/0981-Adopt-MaterialRerouting.patch @@ -7,7 +7,7 @@ Adopts the paper-api to the material rerouting infrastructure introduced by upstream. diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java -index 3ff0f0e34356cee4c510fdd60af723b1c5df156a..9c004e7cb46841d874ab997bf2e3b63ae763aec7 100644 +index 3ff0f0e34356cee4c510fdd60af723b1c5df156a..6cc9d7a9e6d4bfdc27e52fc581b2bb832616f121 100644 --- a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java +++ b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java @@ -600,4 +600,82 @@ public class MaterialRerouting { @@ -74,12 +74,12 @@ index 3ff0f0e34356cee4c510fdd60af723b1c5df156a..9c004e7cb46841d874ab997bf2e3b63a + return com.destroystokyo.paper.event.player.PlayerArmorChangeEvent.SlotType.isEquipable(MaterialRerouting.transformToItemType(material)); + } + -+ // Method added post 1.13, no-op (https://github.com/PaperMC/Paper/pull/1244)1 ++ // Method added post 1.13, no-op (https://github.com/PaperMC/Paper/pull/1244) + public static Material getMaterial(final com.destroystokyo.paper.event.block.AnvilDamagedEvent.DamageState damageState) { + return damageState.getMaterial(); + } + -+ // Method added post 1.13, no-op (https://github.com/PaperMC/Paper/pull/1244)1 ++ // Method added post 1.13, no-op (https://github.com/PaperMC/Paper/pull/1244) + @RerouteStatic("com/destroystokyo/paper/event/block/AnvilDamagedEvent$DamageState") + public static com.destroystokyo.paper.event.block.AnvilDamagedEvent.DamageState getState( + final Material material diff --git a/patches/server/1044-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/server/1044-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch new file mode 100644 index 0000000000..3ff8343ca9 --- /dev/null +++ b/patches/server/1044-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch @@ -0,0 +1,155 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Wed, 12 Sep 2018 18:53:55 +0300 +Subject: [PATCH] Add API for CanPlaceOn and CanDestroy NBT values + + +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +index d5c45cc09b9d60c1650507ad6fedb27246291063..5c45946f54e4b16440c15a9165ef85be43e53c84 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +@@ -2183,4 +2183,117 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { + } + // Paper end + ++ // Paper start - Add an API for can-place-on/can-break adventure mode predicates ++ @Override ++ public Set getCanDestroy() { ++ return !this.hasDestroyableKeys() ? Collections.emptySet() : convertToLegacyMaterial(this.canBreakPredicates); ++ } ++ ++ @Override ++ public void setCanDestroy(final Set canDestroy) { ++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null set!"); ++ this.canBreakPredicates = convertFromLegacyMaterial(canDestroy); ++ } ++ ++ @Override ++ public Set getCanPlaceOn() { ++ return !this.hasPlaceableKeys() ? Collections.emptySet() : convertToLegacyMaterial(this.canPlaceOnPredicates); ++ } ++ ++ @Override ++ public void setCanPlaceOn(final Set canPlaceOn) { ++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null set!"); ++ this.canPlaceOnPredicates = convertFromLegacyMaterial(canPlaceOn); ++ } ++ ++ private static List convertFromLegacyMaterial(final Collection materials) { ++ return materials.stream().map(m -> { ++ return net.minecraft.advancements.critereon.BlockPredicate.Builder.block().of(CraftBlockType.bukkitToMinecraft(m)).build(); ++ }).toList(); ++ } ++ ++ private static Set convertToLegacyMaterial(final List predicates) { ++ return predicates.stream() ++ .flatMap(p -> p.blocks().map(net.minecraft.core.HolderSet::stream).orElse(java.util.stream.Stream.empty())) ++ .map(holder -> CraftBlockType.minecraftToBukkit(holder.value())) ++ .collect(java.util.stream.Collectors.toSet()); ++ } ++ ++ @Override ++ public Set getDestroyableKeys() { ++ return !this.hasDestroyableKeys() ? Collections.emptySet() : convertToLegacyNamespaced(this.canBreakPredicates); ++ } ++ ++ @Override ++ public void setDestroyableKeys(final Collection canDestroy) { ++ Preconditions.checkArgument(canDestroy != null, "Cannot replace with null collection!"); ++ Preconditions.checkArgument(ofAcceptableType(canDestroy), "Can only use NamespacedKey or NamespacedTag objects!"); ++ this.canBreakPredicates = convertFromLegacyNamespaced(canDestroy); ++ } ++ ++ @Override ++ public Set getPlaceableKeys() { ++ return !this.hasPlaceableKeys() ? Collections.emptySet() : convertToLegacyNamespaced(this.canPlaceOnPredicates); ++ } ++ ++ @Override ++ public void setPlaceableKeys(final Collection canPlaceOn) { ++ Preconditions.checkArgument(canPlaceOn != null, "Cannot replace with null collection!"); ++ Preconditions.checkArgument(ofAcceptableType(canPlaceOn), "Can only use NamespacedKey or NamespacedTag objects!"); ++ this.canPlaceOnPredicates = convertFromLegacyNamespaced(canPlaceOn); ++ } ++ ++ private static List convertFromLegacyNamespaced(final Collection namespaceds) { ++ final List predicates = new ArrayList<>(); ++ for (final com.destroystokyo.paper.Namespaced namespaced : namespaceds) { ++ if (namespaced instanceof final org.bukkit.NamespacedKey key) { ++ predicates.add(net.minecraft.advancements.critereon.BlockPredicate.Builder.block().of(CraftBlockType.bukkitToMinecraft(Objects.requireNonNull(org.bukkit.Registry.MATERIAL.get(key)))).build()); ++ } else if (namespaced instanceof final com.destroystokyo.paper.NamespacedTag tag) { ++ predicates.add(net.minecraft.advancements.critereon.BlockPredicate.Builder.block().of(net.minecraft.tags.TagKey.create(Registries.BLOCK, ResourceLocation.fromNamespaceAndPath(tag.getNamespace(), tag.getKey()))).build()); ++ } ++ } ++ return predicates; ++ } ++ ++ private static Set convertToLegacyNamespaced(final Collection predicates) { ++ final Set namespaceds = Sets.newHashSet(); ++ for (final net.minecraft.advancements.critereon.BlockPredicate predicate : predicates) { ++ if (predicate.blocks().isEmpty()) { ++ continue; ++ } ++ final net.minecraft.core.HolderSet holders = predicate.blocks().get(); ++ if (holders instanceof final net.minecraft.core.HolderSet.Named named) { ++ namespaceds.add(new com.destroystokyo.paper.NamespacedTag(named.key().location().getNamespace(), named.key().location().getPath())); ++ } else { ++ holders.forEach(h -> { ++ h.unwrapKey().ifPresent(key -> { ++ namespaceds.add(new org.bukkit.NamespacedKey(key.location().getNamespace(), key.location().getPath())); ++ }); ++ }); ++ } ++ } ++ return namespaceds; ++ } ++ ++ @Override ++ public boolean hasPlaceableKeys() { ++ return this.canPlaceOnPredicates != null; ++ } ++ ++ @Override ++ public boolean hasDestroyableKeys() { ++ return this.canBreakPredicates != null; ++ } ++ ++ // not a fan of this ++ private static boolean ofAcceptableType(final Collection namespacedResources) { ++ for (com.destroystokyo.paper.Namespaced resource : namespacedResources) { ++ if (!(resource instanceof org.bukkit.NamespacedKey || resource instanceof com.destroystokyo.paper.NamespacedTag)) { ++ return false; ++ } ++ } ++ ++ return true; ++ } ++ // Paper end - Add an API for can-place-on/can-break adventure mode predicates + } +diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java +index 6930d0afb230a88aa813b02e4d55c95d3a049688..db8d8e2a07296d62c3097f02b03319e2e1ba9394 100644 +--- a/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java ++++ b/src/main/java/org/bukkit/craftbukkit/legacy/MaterialRerouting.java +@@ -690,4 +690,22 @@ public class MaterialRerouting { + return ItemStack.of(material, amount); + } + // Paper end ++ ++ // Paper start - methods added post 1.13, no-op (https://github.com/PaperMC/Paper/pull/1015) ++ public static Set getCanDestroy(final ItemMeta meta) { ++ return meta.getCanDestroy(); ++ } ++ ++ public static void setCanDestroy(final ItemMeta meta, final Set materials) { ++ meta.setCanDestroy(materials); ++ } ++ ++ public static Set getCanPlaceOn(final ItemMeta meta) { ++ return meta.getCanPlaceOn(); ++ } ++ ++ public static void setCanPlaceOn(final ItemMeta meta, final Set materials) { ++ meta.setCanPlaceOn(materials); ++ } ++ // Paper end + } From ab0d24aa6f22308352eb363b09c992fc70de4143 Mon Sep 17 00:00:00 2001 From: Newwind Date: Sun, 11 Aug 2024 23:16:20 +0100 Subject: [PATCH 16/23] Configuration for horizontal-only item merging (#11219) --- patches/server/0005-Paper-config-files.patch | 9 ++++-- ...ion-for-horizontal-only-item-merging.patch | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 patches/server/1045-Configuration-for-horizontal-only-item-merging.patch diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 38b5d938a5..199fcccc04 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -1414,10 +1414,10 @@ index 0000000000000000000000000000000000000000..990d1bb46e0f9719f4e9af928d80ac6f +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..7509b17414f836e8b53fc62b02b386ba4e8c5ca9 +index 0000000000000000000000000000000000000000..4bcf27f98765abf693e535cfc1756c27a10cb316 --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -0,0 +1,551 @@ +@@ -0,0 +1,554 @@ +package io.papermc.paper.configuration; + +import com.google.common.collect.HashBasedTable; @@ -1474,6 +1474,7 @@ index 0000000000000000000000000000000000000000..7509b17414f836e8b53fc62b02b386ba +import org.slf4j.Logger; +import org.spigotmc.SpigotWorldConfig; +import org.spongepowered.configurate.objectmapping.ConfigSerializable; ++import org.spongepowered.configurate.objectmapping.meta.Comment; +import org.spongepowered.configurate.objectmapping.meta.PostProcess; +import org.spongepowered.configurate.objectmapping.meta.Required; +import org.spongepowered.configurate.objectmapping.meta.Setting; @@ -1710,6 +1711,8 @@ index 0000000000000000000000000000000000000000..7509b17414f836e8b53fc62b02b386ba + + public boolean disablePlayerCrits = false; + public boolean nerfPigmenFromNetherPortals = false; ++ @Comment("Prevents merging items that are not on the same y level, preventing potential visual artifacts.") ++ public boolean onlyMergeItemsHorizontally = false; + public PillagerPatrols pillagerPatrols; + + public class PillagerPatrols extends ConfigurationPart { @@ -5053,7 +5056,7 @@ index e433037a03ffafabb952887ae3980e1d51411d4c..c061813d275fbc48d7629cc59d90dbb4 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e8fac2863c5feb875cf0c78f062b4b87acbcb49b..751900e0c2a946ba4291174c81b2bdbdbe994e94 100644 +index 3c0691ef65c8db1002b76984f4ddfe2072d793c9..b3c4cdd9cfff6857f3007fbd91a280bcc53ab072 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -962,6 +962,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/1045-Configuration-for-horizontal-only-item-merging.patch b/patches/server/1045-Configuration-for-horizontal-only-item-merging.patch new file mode 100644 index 0000000000..1c45d3f2f0 --- /dev/null +++ b/patches/server/1045-Configuration-for-horizontal-only-item-merging.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Newwind +Date: Wed, 7 Aug 2024 13:25:55 +0200 +Subject: [PATCH] Configuration for horizontal-only item merging + +Most of the visual artifacts that result from having item merge radius above vanilla levels is from items merging vertically, +which realistically, only happens when a player is dropping items, or items are dropping from breaking a block. + +Most of the scenarios where item merging makes sense involves the two item entities being on the same Y level. i.e on the ground next to each other. +This is even more apparent since paper fixed items being able to merge through blocks. + +This patch allows us to configure items to only merge horizontally, which is what vanilla does. +This allows us to have both the reduced number of item entities a high item-merge radius provides, +without most of the visual artifacts caused by items merging vertically. + +diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +index ea0d9335446b20073b9aafb9de453097355db79c..607f1a9802eb0ff4865af4c53f302128a6e6fe02 100644 +--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java ++++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +@@ -284,7 +284,7 @@ public class ItemEntity extends Entity implements TraceableEntity { + if (this.isMergable()) { + // Spigot start + double radius = this.level().spigotConfig.itemMerge; +- List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(radius, radius - 0.5D, radius), (entityitem) -> { ++ List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(radius, this.level().paperConfig().entities.behavior.onlyMergeItemsHorizontally ? 0 : radius - 0.5D, radius), (entityitem) -> { // Paper - configuration to only merge items horizontally + // Spigot end + return entityitem != this && entityitem.isMergable(); + }); From 098bd39092f50cb97a604c2f228f2af29666ca41 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Mon, 12 Aug 2024 00:30:23 +0200 Subject: [PATCH 17/23] Remove arbitrary book page limit (#11228) --- ...mits.patch => 0270-Book-size-limits.patch} | 17 +++----- .../0279-Limit-Client-Sign-length-more.patch | 4 +- ...54-Prevent-teleporting-dead-entities.patch | 4 +- ...t-position-desync-causing-tp-exploit.patch | 4 +- .../0371-Add-PlayerRecipeBookClickEvent.patch | 4 +- ...ld-Difficulty-Remembering-Difficulty.patch | 4 +- ...o-not-accept-invalid-client-settings.patch | 4 +- ...ortation-and-cancel-velocity-if-tele.patch | 4 +- ...r-large-move-vectors-crashing-server.patch | 6 +-- .../server/0443-Limit-recipe-packets.patch | 4 +- ...act-event-not-being-called-sometimes.patch | 6 +-- ...-using-signs-inside-spawn-protection.patch | 4 +- ...ignore-result-of-PlayerEditBookEvent.patch | 4 +- ...fix-PlayerItemHeldEvent-firing-twice.patch | 4 +- ...534-Expand-PlayerGameModeChangeEvent.patch | 4 +- ...ove-range-check-for-block-placing-up.patch | 4 +- .../0540-Add-Unix-domain-socket-support.patch | 4 +- .../0546-Add-PlayerKickEvent-causes.patch | 41 ++++++++----------- .../server/0564-Add-PlayerArmSwingEvent.patch | 4 +- ...k-event-leave-message-not-being-sent.patch | 8 ++-- ...0600-Improve-and-expand-AsyncCatcher.patch | 4 +- ...nt-tile-entity-copies-loading-chunks.patch | 4 +- ...g-not-using-commands.spam-exclusions.patch | 4 +- patches/server/0724-More-Teleport-API.patch | 4 +- ...ck-entities-after-destroy-prediction.patch | 4 +- .../0785-Improve-logging-and-errors.patch | 4 +- ...ssing-SpigotConfig-logCommands-check.patch | 6 +-- ...le-player-info-update-packet-on-join.patch | 4 +- ...uence-violations-like-they-should-be.patch | 4 +- ...expired-keys-from-impacting-new-join.patch | 4 +- .../0847-Implement-PlayerFailMoveEvent.patch | 12 +++--- ...ot-sanity-checks-in-container-clicks.patch | 4 +- .../0940-Add-CartographyItemEvent.patch | 4 +- .../0950-Improve-tag-parser-handling.patch | 15 ++++++- .../0971-Brigadier-based-command-API.patch | 4 +- ...oversized-item-data-in-equipment-and.patch | 4 +- ...cate-InvAction-HOTBAR_MOVE_AND_READD.patch | 4 +- .../1019-Properly-resend-entities.patch | 6 +-- ...ction-leniency-distance-configurable.patch | 4 +- 39 files changed, 118 insertions(+), 119 deletions(-) rename patches/server/{0270-Book-Size-Limits.patch => 0270-Book-size-limits.patch} (67%) diff --git a/patches/server/0270-Book-Size-Limits.patch b/patches/server/0270-Book-size-limits.patch similarity index 67% rename from patches/server/0270-Book-Size-Limits.patch rename to patches/server/0270-Book-size-limits.patch index 5fd23a7c1e..f4a8924ba4 100644 --- a/patches/server/0270-Book-Size-Limits.patch +++ b/patches/server/0270-Book-size-limits.patch @@ -1,15 +1,15 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 16 Nov 2018 23:08:50 -0500 -Subject: [PATCH] Book Size Limits +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 2e35c6cfdf0cded5adc9f512612faaa68876961c..abab7c6ce2079a0101c59c130fd65db7b2a73498 100644 +index 2e35c6cfdf0cded5adc9f512612faaa68876961c..d69b678b2611f3d1b1ef64541863256868969671 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1043,6 +1043,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1043,6 +1043,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -18,15 +18,10 @@ index 2e35c6cfdf0cded5adc9f512612faaa68876961c..abab7c6ce2079a0101c59c130fd65db7 + List pageList = packet.pages(); + long byteTotal = 0; + int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax; -+ double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier)); ++ double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D); + long byteAllowed = maxBookPageSize; + for (String testString : pageList) { + 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!"); -+ this.disconnect(Component.literal("Book too large!")); -+ return; -+ } + byteTotal += byteLength; + int length = testString.length(); + int multibytes = 0; @@ -37,7 +32,7 @@ index 2e35c6cfdf0cded5adc9f512612faaa68876961c..abab7c6ce2079a0101c59c130fd65db7 + } + } + } -+ byteAllowed += (maxBookPageSize * Math.min(1, Math.max(0.1D, (double) length / 255D))) * multiplier; ++ byteAllowed += maxBookPageSize * Math.clamp((double) length / 255D, 0.1D, 1) * multiplier; + + if (multibytes > 1) { + // penalize MB @@ -46,7 +41,7 @@ index 2e35c6cfdf0cded5adc9f512612faaa68876961c..abab7c6ce2079a0101c59c130fd65db7 + } + + 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()); ++ ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send a book too large. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size()); + this.disconnect(Component.literal("Book too large!")); + return; + } diff --git a/patches/server/0279-Limit-Client-Sign-length-more.patch b/patches/server/0279-Limit-Client-Sign-length-more.patch index 20e898577a..d24066269f 100644 --- a/patches/server/0279-Limit-Client-Sign-length-more.patch +++ b/patches/server/0279-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 29678ddb0cb53fae9ae497614690f9d855f9eb86..86cb92b7cf18272ee4b46c292ed4a7192119ce1a 100644 +index 1c91e1812e536bb59dbb37aec47afca1d59ffa8d..e78a6234d6699e7f14c5ac7faa7d1ee60e46d7f9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -299,6 +299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -33,7 +33,7 @@ index 29678ddb0cb53fae9ae497614690f9d855f9eb86..86cb92b7cf18272ee4b46c292ed4a719 public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie clientData) { super(server, connection, clientData, player); // CraftBukkit -@@ -3151,7 +3152,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3146,7 +3147,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleSignUpdate(ServerboundSignUpdatePacket packet) { diff --git a/patches/server/0354-Prevent-teleporting-dead-entities.patch b/patches/server/0354-Prevent-teleporting-dead-entities.patch index 70302fe34b..4eb4569139 100644 --- a/patches/server/0354-Prevent-teleporting-dead-entities.patch +++ b/patches/server/0354-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 9103d27e5a80c095b22569bb1bba754f98a9b43c..9b77b711a172d653a4a96d667551ce83040112e4 100644 +index 2fb31c0223f2638de0ebec170095fa20991738ff..e62415cf6a13634f85289c875092bb706c316fd3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1553,6 +1553,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1548,6 +1548,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set) { // Paper diff --git a/patches/server/0369-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0369-Prevent-position-desync-causing-tp-exploit.patch index 7fcd84e1b6..d6354e0fa5 100644 --- a/patches/server/0369-Prevent-position-desync-causing-tp-exploit.patch +++ b/patches/server/0369-Prevent-position-desync-causing-tp-exploit.patch @@ -13,10 +13,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 9b77b711a172d653a4a96d667551ce83040112e4..151f078ab6081637189d3d532718dac0ec5e46df 100644 +index e62415cf6a13634f85289c875092bb706c316fd3..d93415023bed72d736f625977ca3e21497bc8f74 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1350,6 +1350,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1345,6 +1345,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move diff --git a/patches/server/0371-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0371-Add-PlayerRecipeBookClickEvent.patch index eab3672167..e5ffda1446 100644 --- a/patches/server/0371-Add-PlayerRecipeBookClickEvent.patch +++ b/patches/server/0371-Add-PlayerRecipeBookClickEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerRecipeBookClickEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 151f078ab6081637189d3d532718dac0ec5e46df..090b42aba7353d232a210d67936d024d00388047 100644 +index d93415023bed72d736f625977ca3e21497bc8f74..d003494e741b97cbb8541d3132c7c448219e8ced 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3058,16 +3058,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3053,16 +3053,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl 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/0375-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0375-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 5da6c94c5d..d0a4c576b7 100644 --- a/patches/server/0375-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0375-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -76,10 +76,10 @@ index d6dc8c983d26ce89f17a990be4284fdc78ad164b..2b1d7a2360a9ee7bca9d93a2dc8c61d1 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 01def06cf90faaf67421b6e5a87f4c47dd4c1142..9f28c9f2e8f8323aa374c2ac5e7610b825890b18 100644 +index dae64538b34c7cc7d1af0f58e3a150c7f5e3c1c9..19f49465cfc80c1cf36755f24aa246e0656da75a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3261,7 +3261,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3256,7 +3256,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleChangeDifficulty(ServerboundChangeDifficultyPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.hasPermissions(2) || this.isSingleplayerOwner()) { diff --git a/patches/server/0381-Do-not-accept-invalid-client-settings.patch b/patches/server/0381-Do-not-accept-invalid-client-settings.patch index 5c428d433e..9760be5dbe 100644 --- a/patches/server/0381-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0381-Do-not-accept-invalid-client-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9f28c9f2e8f8323aa374c2ac5e7610b825890b18..762998180eb7b10151f390ee79690c68d66622f2 100644 +index 19f49465cfc80c1cf36755f24aa246e0656da75a..19f13d845467364a25417ac8fd6404f16e18eaa2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3253,6 +3253,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3248,6 +3248,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleClientInformation(ServerboundClientInformationPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index be1b5bc114..7a5f2e8a41 100644 --- a/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0409-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -9,7 +9,7 @@ as this is how Vanilla teleports entities. Cancel any pending motion when teleported. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 762998180eb7b10151f390ee79690c68d66622f2..d97b1040ecec1d30fdd1bf309a8215955642fb93 100644 +index 19f13d845467364a25417ac8fd6404f16e18eaa2..45313a53ef181e4494e4d024c5b79a3ca7f803e1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -679,7 +679,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -21,7 +21,7 @@ index 762998180eb7b10151f390ee79690c68d66622f2..d97b1040ecec1d30fdd1bf309a821595 this.lastGoodX = this.awaitingPositionFromClient.x; this.lastGoodY = this.awaitingPositionFromClient.y; this.lastGoodZ = this.awaitingPositionFromClient.z; -@@ -1595,7 +1595,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1590,7 +1590,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // CraftBukkit end this.awaitingTeleportTime = this.tickCount; diff --git a/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch index e987725d68..bdedd8e886 100644 --- a/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0419-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d97b1040ecec1d30fdd1bf309a8215955642fb93..7a743d81c387179218c519a7e27702605069caeb 100644 +index 45313a53ef181e4494e4d024c5b79a3ca7f803e1..ffdd7c427bf563b1d87d65586b125fd081e73dd8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -492,9 +492,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -53,7 +53,7 @@ index d97b1040ecec1d30fdd1bf309a8215955642fb93..7a743d81c387179218c519a7e2770260 boolean flag1 = entity.verticalCollisionBelow; if (entity instanceof LivingEntity) { -@@ -1254,7 +1263,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1249,7 +1258,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d7 = d1 - this.firstGoodY; double d8 = d2 - this.firstGoodZ; double d9 = this.player.getDeltaMovement().lengthSqr(); @@ -71,7 +71,7 @@ index d97b1040ecec1d30fdd1bf309a8215955642fb93..7a743d81c387179218c519a7e2770260 if (this.player.isSleeping()) { if (d10 > 1.0D) { -@@ -1310,9 +1328,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1305,9 +1323,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = this.player.getBoundingBox(); diff --git a/patches/server/0443-Limit-recipe-packets.patch b/patches/server/0443-Limit-recipe-packets.patch index f880991f70..8b3e4ef5c1 100644 --- a/patches/server/0443-Limit-recipe-packets.patch +++ b/patches/server/0443-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 7a743d81c387179218c519a7e27702605069caeb..a0bac2fe6222964b098cfaf9470f09c43328fcf5 100644 +index ffdd7c427bf563b1d87d65586b125fd081e73dd8..cdf29c17cac7a5bcfcd12d6e306efad0bc87a382 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -24,7 +24,7 @@ index 7a743d81c387179218c519a7e27702605069caeb..a0bac2fe6222964b098cfaf9470f09c4 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -3070,6 +3072,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3065,6 +3067,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { diff --git a/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch index 50b8b7414c..50207db6c0 100644 --- a/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0458-Fix-interact-event-not-being-called-sometimes.patch @@ -11,10 +11,10 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a0bac2fe6222964b098cfaf9470f09c43328fcf5..09e40d6e50b7c1ddd1451981d05ecbbef43cfed2 100644 +index cdf29c17cac7a5bcfcd12d6e306efad0bc87a382..afed142d5155c178807c6b26cb5766ae7d6e328a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1771,7 +1771,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1766,7 +1766,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED); this.player.sendSystemMessage(ichatmutablecomponent, true); @@ -23,7 +23,7 @@ index a0bac2fe6222964b098cfaf9470f09c43328fcf5..09e40d6e50b7c1ddd1451981d05ecbbe this.player.swing(enumhand, true); } } -@@ -2392,13 +2392,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2387,13 +2387,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d3 = Math.max(this.player.blockInteractionRange(), this.player.entityInteractionRange()); // SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time // SPIGOT-7429: Make sure to call PlayerInteractEvent for spectators and non-pickable entities diff --git a/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch index b105615726..cac2a775a6 100644 --- a/patches/server/0502-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0502-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 09e40d6e50b7c1ddd1451981d05ecbbef43cfed2..95942fcf46bb14257faa7f5095bbf853b589be1e 100644 +index afed142d5155c178807c6b26cb5766ae7d6e328a..8e888be601190e69389fa5a8596a4e7d52dd1749 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1759,8 +1759,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1754,8 +1754,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl int i = this.player.level().getMaxBuildHeight(); if (blockposition.getY() < i) { diff --git a/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch index ea634835be..55667fd1f5 100644 --- a/patches/server/0507-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0507-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 95942fcf46bb14257faa7f5095bbf853b589be1e..80b0da98233dd98a05c898a73e519db9d30a3e74 100644 +index 8e888be601190e69389fa5a8596a4e7d52dd1749..773ada940f3bb2cf6a9ff1c32b3306d91dda27d9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1155,7 +1155,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1150,7 +1150,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl List> list1 = pages.stream().map(this::filterableFromOutgoing).toList(); itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1)); diff --git a/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch index 1934fa9d5d..c5f9160f22 100644 --- a/patches/server/0517-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0517-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 80b0da98233dd98a05c898a73e519db9d30a3e74..699658bd80eb88907041efb01d31e4051edb91de 100644 +index 773ada940f3bb2cf6a9ff1c32b3306d91dda27d9..4ed4a2f5f03790fab394429334881377c1b3ab60 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1934,6 +1934,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1929,6 +1929,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.isImmobile()) return; // CraftBukkit if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) { diff --git a/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch index ca358f5250..e5d13e061d 100644 --- a/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch @@ -134,10 +134,10 @@ index 5de472df78940d1b8320f73d18b2edf3a796227e..073cf184a0e7af41048ae67a9b17b4cd } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 699658bd80eb88907041efb01d31e4051edb91de..58e5acbd00c4f8c0fcafa4f2c21b6a9f4dcc4151 100644 +index 4ed4a2f5f03790fab394429334881377c1b3ab60..e91200b8b1da00b4b13697e950433de661a4e419 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2732,7 +2732,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2727,7 +2727,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player = this.server.getPlayerList().respawn(this.player, false, Entity.RemovalReason.KILLED, RespawnReason.DEATH); // CraftBukkit if (this.server.isHardcore()) { diff --git a/patches/server/0537-Move-range-check-for-block-placing-up.patch b/patches/server/0537-Move-range-check-for-block-placing-up.patch index 684068f18d..34cf22d1fa 100644 --- a/patches/server/0537-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0537-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 58e5acbd00c4f8c0fcafa4f2c21b6a9f4dcc4151..e713a2abca824e92a4922c34fca8c1f0bfdcdf68 100644 +index e91200b8b1da00b4b13697e950433de661a4e419..091863f559b74b93f129cc0bf5413ab4b81a0155 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1746,6 +1746,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1741,6 +1741,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (itemstack.isItemEnabled(worldserver.enabledFeatures())) { BlockHitResult movingobjectpositionblock = packet.getHitResult(); Vec3 vec3d = movingobjectpositionblock.getLocation(); diff --git a/patches/server/0540-Add-Unix-domain-socket-support.patch b/patches/server/0540-Add-Unix-domain-socket-support.patch index 7def3d56ce..8f22e1a8a7 100644 --- a/patches/server/0540-Add-Unix-domain-socket-support.patch +++ b/patches/server/0540-Add-Unix-domain-socket-support.patch @@ -87,10 +87,10 @@ index d6d7f1c446ba5507f67038ff27775ba75156f4a7..c63c194c44646e6bc1a5942655278701 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e713a2abca824e92a4922c34fca8c1f0bfdcdf68..ada5016ee354e799a8241a0706ea04e236efd1eb 100644 +index 091863f559b74b93f129cc0bf5413ab4b81a0155..9aceb641acde6840b45899e60fe3319a4a89b357 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2551,6 +2551,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2546,6 +2546,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start public SocketAddress getRawAddress() { diff --git a/patches/server/0546-Add-PlayerKickEvent-causes.patch b/patches/server/0546-Add-PlayerKickEvent-causes.patch index 261ceab74d..d48123b299 100644 --- a/patches/server/0546-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0546-Add-PlayerKickEvent-causes.patch @@ -218,7 +218,7 @@ index 24bf661e76fb421a8be565d9ea68edf7205254d2..feb529adf2168025c785ab92d95a3246 if (this.cserver.getServer().isRunning()) { this.cserver.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 ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8fba97228 100644 +index b908e292d7b2fbff6cc5058ea32648dbde52fa19..c07d6a05737da570e7dc52e73b45e7550dcc61d0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -349,7 +349,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -284,19 +284,10 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 return; } this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -@@ -1088,7 +1088,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - 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!"); -- this.disconnect(Component.literal("Book too large!")); -+ this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause - return; - } - byteTotal += byteLength; -@@ -1111,14 +1111,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1106,14 +1106,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl 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()); + ServerGamePacketListenerImpl.LOGGER.warn("{} tried to send a book too large. Book size: {} - Allowed: {} - Pages: {}", this.player.getScoreboardName(), byteTotal, byteAllowed, pageList.size()); - this.disconnect(Component.literal("Book too large!")); + this.disconnect(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; @@ -310,7 +301,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -1230,7 +1230,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1225,7 +1225,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) { @@ -319,7 +310,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } else { ServerLevel worldserver = this.player.serverLevel(); -@@ -1668,7 +1668,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1663,7 +1663,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); @@ -328,7 +319,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 return; } } -@@ -1956,7 +1956,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1951,7 +1951,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -337,7 +328,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } } -@@ -2154,7 +2154,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2149,7 +2149,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void tryHandleChat(String s, Runnable runnable, boolean sync) { // CraftBukkit if (ServerGamePacketListenerImpl.isChatMessageIllegal(s)) { @@ -346,7 +337,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } 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)); } else { -@@ -2177,7 +2177,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2172,7 +2172,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (optional.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -355,7 +346,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } return optional; -@@ -2363,7 +2363,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2358,7 +2358,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // this.chatSpamTickCount += 20; if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { // CraftBukkit end @@ -364,7 +355,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } } -@@ -2375,7 +2375,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2370,7 +2370,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl synchronized (this.lastSeenMessages) { if (!this.lastSeenMessages.applyOffset(packet.offset())) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -373,7 +364,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } } -@@ -2523,7 +2523,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2518,7 +2518,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (i > 4096) { @@ -382,7 +373,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } } -@@ -2581,7 +2581,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2576,7 +2576,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { @@ -391,7 +382,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 return; } // Spigot End -@@ -2695,7 +2695,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2690,7 +2690,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } @@ -400,7 +391,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } }); -@@ -3092,7 +3092,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3087,7 +3087,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper start - auto recipe limit if (!org.bukkit.Bukkit.isPrimaryThread()) { if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -409,7 +400,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 return; } } -@@ -3334,7 +3334,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3329,7 +3329,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) { if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) { @@ -418,7 +409,7 @@ index ada5016ee354e799a8241a0706ea04e236efd1eb..70b215dfbe53bd475192ca1d021032c8 } else { try { SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator(); -@@ -3347,7 +3347,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3342,7 +3342,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); diff --git a/patches/server/0564-Add-PlayerArmSwingEvent.patch b/patches/server/0564-Add-PlayerArmSwingEvent.patch index 080029d23f..3c7532588e 100644 --- a/patches/server/0564-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0564-Add-PlayerArmSwingEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 70b215dfbe53bd475192ca1d021032c8fba97228..0a5cad166e852888208125a80b5e2d5e7e9a3a82 100644 +index 3a656daa941993f240fa7fc54ee1106eaa504673..633c13dc22793f5a5c4c137c614c1bb695308888 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2413,7 +2413,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2408,7 +2408,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper end - Call interact event // Arm swing animation diff --git a/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch index 73566101ba..716ccd113a 100644 --- a/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0565-Fix-kick-event-leave-message-not-being-sent.patch @@ -55,10 +55,10 @@ index feb529adf2168025c785ab92d95a3246e73c0236..b43f87ff4b9853b5d4bbea5ff9686d64 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0a5cad166e852888208125a80b5e2d5e7e9a3a82..dd728c297335581ad69c94f768ec5201b7879264 100644 +index 633c13dc22793f5a5c4c137c614c1bb695308888..5276ce5b6fa19e0810da61c9a3c51b6318356339 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1895,6 +1895,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1890,6 +1890,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void onDisconnect(DisconnectionDetails info) { @@ -71,7 +71,7 @@ index 0a5cad166e852888208125a80b5e2d5e7e9a3a82..dd728c297335581ad69c94f768ec5201 // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; -@@ -1903,11 +1909,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1898,11 +1904,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), info.reason().getString()); @@ -91,7 +91,7 @@ index 0a5cad166e852888208125a80b5e2d5e7e9a3a82..dd728c297335581ad69c94f768ec5201 this.chatMessageChain.close(); // CraftBukkit start - Replace vanilla quit message handling with our own. /* -@@ -1917,7 +1929,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1912,7 +1924,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.disconnect(); // Paper start - Adventure diff --git a/patches/server/0600-Improve-and-expand-AsyncCatcher.patch b/patches/server/0600-Improve-and-expand-AsyncCatcher.patch index 43a86ca3d4..9d162a5387 100644 --- a/patches/server/0600-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0600-Improve-and-expand-AsyncCatcher.patch @@ -17,10 +17,10 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 93a9ef3fc5620c622ce0dfb010c6dafad8fcdb71..987ad7f7130c45a4b3843e186b6a5662859a06ae 100644 +index 1e442429d30886eee96f68d212548ff741e3e07e..fa1fbd41fce44bb8bb9e3435abfcac4e0652c968 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1578,6 +1578,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1573,6 +1573,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set) { // Paper diff --git a/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch index 41eee9f92e..bcd195d880 100644 --- a/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0692-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f26d092e50e5f1e320ba2e3a264573ad862aca26..c87e243744166fb736ca8db65ac268072e353e16 100644 +index 15bee10f167ebd134688ff570c4773fe088e149a..efa6e8a85f27c18bddd91b7f83656457e58a16bd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3202,7 +3202,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3197,7 +3197,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = BlockEntity.getPosFromTag(customdata.getUnsafe()); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index 6a05adf6b7..fcf350cf20 100644 --- a/patches/server/0723-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0723-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 c87e243744166fb736ca8db65ac268072e353e16..8f65943161a6621f8f7926c48322e26a854ae139 100644 +index efa6e8a85f27c18bddd91b7f83656457e58a16bd..52ff31d33edb0c55e2ec4a982525d47e4a19428b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2384,7 +2384,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2379,7 +2379,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Spigot end // this.chatSpamTickCount += 20; diff --git a/patches/server/0724-More-Teleport-API.patch b/patches/server/0724-More-Teleport-API.patch index 3c95df3508..608b370dbf 100644 --- a/patches/server/0724-More-Teleport-API.patch +++ b/patches/server/0724-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 8f65943161a6621f8f7926c48322e26a854ae139..58fd502c2a735d4a102de451a002cfd622c58294 100644 +index 52ff31d33edb0c55e2ec4a982525d47e4a19428b..77e31c3851813651dc00e59f8ef31134e3540b91 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1566,11 +1566,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1561,11 +1561,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return true; // CraftBukkit - Return event status } diff --git a/patches/server/0727-Send-block-entities-after-destroy-prediction.patch b/patches/server/0727-Send-block-entities-after-destroy-prediction.patch index 40992c754a..88deca43ca 100644 --- a/patches/server/0727-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0727-Send-block-entities-after-destroy-prediction.patch @@ -57,10 +57,10 @@ index 4d024956156aefde7df308642dfd0a40779e0633..6abecaac8407b992d208a9108e11fd49 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 58fd502c2a735d4a102de451a002cfd622c58294..3b1e231c637750821a756c877c9c6b7150b184b8 100644 +index 77e31c3851813651dc00e59f8ef31134e3540b91..719f44cf1bca2cd834b7909e135b0a636c4ccb5e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1712,8 +1712,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1707,8 +1707,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } // Paper end - Don't allow digging into unloaded chunks diff --git a/patches/server/0785-Improve-logging-and-errors.patch b/patches/server/0785-Improve-logging-and-errors.patch index 243a962373..13a5a1f58b 100644 --- a/patches/server/0785-Improve-logging-and-errors.patch +++ b/patches/server/0785-Improve-logging-and-errors.patch @@ -52,10 +52,10 @@ index aa39bdb0a4ba8fedf5052ea9700afa7d4d2a4300..b4af03c4bdd1ce0861f36c3b75fc7e89 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3b1e231c637750821a756c877c9c6b7150b184b8..e5b466f71d4c65eb31210ccad05a9fb603d53098 100644 +index 719f44cf1bca2cd834b7909e135b0a636c4ccb5e..af2fb05406616849c8f65bbd971b354d1931a6ac 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3400,7 +3400,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { diff --git a/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch index a7d5349548..75fc07c3c6 100644 --- a/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0788-Add-missing-SpigotConfig-logCommands-check.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check Co-authored-by: david diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e5b466f71d4c65eb31210ccad05a9fb603d53098..1b486d09bd1a84835183a6c8181933fcabb3373f 100644 +index af2fb05406616849c8f65bbd971b354d1931a6ac..50896a73387f9467b83f9a685ab346e3edb4e040 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2058,7 +2058,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2053,7 +2053,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void performUnsignedChatCommand(String command) { // CraftBukkit start String command1 = "/" + command; @@ -19,7 +19,7 @@ index e5b466f71d4c65eb31210ccad05a9fb603d53098..1b486d09bd1a84835183a6c8181933fc PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(this.getCraftPlayer(), command1, new LazyPlayerSet(this.server)); this.cserver.getPluginManager().callEvent(event); -@@ -2098,7 +2100,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2093,7 +2095,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void performSignedChatCommand(ServerboundChatCommandSignedPacket packet, LastSeenMessages lastSeenMessages) { // CraftBukkit start String command = "/" + packet.command(); diff --git a/patches/server/0793-Use-single-player-info-update-packet-on-join.patch b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch index 02e36f9270..7067fafbf3 100644 --- a/patches/server/0793-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0793-Use-single-player-info-update-packet-on-join.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1b486d09bd1a84835183a6c8181933fcabb3373f..62b022a72954eeecfa141f4ec93ccb44d955e54b 100644 +index 50896a73387f9467b83f9a685ab346e3edb4e040..e38c437a2e55d0e1cc7ed60f7994232880342c9e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3438,7 +3438,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3433,7 +3433,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID()); this.chatMessageChain.append(() -> { this.player.setChatSession(session); diff --git a/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch index 0a8d25783a..0ba419a953 100644 --- a/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0810-Treat-sequence-violations-like-they-should-be.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 62b022a72954eeecfa141f4ec93ccb44d955e54b..664d9cfacb87b1d9193376261f7102b64c906ddc 100644 +index e38c437a2e55d0e1cc7ed60f7994232880342c9e..207cc06d857ffca4c0aac98221a31014b42fac3f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1977,6 +1977,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1972,6 +1972,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { diff --git a/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch index d08f848c6e..ca01894b5f 100644 --- a/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0811-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -26,7 +26,7 @@ index 68c062cbaa030d62d97c9c003651f8fc17a00a6b..6247a21c9c391abf1f6db3482c659593 UPDATE_GAME_MODE((serialized, buf) -> serialized.gameMode = GameType.byId(buf.readVarInt()), (buf, entry) -> buf.writeVarInt(entry.gameMode().getId())), UPDATE_LISTED((serialized, buf) -> serialized.listed = buf.readBoolean(), (buf, entry) -> buf.writeBoolean(entry.listed())), diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 664d9cfacb87b1d9193376261f7102b64c906ddc..977af8887ac331576a1c4441fcfad681f69a9929 100644 +index 207cc06d857ffca4c0aac98221a31014b42fac3f..d3e0fb1292e1bae22ea70835b45fc36aa9cf254c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -295,6 +295,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -51,7 +51,7 @@ index 664d9cfacb87b1d9193376261f7102b64c906ddc..977af8887ac331576a1c4441fcfad681 } private int getMaximumFlyingTicks(Entity vehicle) { -@@ -3436,6 +3444,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3431,6 +3439,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; diff --git a/patches/server/0847-Implement-PlayerFailMoveEvent.patch b/patches/server/0847-Implement-PlayerFailMoveEvent.patch index e222dfa6e2..0e5b8355f0 100644 --- a/patches/server/0847-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0847-Implement-PlayerFailMoveEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 977af8887ac331576a1c4441fcfad681f69a9929..46bb2031141b88416f2df1fb8bca76638ef66dae 100644 +index d3e0fb1292e1bae22ea70835b45fc36aa9cf254c..be9c3a48fd1c44b5b5e2680c35c91c5058010e23 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1261,8 +1261,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1256,8 +1256,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); final double toX = d0; // Paper - OBFHELPER double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); final double toY = d1; // Paper - OBFHELPER double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER @@ -19,7 +19,7 @@ index 977af8887ac331576a1c4441fcfad681f69a9929..46bb2031141b88416f2df1fb8bca7663 if (this.player.isPassenger()) { this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1); -@@ -1329,8 +1329,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1324,8 +1324,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper start - Prevent moving into unloaded chunks if (this.player.level().paperConfig().chunks.preventMovingIntoUnloadedChunks && (this.player.getX() != toX || this.player.getZ() != toZ) && !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position())))) { @@ -36,7 +36,7 @@ index 977af8887ac331576a1c4441fcfad681f69a9929..46bb2031141b88416f2df1fb8bca7663 } // Paper end - Prevent moving into unloaded chunks -@@ -1339,9 +1345,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1334,9 +1340,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end @@ -56,7 +56,7 @@ index 977af8887ac331576a1c4441fcfad681f69a9929..46bb2031141b88416f2df1fb8bca7663 } } } -@@ -1403,14 +1416,31 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1398,14 +1411,31 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl d8 = d2 - this.player.getZ(); d10 = d6 * d6 + d7 * d7 + d8 * d8; @@ -91,7 +91,7 @@ index 977af8887ac331576a1c4441fcfad681f69a9929..46bb2031141b88416f2df1fb8bca7663 this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // 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. this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); } else { -@@ -3467,4 +3497,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3462,4 +3492,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand); } diff --git a/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch index 00c27f3999..36fc080610 100644 --- a/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0883-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0ed03a8ec85d8491d96c7b3ac3feff805a773539..5d7b443173c3f11fc402e96db109e4382466d182 100644 +index c17115368e36bce710a494334969676edb0f9a5c..599c620cfbf478cd3674bf4691d70000d1fd6987 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2987,6 +2987,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2982,6 +2982,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { diff --git a/patches/server/0940-Add-CartographyItemEvent.patch b/patches/server/0940-Add-CartographyItemEvent.patch index 2d775d4172..cabd85961e 100644 --- a/patches/server/0940-Add-CartographyItemEvent.patch +++ b/patches/server/0940-Add-CartographyItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add CartographyItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5d7b443173c3f11fc402e96db109e4382466d182..449fd298293f4fb996b7ddae6b174d6a28e95eb6 100644 +index 599c620cfbf478cd3674bf4691d70000d1fd6987..137754d5fe819956f29f2dd2a97bb4427e0d5339 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3109,6 +3109,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3104,6 +3104,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0950-Improve-tag-parser-handling.patch b/patches/server/0950-Improve-tag-parser-handling.patch index e800ee95bf..60b1c1c44a 100644 --- a/patches/server/0950-Improve-tag-parser-handling.patch +++ b/patches/server/0950-Improve-tag-parser-handling.patch @@ -109,6 +109,19 @@ index da101bca71f4710812621b98f0a0d8cab180346a..3cd112584accb8e8f050ac99738eed11 + } + } } +diff --git a/src/main/java/net/minecraft/network/chat/contents/SelectorContents.java b/src/main/java/net/minecraft/network/chat/contents/SelectorContents.java +index 1337853badf8e124aa8439ce33a255bc4164125b..a1869eee2da9b1993b1348ed40ef8fdac092b72a 100644 +--- a/src/main/java/net/minecraft/network/chat/contents/SelectorContents.java ++++ b/src/main/java/net/minecraft/network/chat/contents/SelectorContents.java +@@ -50,7 +50,7 @@ public class SelectorContents implements ComponentContents { + EntitySelectorParser entitySelectorParser = new EntitySelectorParser(new StringReader(pattern), true); + entitySelector = entitySelectorParser.parse(); + } catch (CommandSyntaxException var3) { +- LOGGER.warn("Invalid selector component: {}: {}", pattern, var3.getMessage()); ++ return null; // Paper + } + + return entitySelector; diff --git a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java index 56e641bc5f6edc657647993ea2efbb7bb9c2f732..4aa6232bf0f72fcde32d257100bd15b1c5192aaa 100644 --- a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java @@ -169,7 +182,7 @@ index 898b19887ed34c87003fc63cb5905df2ba6234a5..b47eeb23055b135d5567552ba983bfbc private void write(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 449fd298293f4fb996b7ddae6b174d6a28e95eb6..134f31cce8d8eca669948a784e2766216fb91ab5 100644 +index d4803b966301ac732c9ca9e53fba1d28ff9878bf..c32487782a02cfa1f9d594a28c45121f4eeaa29c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -766,6 +766,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0971-Brigadier-based-command-API.patch b/patches/server/0971-Brigadier-based-command-API.patch index bc2d8d0321..2494cfc3be 100644 --- a/patches/server/0971-Brigadier-based-command-API.patch +++ b/patches/server/0971-Brigadier-based-command-API.patch @@ -2350,10 +2350,10 @@ index b4af03c4bdd1ce0861f36c3b75fc7e89d701c46a..0761d5bc5f2813bb4a9f664ac7a05b97 this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 134f31cce8d8eca669948a784e2766216fb91ab5..60c65af218d533d53b765ba2175fed163c32c126 100644 +index ef646b717323933f4b84e963ab8139dd241843bc..4f9a17e7cd5aca2e8bd55b4892a20dce181289cd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2408,33 +2408,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2403,33 +2403,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch index 6a21b1b7db..c9d47f41f8 100644 --- a/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0975-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -201,10 +201,10 @@ index 0e7ace92522fbd4cef7b2c2b8a0f8b86c2cce192..1d849ce4e2c85f149af25318b8ffb6dc ((LivingEntity) this.entity).detectEquipmentUpdatesPublic(); // CraftBukkit - SPIGOT-3789: sync again immediately after sending } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 60c65af218d533d53b765ba2175fed163c32c126..a0f5839719ca0ce6ed048229f074041b4f64cc97 100644 +index 4f9a17e7cd5aca2e8bd55b4892a20dce181289cd..a04fdcecf00f128f0afba1a33fad1d9e7694ef63 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2732,7 +2732,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2727,7 +2727,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl entity.refreshEntityData(ServerGamePacketListenerImpl.this.player); // SPIGOT-7136 - Allays if (entity instanceof Allay) { diff --git a/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch b/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch index 1af38ab7e6..2edb9f6db4 100644 --- a/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch +++ b/patches/server/0979-Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate InvAction#HOTBAR_MOVE_AND_READD diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a0f5839719ca0ce6ed048229f074041b4f64cc97..a8debfad8c8e66099f8a9aedc6f1971a8576dade 100644 +index a04fdcecf00f128f0afba1a33fad1d9e7694ef63..566bbc8f2976bc492049fcddca5976a0ae48d14d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2998,14 +2998,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2993,14 +2993,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { ItemStack hotbar = this.player.getInventory().getItem(packet.getButtonNum()); diff --git a/patches/server/1019-Properly-resend-entities.patch b/patches/server/1019-Properly-resend-entities.patch index de1c348724..ffba1508ba 100644 --- a/patches/server/1019-Properly-resend-entities.patch +++ b/patches/server/1019-Properly-resend-entities.patch @@ -81,10 +81,10 @@ index e9dcdb1e09e84a9b451034ff4bdfa6eae2dd1c04..24b1715397ba8e6f5e9841a030d0e3d9 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a8debfad8c8e66099f8a9aedc6f1971a8576dade..7796e191747be545e744564a2b0b65790f69114d 100644 +index 566bbc8f2976bc492049fcddca5976a0ae48d14d..f1ca57b98fe04df2722114743c2d746c0a679c1f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1949,6 +1949,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1944,6 +1944,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (cancelled) { @@ -92,7 +92,7 @@ index a8debfad8c8e66099f8a9aedc6f1971a8576dade..7796e191747be545e744564a2b0b6579 this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524 return; } -@@ -2718,7 +2719,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2713,7 +2714,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { diff --git a/patches/server/1041-Make-interaction-leniency-distance-configurable.patch b/patches/server/1041-Make-interaction-leniency-distance-configurable.patch index 341e13affd..c5462f81e2 100644 --- a/patches/server/1041-Make-interaction-leniency-distance-configurable.patch +++ b/patches/server/1041-Make-interaction-leniency-distance-configurable.patch @@ -12,10 +12,10 @@ This value however may be too low in high latency environments. The patch exposes a new configuration option to configure said value. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7796e191747be545e744564a2b0b65790f69114d..624b80c796e9c95040d71d1595d11f98e2899cf3 100644 +index f1ca57b98fe04df2722114743c2d746c0a679c1f..4d697cd7aa5a74c2016644385f59e461f660c8bd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2703,7 +2703,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2698,7 +2698,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); From f97aff74b6f7fd4940c0c0b6cca3f8ac6e1afdef Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 11 Aug 2024 15:35:45 -0700 Subject: [PATCH 18/23] [ci skip] Fix Effect javadocs (#11182) --- patches/api/0247-Add-missing-effects.patch | 51 ++++++++++++++++++---- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/patches/api/0247-Add-missing-effects.patch b/patches/api/0247-Add-missing-effects.patch index 0e0f224064..708d50753f 100644 --- a/patches/api/0247-Add-missing-effects.patch +++ b/patches/api/0247-Add-missing-effects.patch @@ -6,21 +6,44 @@ Subject: [PATCH] Add missing effects Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/Effect.java b/src/main/java/org/bukkit/Effect.java -index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac8010ce85 100644 +index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..8a346d7a4ce07e0a73d7a1d1370321d4fb538547 100644 --- a/src/main/java/org/bukkit/Effect.java +++ b/src/main/java/org/bukkit/Effect.java -@@ -131,9 +131,9 @@ public enum Effect { +@@ -97,7 +97,7 @@ public enum Effect { + */ + EXTINGUISH(1009, Type.SOUND), /** - * Sound of a block breaking. Needs block ID as additional info. +- * A song from a record. Needs the record item ID as additional info ++ * A song from a record. Needs the record {@link Material} as additional info. + */ + RECORD_PLAY(1010, Type.SOUND, Material.class), + /** +@@ -125,20 +125,20 @@ public enum Effect { + */ + ZOMBIE_DESTROY_DOOR(1021, Type.SOUND), + /** +- * A visual smoke effect. Needs direction as additional info. ++ * A visual smoke effect. Needs a {@link BlockFace} direction as additional info. + */ + SMOKE(2000, Type.VISUAL, BlockFace.class), + /** +- * Sound of a block breaking. Needs block ID as additional info. ++ * Sound of a block breaking. Needs {@link org.bukkit.block.data.BlockData} as additional info. */ - STEP_SOUND(2001, Type.SOUND, Material.class), + STEP_SOUND(2001, Type.SOUND, org.bukkit.block.data.BlockData.class, Material.class), // Paper - block data is more correct, but the impl of the mtehods will still work with Material /** - * Visual effect of a splash potion breaking. Needs potion data value as -+ * Visual effect of a splash potion breaking. Needs color data value as ++ * Visual effect of a splash potion breaking. Needs {@link Color} data value as * additional info. */ POTION_BREAK(2002, Type.VISUAL, Color.class), + /** +- * Visual effect of an instant splash potion breaking. Needs color data ++ * Visual effect of an instant splash potion breaking. Needs {@link Color} data + * value as additional info. + */ + INSTANT_POTION_BREAK(2007, Type.VISUAL, Color.class), @@ -168,7 +168,9 @@ public enum Effect { PORTAL_TRAVEL(1032, Type.SOUND), /** @@ -41,7 +64,16 @@ index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac VILLAGER_PLANT_GROW(2005, Type.VISUAL, Integer.class), /** * The sound/particles used by the enderdragon's breath -@@ -336,21 +340,121 @@ public enum Effect { +@@ -319,7 +323,7 @@ public enum Effect { + * The particles shown when a lightning hits a lightning rod or oxidized + * copper. + * +- * Data is the axis at which the particle should be shown. If no data is ++ * Data is the {@link Axis} at which the particle should be shown. If no data is + * provided it will show the particles at the block faces. + */ + ELECTRIC_SPARK(3002, Type.VISUAL, Axis.class), +@@ -336,21 +340,124 @@ public enum Effect { * block. */ OXIDISED_COPPER_SCRAPE(3005, Type.VISUAL), @@ -89,6 +121,9 @@ index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac + + PARTICLES_SCULK_SHRIEK(3007, Type.SOUND), + ++ /** ++ * Requires a {@link org.bukkit.block.data.BlockData} param ++ */ + PARTICLES_AND_SOUND_BRUSH_BLOCK_COMPLETE(3008, Type.VISUAL, org.bukkit.block.data.BlockData.class), + + PARTICLES_EGG_CRACK(3009, Type.VISUAL), @@ -167,7 +202,7 @@ index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac } /** -@@ -366,8 +470,10 @@ public enum Effect { +@@ -366,8 +473,10 @@ public enum Effect { /** * @return The type of the effect. @@ -178,7 +213,7 @@ index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac public Type getType() { return this.type; } -@@ -378,8 +484,15 @@ public enum Effect { +@@ -378,8 +487,15 @@ public enum Effect { */ @Nullable public Class getData() { @@ -195,7 +230,7 @@ index fd9cf25f2fdef5ee3b7143f27e5f43dfe3f21a38..f0e595c754afbbf2729ff093262459ac /** * Gets the Effect associated with the given ID. -@@ -396,12 +509,26 @@ public enum Effect { +@@ -396,12 +512,26 @@ public enum Effect { static { for (Effect effect : values()) { From 4a97ba3ea8cb449fe76ed1aef0b572e7cc01d542 Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Mon, 12 Aug 2024 03:27:27 -0400 Subject: [PATCH 19/23] Fix `setSendViewDistance`'s return (#11247) --- patches/server/0987-Moonrise-optimisation-patches.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patches/server/0987-Moonrise-optimisation-patches.patch b/patches/server/0987-Moonrise-optimisation-patches.patch index 8caaa2626f..468f55d499 100644 --- a/patches/server/0987-Moonrise-optimisation-patches.patch +++ b/patches/server/0987-Moonrise-optimisation-patches.patch @@ -4767,7 +4767,7 @@ index 0000000000000000000000000000000000000000..003a857e70ead858e8437e3c1bfaf22f +} diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java new file mode 100644 -index 0000000000000000000000000000000000000000..7249b78e21b12117480a18f2d07d0c978fe42e56 +index 0000000000000000000000000000000000000000..852d75a73dae7448cbe1e2f5e164b235efa8a969 --- /dev/null +++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java @@ -0,0 +1,1082 @@ @@ -4871,7 +4871,7 @@ index 0000000000000000000000000000000000000000..7249b78e21b12117480a18f2d07d0c97 + + public void setSendViewDistance(final int distance) { + this.updateViewDistance((final ViewDistances param) -> { -+ return param.setTickViewDistance(distance); ++ return param.setSendViewDistance(distance); + }); + } + @@ -26236,7 +26236,7 @@ index c97292f22a3402dbd59cef4af554954dc1d4f91a..b2c5ead035f583585b79f7eba51d66da return crashreportsystemdetails; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e45567e8112483d947e2ff12c01219b85b09b205..e05bd64abb644fa38dbfe1fe97737eaf8f535970 100644 +index 5b68fa9758d410ebe7b9bf7fd4221835fbce3d0b..45839cca7dd2e0ec3b6f146df4938da3e4b2c275 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -200,7 +200,7 @@ import org.bukkit.event.player.PlayerToggleSneakEvent; From 1798e949e5727f376ccaee51873f21dcdedc9a5f Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 12 Aug 2024 00:40:39 -0700 Subject: [PATCH 20/23] Fix BasicCommand suggestion arg count (#11241) --- .../server/0971-Brigadier-based-command-API.patch | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/patches/server/0971-Brigadier-based-command-API.patch b/patches/server/0971-Brigadier-based-command-API.patch index 2494cfc3be..ad3eff5ecd 100644 --- a/patches/server/0971-Brigadier-based-command-API.patch +++ b/patches/server/0971-Brigadier-based-command-API.patch @@ -686,10 +686,10 @@ index 0000000000000000000000000000000000000000..1b1642f306771f029e6214a2e2ebebb6 +} diff --git a/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java new file mode 100644 -index 0000000000000000000000000000000000000000..da50ca4c6524e4f99ea4de2157d7ef900178d0f1 +index 0000000000000000000000000000000000000000..95d3b42cbe2184b0a04d941f27f7a6e643ef59be --- /dev/null +++ b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java -@@ -0,0 +1,198 @@ +@@ -0,0 +1,204 @@ +package io.papermc.paper.command.brigadier; + +import com.google.common.base.Preconditions; @@ -711,6 +711,7 @@ index 0000000000000000000000000000000000000000..da50ca4c6524e4f99ea4de2157d7ef90 +import java.util.Locale; +import java.util.Set; +import net.minecraft.commands.CommandBuildContext; ++import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.checkerframework.checker.nullness.qual.NonNull; @@ -868,7 +869,12 @@ index 0000000000000000000000000000000000000000..da50ca4c6524e4f99ea4de2157d7ef90 + .then( + Commands.argument("args", StringArgumentType.greedyString()) + .suggests((context, suggestionsBuilder) -> { -+ final String[] args = StringUtils.split(suggestionsBuilder.getRemaining()); ++ String[] args = StringUtils.split(suggestionsBuilder.getRemaining()); ++ if (suggestionsBuilder.getRemaining().endsWith(" ")) { ++ // if there is trailing whitespace, we should add an empty argument to signify ++ // that there may be more, but no characters have been typed yet ++ args = ArrayUtils.add(args, ""); ++ } + final SuggestionsBuilder offsetSuggestionsBuilder = suggestionsBuilder.createOffset(suggestionsBuilder.getInput().lastIndexOf(' ') + 1); + + final Collection suggestions = basicCommand.suggest(context.getSource(), args); From 7c9240f4a63b13be1fdcedbfb0270f9b49b75518 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 12 Aug 2024 18:42:08 +0200 Subject: [PATCH 21/23] Improve standard messenger logging --- ...StandardMessenger-exception-messages.patch | 56 +++++++++++++++++++ ...81-Flag-to-disable-the-channel-limit.patch | 4 +- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 patches/api/0483-Improve-StandardMessenger-exception-messages.patch diff --git a/patches/api/0483-Improve-StandardMessenger-exception-messages.patch b/patches/api/0483-Improve-StandardMessenger-exception-messages.patch new file mode 100644 index 0000000000..db8286512a --- /dev/null +++ b/patches/api/0483-Improve-StandardMessenger-exception-messages.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nassim Jahnke +Date: Mon, 12 Aug 2024 18:38:19 +0200 +Subject: [PATCH] Improve StandardMessenger exception messages + + +diff --git a/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java b/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java +index 80ef8a2a342ff9dc16c98b5254cadd539f6ea0d9..ea73d9cd9d9d84731c083089d0b9913b4b1f92b6 100644 +--- a/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java ++++ b/src/main/java/org/bukkit/plugin/messaging/ChannelNameTooLongException.java +@@ -9,7 +9,9 @@ public class ChannelNameTooLongException extends RuntimeException { + super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars."); + } + +- public ChannelNameTooLongException(String channel) { +- super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars (attempted " + channel.length() + " - '" + channel + "."); ++ // Paper start ++ public ChannelNameTooLongException(int length, String shortenedChannel) { ++ super("Attempted to send a Plugin Message to a channel that was too large. The maximum length a channel may be is " + Messenger.MAX_CHANNEL_SIZE + " chars (attempted " + length + " - '" + shortenedChannel + "."); ++ // Paper end + } + } +diff --git a/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java b/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java +index 6fda7f3aa68e76af64362e9afed70fc6a5e92986..230ecf9f9752b0369da3ba7aa6ce68b34a0814c5 100644 +--- a/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java ++++ b/src/main/java/org/bukkit/plugin/messaging/StandardMessenger.java +@@ -496,19 +496,26 @@ public class StandardMessenger implements Messenger { + if (channel.equals("bungeecord:main")) { + return "BungeeCord"; + } ++ // Paper start - improve error message + if (channel.length() > Messenger.MAX_CHANNEL_SIZE) { +- throw new ChannelNameTooLongException(channel); ++ throw new ChannelNameTooLongException(channel.length(), shortened(channel)); + } + if (channel.indexOf(':') == -1) { +- throw new IllegalArgumentException("Channel must contain : separator (attempted to use " + channel + ")"); ++ throw new IllegalArgumentException("Channel must contain : separator (attempted to use " + shortened(channel) + ")"); + } + if (!channel.toLowerCase(Locale.ROOT).equals(channel)) { + // TODO: use NamespacedKey validation here +- throw new IllegalArgumentException("Channel must be entirely lowercase (attempted to use " + channel + ")"); ++ throw new IllegalArgumentException("Channel must be entirely lowercase (attempted to use " + shortened(channel) + ")"); + } + return channel; + } + ++ private static String shortened(String channel) { ++ channel = org.apache.commons.lang3.StringUtils.normalizeSpace(channel); ++ return channel.length() > 32 ? channel.substring(0, 32) + "..." : channel; ++ } ++ // Paper end - improve error message ++ + /** + * Validates the input of a Plugin Message, ensuring the arguments are all + * valid. diff --git a/patches/server/0181-Flag-to-disable-the-channel-limit.patch b/patches/server/0181-Flag-to-disable-the-channel-limit.patch index fa388c8eb7..0745b45aae 100644 --- a/patches/server/0181-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0181-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 19f644442eb7ae352d655d5e62f47f261b7b1b0a..db79201906e231b13c6f237193c3e8597bce9106 100644 +index 422c25577a0d95b31b5528fad8fc9b3ae97fa7f0..4e5dba1da323f12d77a36635c9227b1239856254 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -209,6 +209,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -25,7 +25,7 @@ index 19f644442eb7ae352d655d5e62f47f261b7b1b0a..db79201906e231b13c6f237193c3e859 public void addChannel(String channel) { - Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); -+ Preconditions.checkState(DISABLE_CHANNEL_LIMIT || this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); // Paper - flag to disable channel limit ++ Preconditions.checkState(DISABLE_CHANNEL_LIMIT || this.channels.size() < 128, "Cannot register channel. Too many channels registered!"); // Paper - flag to disable channel limit channel = StandardMessenger.validateAndCorrectChannel(channel); if (this.channels.add(channel)) { this.server.getPluginManager().callEvent(new PlayerRegisterChannelEvent(this, channel)); From 9ab644ed290542a9e537d8f529bc6898a3da2e7d Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Wed, 14 Aug 2024 08:39:45 -0400 Subject: [PATCH 22/23] Fix `TooltipContext.create` being wrong(#11254) Co-authored-by: Jake Potrebic --- patches/api/0444-ItemStack-Tooltip-API.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/patches/api/0444-ItemStack-Tooltip-API.patch b/patches/api/0444-ItemStack-Tooltip-API.patch index 85f67a5b0b..90d49b0f02 100644 --- a/patches/api/0444-ItemStack-Tooltip-API.patch +++ b/patches/api/0444-ItemStack-Tooltip-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..39ac768b3c5148544cb1aaf2c817e661 +} diff --git a/src/main/java/io/papermc/paper/inventory/tooltip/TooltipContextImpl.java b/src/main/java/io/papermc/paper/inventory/tooltip/TooltipContextImpl.java new file mode 100644 -index 0000000000000000000000000000000000000000..1d9bed6691f581529c53b577b26f1d0f902ccb0d +index 0000000000000000000000000000000000000000..c9c0ce750f93ae55e0b2d322a738919474d2d5dd --- /dev/null +++ b/src/main/java/io/papermc/paper/inventory/tooltip/TooltipContextImpl.java @@ -0,0 +1,16 @@ @@ -95,16 +95,16 @@ index 0000000000000000000000000000000000000000..1d9bed6691f581529c53b577b26f1d0f + +import org.jetbrains.annotations.NotNull; + -+record TooltipContextImpl(boolean isCreative, boolean isAdvanced) implements TooltipContext { ++record TooltipContextImpl(boolean isAdvanced, boolean isCreative) implements TooltipContext { + + @Override + public @NotNull TooltipContext asCreative() { -+ return new TooltipContextImpl(true, this.isAdvanced); ++ return new TooltipContextImpl(this.isAdvanced, true); + } + + @Override + public @NotNull TooltipContext asAdvanced() { -+ return new TooltipContextImpl(this.isCreative, true); ++ return new TooltipContextImpl(true, this.isCreative); + } +} diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java From 11b4ac7c659ffb7e4790b0856b14117b6d532200 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Wed, 14 Aug 2024 21:26:38 +0200 Subject: [PATCH 23/23] Fix disableEndCredits world config (#11261) --- .../0041-Configurable-end-credits.patch | 24 +++++++++---------- .../0048-Use-null-Locale-by-default.patch | 4 ++-- ...20-Properly-fix-item-duplication-bug.patch | 4 ++-- .../0122-PlayerTeleportEndGatewayEvent.patch | 4 ++-- .../0208-InventoryCloseEvent-Reason-API.patch | 10 ++++---- ...tator-target-events-and-improve-impl.patch | 4 ++-- ...60-Reset-players-airTicks-on-respawn.patch | 4 ++-- ...entity-dismount-during-teleportation.patch | 6 ++--- ...vehicle-tracking-issue-on-disconnect.patch | 4 ++-- ...vent-opening-inventories-when-frozen.patch | 4 ++-- ...-Implement-Player-Client-Options-API.patch | 8 +++---- ...-shield-blocking-on-dimension-change.patch | 4 ++-- ...534-Expand-PlayerGameModeChangeEvent.patch | 12 +++++----- ...PlayerDropItemEvent-using-wrong-item.patch | 4 ++-- ...n-t-apply-cramming-damage-to-players.patch | 4 ++-- .../server/0573-Add-PlayerSetSpawnEvent.patch | 10 ++++---- ...-logic-for-inventories-on-chunk-unlo.patch | 4 ++-- ...-strict-advancement-dimension-checks.patch | 4 ++-- .../server/0786-Improve-PortalEvents.patch | 8 +++---- ...-titleOverride-to-InventoryOpenEvent.patch | 8 +++---- 20 files changed, 67 insertions(+), 67 deletions(-) diff --git a/patches/server/0041-Configurable-end-credits.patch b/patches/server/0041-Configurable-end-credits.patch index e3957bbc6c..65f5ee3bd5 100644 --- a/patches/server/0041-Configurable-end-credits.patch +++ b/patches/server/0041-Configurable-end-credits.patch @@ -4,15 +4,15 @@ Date: Wed, 16 Mar 2016 02:21:39 -0500 Subject: [PATCH] Configurable end credits -diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ee5188f3aa2ff71306f5af8046e8ddf919c8601b..decd0dd48d8b77126b184ee21ceaf6c387085946 100644 ---- a/src/main/java/net/minecraft/server/level/ServerPlayer.java -+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1162,6 +1162,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { - this.unRide(); - this.serverLevel().removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION); - if (!this.wonGame) { -+ if (this.level().paperConfig().misc.disableEndCredits) this.seenCredits = true; // Paper - Option to disable end credits - this.wonGame = true; - this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.WIN_GAME, 0.0F)); - this.seenCredits = true; +diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +index e2d6693da4abe6204c0ecb5e924a3903fa80ab7d..a9c7a74b38a57c118c1ad67a77ba6f2e5c05d91e 100644 +--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +@@ -71,6 +71,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { + if (!world.isClientSide && world.dimension() == Level.END && entity instanceof ServerPlayer) { + ServerPlayer entityplayer = (ServerPlayer) entity; + ++ if (world.paperConfig().misc.disableEndCredits) entityplayer.seenCredits = true; // Paper - Option to disable end credits + if (!entityplayer.seenCredits) { + entityplayer.showEndCredits(); + return; diff --git a/patches/server/0048-Use-null-Locale-by-default.patch b/patches/server/0048-Use-null-Locale-by-default.patch index 2daeb821c5..3fcadee5b5 100644 --- a/patches/server/0048-Use-null-Locale-by-default.patch +++ b/patches/server/0048-Use-null-Locale-by-default.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use null Locale by default diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index decd0dd48d8b77126b184ee21ceaf6c387085946..e61460a06708429738e0ed5f903a4226158aa334 100644 +index ee5188f3aa2ff71306f5af8046e8ddf919c8601b..13a069483db22f25008bf4081d4aa2b36a75bc68 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -237,7 +237,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @@ -26,7 +26,7 @@ index decd0dd48d8b77126b184ee21ceaf6c387085946..e61460a06708429738e0ed5f903a4226 this.lastSectionPos = SectionPos.of(0, 0, 0); this.chunkTrackingView = ChunkTrackingView.EMPTY; this.respawnDimension = Level.OVERWORLD; -@@ -2052,7 +2052,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2051,7 +2051,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); this.server.server.getPluginManager().callEvent(event); } diff --git a/patches/server/0120-Properly-fix-item-duplication-bug.patch b/patches/server/0120-Properly-fix-item-duplication-bug.patch index 2a12aa436f..95bf2bd4b5 100644 --- a/patches/server/0120-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0120-Properly-fix-item-duplication-bug.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Properly fix item duplication bug Credit to prplz for figuring out the real issue diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ed920ed90569b7b8886a09a1c3772fd7147d44f9..9b2861b7894a634ce60a2675ee25c949d6e63ea0 100644 +index 984dc7f7f7315b8a8cdb9744ef8454a330888ba7..f067b10e13f01e751fc4ebf088740c7d40afcb99 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2628,7 +2628,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2627,7 +2627,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public boolean isImmobile() { diff --git a/patches/server/0122-PlayerTeleportEndGatewayEvent.patch b/patches/server/0122-PlayerTeleportEndGatewayEvent.patch index d7fec65674..69691d8630 100644 --- a/patches/server/0122-PlayerTeleportEndGatewayEvent.patch +++ b/patches/server/0122-PlayerTeleportEndGatewayEvent.patch @@ -7,10 +7,10 @@ Allows you to access the Gateway being used in a teleport event Fix the offset used for player teleportation diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9b2861b7894a634ce60a2675ee25c949d6e63ea0..a049a54ee70839706787f8de661ca6e6b1f54071 100644 +index f067b10e13f01e751fc4ebf088740c7d40afcb99..e13692373d0efba9402c35ae5cce615dce0a5e1e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1193,11 +1193,22 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1192,11 +1192,22 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { ResourceKey resourcekey = worldserver1.getTypeKey(); if (worldserver != null && worldserver.dimension() == worldserver1.dimension()) { // CraftBukkit diff --git a/patches/server/0208-InventoryCloseEvent-Reason-API.patch b/patches/server/0208-InventoryCloseEvent-Reason-API.patch index 080360b9f4..04cfe0f0de 100644 --- a/patches/server/0208-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0208-InventoryCloseEvent-Reason-API.patch @@ -29,7 +29,7 @@ index 1fac100819e59d00f50e530d3a4157b56d966dba..4f777c9d8c3052f68bc0465c8a7386b8 } // 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 db72318d822b876eb937f0f0f7f2b2139fb77df7..a3a1450949703851625bbb257e92b3be4d79a06a 100644 +index fb5130b6378554ccb23fb7992e408497ca093ff3..0dee94f1dd27a0d7e709367450c5ef7956e27217 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -705,7 +705,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @@ -50,7 +50,7 @@ index db72318d822b876eb937f0f0f7f2b2139fb77df7..a3a1450949703851625bbb257e92b3be } net.kyori.adventure.text.Component deathMessage = event.deathMessage() != null ? event.deathMessage() : net.kyori.adventure.text.Component.empty(); // Paper - Adventure -@@ -1592,7 +1592,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1591,7 +1591,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } // CraftBukkit end if (this.containerMenu != this.inventoryMenu) { @@ -59,7 +59,7 @@ index db72318d822b876eb937f0f0f7f2b2139fb77df7..a3a1450949703851625bbb257e92b3be } // this.nextContainerCounter(); // CraftBukkit - moved up -@@ -1622,7 +1622,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1621,7 +1621,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public void closeContainer() { @@ -165,7 +165,7 @@ index 2e02fc22a889c9c8010ae8bff1b59a13219ae014..703bb1bb42b1668c04824489fd2f3490 @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 326f36726c124385145c469566c2089439b5dd0f..0b4c5a2604f61a34b5666a9a83a2e644449997fd 100644 +index 4e5dba1da323f12d77a36635c9227b1239856254..12c61db6d4b1284765f9bed3ae26131a118b318e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1273,7 +1273,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -178,7 +178,7 @@ index 326f36726c124385145c469566c2089439b5dd0f..0b4c5a2604f61a34b5666a9a83a2e644 // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e1b7bd5c23ba79b84ad257b7fb45e251da3978e5..ad271871b207b425ef8d599fe74a67d065d66686 100644 +index 9225746382bcecb0bab655a8232fecc09169225d..bf3995795295c3224db97e4d6809c0f5da6ce55c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1281,7 +1281,7 @@ public class CraftEventFactory { diff --git a/patches/server/0256-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0256-Call-player-spectator-target-events-and-improve-impl.patch index 17c81b197d..b29358d325 100644 --- a/patches/server/0256-Call-player-spectator-target-events-and-improve-impl.patch +++ b/patches/server/0256-Call-player-spectator-target-events-and-improve-impl.patch @@ -19,10 +19,10 @@ spectate the target entity. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ff3f70b8c266dc3b2ab374ffd6905ecbfe8510be..29dc317d43532399651719d45ca05b086043ae6b 100644 +index fa8640f961b93dc811296131dfda58faa1908add..15328d344a26f5c40011ee6ba0bc54dd5ab0b87b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2183,6 +2183,21 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2182,6 +2182,21 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.camera = (Entity) (entity == null ? this : entity); if (entity1 != this.camera) { diff --git a/patches/server/0260-Reset-players-airTicks-on-respawn.patch b/patches/server/0260-Reset-players-airTicks-on-respawn.patch index 1707fb452b..0669db4de0 100644 --- a/patches/server/0260-Reset-players-airTicks-on-respawn.patch +++ b/patches/server/0260-Reset-players-airTicks-on-respawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 29dc317d43532399651719d45ca05b086043ae6b..1108fa6c7ac28304d104d4e5df2bdf4e9a6bd929 100644 +index 15328d344a26f5c40011ee6ba0bc54dd5ab0b87b..7cca5c778f9d20cfa6cb543c9afcf74779aaa355 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2704,6 +2704,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2703,6 +2703,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.setHealth(this.getMaxHealth()); this.stopUsingItem(); // CraftBukkit - SPIGOT-6682: Clear active item on reset diff --git a/patches/server/0268-force-entity-dismount-during-teleportation.patch b/patches/server/0268-force-entity-dismount-during-teleportation.patch index 0bdcf9e117..a91a738571 100644 --- a/patches/server/0268-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0268-force-entity-dismount-during-teleportation.patch @@ -20,10 +20,10 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1108fa6c7ac28304d104d4e5df2bdf4e9a6bd929..b4947ee9615b1b2108046b9ab87b65b53dbb23f6 100644 +index 7cca5c778f9d20cfa6cb543c9afcf74779aaa355..c2571855ca6a8ecd144b8fbb97d601d1808e8d61 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2523,9 +2523,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2522,9 +2522,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public void stopRiding() { @@ -106,7 +106,7 @@ index 7fd1a75ba0068ee3ca6c29a550a9a1b33c5cacc5..f330ddca00ed11bf76ae825820423b94 if (this.valid) { Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 43eddcd8496ff2f089119f6632acfe1b56466c3d..e047911c7faa3cdcd3df8899857fcadf3eec3d89 100644 +index 689aaf4ceedc598fe71db726215cceae6cc97296..fad0445628499ac14cd9d8ab7f618c490885e798 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3619,9 +3619,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0273-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0273-Workaround-for-vehicle-tracking-issue-on-disconnect.patch index c321bed5e2..a8477b1786 100644 --- a/patches/server/0273-Workaround-for-vehicle-tracking-issue-on-disconnect.patch +++ b/patches/server/0273-Workaround-for-vehicle-tracking-issue-on-disconnect.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dbdc6b4065acc363c128580fdffe9049259386c2..afed961e6714abc1a1709d12973cbfae40b950fa 100644 +index bd130d3a4d0cfe431be627c3f4d85bb394fe099b..ad2b8ea068469f2b0597c0e0436ad3c94dcb62ea 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1834,6 +1834,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1833,6 +1833,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { public void disconnect() { this.disconnected = true; this.ejectPassengers(); diff --git a/patches/server/0340-Prevent-opening-inventories-when-frozen.patch b/patches/server/0340-Prevent-opening-inventories-when-frozen.patch index c714d1fde8..1e3d68bf93 100644 --- a/patches/server/0340-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0340-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9b6887f40dea57d4b5e2f08d7645b1edfaa5b189..d164ae1b965310a260f79240b6e2fd4ddd7249f3 100644 +index f8d4bd18f98ed914e116d0cc4a80140e4e8d759f..7daa310dd5d3eb1befb9983ce85e0354771af71d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -710,7 +710,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @@ -17,7 +17,7 @@ index 9b6887f40dea57d4b5e2f08d7645b1edfaa5b189..d164ae1b965310a260f79240b6e2fd4d this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } -@@ -1635,7 +1635,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1634,7 +1634,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } else { // CraftBukkit start this.containerMenu = container; diff --git a/patches/server/0342-Implement-Player-Client-Options-API.patch b/patches/server/0342-Implement-Player-Client-Options-API.patch index 978b47f364..e7bff21f02 100644 --- a/patches/server/0342-Implement-Player-Client-Options-API.patch +++ b/patches/server/0342-Implement-Player-Client-Options-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d164ae1b965310a260f79240b6e2fd4ddd7249f3..a794131746c6cfdcbeeb64b31fb122a38be085c1 100644 +index 7daa310dd5d3eb1befb9983ce85e0354771af71d..8938f90c53de8aef71aa70522a66a69edb467e73 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -359,7 +359,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @@ -99,7 +99,7 @@ index d164ae1b965310a260f79240b6e2fd4ddd7249f3..a794131746c6cfdcbeeb64b31fb122a3 this.object = null; // CraftBukkit start -@@ -2147,7 +2147,23 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2146,7 +2146,23 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } } @@ -123,7 +123,7 @@ index d164ae1b965310a260f79240b6e2fd4ddd7249f3..a794131746c6cfdcbeeb64b31fb122a3 // CraftBukkit start if (this.getMainArm() != clientOptions.mainHand()) { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); -@@ -2158,6 +2174,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2157,6 +2173,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.server.server.getPluginManager().callEvent(event); } // CraftBukkit end @@ -136,7 +136,7 @@ index d164ae1b965310a260f79240b6e2fd4ddd7249f3..a794131746c6cfdcbeeb64b31fb122a3 this.adventure$locale = java.util.Objects.requireNonNullElse(net.kyori.adventure.translation.Translator.parseLocale(this.language), java.util.Locale.US); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d29107105b7bc56b50864777f32420d0c7f379dc..8c61e7a1681cbf4c2fd153d9cba5929bc853235a 100644 +index d0af4b838bd43ef2388e918ac14e7acec71b63ef..b9487ce9391413c4c596cc5450ed5c396347ec1b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -653,6 +653,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch index fc78073d82..f0f37986b6 100644 --- a/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0485-Reset-shield-blocking-on-dimension-change.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c973b003ea22a37e841b20ca8b9e2915264820cf..433102e21d18bbfc3cba9abf9f9a760a71d2ba74 100644 +index 2ea613f818403f8e8ece4b36891738139345cf89..fffd3ae6c4fc0b86057cd915bb4f0987f41a64d0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1350,6 +1350,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1349,6 +1349,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver1.getWorld()); this.level().getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end diff --git a/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch index e5d13e061d..e24fdaca27 100644 --- a/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0534-Expand-PlayerGameModeChangeEvent.patch @@ -45,10 +45,10 @@ index 7f09119bc7d661e08a960dd2bd46006efe752d3e..d1da3600dc07107309b20ebe6e7c0c4d } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6b2c82d80bc673a74ae894f794eb50402b9cc30d..da783ccab230197a4258a2e8509ad893d5417c18 100644 +index 52a5274fb811870481a48bf0505769d7ac5df31f..42df8d45ceb963043cf6467b8fc47272ce0873da 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2085,10 +2085,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2084,10 +2084,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } public boolean setGameMode(GameType gameMode) { @@ -69,7 +69,7 @@ index 6b2c82d80bc673a74ae894f794eb50402b9cc30d..da783ccab230197a4258a2e8509ad893 } else { this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { -@@ -2104,7 +2112,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2103,7 +2111,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.onUpdateAbilities(); this.updateEffectVisibility(); @@ -78,7 +78,7 @@ index 6b2c82d80bc673a74ae894f794eb50402b9cc30d..da783ccab230197a4258a2e8509ad893 } } -@@ -2510,6 +2518,16 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2509,6 +2517,16 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } public void loadGameTypes(@Nullable CompoundTag nbt) { @@ -134,7 +134,7 @@ index 5de472df78940d1b8320f73d18b2edf3a796227e..073cf184a0e7af41048ae67a9b17b4cd } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ed4a2f5f03790fab394429334881377c1b3ab60..e91200b8b1da00b4b13697e950433de661a4e419 100644 +index 7721d329e9949bf84f31792d4c06ab9e04ab4ade..75cb96d392eff322eb93894b5c2b5ad22c3fd261 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2727,7 +2727,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -147,7 +147,7 @@ index 4ed4a2f5f03790fab394429334881377c1b3ab60..e91200b8b1da00b4b13697e950433de6 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 963ae66acc25602e15134d30d3e496802b17dc41..3f603688b9ad895edc2bfc07093c42bc17a35b19 100644 +index 3bc62788d63e98eb9b2a2b381272b262040dcb5f..c9dc7c570e86f420cf8c6343c6ffbdbca427e7a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1654,7 +1654,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch index 75e9f5ab62..8f8228a1d4 100644 --- a/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0559-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -31,10 +31,10 @@ index c81fd3e1108fb0a02f9240263404af2b968c8494..0d9de4c61c7b26a6ff37c12fde629161 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index da783ccab230197a4258a2e8509ad893d5417c18..38d493b03c02bbfed297b7735590e799d26c07f7 100644 +index 42df8d45ceb963043cf6467b8fc47272ce0873da..f20019261a09f425137731f7a4b92e889b617334 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2487,7 +2487,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2486,7 +2486,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { if (flag1) { if (!itemstack1.isEmpty()) { diff --git a/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch index c95ca38ef7..f23c0c584f 100644 --- a/patches/server/0566-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0566-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 09e72aee16ceb7b300482fbaf28f856d4ed472d3..e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da 100644 +index 9982940af7d10ca7799e2c21ac994ea3afa0b805..d1b21afe48dbe1e53d4a046434336be580497165 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; @@ -22,7 +22,7 @@ index 09e72aee16ceb7b300482fbaf28f856d4ed472d3..e9eec0e4e2e533e4ddc7f52a16a1b2b1 import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; -@@ -1546,7 +1547,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1545,7 +1546,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public boolean isInvulnerableTo(DamageSource damageSource) { diff --git a/patches/server/0573-Add-PlayerSetSpawnEvent.patch b/patches/server/0573-Add-PlayerSetSpawnEvent.patch index 75839ec637..4e745dc806 100644 --- a/patches/server/0573-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0573-Add-PlayerSetSpawnEvent.patch @@ -49,10 +49,10 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da..db4bdce4eae9a91babe95c28cb0f6c96ab5f10df 100644 +index d1b21afe48dbe1e53d4a046434336be580497165..2dd10cada8d36ed5565481f3f5a5fba168ba9b26 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1423,7 +1423,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1422,7 +1422,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } else if (this.bedBlocked(blockposition, enumdirection)) { return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.OBSTRUCTED); } else { @@ -61,7 +61,7 @@ index e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da..db4bdce4eae9a91babe95c28cb0f6c96 if (this.level().isDay()) { return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.NOT_POSSIBLE_NOW); } else { -@@ -2400,44 +2400,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2399,44 +2399,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.setRespawnPosition(player.getRespawnDimension(), player.getRespawnPosition(), player.getRespawnAngle(), player.isRespawnForced(), false); } @@ -145,7 +145,7 @@ index e9eec0e4e2e533e4ddc7f52a16a1b2b1ce21d6da..db4bdce4eae9a91babe95c28cb0f6c96 } else { this.respawnPosition = null; this.respawnDimension = Level.OVERWORLD; -@@ -2445,6 +2451,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2444,6 +2450,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.respawnForced = false; } @@ -187,7 +187,7 @@ index ba22ad1e4253477572d10d71db6db0ebc14d6755..94d067e9eeee73183de25165d8c97043 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6bc3209b6039ed3d33131e1c6bc56a47916be3ee..37f220976b1f1b0a423d7354e6730b6ad8096495 100644 +index 7fb6bfe2863d856f27da29a77026f4bc821c929c..2f9c5d6825795b6dc8074d04bec944f93ac71a5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1413,9 +1413,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index eb56ff1385..22f86aa476 100644 --- a/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0598-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -28,10 +28,10 @@ index 778d3f3ea2247be5bd6edd382b872f6de5bc359c..de154106419d57a6b6c410fedc29cec1 } // 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 db4bdce4eae9a91babe95c28cb0f6c96ab5f10df..0d5870ef02467d88cfeccf5aa953fcbcdf43117f 100644 +index 2dd10cada8d36ed5565481f3f5a5fba168ba9b26..6648af4d8d795637fae444dc85803b399592fd7d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1716,6 +1716,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1715,6 +1715,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId)); this.doCloseContainer(); } diff --git a/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch index 238d672cce..488f84c884 100644 --- a/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0713-Add-option-for-strict-advancement-dimension-checks.patch @@ -24,10 +24,10 @@ index 01b8f7024fbc965bc6a7f97f79ba3dec964ef769..801823d003a8e28a13fe90db4604cd09 } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e87c005cf0e82ce56ca99dd40c1dea161faeedda..10ad431d66fcf603f672611759fccb1e2e41cffe 100644 +index f31eb944465e9011d8aad398eb60bafb44203ad5..ad3896dd524acb573adffdfb38b13dd699539cef 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1388,6 +1388,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1387,6 +1387,12 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { ResourceKey maindimensionkey = CraftDimensionUtil.getMainDimensionKey(origin); ResourceKey maindimensionkey1 = CraftDimensionUtil.getMainDimensionKey(this.level()); diff --git a/patches/server/0786-Improve-PortalEvents.patch b/patches/server/0786-Improve-PortalEvents.patch index 53e3b1ff5f..888317113e 100644 --- a/patches/server/0786-Improve-PortalEvents.patch +++ b/patches/server/0786-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7604aef2e03e7d688e7b6504283ed631488ec2d6..6868025551065e0c9418b9e1387579b6bd35923b 100644 +index 96dff63230e8cda1f5e548d914c119bd64b5ac33..7270b6fa96bae937663c0fea77887e21fbd0eb57 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1341,7 +1341,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1340,7 +1340,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } // CraftBukkit start Location enter = this.getBukkitEntity().getLocation(); @@ -54,7 +54,7 @@ index 11486419dd98a013c7387d3d73f322a95a18c574..3f5bb5c9ceb5b31fcc9ef0a7a6157e1e if (!world.isClientSide && tileentity instanceof TheEndGatewayBlockEntity) { diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index cff3e9869340f1ffb7093431cbe1ac5e67792a4e..6937d334b70791c094f6b752373225cfb64ee7ac 100644 +index 28fba1448309805fc3d687de6bc8454d2c85fcd3..a35a426cc7778a51523f26057b5d61b8a3e23d5d 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java @@ -66,8 +66,9 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { @@ -68,7 +68,7 @@ index cff3e9869340f1ffb7093431cbe1ac5e67792a4e..6937d334b70791c094f6b752373225cf // CraftBukkit end if (!world.isClientSide && world.dimension() == Level.END && entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -89,7 +90,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { +@@ -90,7 +91,7 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal { ServerLevel worldserver1 = world.getServer().getLevel(resourcekey); if (worldserver1 == null) { diff --git a/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch index e9c3aa9d42..0d8a9544c7 100644 --- a/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0879-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc4a01f433bab7e8ecf6a156b748a0db784130e5..f56fc6bc4da573cd73c72e3c61a96c4f1eebeb94 100644 +index 530728cd4b258444f6efe064903b521f4b23cd04..b65d816bb9feb18ecf74e10e9728c302e5657587 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1657,12 +1657,17 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1656,12 +1656,17 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.nextContainerCounter(); AbstractContainerMenu container = factory.createMenu(this.containerCounter, this.getInventory(), this); @@ -27,7 +27,7 @@ index dc4a01f433bab7e8ecf6a156b748a0db784130e5..f56fc6bc4da573cd73c72e3c61a96c4f if (container == null && !cancelled) { // Let pre-cancelled events fall through // SPIGOT-5263 - close chest if cancelled if (factory instanceof Container) { -@@ -1684,7 +1689,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1683,7 +1688,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } else { // CraftBukkit start this.containerMenu = container; @@ -79,7 +79,7 @@ index 12ab8f7cde88cd6ce3ad474fe2843d5d30c3c0d7..c1bad887d1340ebc7c63fda3dceff929 if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3dae4bc26ac6de7ee07eeca7763e2078cb2b7101..a8365c67e28d530734b8527ce67d83decee41beb 100644 +index e5fa1ece90c38bb73bba5721e6f8d4ea240a1d6d..786b3c60086faee8d6ee23c862f3ad7ff4f3581e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1401,10 +1401,21 @@ public class CraftEventFactory {