aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2023-11-11 12:25:45 -0800
committerGitHub <[email protected]>2023-11-11 12:25:45 -0800
commitd8847bc1f3a77be9edf69a6b5b71fbfd8292eb57 (patch)
tree1ae03a5eaa4b4106a86df39097acb787f2ef059d
parent63e77b531da93e74fe08851aa8f3892984fdec44 (diff)
downloadPaper-d8847bc1f3a77be9edf69a6b5b71fbfd8292eb57.tar.gz
Paper-d8847bc1f3a77be9edf69a6b5b71fbfd8292eb57.zip
Updated Upstream (Bukkit/CraftBukkit) (#9922)
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: fde5602a PR-927: Add PlayerRecipeBookSettingsChangeEvent 949ff217 PR-930: Add methods to get/set evoker fang attack delay f6f7c79d SPIGOT-7514, PR-929: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics d40e22da PR-712: Add API to get full result of crafting items CraftBukkit Changes: c8feb0629 PR-1291: Improve precondition message in Entity#playEffect 482c56a00 PR-1285: Add PlayerRecipeBookSettingsChangeEvent cdf798800 PR-1290: Add methods to get/set evoker fang attack delay 2c1b5f78f SPIGOT-7514, PR-1289: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics 6aa644ae9 PR-992: Add API to get full result of crafting items ffb1319bc PR-1287: Fix scoreboards not updating in Player#setStatistic
-rw-r--r--patches/api/0005-Adventure.patch56
-rw-r--r--patches/api/0010-Timings-v2.patch8
-rw-r--r--patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch8
-rw-r--r--patches/api/0013-Add-getTPS-method.patch8
-rw-r--r--patches/api/0020-Expose-server-CommandMap.patch8
-rw-r--r--patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch8
-rw-r--r--patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch8
-rw-r--r--patches/api/0043-Allow-Reloading-of-Command-Aliases.patch8
-rw-r--r--patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch8
-rw-r--r--patches/api/0055-Fix-upstream-javadocs.patch10
-rw-r--r--patches/api/0059-Basic-PlayerProfile-API.patch8
-rw-r--r--patches/api/0065-Add-getI18NDisplayName-API.patch4
-rw-r--r--patches/api/0066-ensureServerConversions-API.patch4
-rw-r--r--patches/api/0091-Player.setPlayerProfile-API.patch16
-rw-r--r--patches/api/0092-getPlayerUniqueId-API.patch8
-rw-r--r--patches/api/0146-Add-Git-information-to-version-command-on-startup.patch6
-rw-r--r--patches/api/0160-Make-the-default-permission-message-configurable.patch8
-rw-r--r--patches/api/0172-Fix-Spigot-annotation-mistakes.patch22
-rw-r--r--patches/api/0180-Expose-the-internal-current-tick.patch8
-rw-r--r--patches/api/0186-Add-tick-times-API.patch8
-rw-r--r--patches/api/0187-Expose-MinecraftServer-isRunning.patch8
-rw-r--r--patches/api/0194-Expose-game-version.patch8
-rw-r--r--patches/api/0195-Add-Mob-Goal-API.patch8
-rw-r--r--patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch4
-rw-r--r--patches/api/0218-Add-getOfflinePlayerIfCached-String.patch8
-rw-r--r--patches/api/0264-Expand-world-key-API.patch8
-rw-r--r--patches/api/0282-Add-basic-Datapack-API.patch12
-rw-r--r--patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch8
-rw-r--r--patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch8
-rw-r--r--patches/api/0351-Custom-Potion-Mixes.patch8
-rw-r--r--patches/api/0355-Add-enchantWithLevels-API.patch52
-rw-r--r--patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch12
-rw-r--r--patches/api/0417-Folia-scheduler-and-owned-region-API.patch8
-rw-r--r--patches/api/0422-API-for-updating-recipes-on-clients.patch16
-rw-r--r--patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch14
-rw-r--r--patches/server/0005-Paper-config-files.patch4
-rw-r--r--patches/server/0008-CB-fixes.patch8
-rw-r--r--patches/server/0010-Adventure.patch52
-rw-r--r--patches/server/0011-Paper-command.patch8
-rw-r--r--patches/server/0013-Paper-Plugins.patch10
-rw-r--r--patches/server/0014-Timings-v2.patch18
-rw-r--r--patches/server/0018-Rewrite-chunk-system.patch16
-rw-r--r--patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch6
-rw-r--r--patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch10
-rw-r--r--patches/server/0031-Further-improve-server-tick-loop.patch4
-rw-r--r--patches/server/0052-Improve-Player-chat-API-handling.patch12
-rw-r--r--patches/server/0054-Expose-server-CommandMap.patch4
-rw-r--r--patches/server/0058-Add-velocity-warnings.patch6
-rw-r--r--patches/server/0066-Default-loading-permissions.yml-before-plugins.patch6
-rw-r--r--patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch4
-rw-r--r--patches/server/0068-Remove-Metadata-on-reload.patch4
-rw-r--r--patches/server/0084-Add-PlayerUseUnknownEntityEvent.patch4
-rw-r--r--patches/server/0106-Add-setting-for-proxy-online-mode-status.patch4
-rw-r--r--patches/server/0108-Configurable-packet-in-spam-threshold.patch4
-rw-r--r--patches/server/0110-Add-EntityZapEvent.patch4
-rw-r--r--patches/server/0113-Allow-Reloading-of-Command-Aliases.patch4
-rw-r--r--patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch4
-rw-r--r--patches/server/0115-Add-ProjectileCollideEvent.patch6
-rw-r--r--patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch6
-rw-r--r--patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch4
-rw-r--r--patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch9
-rw-r--r--patches/server/0140-Add-UnknownCommandEvent.patch6
-rw-r--r--patches/server/0141-Basic-PlayerProfile-API.patch14
-rw-r--r--patches/server/0147-Implement-ensureServerConversions-API.patch4
-rw-r--r--patches/server/0148-Implement-getI18NDisplayName.patch4
-rw-r--r--patches/server/0157-Add-PlayerJumpEvent.patch4
-rw-r--r--patches/server/0167-AsyncTabCompleteEvent.patch12
-rw-r--r--patches/server/0182-Player.setPlayerProfile-API.patch8
-rw-r--r--patches/server/0183-getPlayerUniqueId-API.patch4
-rw-r--r--patches/server/0216-InventoryCloseEvent-Reason-API.patch12
-rw-r--r--patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch4
-rw-r--r--patches/server/0226-Vanished-players-don-t-have-rights.patch4
-rw-r--r--patches/server/0233-Break-up-and-make-tab-spam-limits-configurable.patch4
-rw-r--r--patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch6
-rw-r--r--patches/server/0253-Improve-death-events.patch10
-rw-r--r--patches/server/0273-Add-option-to-prevent-players-from-moving-into-unloa.patch6
-rw-r--r--patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch6
-rw-r--r--patches/server/0282-Make-the-default-permission-message-configurable.patch4
-rw-r--r--patches/server/0287-Book-Size-Limits.patch4
-rw-r--r--patches/server/0295-Implement-Brigadier-Mojang-API.patch8
-rw-r--r--patches/server/0297-Limit-Client-Sign-length-more.patch4
-rw-r--r--patches/server/0315-Expose-the-internal-current-tick.patch4
-rw-r--r--patches/server/0342-Anti-Xray.patch4
-rw-r--r--patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch4
-rw-r--r--patches/server/0358-Add-tick-times-API-and-mspt-command.patch6
-rw-r--r--patches/server/0359-Expose-MinecraftServer-isRunning.patch4
-rw-r--r--patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch8
-rw-r--r--patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch4
-rw-r--r--patches/server/0386-Expose-game-version.patch4
-rw-r--r--patches/server/0389-misc-debugging-dumps.patch6
-rw-r--r--patches/server/0390-Prevent-teleporting-dead-entities.patch4
-rw-r--r--patches/server/0392-Implement-Mob-Goal-API.patch4
-rw-r--r--patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch4
-rw-r--r--patches/server/0395-ExperienceOrbMergeEvent.patch4
-rw-r--r--patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch4
-rw-r--r--patches/server/0411-Prevent-position-desync-in-playerconnection-causing-.patch4
-rw-r--r--patches/server/0414-Add-and-implement-PlayerRecipeBookClickEvent.patch4
-rw-r--r--patches/server/0417-Add-permission-for-command-blocks.patch10
-rw-r--r--patches/server/0419-Fix-Per-World-Difficulty-Remembering-Difficulty.patch8
-rw-r--r--patches/server/0423-Add-Plugin-Tickets-to-API-Chunk-Methods.patch6
-rw-r--r--patches/server/0433-Add-PrepareResultEvent.patch4
-rw-r--r--patches/server/0451-Add-BellRingEvent.patch4
-rw-r--r--patches/server/0459-Create-HoverEvent-from-ItemStack-Entity.patch4
-rw-r--r--patches/server/0461-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch8
-rw-r--r--patches/server/0471-Fix-for-large-move-vectors-crashing-server.patch6
-rw-r--r--patches/server/0479-Add-getOfflinePlayerIfCached-String.patch4
-rw-r--r--patches/server/0498-Limit-recipe-packets.patch4
-rw-r--r--patches/server/0503-Add-OBSTRUCTED-reason-to-BedEnterResult.patch4
-rw-r--r--patches/server/0515-Fix-interact-event-not-being-called-sometimes.patch6
-rw-r--r--patches/server/0522-Implemented-BlockFailedDispenseEvent.patch4
-rw-r--r--patches/server/0537-Implement-BlockPreDispenseEvent.patch4
-rw-r--r--patches/server/0541-Add-dropLeash-variable-to-EntityUnleashEvent.patch6
-rw-r--r--patches/server/0547-Allow-adding-items-to-BlockDropItemEvent.patch4
-rw-r--r--patches/server/0561-Allow-using-signs-inside-spawn-protection.patch4
-rw-r--r--patches/server/0562-Expand-world-key-API.patch8
-rw-r--r--patches/server/0567-Don-t-ignore-result-of-PlayerEditBookEvent.patch4
-rw-r--r--patches/server/0577-fix-PlayerItemHeldEvent-firing-twice.patch4
-rw-r--r--patches/server/0584-add-RespawnFlags-to-PlayerRespawnEvent.patch4
-rw-r--r--patches/server/0594-Add-basic-Datapack-API.patch8
-rw-r--r--patches/server/0596-additions-to-PlayerGameModeChangeEvent.patch6
-rw-r--r--patches/server/0599-Move-range-check-for-block-placing-up.patch4
-rw-r--r--patches/server/0600-Fix-and-optimise-world-force-upgrading.patch6
-rw-r--r--patches/server/0602-Add-Unix-domain-socket-support.patch4
-rw-r--r--patches/server/0608-Add-PlayerKickEvent-causes.patch44
-rw-r--r--patches/server/0625-Ensure-disconnect-for-book-edit-is-called-on-main.patch4
-rw-r--r--patches/server/0629-Adds-PlayerArmSwingEvent.patch4
-rw-r--r--patches/server/0630-Fixes-kick-event-leave-message-not-being-sent.patch8
-rw-r--r--patches/server/0638-Add-System.out-err-catcher.patch4
-rw-r--r--patches/server/0662-Add-ItemFactory-getSpawnEgg-API.patch4
-rw-r--r--patches/server/0663-Add-critical-damage-API.patch10
-rw-r--r--patches/server/0672-Improve-and-expand-AsyncCatcher.patch4
-rw-r--r--patches/server/0673-Add-paper-mobcaps-and-paper-playermobcaps.patch4
-rw-r--r--patches/server/0697-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch4
-rw-r--r--patches/server/0718-Hide-unnecessary-itemmeta-from-clients.patch4
-rw-r--r--patches/server/0723-Allow-delegation-to-vanilla-chunk-gen.patch4
-rw-r--r--patches/server/0725-Optimise-collision-checking-in-player-move-packet-ha.patch12
-rw-r--r--patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch4
-rw-r--r--patches/server/0751-Kick-on-main-for-illegal-chat.patch8
-rw-r--r--patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch4
-rw-r--r--patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch4
-rw-r--r--patches/server/0763-Add-GameEvent-tags.patch6
-rw-r--r--patches/server/0769-Put-world-into-worldlist-before-initing-the-world.patch4
-rw-r--r--patches/server/0771-Custom-Potion-Mixes.patch8
-rw-r--r--patches/server/0776-More-Projectile-API.patch6
-rw-r--r--patches/server/0781-Implement-enchantWithLevels-API.patch22
-rw-r--r--patches/server/0782-Fix-saving-in-unloadWorld.patch4
-rw-r--r--patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch4
-rw-r--r--patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch4
-rw-r--r--patches/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch4
-rw-r--r--patches/server/0798-WorldCreator-keepSpawnLoaded.patch6
-rw-r--r--patches/server/0807-Do-not-accept-invalid-client-settings.patch4
-rw-r--r--patches/server/0814-Throw-exception-on-world-create-while-being-ticked.patch8
-rw-r--r--patches/server/0821-Don-t-broadcast-messages-to-command-blocks.patch4
-rw-r--r--patches/server/0827-Add-some-minimal-debug-information-to-chat-packet-er.patch4
-rw-r--r--patches/server/0829-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch4
-rw-r--r--patches/server/0830-More-Teleport-API.patch8
-rw-r--r--patches/server/0833-Send-block-entities-after-destroy-prediction.patch4
-rw-r--r--patches/server/0840-Add-Velocity-IP-Forwarding-Support.patch4
-rw-r--r--patches/server/0860-Correctly-handle-interactions-with-items-on-cooldown.patch6
-rw-r--r--patches/server/0891-Properly-resend-entities.patch6
-rw-r--r--patches/server/0898-Improve-logging-and-errors.patch4
-rw-r--r--patches/server/0901-Add-missing-SpigotConfig-logCommands-check.patch4
-rw-r--r--patches/server/0904-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch4
-rw-r--r--patches/server/0907-Use-single-player-info-update-packet-on-join.patch4
-rw-r--r--patches/server/0915-Add-EntityFertilizeEggEvent.patch4
-rw-r--r--patches/server/0927-Treat-sequence-violations-like-they-should-be.patch4
-rw-r--r--patches/server/0929-Prevent-causing-expired-keys-from-impacting-new-join.patch4
-rw-r--r--patches/server/0936-Fix-DamageCause-for-Falling-Blocks.patch4
-rw-r--r--patches/server/0941-Expand-PlayerItemMendEvent.patch6
-rw-r--r--patches/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch4
-rw-r--r--patches/server/0954-Properly-Cancel-Usable-Items.patch4
-rw-r--r--patches/server/0959-Call-missing-BlockDispenseEvent.patch4
-rw-r--r--patches/server/0964-fix-item-meta-for-tadpole-buckets.patch4
-rw-r--r--patches/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch4
-rw-r--r--patches/server/0974-Implement-PlayerFailMoveEvent.patch14
-rw-r--r--patches/server/0975-Folia-scheduler-and-owned-region-API.patch8
-rw-r--r--patches/server/0977-API-for-updating-recipes-on-clients.patch10
-rw-r--r--patches/server/0982-Use-correct-seed-on-api-world-load.patch4
-rw-r--r--patches/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch6
-rw-r--r--patches/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch4
-rw-r--r--patches/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch4
-rw-r--r--patches/server/1002-Add-PlayerPickItemEvent.patch4
-rw-r--r--patches/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch6
-rw-r--r--patches/server/1013-Add-slot-sanity-checks-in-container-clicks.patch4
-rw-r--r--patches/server/1048-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch (renamed from patches/server/1047-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch)0
m---------work/Bukkit0
m---------work/CraftBukkit0
187 files changed, 692 insertions, 643 deletions
diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch
index f6719b30e8..85a8f914ad 100644
--- a/patches/api/0005-Adventure.patch
+++ b/patches/api/0005-Adventure.patch
@@ -763,10 +763,10 @@ index 0000000000000000000000000000000000000000..6e94562d79206d88b74b53814f9423f1
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d45d1fc74 100644
+index 1cd0bc6b58b1fe391f77b95182ed848f2e74a9a5..55b61b5971ac0848174bd4d59952408c437f0e60 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -389,7 +389,9 @@ public final class Bukkit {
+@@ -390,7 +390,9 @@ public final class Bukkit {
*
* @param message the message
* @return the number of players
@@ -776,7 +776,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static int broadcastMessage(@NotNull String message) {
return server.broadcastMessage(message);
}
-@@ -1105,6 +1107,19 @@ public final class Bukkit {
+@@ -1181,6 +1183,19 @@ public final class Bukkit {
server.shutdown();
}
@@ -796,7 +796,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
/**
* Broadcasts the specified message to every user with the given
* permission name.
-@@ -1114,6 +1129,21 @@ public final class Bukkit {
+@@ -1190,6 +1205,21 @@ public final class Bukkit {
* permissibles} must have to receive the broadcast
* @return number of message recipients
*/
@@ -818,7 +818,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static int broadcast(@NotNull String message, @NotNull String permission) {
return server.broadcast(message, permission);
}
-@@ -1375,6 +1405,7 @@ public final class Bukkit {
+@@ -1451,6 +1481,7 @@ public final class Bukkit {
return server.createInventory(owner, type);
}
@@ -826,7 +826,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1400,6 +1431,38 @@ public final class Bukkit {
+@@ -1476,6 +1507,38 @@ public final class Bukkit {
* @see InventoryType#isCreatable()
*/
@NotNull
@@ -865,7 +865,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) {
return server.createInventory(owner, type, title);
}
-@@ -1418,6 +1481,7 @@ public final class Bukkit {
+@@ -1494,6 +1557,7 @@ public final class Bukkit {
return server.createInventory(owner, size);
}
@@ -873,7 +873,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1430,10 +1494,30 @@ public final class Bukkit {
+@@ -1506,10 +1570,30 @@ public final class Bukkit {
* @throws IllegalArgumentException if the size is not a multiple of 9
*/
@NotNull
@@ -904,7 +904,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
/**
* Creates an empty merchant.
*
-@@ -1441,7 +1525,20 @@ public final class Bukkit {
+@@ -1517,7 +1601,20 @@ public final class Bukkit {
* when the merchant inventory is viewed
* @return a new merchant
*/
@@ -925,7 +925,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static Merchant createMerchant(@Nullable String title) {
return server.createMerchant(title);
}
-@@ -1558,12 +1655,43 @@ public final class Bukkit {
+@@ -1634,12 +1731,43 @@ public final class Bukkit {
return server.isPrimaryThread();
}
@@ -969,7 +969,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static String getMotd() {
return server.getMotd();
}
-@@ -1572,7 +1700,9 @@ public final class Bukkit {
+@@ -1648,7 +1776,9 @@ public final class Bukkit {
* Set the message that is displayed on the server list.
*
* @param motd The message to be displayed
@@ -979,7 +979,7 @@ index ffb6ff5793f8702f6974ff53b53380e00d2d4057..b7bc68c5d0dbb41c089f59b7db51342d
public static void setMotd(@NotNull String motd) {
server.setMotd(motd);
}
-@@ -1581,8 +1711,10 @@ public final class Bukkit {
+@@ -1657,8 +1787,10 @@ public final class Bukkit {
* Gets the default message that is displayed when the server is stopped.
*
* @return the shutdown message
@@ -1161,10 +1161,10 @@ index ae7b51341fb66c41b8a7c4604fd273d876e311be..4034fcb9abc39b12f0de47c4b679f2ef
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3eead8a112 100644
+index 3a0f7405a481327dd94cfb5fc693ce07c2223954..19d61b2425794b2ca4dbc76bda9e23abe97fc30d 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -61,13 +61,13 @@ import org.jetbrains.annotations.Nullable;
+@@ -62,13 +62,13 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a server implementation.
*/
@@ -1180,7 +1180,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
*/
public static final String BROADCAST_CHANNEL_ADMINISTRATIVE = "bukkit.broadcast.admin";
-@@ -75,7 +75,7 @@ public interface Server extends PluginMessageRecipient {
+@@ -76,7 +76,7 @@ public interface Server extends PluginMessageRecipient {
* Used for all announcement messages, such as informing users that a
* player has joined.
* <p>
@@ -1189,7 +1189,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
*/
public static final String BROADCAST_CHANNEL_USERS = "bukkit.broadcast.user";
-@@ -328,7 +328,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -329,7 +329,9 @@ public interface Server extends PluginMessageRecipient {
*
* @param message the message
* @return the number of players
@@ -1199,7 +1199,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
public int broadcastMessage(@NotNull String message);
/**
-@@ -946,8 +948,33 @@ public interface Server extends PluginMessageRecipient {
+@@ -1015,8 +1017,33 @@ public interface Server extends PluginMessageRecipient {
* @param permission the required permission {@link Permissible
* permissibles} must have to receive the broadcast
* @return number of message recipients
@@ -1233,7 +1233,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
/**
* Gets the player by the given name, regardless if they are offline or
-@@ -1164,6 +1191,35 @@ public interface Server extends PluginMessageRecipient {
+@@ -1233,6 +1260,35 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type);
@@ -1269,7 +1269,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
/**
* Creates an empty inventory with the specified type and title. If the type
* is {@link InventoryType#CHEST}, the new inventory has a size of 27;
-@@ -1185,9 +1241,11 @@ public interface Server extends PluginMessageRecipient {
+@@ -1254,9 +1310,11 @@ public interface Server extends PluginMessageRecipient {
* @return The new inventory.
* @throws IllegalArgumentException if the {@link InventoryType} cannot be
* viewed.
@@ -1281,7 +1281,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title);
-@@ -1203,6 +1261,22 @@ public interface Server extends PluginMessageRecipient {
+@@ -1272,6 +1330,22 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Inventory createInventory(@Nullable InventoryHolder owner, int size) throws IllegalArgumentException;
@@ -1304,7 +1304,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
/**
* Creates an empty inventory of type {@link InventoryType#CHEST} with the
* specified size and title.
-@@ -1213,18 +1287,32 @@ public interface Server extends PluginMessageRecipient {
+@@ -1282,18 +1356,32 @@ public interface Server extends PluginMessageRecipient {
* viewed
* @return a new inventory
* @throws IllegalArgumentException if the size is not a multiple of 9
@@ -1337,7 +1337,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
Merchant createMerchant(@Nullable String title);
/**
-@@ -1320,27 +1408,56 @@ public interface Server extends PluginMessageRecipient {
+@@ -1389,27 +1477,56 @@ public interface Server extends PluginMessageRecipient {
*/
boolean isPrimaryThread();
@@ -1394,7 +1394,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
String getShutdownMessage();
/**
-@@ -1722,7 +1839,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1791,7 +1908,9 @@ public interface Server extends PluginMessageRecipient {
* Sends the component to the player
*
* @param component the components to send
@@ -1404,7 +1404,7 @@ index 8263a17a46c2aa7f976b37b80933acd850b9434a..e3602c6703b29ffec17ef7806c9deb3e
public void broadcast(@NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
-@@ -1731,7 +1850,9 @@ public interface Server extends PluginMessageRecipient {
+@@ -1800,7 +1919,9 @@ public interface Server extends PluginMessageRecipient {
* Sends an array of components as a single message to the player
*
* @param components the components to send
@@ -4007,13 +4007,13 @@ index e12996492c1558fed9fab30de9f8018e0ed7fac3..002acfbdce1db10f7ba1b6a013e678f5
/**
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index 502a1fd398fb0dcfbaf82081a655e2efc3bf71dc..30770d03044da684aa8c79ca74796050c319f6be 100644
+index e606f63a284db71663aee667597447b875e20627..6b1c55249b39a45c33ac49bacef4e9d80ba8cc3a 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -172,4 +172,24 @@ public interface ItemFactory {
+@@ -217,4 +217,24 @@ public interface ItemFactory {
*/
- @Nullable
- Material getSpawnEgg(@NotNull EntityType type);
+ @NotNull
+ ItemStack enchantItem(@NotNull final ItemStack item, final int level, final boolean allowTreasures);
+
+ // Paper start - Adventure
+ /**
diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch
index 2f419c9714..1ca70f8a1e 100644
--- a/patches/api/0010-Timings-v2.patch
+++ b/patches/api/0010-Timings-v2.patch
@@ -2854,10 +2854,10 @@ index 0000000000000000000000000000000000000000..3e61a926620a67daec3af54b72a1b911
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b7bc68c5d0dbb41c089f59b7db51342d45d1fc74..8d101352f72fc7fa21e0ba68039c79ce2fb92eb9 100644
+index 55b61b5971ac0848174bd4d59952408c437f0e60..dd60025dd956dd360ded51e056163c31908b6d5e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -833,7 +833,6 @@ public final class Bukkit {
+@@ -834,7 +834,6 @@ public final class Bukkit {
*/
public static void reload() {
server.reload();
@@ -2866,10 +2866,10 @@ index b7bc68c5d0dbb41c089f59b7db51342d45d1fc74..8d101352f72fc7fa21e0ba68039c79ce
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index e3602c6703b29ffec17ef7806c9deb3eead8a112..3e642d8a0294f7290c3d4310813e6e8a467810e7 100644
+index 19d61b2425794b2ca4dbc76bda9e23abe97fc30d..4cb488d68abc80aae733eb6b17e9cfa015c5a229 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1835,6 +1835,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1904,6 +1904,26 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index e80ab59f2c..e404df1b65 100644
--- a/patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 8d101352f72fc7fa21e0ba68039c79ce2fb92eb9..b5bdefc93d8614b5efbfd6e4c975275b9b53868c 100644
+index dd60025dd956dd360ded51e056163c31908b6d5e..6a36a9bfa0574b8bd72fbf7edb9b49e01753406e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -78,6 +78,20 @@ public final class Bukkit {
+@@ -79,6 +79,20 @@ public final class Bukkit {
return server;
}
@@ -32,10 +32,10 @@ index 8d101352f72fc7fa21e0ba68039c79ce2fb92eb9..b5bdefc93d8614b5efbfd6e4c975275b
* Attempts to set the {@link Server} singleton.
* <p>
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3e642d8a0294f7290c3d4310813e6e8a467810e7..d4d87ce99ad757733a0f2dd1a02eb79f4ee7972f 100644
+index 4cb488d68abc80aae733eb6b17e9cfa015c5a229..75c51378095104a0a58babad281ee946a6c9584e 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -63,6 +63,18 @@ import org.jetbrains.annotations.Nullable;
+@@ -64,6 +64,18 @@ import org.jetbrains.annotations.Nullable;
*/
public interface Server extends PluginMessageRecipient, net.kyori.adventure.audience.ForwardingAudience { // Paper
diff --git a/patches/api/0013-Add-getTPS-method.patch b/patches/api/0013-Add-getTPS-method.patch
index 75ce246bd3..dc188f645e 100644
--- a/patches/api/0013-Add-getTPS-method.patch
+++ b/patches/api/0013-Add-getTPS-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getTPS method
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b5bdefc93d8614b5efbfd6e4c975275b9b53868c..67ef3471a5ded760950459db5e65d20ca18af967 100644
+index 6a36a9bfa0574b8bd72fbf7edb9b49e01753406e..e4cdd6a68a52d0415d0281d03f50fe75c9924b7e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1964,6 +1964,17 @@ public final class Bukkit {
+@@ -2040,6 +2040,17 @@ public final class Bukkit {
return server.getEntity(uuid);
}
@@ -27,10 +27,10 @@ index b5bdefc93d8614b5efbfd6e4c975275b9b53868c..67ef3471a5ded760950459db5e65d20c
* Get the advancement specified by this key.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index d4d87ce99ad757733a0f2dd1a02eb79f4ee7972f..3b273e3ef2160ea3e436cabdfc4b33f605ab82c6 100644
+index 75c51378095104a0a58babad281ee946a6c9584e..17927955c481798b3bc40200168875bd319dd578 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1672,6 +1672,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1741,6 +1741,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
Entity getEntity(@NotNull UUID uuid);
diff --git a/patches/api/0020-Expose-server-CommandMap.patch b/patches/api/0020-Expose-server-CommandMap.patch
index 5705e18894..16ac67db3a 100644
--- a/patches/api/0020-Expose-server-CommandMap.patch
+++ b/patches/api/0020-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 67ef3471a5ded760950459db5e65d20ca18af967..b53e94d79862d66165bbcd2a79b82770398a7f3e 100644
+index e4cdd6a68a52d0415d0281d03f50fe75c9924b7e..2a287fc77ef5cc6404dccdab01740e2b8b11ef43 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2165,6 +2165,19 @@ public final class Bukkit {
+@@ -2241,6 +2241,19 @@ public final class Bukkit {
return server.getUnsafe();
}
@@ -29,10 +29,10 @@ index 67ef3471a5ded760950459db5e65d20ca18af967..b53e94d79862d66165bbcd2a79b82770
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3b273e3ef2160ea3e436cabdfc4b33f605ab82c6..124e88e512d24b6ff7ace3cf7d5a6adf4c2bb40d 100644
+index 17927955c481798b3bc40200168875bd319dd578..e0ca9516051bc566da2783f0574e791166d5922c 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1682,6 +1682,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1751,6 +1751,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public double[] getTPS();
// Paper end
diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
index c07b8e382b..cdceeb1c0f 100644
--- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
+++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Graduate bungeecord chat API from spigot subclasses
Change Javadoc to be accurate
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b53e94d79862d66165bbcd2a79b82770398a7f3e..9417030074fccdd9113bf75eb8f17f74b9a9118b 100644
+index 2a287fc77ef5cc6404dccdab01740e2b8b11ef43..9d1f1b97a16524ba1d523dd9130f113f0cf3e779 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -410,6 +410,30 @@ public final class Bukkit {
+@@ -411,6 +411,30 @@ public final class Bukkit {
return server.broadcastMessage(message);
}
@@ -41,10 +41,10 @@ index b53e94d79862d66165bbcd2a79b82770398a7f3e..9417030074fccdd9113bf75eb8f17f74
* Gets the name of the update folder. The update folder is used to safely
* update plugins at the right moment on a plugin load.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 124e88e512d24b6ff7ace3cf7d5a6adf4c2bb40d..ccc825a2ea43bb84a5a08dff00c4d8ec27e4e95a 100644
+index e0ca9516051bc566da2783f0574e791166d5922c..38e3bc502e66229a24833ab1eebba6816155fa19 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -345,6 +345,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -346,6 +346,30 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Deprecated // Paper
public int broadcastMessage(@NotNull String message);
diff --git a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
index 8d83e324a5..5dea7265c0 100644
--- a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
+++ b/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 9417030074fccdd9113bf75eb8f17f74b9a9118b..9003a603b6bf82a7b6f04fa027cdc889cf7c274f 100644
+index 9d1f1b97a16524ba1d523dd9130f113f0cf3e779..cb1c05f5844724f8c937fac2d7f2a878631d1936 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2200,6 +2200,13 @@ public final class Bukkit {
+@@ -2276,6 +2276,13 @@ public final class Bukkit {
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
}
@@ -24,10 +24,10 @@ index 9417030074fccdd9113bf75eb8f17f74b9a9118b..9003a603b6bf82a7b6f04fa027cdc889
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index ccc825a2ea43bb84a5a08dff00c4d8ec27e4e95a..45e628f6c47945ce008d8436e3b13325bb5084d8 100644
+index 38e3bc502e66229a24833ab1eebba6816155fa19..09c8e8376da0eb0590f09d1ac43595c3825daf06 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1943,4 +1943,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2012,4 +2012,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
Spigot spigot();
// Spigot end
diff --git a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
index 8ca2b8993d..b966a58c4d 100644
--- a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 9003a603b6bf82a7b6f04fa027cdc889cf7c274f..297f7befdac5c45efb1c9f432c49696814f513ab 100644
+index cb1c05f5844724f8c937fac2d7f2a878631d1936..c58a61b15838b17c40c11edae0a3677ec7bddedb 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2207,6 +2207,15 @@ public final class Bukkit {
+@@ -2283,6 +2283,15 @@ public final class Bukkit {
public static void reloadPermissions() {
server.reloadPermissions();
}
@@ -26,10 +26,10 @@ index 9003a603b6bf82a7b6f04fa027cdc889cf7c274f..297f7befdac5c45efb1c9f432c496968
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 45e628f6c47945ce008d8436e3b13325bb5084d8..d80e9a6770c565c2cdb6bea6ad14969a6a6d0dad 100644
+index 09c8e8376da0eb0590f09d1ac43595c3825daf06..62adb5e4c51bd52e7589071f1316ab93b2fede31 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1945,4 +1945,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2014,4 +2014,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Spigot end
void reloadPermissions(); // Paper
diff --git a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
index dd9d692387..f46d307145 100644
--- a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 297f7befdac5c45efb1c9f432c49696814f513ab..add298a1a0b6f6dbd72fe9e8f87794d193760fb7 100644
+index c58a61b15838b17c40c11edae0a3677ec7bddedb..8f9a19b1795ccddb7be268b72038cc236267821a 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2216,6 +2216,16 @@ public final class Bukkit {
+@@ -2292,6 +2292,16 @@ public final class Bukkit {
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
@@ -27,10 +27,10 @@ index 297f7befdac5c45efb1c9f432c49696814f513ab..add298a1a0b6f6dbd72fe9e8f87794d1
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index d80e9a6770c565c2cdb6bea6ad14969a6a6d0dad..22d508a6c80d7e19352bceb57009fdbcb16bc723 100644
+index 62adb5e4c51bd52e7589071f1316ab93b2fede31..86910935fa823f1e23cf1d89604d042c1c87fbc6 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1947,4 +1947,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2016,4 +2016,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch
index 58d32c6301..16b9148ee8 100644
--- a/patches/api/0055-Fix-upstream-javadocs.patch
+++ b/patches/api/0055-Fix-upstream-javadocs.patch
@@ -49,10 +49,10 @@ index a04cde615f8c4bc593f8d9f8f6f1438008aaa707..548f6d28c28d74bed8b58ee828759093
* @param target the target to remove from this list
*/
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index add298a1a0b6f6dbd72fe9e8f87794d193760fb7..b21f90f291a087b6282cd7b55e0075a01729f0ba 100644
+index 8f9a19b1795ccddb7be268b72038cc236267821a..365c2cd4f5a3a382d3b52b50377fbf56731a30ae 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1388,6 +1388,8 @@ public final class Bukkit {
+@@ -1464,6 +1464,8 @@ public final class Bukkit {
/**
* Gets every player that has ever played on this server.
@@ -114,10 +114,10 @@ index 02de62c083ceaa466c80cb732e8304b8cc3f07f8..7c2b1eff41dd43fda84d84e76c05bbbf
* @param statePredicate The predicate which should get used to test if a block should be set or not.
* @return true if the tree was created successfully, otherwise false
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 22d508a6c80d7e19352bceb57009fdbcb16bc723..3c1862b9a9293155f756615b5bd23cc810a6df5e 100644
+index 86910935fa823f1e23cf1d89604d042c1c87fbc6..36d07fda939a5e1b4acf77d9092bfc42bbd27d78 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -543,13 +543,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -544,13 +544,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* </ul>
* <p>
* <b>Note:</b> If set to 0, {@link SpawnCategory} mobs spawning will be disabled.
@@ -132,7 +132,7 @@ index 22d508a6c80d7e19352bceb57009fdbcb16bc723..3c1862b9a9293155f756615b5bd23cc8
*/
public int getTicksPerSpawns(@NotNull SpawnCategory spawnCategory);
-@@ -1181,6 +1178,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1250,6 +1247,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Gets every player that has ever played on this server.
diff --git a/patches/api/0059-Basic-PlayerProfile-API.patch b/patches/api/0059-Basic-PlayerProfile-API.patch
index a145986a49..ab35d1c971 100644
--- a/patches/api/0059-Basic-PlayerProfile-API.patch
+++ b/patches/api/0059-Basic-PlayerProfile-API.patch
@@ -321,10 +321,10 @@ index 0000000000000000000000000000000000000000..7b3b6ef533d32169fbeca389bd61cfc6
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b21f90f291a087b6282cd7b55e0075a01729f0ba..dcd539220e5a2bda41f27101ea4c0ece146e1d0d 100644
+index 365c2cd4f5a3a382d3b52b50377fbf56731a30ae..87ce6947a1e974c18e84f56ba622bee9fff3570b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2228,6 +2228,83 @@ public final class Bukkit {
+@@ -2304,6 +2304,83 @@ public final class Bukkit {
public static boolean suggestPlayerNamesWhenNullTabCompletions() {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -409,10 +409,10 @@ index b21f90f291a087b6282cd7b55e0075a01729f0ba..dcd539220e5a2bda41f27101ea4c0ece
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3c1862b9a9293155f756615b5bd23cc810a6df5e..016cee903c7179baf711984503d1d0793d40c5c5 100644
+index 36d07fda939a5e1b4acf77d9092bfc42bbd27d78..bc68d8af8b38232392a12ef5f338e85ca80bccd0 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1955,5 +1955,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2024,5 +2024,74 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0065-Add-getI18NDisplayName-API.patch b/patches/api/0065-Add-getI18NDisplayName-API.patch
index d4a809425c..ca75771d14 100644
--- a/patches/api/0065-Add-getI18NDisplayName-API.patch
+++ b/patches/api/0065-Add-getI18NDisplayName-API.patch
@@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index 30770d03044da684aa8c79ca74796050c319f6be..f0025ba978f4bdf1e6bab7d30466fc950bb2a13b 100644
+index 6b1c55249b39a45c33ac49bacef4e9d80ba8cc3a..cccf5d3dfd368c434dcafb0e9319f09a668c7ec2 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -192,4 +192,20 @@ public interface ItemFactory {
+@@ -237,4 +237,20 @@ public interface ItemFactory {
@NotNull
net.kyori.adventure.text.Component displayName(@NotNull ItemStack itemStack);
// Paper end - Adventure
diff --git a/patches/api/0066-ensureServerConversions-API.patch b/patches/api/0066-ensureServerConversions-API.patch
index f5ddcc820d..75f8c9aded 100644
--- a/patches/api/0066-ensureServerConversions-API.patch
+++ b/patches/api/0066-ensureServerConversions-API.patch
@@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr
to ensure it meets latest minecraft expectations.
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index f0025ba978f4bdf1e6bab7d30466fc950bb2a13b..d641a8293f3acd465d5fdde8507046647cb6c568 100644
+index cccf5d3dfd368c434dcafb0e9319f09a668c7ec2..246b58f52e914c45f357240b155c826b1d40b202 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -208,4 +208,18 @@ public interface ItemFactory {
+@@ -253,4 +253,18 @@ public interface ItemFactory {
@Deprecated
String getI18NDisplayName(@Nullable ItemStack item);
// Paper end - add getI18NDisplayName
diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch
index b5cb085b05..82f7bbfe85 100644
--- a/patches/api/0091-Player.setPlayerProfile-API.patch
+++ b/patches/api/0091-Player.setPlayerProfile-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index dcd539220e5a2bda41f27101ea4c0ece146e1d0d..f5358612884aae8d0686f3ff98ccee567a746f16 100644
+index 87ce6947a1e974c18e84f56ba622bee9fff3570b..0dfb60e4635cc960b5cb481206b6c02adb36d7f9 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1230,8 +1230,10 @@ public final class Bukkit {
+@@ -1306,8 +1306,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* <code>null</code> and the name is <code>null</code> or blank
@@ -20,7 +20,7 @@ index dcd539220e5a2bda41f27101ea4c0ece146e1d0d..f5358612884aae8d0686f3ff98ccee56
public static PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name) {
return server.createPlayerProfile(uniqueId, name);
}
-@@ -1242,8 +1244,10 @@ public final class Bukkit {
+@@ -1318,8 +1320,10 @@ public final class Bukkit {
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is <code>null</code>
@@ -31,7 +31,7 @@ index dcd539220e5a2bda41f27101ea4c0ece146e1d0d..f5358612884aae8d0686f3ff98ccee56
public static PlayerProfile createPlayerProfile(@NotNull UUID uniqueId) {
return server.createPlayerProfile(uniqueId);
}
-@@ -1255,8 +1259,10 @@ public final class Bukkit {
+@@ -1331,8 +1335,10 @@ public final class Bukkit {
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is <code>null</code> or
* blank
@@ -56,10 +56,10 @@ index bec480aff819e09220b52175cab0cb6d68ae68c6..12349910297a75c00e64f6ccc7981aee
/**
* Checks if this player has had their profile banned.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 016cee903c7179baf711984503d1d0793d40c5c5..064edd612885b2ea4b35001a864503b568c53987 100644
+index bc68d8af8b38232392a12ef5f338e85ca80bccd0..ccc1142e496c33c70104646255bae98d43a6b6c2 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1050,8 +1050,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1119,8 +1119,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if both the unique id is
* <code>null</code> and the name is <code>null</code> or blank
@@ -70,7 +70,7 @@ index 016cee903c7179baf711984503d1d0793d40c5c5..064edd612885b2ea4b35001a864503b5
PlayerProfile createPlayerProfile(@Nullable UUID uniqueId, @Nullable String name);
/**
-@@ -1060,8 +1062,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1129,8 +1131,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param uniqueId the unique id
* @return the new PlayerProfile
* @throws IllegalArgumentException if the unique id is <code>null</code>
@@ -81,7 +81,7 @@ index 016cee903c7179baf711984503d1d0793d40c5c5..064edd612885b2ea4b35001a864503b5
PlayerProfile createPlayerProfile(@NotNull UUID uniqueId);
/**
-@@ -1071,8 +1075,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1140,8 +1144,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return the new PlayerProfile
* @throws IllegalArgumentException if the name is <code>null</code> or
* blank
diff --git a/patches/api/0092-getPlayerUniqueId-API.patch b/patches/api/0092-getPlayerUniqueId-API.patch
index 7c703e645d..e47af44398 100644
--- a/patches/api/0092-getPlayerUniqueId-API.patch
+++ b/patches/api/0092-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f5358612884aae8d0686f3ff98ccee567a746f16..a6f9336f27cb4a7aed0c01cde417d2287e393929 100644
+index 0dfb60e4635cc960b5cb481206b6c02adb36d7f9..251fa656bf17ecdd031c0e16def5eff3f553e9b4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -688,6 +688,20 @@ public final class Bukkit {
+@@ -689,6 +689,20 @@ public final class Bukkit {
return server.getPlayer(id);
}
@@ -34,10 +34,10 @@ index f5358612884aae8d0686f3ff98ccee567a746f16..a6f9336f27cb4a7aed0c01cde417d228
* Gets the plugin manager for interfacing with plugins.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 064edd612885b2ea4b35001a864503b568c53987..dfbccef8dd67195d588112989a9ffecb712a9fe9 100644
+index ccc1142e496c33c70104646255bae98d43a6b6c2..f46e5fc53f202741b97d9264d4b24e4654d19bfb 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -592,6 +592,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -593,6 +593,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public Player getPlayer(@NotNull UUID id);
diff --git a/patches/api/0146-Add-Git-information-to-version-command-on-startup.patch b/patches/api/0146-Add-Git-information-to-version-command-on-startup.patch
index cafefadff8..6395f98250 100644
--- a/patches/api/0146-Add-Git-information-to-version-command-on-startup.patch
+++ b/patches/api/0146-Add-Git-information-to-version-command-on-startup.patch
@@ -48,10 +48,10 @@ index 0000000000000000000000000000000000000000..909617079db61b675cc7b60b44ef96b3
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index a6f9336f27cb4a7aed0c01cde417d2287e393929..67dc67343fc149c21ae234a338f08e2f1fa13867 100644
+index 251fa656bf17ecdd031c0e16def5eff3f553e9b4..e108f8a7376e5f90a1e74c0d5ba40ac6c2818523 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -56,6 +56,7 @@ import org.bukkit.util.CachedServerIcon;
+@@ -57,6 +57,7 @@ import org.bukkit.util.CachedServerIcon;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -59,7 +59,7 @@ index a6f9336f27cb4a7aed0c01cde417d2287e393929..67dc67343fc149c21ae234a338f08e2f
/**
* Represents the Bukkit core, for version and Server singleton handling
-@@ -105,7 +106,25 @@ public final class Bukkit {
+@@ -106,7 +107,25 @@ public final class Bukkit {
}
Bukkit.server = server;
diff --git a/patches/api/0160-Make-the-default-permission-message-configurable.patch b/patches/api/0160-Make-the-default-permission-message-configurable.patch
index 66ab79c085..2f6f5f4ef1 100644
--- a/patches/api/0160-Make-the-default-permission-message-configurable.patch
+++ b/patches/api/0160-Make-the-default-permission-message-configurable.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 67dc67343fc149c21ae234a338f08e2f1fa13867..3ad64a11c1e67cce5e49c34d389888060bf2a962 100644
+index e108f8a7376e5f90a1e74c0d5ba40ac6c2818523..40b4d6ee5ef1f6b88e0b85131be399526488cd9e 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2268,6 +2268,28 @@ public final class Bukkit {
+@@ -2344,6 +2344,28 @@ public final class Bukkit {
return server.suggestPlayerNamesWhenNullTabCompletions();
}
@@ -38,10 +38,10 @@ index 67dc67343fc149c21ae234a338f08e2f1fa13867..3ad64a11c1e67cce5e49c34d38988806
* Creates a PlayerProfile for the specified uuid, with name as null.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index dfbccef8dd67195d588112989a9ffecb712a9fe9..3c09a5e08c2641502b7171f27d28d92d02ed39d0 100644
+index f46e5fc53f202741b97d9264d4b24e4654d19bfb..7223bf91b369822afd355c600d834c30270197f4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1974,6 +1974,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2043,6 +2043,23 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index 29923609b5..9561094895 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -9,10 +9,10 @@ a ton of noise to plugin developers.
These do not help plugin developers if they bring moise noise than value.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 3ad64a11c1e67cce5e49c34d389888060bf2a962..cb0ad65e4e30c3604d655bb75c7b26a7bf4227d7 100644
+index 40b4d6ee5ef1f6b88e0b85131be399526488cd9e..20e8bee8a686f8d37d770d8714c5c55af8491584 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -837,9 +837,8 @@ public final class Bukkit {
+@@ -838,9 +838,8 @@ public final class Bukkit {
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -23,7 +23,7 @@ index 3ad64a11c1e67cce5e49c34d389888060bf2a962..cb0ad65e4e30c3604d655bb75c7b26a7
@Nullable
public static MapView getMap(int id) {
return server.getMap(id);
-@@ -1231,10 +1230,8 @@ public final class Bukkit {
+@@ -1307,10 +1306,8 @@ public final class Bukkit {
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -35,7 +35,7 @@ index 3ad64a11c1e67cce5e49c34d389888060bf2a962..cb0ad65e4e30c3604d655bb75c7b26a7
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
-@@ -1825,7 +1822,7 @@ public final class Bukkit {
+@@ -1901,7 +1898,7 @@ public final class Bukkit {
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -59,7 +59,7 @@ index f9c9ae463aacd593e3aa9caf037ea1e23d56c780..f8ae143acbf586d5279b44f7311ca97f
/**
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
-index 8508aa2c6fb7c9f41f3d185f5228c86dd3b8b627..f7564581c18425c903e54f949728dd3742ca7bf2 100644
+index 16df0568143a956309e6cab91a0818582fa4ed67..9e80988c71b77bbda1aca27a859537600a1439a6 100644
--- a/src/main/java/org/bukkit/Location.java
+++ b/src/main/java/org/bukkit/Location.java
@@ -46,7 +46,7 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
@@ -239,10 +239,10 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4
CRACKED(0x0),
GLYPHED(0x1),
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 3c09a5e08c2641502b7171f27d28d92d02ed39d0..49877944a385b22e5de66b4e33056ee3f592fcd7 100644
+index 7223bf91b369822afd355c600d834c30270197f4..ef71d6036d1df19c730b4d525862f11f3ee5ccb4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -703,9 +703,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -704,9 +704,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @param id the id of the map to get
* @return a map view if it exists, or null otherwise
@@ -253,7 +253,7 @@ index 3c09a5e08c2641502b7171f27d28d92d02ed39d0..49877944a385b22e5de66b4e33056ee3
@Nullable
public MapView getMap(int id);
-@@ -1034,10 +1033,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1103,10 +1102,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
@@ -265,7 +265,7 @@ index 3c09a5e08c2641502b7171f27d28d92d02ed39d0..49877944a385b22e5de66b4e33056ee3
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
-@@ -1537,7 +1534,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1606,7 +1603,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @return the scoreboard manager or null if no worlds are loaded.
*/
@@ -1008,10 +1008,10 @@ index 002acfbdce1db10f7ba1b6a013e678f504ac6e69..aac9180fa3bcbdb0c17dcf96c86647b5
return getPlayer().getItemOnCursor();
}
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index d641a8293f3acd465d5fdde8507046647cb6c568..74aa058e0dee7ae858a2a1d0a48e3bb9093a53ea 100644
+index 246b58f52e914c45f357240b155c826b1d40b202..53457348eaf2e1ef2e844eae87ac94f701525c92 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -28,7 +28,7 @@ public interface ItemFactory {
+@@ -30,7 +30,7 @@ public interface ItemFactory {
* @return a new ItemMeta that could be applied to an item stack of the
* specified material
*/
diff --git a/patches/api/0180-Expose-the-internal-current-tick.patch b/patches/api/0180-Expose-the-internal-current-tick.patch
index d36d5140f3..e3ba57431c 100644
--- a/patches/api/0180-Expose-the-internal-current-tick.patch
+++ b/patches/api/0180-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index cb0ad65e4e30c3604d655bb75c7b26a7bf4227d7..6ae9a923d85f76bf5e6a41fb0a499196be05473e 100644
+index 20e8bee8a686f8d37d770d8714c5c55af8491584..9d241ad740e0405bfe2e86e349ec565b20dba14f 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2363,6 +2363,10 @@ public final class Bukkit {
+@@ -2439,6 +2439,10 @@ public final class Bukkit {
public static com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name) {
return server.createProfileExact(uuid, name);
}
@@ -20,10 +20,10 @@ index cb0ad65e4e30c3604d655bb75c7b26a7bf4227d7..6ae9a923d85f76bf5e6a41fb0a499196
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 49877944a385b22e5de66b4e33056ee3f592fcd7..86e89976618a7083d3cd5b81669c99788bc72d05 100644
+index ef71d6036d1df19c730b4d525862f11f3ee5ccb4..102d5058e6d2b83aca6504e98012cb4318fdd3e6 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2056,5 +2056,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2125,5 +2125,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfileExact(@Nullable UUID uuid, @Nullable String name);
diff --git a/patches/api/0186-Add-tick-times-API.patch b/patches/api/0186-Add-tick-times-API.patch
index 08817a18ef..fcb596bb9f 100644
--- a/patches/api/0186-Add-tick-times-API.patch
+++ b/patches/api/0186-Add-tick-times-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add tick times API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 6ae9a923d85f76bf5e6a41fb0a499196be05473e..8961bd08163a2e42e1d0628335fa44bac575a6a4 100644
+index 9d241ad740e0405bfe2e86e349ec565b20dba14f..06540f4122165c42e1726c9177aba19be1677edf 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2035,6 +2035,25 @@ public final class Bukkit {
+@@ -2111,6 +2111,25 @@ public final class Bukkit {
public static double[] getTPS() {
return server.getTPS();
}
@@ -35,10 +35,10 @@ index 6ae9a923d85f76bf5e6a41fb0a499196be05473e..8961bd08163a2e42e1d0628335fa44ba
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 86e89976618a7083d3cd5b81669c99788bc72d05..201fb920b2facdd56651b62b873aaeb7946e88de 100644
+index 102d5058e6d2b83aca6504e98012cb4318fdd3e6..b862ce8dfb979f629436204ca326a30b5ace4574 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1718,6 +1718,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1787,6 +1787,21 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
public double[] getTPS();
diff --git a/patches/api/0187-Expose-MinecraftServer-isRunning.patch b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
index e5fe4cea33..1f925eb607 100644
--- a/patches/api/0187-Expose-MinecraftServer-isRunning.patch
+++ b/patches/api/0187-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 8961bd08163a2e42e1d0628335fa44bac575a6a4..f444294c96f6ab7362eacad47805c6b0f4afdc3a 100644
+index 06540f4122165c42e1726c9177aba19be1677edf..cadc844025ac3f58f57932f551a21b90b5698504 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2386,6 +2386,15 @@ public final class Bukkit {
+@@ -2462,6 +2462,15 @@ public final class Bukkit {
public static int getCurrentTick() {
return server.getCurrentTick();
}
@@ -26,10 +26,10 @@ index 8961bd08163a2e42e1d0628335fa44bac575a6a4..f444294c96f6ab7362eacad47805c6b0
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 201fb920b2facdd56651b62b873aaeb7946e88de..12d338b6751a04b626162f91c35cddaa49cdead1 100644
+index b862ce8dfb979f629436204ca326a30b5ace4574..655dbcc38e35d3b3fa11cbf863a6ba63cc56b47d 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2078,5 +2078,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2147,5 +2147,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return Current tick
*/
int getCurrentTick();
diff --git a/patches/api/0194-Expose-game-version.patch b/patches/api/0194-Expose-game-version.patch
index e2ee9d471f..4bebadd38b 100644
--- a/patches/api/0194-Expose-game-version.patch
+++ b/patches/api/0194-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f444294c96f6ab7362eacad47805c6b0f4afdc3a..1c0a7bba8cbab86382598e20b7b73f0fd2dabcae 100644
+index cadc844025ac3f58f57932f551a21b90b5698504..eae067f9df19a25e3103657c4354864ba6452923 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -157,6 +157,18 @@ public final class Bukkit {
+@@ -158,6 +158,18 @@ public final class Bukkit {
return server.getBukkitVersion();
}
@@ -28,10 +28,10 @@ index f444294c96f6ab7362eacad47805c6b0f4afdc3a..1c0a7bba8cbab86382598e20b7b73f0f
* Gets a view of all currently logged in players. This {@linkplain
* Collections#unmodifiableCollection(Collection) view} is a reused
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 12d338b6751a04b626162f91c35cddaa49cdead1..62716a5a5e6936430f50bf725c061ef39952b96c 100644
+index 655dbcc38e35d3b3fa11cbf863a6ba63cc56b47d..f14733e114c104d70d2a1c1b8e708fde06b0cdb0 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -115,6 +115,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -116,6 +116,16 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public String getBukkitVersion();
diff --git a/patches/api/0195-Add-Mob-Goal-API.patch b/patches/api/0195-Add-Mob-Goal-API.patch
index 4e3009f8e5..58bccc5a6f 100644
--- a/patches/api/0195-Add-Mob-Goal-API.patch
+++ b/patches/api/0195-Add-Mob-Goal-API.patch
@@ -535,10 +535,10 @@ index 0000000000000000000000000000000000000000..39fca3674f32c7bbb2797bf6c3e22270
+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey<Mob> UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset"));
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 1c0a7bba8cbab86382598e20b7b73f0fd2dabcae..ae9f2213ba39b0f61cf670bc876bf265f47ce6df 100644
+index eae067f9df19a25e3103657c4354864ba6452923..a4f58baf0006a8c1ea93d42810d325b4538e8cf6 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2407,6 +2407,16 @@ public final class Bukkit {
+@@ -2483,6 +2483,16 @@ public final class Bukkit {
public static boolean isStopping() {
return server.isStopping();
}
@@ -556,10 +556,10 @@ index 1c0a7bba8cbab86382598e20b7b73f0fd2dabcae..ae9f2213ba39b0f61cf670bc876bf265
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 62716a5a5e6936430f50bf725c061ef39952b96c..b9a31fa710434351f058c50a402be6c89cee9080 100644
+index f14733e114c104d70d2a1c1b8e708fde06b0cdb0..6025ba1676fe9c11f157cea2ca03d0fd2e96dc52 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2095,5 +2095,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2164,5 +2164,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
* @return true if server is in the process of being shutdown
*/
boolean isStopping();
diff --git a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
index 12d7ee90d5..6c5c79f039 100644
--- a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index 74aa058e0dee7ae858a2a1d0a48e3bb9093a53ea..9045746aa3077c536173d4ac826e0bf49e732b32 100644
+index 53457348eaf2e1ef2e844eae87ac94f701525c92..8c248dac47464757e013c25393fe9bf604ded7c2 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -222,4 +222,65 @@ public interface ItemFactory {
+@@ -267,4 +267,65 @@ public interface ItemFactory {
@NotNull
ItemStack ensureServerConversions(@NotNull ItemStack item);
// Paper end - ensure server conversions API
diff --git a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
index d3837fd8a3..275ba3d9ee 100644
--- a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index ae9f2213ba39b0f61cf670bc876bf265f47ce6df..2acb1e1e7a865596d0a0535717bc9d5dd49669c3 100644
+index a4f58baf0006a8c1ea93d42810d325b4538e8cf6..102f1ac7c2fde48be4c7e582019b8601dcf361e4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1249,6 +1249,27 @@ public final class Bukkit {
+@@ -1325,6 +1325,27 @@ public final class Bukkit {
return server.getOfflinePlayer(name);
}
@@ -37,10 +37,10 @@ index ae9f2213ba39b0f61cf670bc876bf265f47ce6df..2acb1e1e7a865596d0a0535717bc9d5d
* Gets the player by the given UUID, regardless if they are offline or
* online.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index b9a31fa710434351f058c50a402be6c89cee9080..c8a312bf6cef6ba62114d4f46555f517f53c7576 100644
+index 6025ba1676fe9c11f157cea2ca03d0fd2e96dc52..2864bf08aacedbbfdaa507838d42441b88953786 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1048,6 +1048,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1117,6 +1117,25 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
diff --git a/patches/api/0264-Expand-world-key-API.patch b/patches/api/0264-Expand-world-key-API.patch
index aff1e41f83..213dc3023d 100644
--- a/patches/api/0264-Expand-world-key-API.patch
+++ b/patches/api/0264-Expand-world-key-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expand world key API
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 2acb1e1e7a865596d0a0535717bc9d5dd49669c3..369fc041f3203da7d367423ac74cb3eba88becc9 100644
+index 102f1ac7c2fde48be4c7e582019b8601dcf361e4..def2ea036536d0e15bc3b35bb69e99a9bcba1d60 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -831,6 +831,18 @@ public final class Bukkit {
+@@ -832,6 +832,18 @@ public final class Bukkit {
public static World getWorld(@NotNull UUID uid) {
return server.getWorld(uid);
}
@@ -56,10 +56,10 @@ index f587a529e4d7b097b3f204a34c636da0bbac6747..58b81f30f9e29ab481ae96c7eea40ad9
// Paper end
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index c8a312bf6cef6ba62114d4f46555f517f53c7576..2bfb1cfb4d669f4bb5a4ef540683bcee409fc49e 100644
+index 2864bf08aacedbbfdaa507838d42441b88953786..11be12a66bbc660221760d857daf78cdb18d77f0 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -695,6 +695,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -696,6 +696,17 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@Nullable
public World getWorld(@NotNull UUID uid);
diff --git a/patches/api/0282-Add-basic-Datapack-API.patch b/patches/api/0282-Add-basic-Datapack-API.patch
index 292b9f12a5..a979142151 100644
--- a/patches/api/0282-Add-basic-Datapack-API.patch
+++ b/patches/api/0282-Add-basic-Datapack-API.patch
@@ -70,10 +70,10 @@ index 0000000000000000000000000000000000000000..58f78d5e91beacaf710f62461cf869f7
+
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 369fc041f3203da7d367423ac74cb3eba88becc9..256b98750ac5c48526b6b8d5cb4894b8bb6665be 100644
+index def2ea036536d0e15bc3b35bb69e99a9bcba1d60..fa62a3a59cdb60dd91eaa0ca510482b98191e813 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -317,9 +317,11 @@ public final class Bukkit {
+@@ -318,9 +318,11 @@ public final class Bukkit {
/**
* Get the DataPack Manager.
*
@@ -85,7 +85,7 @@ index 369fc041f3203da7d367423ac74cb3eba88becc9..256b98750ac5c48526b6b8d5cb4894b8
public static DataPackManager getDataPackManager() {
return server.getDataPackManager();
}
-@@ -2450,6 +2452,14 @@ public final class Bukkit {
+@@ -2526,6 +2528,14 @@ public final class Bukkit {
public static com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return server.getMobGoals();
}
@@ -101,10 +101,10 @@ index 369fc041f3203da7d367423ac74cb3eba88becc9..256b98750ac5c48526b6b8d5cb4894b8
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 2bfb1cfb4d669f4bb5a4ef540683bcee409fc49e..156f014f94ed100d4d352a4ee5d0a2dc2bff518f 100644
+index 11be12a66bbc660221760d857daf78cdb18d77f0..d2103b455c105c3fe2273823b800b8c617492c62 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -255,9 +255,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -256,9 +256,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
* Get the DataPack Manager.
*
@@ -116,7 +116,7 @@ index 2bfb1cfb4d669f4bb5a4ef540683bcee409fc49e..156f014f94ed100d4d352a4ee5d0a2dc
public DataPackManager getDataPackManager();
/**
-@@ -2133,5 +2135,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2202,5 +2204,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
diff --git a/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch
index f91695aefc..a701c444dd 100644
--- a/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 256b98750ac5c48526b6b8d5cb4894b8bb6665be..44575892c30296800e444e38140853178bc24e6c 100644
+index fa62a3a59cdb60dd91eaa0ca510482b98191e813..4a679c2feb117f3e4e2a3d2217ec492d887381c9 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1970,6 +1970,24 @@ public final class Bukkit {
+@@ -2046,6 +2046,24 @@ public final class Bukkit {
return server.createChunkData(world);
}
@@ -34,10 +34,10 @@ index 256b98750ac5c48526b6b8d5cb4894b8bb6665be..44575892c30296800e444e3814085317
* Creates a boss bar instance to display to players. The progress
* defaults to 1.0
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 156f014f94ed100d4d352a4ee5d0a2dc2bff518f..5a23830763fd20aa35cbd3a0669c5e3ee965131e 100644
+index d2103b455c105c3fe2273823b800b8c617492c62..603ec521e202c5cc3a7755c9e7e94657135586c3 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1661,6 +1661,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1730,6 +1730,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ChunkGenerator.ChunkData createChunkData(@NotNull World world);
diff --git a/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch
index 5a9961dc34..79af94fc3b 100644
--- a/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] API for creating command sender which forwards feedback
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 44575892c30296800e444e38140853178bc24e6c..fcd63ae1130eb2db285392e08053af915279b6e7 100644
+index 4a679c2feb117f3e4e2a3d2217ec492d887381c9..dcd4c6b13e14cb45916e1ce59811e66ee23f745f 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -1459,6 +1459,20 @@ public final class Bukkit {
+@@ -1535,6 +1535,20 @@ public final class Bukkit {
return server.getConsoleSender();
}
@@ -30,10 +30,10 @@ index 44575892c30296800e444e38140853178bc24e6c..fcd63ae1130eb2db285392e08053af91
* Gets the folder that contains all of the various {@link World}s.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 5a23830763fd20aa35cbd3a0669c5e3ee965131e..c2a9afee5c57d62bb6d62807eadae513b53849ba 100644
+index 603ec521e202c5cc3a7755c9e7e94657135586c3..6dbb7010f2097aaf24be2e81b4a780a508c209b3 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -1225,6 +1225,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1294,6 +1294,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public ConsoleCommandSender getConsoleSender();
diff --git a/patches/api/0351-Custom-Potion-Mixes.patch b/patches/api/0351-Custom-Potion-Mixes.patch
index ebb1ae34fe..3d48ba327b 100644
--- a/patches/api/0351-Custom-Potion-Mixes.patch
+++ b/patches/api/0351-Custom-Potion-Mixes.patch
@@ -155,10 +155,10 @@ index 0000000000000000000000000000000000000000..1bf964605f681469fb364baaa18381c0
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index fcd63ae1130eb2db285392e08053af915279b6e7..209a0c48e092f168744498e1ba7555279318394c 100644
+index dcd4c6b13e14cb45916e1ce59811e66ee23f745f..3722fdcff8f0154d5580bc7c4b0badbf71d3c2c2 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2492,6 +2492,15 @@ public final class Bukkit {
+@@ -2568,6 +2568,15 @@ public final class Bukkit {
public static io.papermc.paper.datapack.DatapackManager getDatapackManager() {
return server.getDatapackManager();
}
@@ -175,10 +175,10 @@ index fcd63ae1130eb2db285392e08053af915279b6e7..209a0c48e092f168744498e1ba755527
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index c2a9afee5c57d62bb6d62807eadae513b53849ba..20f95f8911852d86ea938dd73ed0d44c01b27d28 100644
+index 6dbb7010f2097aaf24be2e81b4a780a508c209b3..759e62bbcccc01513c0781ee989bfdc1ab38698e 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2169,5 +2169,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2238,5 +2238,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull
io.papermc.paper.datapack.DatapackManager getDatapackManager();
diff --git a/patches/api/0355-Add-enchantWithLevels-API.patch b/patches/api/0355-Add-enchantWithLevels-API.patch
index 97eaf5d29a..af548612d5 100644
--- a/patches/api/0355-Add-enchantWithLevels-API.patch
+++ b/patches/api/0355-Add-enchantWithLevels-API.patch
@@ -3,15 +3,55 @@ From: Jason Penilla <[email protected]>
Date: Wed, 16 Mar 2022 20:35:13 -0700
Subject: [PATCH] Add enchantWithLevels API
+Deprecate upstream's newer and poorly implemented similar
+API.
diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java
-index 9045746aa3077c536173d4ac826e0bf49e732b32..1c4e0c7356047163a38f5ac4dd544129d0b36271 100644
+index 8c248dac47464757e013c25393fe9bf604ded7c2..0217f98a74140bbae454d467de27c12b6060ca75 100644
--- a/src/main/java/org/bukkit/inventory/ItemFactory.java
+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java
-@@ -174,6 +174,22 @@ public interface ItemFactory {
- Material getSpawnEgg(@NotNull EntityType type);
+@@ -185,8 +185,11 @@ public interface ItemFactory {
+ * @param level the level to use, which is the level in the enchantment table
+ * @param allowTreasures allows treasure enchants, e.g. mending, if true.
+ * @return the modified ItemStack, or a copy if the ItemStack cannot be enchanted directly
++ * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly
++ * designed and was originally broken.
+ */
+ @NotNull
++ @Deprecated // Paper
+ ItemStack enchantItem(@NotNull final Entity entity, @NotNull final ItemStack item, final int level, final boolean allowTreasures);
+
+ /**
+@@ -200,8 +203,11 @@ public interface ItemFactory {
+ * @param allowTreasures allow the treasure enchants, e.g. mending, if true.
+ * @return the modified ItemStack, or a copy if the ItemStack cannot be
+ * enchanted directly
++ * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly
++ * designed and was originally broken.
+ */
+ @NotNull
++ @Deprecated // Paper
+ ItemStack enchantItem(@NotNull final World world, @NotNull final ItemStack item, final int level, final boolean allowTreasures);
+
+ /**
+@@ -214,8 +220,11 @@ public interface ItemFactory {
+ * @param allowTreasures allow treasure enchantments, e.g. mending, if true.
+ * @return the modified ItemStack, or a copy if the ItemStack cannot be
+ * enchanted directly
++ * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly
++ * designed and was originally broken.
+ */
+ @NotNull
++ @Deprecated // Paper
+ ItemStack enchantItem(@NotNull final ItemStack item, final int level, final boolean allowTreasures);
// Paper start - Adventure
+@@ -328,4 +337,22 @@ public interface ItemFactory {
+ @Deprecated
+ net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(@NotNull org.bukkit.entity.Entity entity, @NotNull net.md_5.bungee.api.chat.BaseComponent[] customName);
+ // Paper end - bungee hover events
++
++ // Paper start - enchantWithLevels API
+ /**
+ * Randomly enchants a copy of the provided {@link ItemStack} using the given experience levels.
+ *
@@ -27,10 +67,8 @@ index 9045746aa3077c536173d4ac826e0bf49e732b32..1c4e0c7356047163a38f5ac4dd544129
+ * @throws IllegalArgumentException on bad arguments
+ */
+ @NotNull ItemStack enchantWithLevels(@NotNull ItemStack itemStack, @org.jetbrains.annotations.Range(from = 1, to = 30) int levels, boolean allowTreasure, @NotNull java.util.Random random);
-+
- /**
- * Creates a hover event for the given item.
- *
++ // Paper end - enchantWithLevels API
+ }
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index f9faef1b73b5027a3d22e76a0b33b7c952f3ae08..eac7adf622b91489711a2f8bcff77fb31292dd67 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
diff --git a/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch
index 126775a362..183594a39e 100644
--- a/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch
+++ b/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index 209a0c48e092f168744498e1ba7555279318394c..aa938c777936bbefc0c8cef248ad03e0f52bef2c 100644
+index 3722fdcff8f0154d5580bc7c4b0badbf71d3c2c2..65db3a8b736dc3c9080616517813119ebc722292 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -775,12 +775,26 @@ public final class Bukkit {
+@@ -776,12 +776,26 @@ public final class Bukkit {
return server.getWorlds();
}
@@ -35,7 +35,7 @@ index 209a0c48e092f168744498e1ba7555279318394c..aa938c777936bbefc0c8cef248ad03e0
*
* @param creator the options to use when creating the world
* @return newly created or loaded world
-@@ -792,6 +806,9 @@ public final class Bukkit {
+@@ -793,6 +807,9 @@ public final class Bukkit {
/**
* Unloads a world with the given name.
@@ -45,7 +45,7 @@ index 209a0c48e092f168744498e1ba7555279318394c..aa938c777936bbefc0c8cef248ad03e0
*
* @param name Name of the world to unload
* @param save whether to save the chunks before unloading
-@@ -803,6 +820,9 @@ public final class Bukkit {
+@@ -804,6 +821,9 @@ public final class Bukkit {
/**
* Unloads the given world.
@@ -56,10 +56,10 @@ index 209a0c48e092f168744498e1ba7555279318394c..aa938c777936bbefc0c8cef248ad03e0
* @param world the world to unload
* @param save whether to save the chunks before unloading
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 20f95f8911852d86ea938dd73ed0d44c01b27d28..7bdac4b297e40383dd2ef4e2735fdfb086ecaa14 100644
+index 759e62bbcccc01513c0781ee989bfdc1ab38698e..af2bbeff54f0044f51bf0df17727b2f8bec33fe4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -648,34 +648,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -649,34 +649,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@NotNull
public List<World> getWorlds();
diff --git a/patches/api/0417-Folia-scheduler-and-owned-region-API.patch b/patches/api/0417-Folia-scheduler-and-owned-region-API.patch
index b9c7657910..3803760991 100644
--- a/patches/api/0417-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/api/0417-Folia-scheduler-and-owned-region-API.patch
@@ -499,10 +499,10 @@ index 0000000000000000000000000000000000000000..a6b50c9d8af589cc4747e14d343d2045
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index aa938c777936bbefc0c8cef248ad03e0f52bef2c..b243db56756c67cd2c41d7768898d01539f9260a 100644
+index 65db3a8b736dc3c9080616517813119ebc722292..d1ddd924db3f781138696f49110953d10bf76d5f 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -2523,6 +2523,141 @@ public final class Bukkit {
+@@ -2599,6 +2599,141 @@ public final class Bukkit {
}
// Paper end
@@ -645,10 +645,10 @@ index aa938c777936bbefc0c8cef248ad03e0f52bef2c..b243db56756c67cd2c41d7768898d015
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 7bdac4b297e40383dd2ef4e2735fdfb086ecaa14..6b72eccdcb6f75534a4267a1dd0a4cc2f39e917b 100644
+index af2bbeff54f0044f51bf0df17727b2f8bec33fe4..3d8a33563cb266fd784e264f6ce3850213a3838a 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -2198,4 +2198,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -2267,4 +2267,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
@NotNull org.bukkit.potion.PotionBrewer getPotionBrewer();
// Paper end
diff --git a/patches/api/0422-API-for-updating-recipes-on-clients.patch b/patches/api/0422-API-for-updating-recipes-on-clients.patch
index 2db8356bc3..e51f4a6052 100644
--- a/patches/api/0422-API-for-updating-recipes-on-clients.patch
+++ b/patches/api/0422-API-for-updating-recipes-on-clients.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] API for updating recipes on clients
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index b243db56756c67cd2c41d7768898d01539f9260a..f380a518bc444bfdfbbedf38805c7684e53a5629 100644
+index d1ddd924db3f781138696f49110953d10bf76d5f..14ec0bf4e811028bf3ca419ac85d1676f801a331 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -959,6 +959,26 @@ public final class Bukkit {
+@@ -960,6 +960,26 @@ public final class Bukkit {
server.reloadData();
}
@@ -35,7 +35,7 @@ index b243db56756c67cd2c41d7768898d01539f9260a..f380a518bc444bfdfbbedf38805c7684
/**
* Returns the primary logger associated with this server instance.
*
-@@ -1013,6 +1033,20 @@ public final class Bukkit {
+@@ -1014,6 +1034,20 @@ public final class Bukkit {
return server.addRecipe(recipe);
}
@@ -56,7 +56,7 @@ index b243db56756c67cd2c41d7768898d01539f9260a..f380a518bc444bfdfbbedf38805c7684
/**
* Get a list of all recipes for a given item. The stack size is ignored
* in comparisons. If the durability is -1, it will match any data value.
-@@ -1129,6 +1163,24 @@ public final class Bukkit {
+@@ -1205,6 +1239,24 @@ public final class Bukkit {
return server.removeRecipe(key);
}
@@ -82,10 +82,10 @@ index b243db56756c67cd2c41d7768898d01539f9260a..f380a518bc444bfdfbbedf38805c7684
* Gets a list of command aliases defined in the server properties.
*
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 6b72eccdcb6f75534a4267a1dd0a4cc2f39e917b..68206cf0178c26c0f528a1e14a5fb4e9ad410369 100644
+index 3d8a33563cb266fd784e264f6ce3850213a3838a..49b1f9596502c574638b58996fc8ca0bfde6826b 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -811,6 +811,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -812,6 +812,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
public void reloadData();
@@ -108,7 +108,7 @@ index 6b72eccdcb6f75534a4267a1dd0a4cc2f39e917b..68206cf0178c26c0f528a1e14a5fb4e9
/**
* Returns the primary logger associated with this server instance.
*
-@@ -846,15 +862,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -847,15 +863,34 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
public boolean dispatchCommand(@NotNull CommandSender sender, @NotNull String commandLine) throws CommandException;
/**
@@ -144,7 +144,7 @@ index 6b72eccdcb6f75534a4267a1dd0a4cc2f39e917b..68206cf0178c26c0f528a1e14a5fb4e9
/**
* Get a list of all recipes for a given item. The stack size is ignored
* in comparisons. If the durability is -1, it will match any data value.
-@@ -955,6 +990,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -1024,6 +1059,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
public boolean removeRecipe(@NotNull NamespacedKey key);
diff --git a/patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch
index 086f74e691..683527dfc2 100644
--- a/patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch
+++ b/patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
-index f380a518bc444bfdfbbedf38805c7684e53a5629..f78b5fd3c3347d28da58777bff88903d2eb140f6 100644
+index 14ec0bf4e811028bf3ca419ac85d1676f801a331..884902cb7f86c0b56594ccafc7d05c6c7a23ab53 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
-@@ -915,7 +915,9 @@ public final class Bukkit {
+@@ -916,7 +916,9 @@ public final class Bukkit {
*
* @see World#locateNearestStructure(org.bukkit.Location,
* org.bukkit.StructureType, int, boolean)
@@ -18,7 +18,7 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..f78b5fd3c3347d28da58777bff88903d
@NotNull
public static ItemStack createExplorerMap(@NotNull World world, @NotNull Location location, @NotNull StructureType structureType) {
return server.createExplorerMap(world, location, structureType);
-@@ -924,9 +926,6 @@ public final class Bukkit {
+@@ -925,9 +927,6 @@ public final class Bukkit {
/**
* Create a new explorer map targeting the closest nearby structure of a
* given {@link StructureType}.
@@ -28,7 +28,7 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..f78b5fd3c3347d28da58777bff88903d
*
* @param world the world the map will belong to
* @param location the origin location to find the nearest structure
-@@ -938,11 +937,54 @@ public final class Bukkit {
+@@ -939,11 +938,54 @@ public final class Bukkit {
*
* @see World#locateNearestStructure(org.bukkit.Location,
* org.bukkit.StructureType, int, boolean)
@@ -84,10 +84,10 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..f78b5fd3c3347d28da58777bff88903d
/**
* Reloads the server, refreshing settings and plugin information.
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
-index 68206cf0178c26c0f528a1e14a5fb4e9ad410369..8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96 100644
+index 49b1f9596502c574638b58996fc8ca0bfde6826b..d0c634629aa0b6bac0da93655dd86ad3aea0ce30 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
-@@ -775,16 +775,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -776,16 +776,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @see World#locateNearestStructure(org.bukkit.Location,
* org.bukkit.StructureType, int, boolean)
@@ -106,7 +106,7 @@ index 68206cf0178c26c0f528a1e14a5fb4e9ad410369..8d8fe04e6b09d2a5b1cc05002073df5c
*
* @param world the world the map will belong to
* @param location the origin location to find the nearest structure
-@@ -796,9 +795,50 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+@@ -797,9 +796,50 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*
* @see World#locateNearestStructure(org.bukkit.Location,
* org.bukkit.StructureType, int, boolean)
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index d0e878423f..f5537d6127 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -4900,10 +4900,10 @@ index 4dfb372f8c8f60b6aad18ea9b6334e1a7c9bc4ed..9f877007869ef984d2c95bd8e3d773a2
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 b72a4c4e0d65646290545bf4bae99853c01f592e..b8844bc5fa43ad85230d9c80ae7602306cd22b27 100644
+index 811e31d2502cb6f7ed6b151d894dfceea63ac388..d1baf686c0a59584a4866490f4f4fe65b3ac6eed 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -918,6 +918,7 @@ public final class CraftServer implements Server {
+@@ -919,6 +919,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch
index 2e7d92a9ae..e3be0a16ca 100644
--- a/patches/server/0008-CB-fixes.patch
+++ b/patches/server/0008-CB-fixes.patch
@@ -17,7 +17,7 @@ Subject: [PATCH] CB fixes
Co-authored-by: Spottedleaf <[email protected]>
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index f3a41559be5ad0b40762d368d8582704c8305961..32565740c6b013d9ad644e7c62d6721bdbd15b10 100644
+index 10968eb004ee01c4fb72aeb93f058747b02998b9..0668f61ff7e52d1ea32af9f1fd1879d7280bb7cd 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -294,7 +294,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -84,10 +84,10 @@ index 6ab2fd523b7f4e5cacef4ebb95f6812f391985d1..85133c388eff009ea1ffa391824b6556
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dbc424ae95f522e8e539922c8a70e43381ffcbe6..a694a208f7c84f4c2ffa654cdf96942e483eedba 100644
+index d1baf686c0a59584a4866490f4f4fe65b3ac6eed..3d2c168d29873c4418bc297740e7032d6020ff52 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2360,7 +2360,13 @@ public final class CraftServer implements Server {
+@@ -2422,7 +2422,13 @@ public final class CraftServer implements Server {
Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null");
LootDataManager registry = this.getServer().getLootData();
@@ -103,7 +103,7 @@ index dbc424ae95f522e8e539922c8a70e43381ffcbe6..a694a208f7c84f4c2ffa654cdf96942e
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
-index c93eec7a81ed83dc9190417dd51acb2780d3b60d..70d3949616c63038ad3e9bd1069db5ea2fb3f3b8 100644
+index 5ac25dab93fd4c9e9533c80d1ca3d93446d7a365..245ad120a36b6defca7e6889faae1ca5fc33d0c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
@@ -15,7 +15,7 @@ public final class CraftDefaultPermissions {
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 7eadca5ebb..89c1896b82 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -1734,7 +1734,7 @@ index db98858806a3b6fd3c16ff2226447d0d5960b6b6..7720470396d3ade926c4c75c5fab5a3f
public <T extends Enum<T>> T readEnum(Class<T> enumClass) {
diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java
-index 275b853d09f3158c590e9ff6eb20977eee8b3744..7b1edef4830f3431c17e8a6e019249ea3c9b2c92 100644
+index 344c5af75c4a66bb27f3f422937c6c427c15ed25..3d359f80f52bff6f19fcb484f491a874f9dcff27 100644
--- a/src/main/java/net/minecraft/network/PacketEncoder.java
+++ b/src/main/java/net/minecraft/network/PacketEncoder.java
@@ -35,6 +35,7 @@ public class PacketEncoder extends MessageToByteEncoder<Packet<?>> {
@@ -2428,7 +2428,7 @@ index ea26375d6f23b14a8a1cd926fe410713551de99d..ed80d9551cd7cc1ec26a5d5fd7bc185b
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85ade86ec1 100644
+index 4b4208d5c955a14a5835d7acbc74a5f14d32f816..986575ed7bdbe9aecb8f303756538049ce9b6ef2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -45,6 +45,7 @@ import net.minecraft.nbt.ListTag;
@@ -2448,7 +2448,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
import com.mojang.datafixers.util.Pair;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
-@@ -1686,9 +1689,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1687,9 +1690,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
*/
this.player.disconnect();
@@ -2463,7 +2463,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
}
// CraftBukkit end
this.player.getTextFilter().leave();
-@@ -1752,12 +1757,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1753,12 +1758,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
CompletableFuture<FilteredText> completablefuture = this.filterTextPacket(playerchatmessage.signedContent());
@@ -2479,7 +2479,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
this.broadcastChatMessage(playerchatmessage1);
}, this.server.chatExecutor); // CraftBukkit - async chat
});
-@@ -1862,7 +1866,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1863,7 +1867,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment);
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
@@ -2488,7 +2488,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
return Optional.empty();
} else {
this.player.resetLastActionTime();
-@@ -1920,7 +1924,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1921,7 +1925,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
@@ -2502,7 +2502,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
Player player = this.getCraftPlayer();
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server));
String originalFormat = event.getFormat(), originalMessage = event.getMessage();
-@@ -2044,7 +2053,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2045,7 +2054,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
});
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check
@@ -2511,7 +2511,7 @@ index 866e515ed6c6b73ca277df8931e24757b616a757..46f2da7f90fd92e6cbd1ae371d04af85
} else {
this.chat(s, message, true);
}
-@@ -2907,6 +2916,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2908,6 +2917,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
this.player.updateOptions(packet.information());
@@ -2866,10 +2866,10 @@ index 23bdb77690ba15bcbbfb0c70af23336d08ac7752..8f144a357174bbe096ac9b38a5e67a61
}
collection = icons;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea430f071a 100644
+index 3d2c168d29873c4418bc297740e7032d6020ff52..61f124c9c607d077cdaa6a1e9b14b323057af52d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -616,8 +616,10 @@ public final class CraftServer implements Server {
+@@ -617,8 +617,10 @@ public final class CraftServer implements Server {
}
@Override
@@ -2880,7 +2880,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
}
@Override
-@@ -1474,7 +1476,15 @@ public final class CraftServer implements Server {
+@@ -1536,7 +1538,15 @@ public final class CraftServer implements Server {
return this.configuration.getInt("settings.spawn-radius", -1);
}
@@ -2896,7 +2896,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
public String getShutdownMessage() {
return this.configuration.getString("settings.shutdown-message");
}
-@@ -1642,7 +1652,20 @@ public final class CraftServer implements Server {
+@@ -1704,7 +1714,20 @@ public final class CraftServer implements Server {
}
@Override
@@ -2917,7 +2917,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
Set<CommandSender> recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
-@@ -1650,14 +1673,14 @@ public final class CraftServer implements Server {
+@@ -1712,14 +1735,14 @@ public final class CraftServer implements Server {
}
}
@@ -2934,7 +2934,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
for (CommandSender recipient : recipients) {
recipient.sendMessage(message);
-@@ -1920,6 +1943,14 @@ public final class CraftServer implements Server {
+@@ -1982,6 +2005,14 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, type);
}
@@ -2949,7 +2949,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
@Override
public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) {
Preconditions.checkArgument(type != null, "InventoryType cannot be null");
-@@ -1934,13 +1965,28 @@ public final class CraftServer implements Server {
+@@ -1996,13 +2027,28 @@ public final class CraftServer implements Server {
return CraftInventoryCreator.INSTANCE.createInventory(owner, size);
}
@@ -2978,7 +2978,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
public Merchant createMerchant(String title) {
return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title);
}
-@@ -2005,6 +2051,17 @@ public final class CraftServer implements Server {
+@@ -2067,6 +2113,17 @@ public final class CraftServer implements Server {
return Thread.currentThread().equals(this.console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog)
}
@@ -2996,7 +2996,7 @@ index 137aa7963d2d4f8477da1923f3bfdcb8acf2c65e..cbec0bf7822e9cf10b9ab4cc406eb1ea
@Override
public String getMotd() {
return this.console.getMotd();
-@@ -2439,4 +2496,53 @@ public final class CraftServer implements Server {
+@@ -2501,4 +2558,53 @@ public final class CraftServer implements Server {
return this.spigot;
}
// Spigot end
@@ -3527,7 +3527,7 @@ index 07de73a43d6db344299442b35e17c6832b8e5a25..9ae78a0fe829c7487a945a801dbbca23
public net.minecraft.world.item.enchantment.Enchantment getHandle() {
return this.target;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 145542a29cc7df606328a106dd044db956b2c8ff..8be1e47f7cd6940b0ba213a2da0cc8334b256fc3 100644
+index 278c2adf102c1ec40328c3f4a966afc33586a7e4..1f63d24ebe0563431c8f1d3f901e2816648c7a8f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -206,6 +206,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -3642,7 +3642,7 @@ index 61759e8179d0f6342abf0c0294e5a024928db8d9..92e21126a9347f1ee2279ab09bb6abf2
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4cc709edc8de43639fd8d6b54d160b023a7e50b7..d7260f96da9974c721a8b49c1f9b0f1ee56c6ce1 100644
+index 54888af764f206690ecc5b3331a13a570972eac3..12a027e243d5336d5e96b88229499bfd2f65758c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -296,14 +296,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -4137,10 +4137,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 d9547cb0fe2a99b19fe2da63c96315d65aefa244..187011474d15a4a5a5d6cb1638660d9ed2b3a0e5 100644
+index 070bf9dbac31780ad46132c8b5d012c31518f238..bbf30a36c44cd6403a2f45622f5dd186adc18772 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -905,9 +905,9 @@ public class CraftEventFactory {
+@@ -907,9 +907,9 @@ public class CraftEventFactory {
return event;
}
@@ -4152,7 +4152,7 @@ index d9547cb0fe2a99b19fe2da63c96315d65aefa244..187011474d15a4a5a5d6cb1638660d9e
event.setKeepInventory(keepInventory);
event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel
org.bukkit.World world = entity.getWorld();
-@@ -932,7 +932,7 @@ public class CraftEventFactory {
+@@ -934,7 +934,7 @@ public class CraftEventFactory {
* Server methods
*/
public static ServerListPingEvent callServerListPingEvent(SocketAddress address, String motd, int numPlayers, int maxPlayers) {
@@ -4284,12 +4284,12 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec
public String getTitle() {
return this.title;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index d1126215e14e7594f82c75188ca459c59eba3d0b..2fa36de5d43e2c395e0db2017bd994a62a5b2feb 100644
+index 885e68fbdb4d5f628612b9dd426692f5c73b339a..bb522d4b7485383186cb3ce82a48ae7160ae7e0e 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -456,4 +456,17 @@ public final class CraftItemFactory implements ItemFactory {
-
- return CraftMagicNumbers.getMaterial(nmsItem);
+@@ -495,4 +495,17 @@ public final class CraftItemFactory implements ItemFactory {
+ EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures);
+ return craft;
}
+
+ // Paper start - Adventure
diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch
index 9bfba6812e..952a527203 100644
--- a/patches/server/0011-Paper-command.patch
+++ b/patches/server/0011-Paper-command.patch
@@ -605,7 +605,7 @@ index 0000000000000000000000000000000000000000..ae60bd96b5284d54676d8e7e4dd5d170
+ }
+}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
-index a9ec28c3cf3ed50d929c80ac21959d82603ff0aa..95a4bcd09f3a9d462ff4c92431c07e3d3f55befc 100644
+index 65ea4d909059387e6718ea68a3d9408556d26cbe..d013d1ee9c5f75fc25ee4ae285c738728c16f43b 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -186,6 +186,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -617,10 +617,10 @@ index a9ec28c3cf3ed50d929c80ac21959d82603ff0aa..95a4bcd09f3a9d462ff4c92431c07e3d
this.setPvpAllowed(dedicatedserverproperties.pvp);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 39a3ab010a2960ea99a6cc246edd343994bb523f..411d744bbdbc333b1f3854e474964c10a955ed66 100644
+index 61f124c9c607d077cdaa6a1e9b14b323057af52d..b30c5e049d0570c94ca8b8906d9d3afd2c81649e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -942,6 +942,7 @@ public final class CraftServer implements Server {
+@@ -943,6 +943,7 @@ public final class CraftServer implements Server {
this.commandMap.clearCommands();
this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
@@ -628,7 +628,7 @@ index 39a3ab010a2960ea99a6cc246edd343994bb523f..411d744bbdbc333b1f3854e474964c10
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
-@@ -2536,6 +2537,34 @@ public final class CraftServer implements Server {
+@@ -2598,6 +2599,34 @@ public final class CraftServer implements Server {
// Paper end
// Paper start
diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch
index 8cacf14b4b..b1e4d7f317 100644
--- a/patches/server/0013-Paper-Plugins.patch
+++ b/patches/server/0013-Paper-Plugins.patch
@@ -6994,10 +6994,10 @@ index 9cfdd5d8c1650d9c9bdfbc07980239e507ff942d..ae0b713870976d4b1e469a90cef9b2e2
Bootstrap.validate();
Util.startTimerHackThread();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8461cf5f99144edce646909a41208f702f1e2aff..e17ad4a7f7adcf7d54bcfa56dbb109fc5611574a 100644
+index b30c5e049d0570c94ca8b8906d9d3afd2c81649e..d7cc71f0f7c7977fcab76f32e60c58ec7b1e68d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -274,7 +274,8 @@ public final class CraftServer implements Server {
+@@ -275,7 +275,8 @@ public final class CraftServer implements Server {
private final CraftCommandMap commandMap = new CraftCommandMap(this);
private final SimpleHelpMap helpMap = new SimpleHelpMap(this);
private final StandardMessenger messenger = new StandardMessenger();
@@ -7007,7 +7007,7 @@ index 8461cf5f99144edce646909a41208f702f1e2aff..e17ad4a7f7adcf7d54bcfa56dbb109fc
private final StructureManager structureManager;
protected final DedicatedServer console;
protected final DedicatedPlayerList playerList;
-@@ -426,24 +427,7 @@ public final class CraftServer implements Server {
+@@ -427,24 +428,7 @@ public final class CraftServer implements Server {
}
public void loadPlugins() {
@@ -7033,7 +7033,7 @@ index 8461cf5f99144edce646909a41208f702f1e2aff..e17ad4a7f7adcf7d54bcfa56dbb109fc
}
public void enablePlugins(PluginLoadOrder type) {
-@@ -532,15 +516,17 @@ public final class CraftServer implements Server {
+@@ -533,15 +517,17 @@ public final class CraftServer implements Server {
private void enablePlugin(Plugin plugin) {
try {
List<Permission> perms = plugin.getDescription().getPermissions();
@@ -7057,7 +7057,7 @@ index 8461cf5f99144edce646909a41208f702f1e2aff..e17ad4a7f7adcf7d54bcfa56dbb109fc
this.pluginManager.enablePlugin(plugin);
} catch (Throwable ex) {
-@@ -966,6 +952,7 @@ public final class CraftServer implements Server {
+@@ -967,6 +953,7 @@ public final class CraftServer implements Server {
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
}
diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch
index bbdc21e9a4..4726d967ea 100644
--- a/patches/server/0014-Timings-v2.patch
+++ b/patches/server/0014-Timings-v2.patch
@@ -1272,7 +1272,7 @@ index 3c00b7519b37c5026e80e76a4b4ced2a3a0166f6..e48172c1da6beb7ff5ba3486647b1263
this.entityManager.saveAll();
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 46f2da7f90fd92e6cbd1ae371d04af85ade86ec1..ddd7238458804de3a82018ac7f170007f4f195aa 100644
+index 986575ed7bdbe9aecb8f303756538049ce9b6ef2..0649344ca2290446ff27cf9fa0d6f84ad0fe91c2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -320,7 +320,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1291,7 +1291,7 @@ index 46f2da7f90fd92e6cbd1ae371d04af85ade86ec1..ddd7238458804de3a82018ac7f170007
}
-@@ -2005,7 +2003,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2006,7 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
private void handleCommand(String s) {
@@ -1300,7 +1300,7 @@ index 46f2da7f90fd92e6cbd1ae371d04af85ade86ec1..ddd7238458804de3a82018ac7f170007
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
-@@ -2015,7 +2013,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2016,7 +2014,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1309,7 +1309,7 @@ index 46f2da7f90fd92e6cbd1ae371d04af85ade86ec1..ddd7238458804de3a82018ac7f170007
return;
}
-@@ -2028,7 +2026,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2029,7 +2027,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
@@ -1343,7 +1343,7 @@ index cb8859c37fb8ce46a8fd529ca885456ea86c1c2b..8f7bc04fc32e3b9c0625d795b09ea7f2
public UserWhiteList getWhiteList() {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 9a29dea3c02cbca89faaa1cd9b750f1a2694d100..5f3c9fcd7f34098a4136646fb373441f77175bb3 100644
+index 140c6befe7f5cba51904eaae0dc88e936f660a12..46853c3daa7f3f552632444fbf41624cfd1c8dc4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -134,7 +134,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent;
@@ -1633,10 +1633,10 @@ index 0eb09ce5c850d85ffd7229d27cf06b3e0edda11b..cc1d7626a82881c4410d65c6a33dadae
};
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e17ad4a7f7adcf7d54bcfa56dbb109fc5611574a..dc7762af207bbbac133f74ae5e0783e5bc075a51 100644
+index d7cc71f0f7c7977fcab76f32e60c58ec7b1e68d8..3cca5eeaa295d8877fa36258ec73c6c2a8918832 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 {
+@@ -377,7 +377,7 @@ public final class CraftServer implements Server {
this.saveCommandsConfig();
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -1645,7 +1645,7 @@ index e17ad4a7f7adcf7d54bcfa56dbb109fc5611574a..dc7762af207bbbac133f74ae5e0783e5
this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
-@@ -2453,12 +2453,31 @@ public final class CraftServer implements Server {
+@@ -2515,12 +2515,31 @@ public final class CraftServer implements Server {
private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot()
{
@@ -1847,7 +1847,7 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d7260f96da9974c721a8b49c1f9b0f1ee56c6ce1..929e17d45db1a107f628907d1d3eea17ba968e7e 100644
+index 12a027e243d5336d5e96b88229499bfd2f65758c..855ed720cf23b201809a76725db87d71abbac626 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2568,6 +2568,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch
index 1a6f07cd6b..218c58fb65 100644
--- a/patches/server/0018-Rewrite-chunk-system.patch
+++ b/patches/server/0018-Rewrite-chunk-system.patch
@@ -20474,10 +20474,10 @@ index c509a1318bcef38fd4927e38b6ee9846853e2d15..5de5209e04d631bd6a50e28e8d3abebf
this.desiredChunksPerTick = Double.isNaN((double)desiredBatchSize) ? 0.01F : Mth.clamp(desiredBatchSize, 0.01F, 64.0F);
if (this.unacknowledgedBatches == 0) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ddd7238458804de3a82018ac7f170007f4f195aa..c69060ee036c25cf99da5e488697ed95fd01fed1 100644
+index 0649344ca2290446ff27cf9fa0d6f84ad0fe91c2..70fe4e973f41c2e5b12c0d96be418dd40e69c0f2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -695,6 +695,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -696,6 +696,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect(Component.translatable("disconnect.spam"));
return;
}
@@ -20643,7 +20643,7 @@ index 495b52bfab14478f8285cc5471335a41244c199e..e16ef1b7c0bfe6d6194c09f6787a50fd
if (flag1) {
++this.converted;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5f3c9fcd7f34098a4136646fb373441f77175bb3..a7cb0c3b13e4a7c449aca85fd8ddffefba45f879 100644
+index 46853c3daa7f3f552632444fbf41624cfd1c8dc4..9eda990939b36c08a6f4820353942d6c8d43b42c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -327,6 +327,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -22652,10 +22652,10 @@ index b1aeb021e53a233bfb0439d38f1a889ed6fc301d..7687a81bfa420e8377308fea3d673814
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dc7762af207bbbac133f74ae5e0783e5bc075a51..c3cf8b9d2b5707d36310da2c3b5132af4b83508a 100644
+index 3cca5eeaa295d8877fa36258ec73c6c2a8918832..819e2238f62b0af747b7e44a72de69a1b79609bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1161,7 +1161,7 @@ public final class CraftServer implements Server {
+@@ -1162,7 +1162,7 @@ public final class CraftServer implements Server {
this.console.addLevel(internal);
this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal);
@@ -22664,7 +22664,7 @@ index dc7762af207bbbac133f74ae5e0783e5bc075a51..c3cf8b9d2b5707d36310da2c3b5132af
this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld()));
return internal.getWorld();
-@@ -1205,7 +1205,7 @@ public final class CraftServer implements Server {
+@@ -1206,7 +1206,7 @@ public final class CraftServer implements Server {
}
handle.getChunkSource().close(save);
@@ -22673,7 +22673,7 @@ index dc7762af207bbbac133f74ae5e0783e5bc075a51..c3cf8b9d2b5707d36310da2c3b5132af
handle.convertable.close();
} catch (Exception ex) {
this.getLogger().log(Level.SEVERE, null, ex);
-@@ -2036,7 +2036,7 @@ public final class CraftServer implements Server {
+@@ -2098,7 +2098,7 @@ public final class CraftServer implements Server {
@Override
public boolean isPrimaryThread() {
@@ -22802,7 +22802,7 @@ index 264cdde172452d0d9df652b0e78b21b6a6561300..e8f3373985ba8d3af6fc93a5f0ba0f0a
// Spigot start
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 929e17d45db1a107f628907d1d3eea17ba968e7e..fe4b5fe105b9054763fc4440bdb892b69128cb2b 100644
+index 855ed720cf23b201809a76725db87d71abbac626..c77bfa14ed74dd522229ec2595fac6f94700024b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -197,6 +197,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
index 818be105c8..6d5648c985 100644
--- a/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
+++ b/patches/server/0019-Add-command-line-option-to-load-extra-plugin-jars-no.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the
ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 8377270a5daa3257cd9799e242fe8894a6d22c5c..d1b6c5689e036285515f74263d6b6bc7c32af108 100644
+index 819e2238f62b0af747b7e44a72de69a1b79609bf..8dfed6347e5922bdd0083604fc7228eaef86be17 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -430,6 +430,35 @@ public final class CraftServer implements Server {
+@@ -431,6 +431,35 @@ public final class CraftServer implements Server {
io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation
}
@@ -47,7 +47,7 @@ index 8377270a5daa3257cd9799e242fe8894a6d22c5c..d1b6c5689e036285515f74263d6b6bc7
if (type == PluginLoadOrder.STARTUP) {
this.helpMap.clear();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index eb8120877490944ea8f5cbae2986f190c78b144b..3c5bbc60a1a2da6ff4dd25f9a6c1929b1a5be6f5 100644
+index 9fb74017c655c5abe4388796c4cb0760498e7a99..71c726acbb893b6a3ce6100fc08d5aa761f0eb60 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -159,6 +159,12 @@ public class Main {
diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
index ff289d44c3..59c265a5e4 100644
--- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
+++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 151259cc254d4e796e6af810e37eaa30b832daa3..ce626187e7ffda51a54225fa6e43b817c6c19db8 100644
+index 27ab6d2749b89cc5d3fd4e22603daee95634be71..6155d6e3c361bb4a0381e7065a7b603b783a47a6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1457,7 +1457,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -19,10 +19,10 @@ index 151259cc254d4e796e6af810e37eaa30b832daa3..ce626187e7ffda51a54225fa6e43b817
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4c9de9ec9eada494c3a470753dc107792bf9732b..53168d866c59d38c83e9c532109bb2b4371459d2 100644
+index 8dfed6347e5922bdd0083604fc7228eaef86be17..94278a932c95070a5e478e8cf148406e67ffb99a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -265,7 +265,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -266,7 +266,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
public final class CraftServer implements Server {
@@ -32,7 +32,7 @@ index 4c9de9ec9eada494c3a470753dc107792bf9732b..53168d866c59d38c83e9c532109bb2b4
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 6aeb5c145ea26243abda693e81014f73c6abfb56..e45fabbf0a7fe125c1b4f82894a177d061950833 100644
+index 71c726acbb893b6a3ce6100fc08d5aa761f0eb60..3528d310bc80ccf513ff7b6f609a419eb492a624 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -240,12 +240,25 @@ public class Main {
@@ -63,7 +63,7 @@ index 6aeb5c145ea26243abda693e81014f73c6abfb56..e45fabbf0a7fe125c1b4f82894a177d0
net.minecraft.server.Main.main(options);
} catch (Throwable t) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
-index f1194eb6fdfba60959e00080d0562f2820d13b27..11d7ede26b46d0bf9cced65e8c3bcc41c8b66dbf 100644
+index 7621bf889ef765ed57af221edf95b07346f4ae43..cacbde8ac27a70b5e3bcd76ad90bc667abee3817 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -19,7 +19,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch
index bfeb414b03..f5ba24adf2 100644
--- a/patches/server/0031-Further-improve-server-tick-loop.patch
+++ b/patches/server/0031-Further-improve-server-tick-loop.patch
@@ -145,10 +145,10 @@ index 6155d6e3c361bb4a0381e7065a7b603b783a47a6..d13a0f5a3b95b0d0ca80c760f757087c
this.startMetricsRecordingTick();
this.profiler.push("tick");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e2f17636045abf56c04567d8cd7f0dfcdeee0f7e..2aa305814e2207cd80cf4630fda8e1adf456db54 100644
+index 94278a932c95070a5e478e8cf148406e67ffb99a..afe90d9948a68946cfc09174024ec71a2c126dcd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2478,6 +2478,17 @@ public final class CraftServer implements Server {
+@@ -2540,6 +2540,17 @@ public final class CraftServer implements Server {
return CraftMagicNumbers.INSTANCE;
}
diff --git a/patches/server/0052-Improve-Player-chat-API-handling.patch b/patches/server/0052-Improve-Player-chat-API-handling.patch
index 78895f8fb8..f0385e4343 100644
--- a/patches/server/0052-Improve-Player-chat-API-handling.patch
+++ b/patches/server/0052-Improve-Player-chat-API-handling.patch
@@ -17,10 +17,10 @@ Co-authored-by: Jake Potrebic <[email protected]>
Co-authored-by: SoSeDiK <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ea53b30fb9b9e0b2b9751b7a2675259fe85c66e4..4376e09828655444d1339020a2676c67197abfb9 100644
+index 70fe4e973f41c2e5b12c0d96be418dd40e69c0f2..adef64b955170dc00c75c06bf0f41a09b2516520 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1925,7 +1925,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1926,7 +1926,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
OutgoingChatMessage outgoing = OutgoingChatMessage.create(original);
@@ -29,7 +29,7 @@ index ea53b30fb9b9e0b2b9751b7a2675259fe85c66e4..4376e09828655444d1339020a2676c67
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
-@@ -2009,7 +2009,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2010,7 +2010,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -40,10 +40,10 @@ index ea53b30fb9b9e0b2b9751b7a2675259fe85c66e4..4376e09828655444d1339020a2676c67
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 97801c6b11df3b80ad80d7e6fd03d769c400b417..0afb5b57fdd027b0a5aa05c4710b4ebb9c3d12ac 100644
+index afe90d9948a68946cfc09174024ec71a2c126dcd..eb091fcf6f8b295bfac54acfafe662adb9052e88 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -888,7 +888,7 @@ public final class CraftServer implements Server {
+@@ -889,7 +889,7 @@ public final class CraftServer implements Server {
public boolean dispatchCommand(CommandSender sender, String commandLine) {
Preconditions.checkArgument(sender != null, "sender cannot be null");
Preconditions.checkArgument(commandLine != null, "commandLine cannot be null");
@@ -53,7 +53,7 @@ index 97801c6b11df3b80ad80d7e6fd03d769c400b417..0afb5b57fdd027b0a5aa05c4710b4ebb
if (this.commandMap.dispatch(sender, commandLine)) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ca8c713342c7e217c8bbcd2c92309ad188f7dd27..422ed20cf1d77c0b7fa0a674a5bba95cb7cbc2df 100644
+index d99ae16d5e823d871d149ab61eeef4c0095b7740..6b753ee96706b38af0c80585222f2631b90e7c62 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -494,7 +494,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch
index f9d1f4b8b9..a0f06e1192 100644
--- a/patches/server/0054-Expose-server-CommandMap.patch
+++ b/patches/server/0054-Expose-server-CommandMap.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 0e51fffcd58f34d9ed9409a02dcbeaeac8ccec78..e5a65f77c35c9cb61e418a0e9b49aa3da7cb40de 100644
+index eb091fcf6f8b295bfac54acfafe662adb9052e88..e9fb295f1ce47705ec7502a372e8fd9e5fe05310 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2018,6 +2018,7 @@ public final class CraftServer implements Server {
+@@ -2080,6 +2080,7 @@ public final class CraftServer implements Server {
return this.helpMap;
}
diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch
index 1fbf4b2853..296d79b85b 100644
--- a/patches/server/0058-Add-velocity-warnings.patch
+++ b/patches/server/0058-Add-velocity-warnings.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add velocity warnings
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index eb7eb3fdb2f677c5d6d7503d2809f61e48900205..26428b73e23e71872e148f041c18c741ee05f4c8 100644
+index e9fb295f1ce47705ec7502a372e8fd9e5fe05310..13a70d87689d49818b97611b83b77df0e9a6c8f5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -301,6 +301,7 @@ public final class CraftServer implements Server {
+@@ -302,6 +302,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List<CraftPlayer> playerView;
public int reloadCount;
@@ -17,7 +17,7 @@ index eb7eb3fdb2f677c5d6d7503d2809f61e48900205..26428b73e23e71872e148f041c18c741
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 21f670644815474102da3fd1047f63a7a13adfa6..59d076f4e25735f4c6815dfe27904a82eefc1756 100644
+index 402b6e5d6428c5a34d722888670f94c7fbe34fe4..68d00a158751d24c7f0e38920d78c0547f1928eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -470,10 +470,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
index 1ac629bc41..092f2226b3 100644
--- a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
+++ b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch
@@ -16,10 +16,10 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe
A config option has been added for those who depend on the previous behavior, but I don't expect that.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 25ffb95d7d4a5b34577b1e343516996630a14705..99521b04cb5d3fd6ab5fbf5b663a30c20b0341aa 100644
+index 13a70d87689d49818b97611b83b77df0e9a6c8f5..0187cf0317ca427dd753e4a354361bec47ae55b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -464,6 +464,7 @@ public final class CraftServer implements Server {
+@@ -465,6 +465,7 @@ public final class CraftServer implements Server {
if (type == PluginLoadOrder.STARTUP) {
this.helpMap.clear();
this.helpMap.initializeGeneralTopics();
@@ -27,7 +27,7 @@ index 25ffb95d7d4a5b34577b1e343516996630a14705..99521b04cb5d3fd6ab5fbf5b663a30c2
}
Plugin[] plugins = this.pluginManager.getPlugins();
-@@ -483,7 +484,7 @@ public final class CraftServer implements Server {
+@@ -484,7 +485,7 @@ public final class CraftServer implements Server {
this.commandMap.registerServerAliases();
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
diff --git a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
index 6bcdce1ca9..2cc0ab5263 100644
--- a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
+++ b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1ba7e571a1286415d8b6ff2807050f8a43811500..c99e7d7dbcd83454ca3f08b08f367f8c6336889f 100644
+index 0187cf0317ca427dd753e4a354361bec47ae55b8..9418fce310fe30ebb7c0f2368dda8c6000d9541c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2622,5 +2622,23 @@ public final class CraftServer implements Server {
+@@ -2684,5 +2684,23 @@ public final class CraftServer implements Server {
}
return this.adventure$audiences;
}
diff --git a/patches/server/0068-Remove-Metadata-on-reload.patch b/patches/server/0068-Remove-Metadata-on-reload.patch
index c96e0c02a2..fcddb8c6d3 100644
--- a/patches/server/0068-Remove-Metadata-on-reload.patch
+++ b/patches/server/0068-Remove-Metadata-on-reload.patch
@@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
This will remove metadata on reload so it does not crash everything if a plugin uses it.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 135fe9abe46d31cdf3a5fb3fb3dfd296e658e2cf..69934e156db7fdec00b6b77b20835894a1e3dcb3 100644
+index 9418fce310fe30ebb7c0f2368dda8c6000d9541c..3836e0ad2f09ab015a165794400edd64a017f439 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -955,8 +955,16 @@ public final class CraftServer implements Server {
+@@ -956,8 +956,16 @@ public final class CraftServer implements Server {
world.spigotConfig.init(); // Spigot
}
diff --git a/patches/server/0084-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0084-Add-PlayerUseUnknownEntityEvent.patch
index fc7c1c2a66..6c68a42dc2 100644
--- a/patches/server/0084-Add-PlayerUseUnknownEntityEvent.patch
+++ b/patches/server/0084-Add-PlayerUseUnknownEntityEvent.patch
@@ -28,10 +28,10 @@ index 644a0fdea6576647539b96528717dbaeab498d93..221e64a66ff12a8de5c75992fc26a54a
+ // Paper end - PlayerUseUnknownEntityEvent
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4376e09828655444d1339020a2676c67197abfb9..baaac036875128f8f05f8dae5f6cde29c4ca2b7d 100644
+index adef64b955170dc00c75c06bf0f41a09b2516520..3fbe132d278928a55115dce116f14ac1ce1ebc69 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2392,8 +2392,38 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2393,8 +2393,38 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
});
}
}
diff --git a/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
index 685a27ece7..598cd36741 100644
--- a/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
+++ b/patches/server/0106-Add-setting-for-proxy-online-mode-status.patch
@@ -43,10 +43,10 @@ index 0214830d9bc98b8d435ff11f40df65596980cf77..5db27d7bcaaa2eeaeeb08401513d8d23
} else {
String[] astring1 = astring;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ba7f67600d259cfb307e610d55d657a8ac75d4ec..968e4bcdae14d580561b2a310359026080dbab0a 100644
+index 3836e0ad2f09ab015a165794400edd64a017f439..877ccdcbce7e69fab905c323ad88081c469db8b9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1727,7 +1727,7 @@ public final class CraftServer implements Server {
+@@ -1789,7 +1789,7 @@ public final class CraftServer implements Server {
// Spigot Start
GameProfile profile = null;
// Only fetch an online UUID in online mode
diff --git a/patches/server/0108-Configurable-packet-in-spam-threshold.patch b/patches/server/0108-Configurable-packet-in-spam-threshold.patch
index bc72c5aadc..8943918d45 100644
--- a/patches/server/0108-Configurable-packet-in-spam-threshold.patch
+++ b/patches/server/0108-Configurable-packet-in-spam-threshold.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable packet in spam threshold
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index baaac036875128f8f05f8dae5f6cde29c4ca2b7d..661796b360d69f239cf6147edcefde7a99943bce 100644
+index 3fbe132d278928a55115dce116f14ac1ce1ebc69..fabb6ab9a3dc7dcf724b1505ec1172f16158f502 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1505,13 +1505,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1506,13 +1506,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot start - limit place/interactions
private int limitedPackets;
private long lastLimitedPacket = -1;
diff --git a/patches/server/0110-Add-EntityZapEvent.patch b/patches/server/0110-Add-EntityZapEvent.patch
index 8159bc2076..154570991d 100644
--- a/patches/server/0110-Add-EntityZapEvent.patch
+++ b/patches/server/0110-Add-EntityZapEvent.patch
@@ -28,10 +28,10 @@ index 2f97e4f0078cecbcf044d0b27f375638a6ea047b..b70ee1dff0442de32a9e20ad54b246d5
entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) 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 187011474d15a4a5a5d6cb1638660d9ed2b3a0e5..ff737b309085749aa98b4707c3b72f28a3872278 100644
+index bbf30a36c44cd6403a2f45622f5dd186adc18772..3521d784db2754b4af99b891f69a15fe2bf7a4b8 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1266,6 +1266,14 @@ public class CraftEventFactory {
+@@ -1268,6 +1268,14 @@ public class CraftEventFactory {
return !event.isCancelled();
}
diff --git a/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
index f8b5503d20..68a84a2345 100644
--- a/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
+++ b/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 968e4bcdae14d580561b2a310359026080dbab0a..237941f8ba3ef712b5bea9aa7fee0a392357f7b3 100644
+index 877ccdcbce7e69fab905c323ad88081c469db8b9..7d115f02a003e36ba2b48b618a1cf8e063e38392 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2648,5 +2648,24 @@ public final class CraftServer implements Server {
+@@ -2710,5 +2710,24 @@ public final class CraftServer implements Server {
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
}
diff --git a/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
index 403b6fdb1b..135acd92c8 100644
--- a/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
+++ b/patches/server/0114-Add-source-to-PlayerExpChangeEvent.patch
@@ -18,10 +18,10 @@ index 8946d486dab3e639b00716ce7459c817270dad80..f25466e132cb6b0012dc336877fdf17b
--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 ff737b309085749aa98b4707c3b72f28a3872278..d5e4c8a0415f74ba3a7964c7ff491bb37bbff16d 100644
+index 3521d784db2754b4af99b891f69a15fe2bf7a4b8..30831f9ef0887fde0f8180aa5d65f7d218bf0d6a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1219,6 +1219,17 @@ public class CraftEventFactory {
+@@ -1221,6 +1221,17 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0115-Add-ProjectileCollideEvent.patch b/patches/server/0115-Add-ProjectileCollideEvent.patch
index bc16eb86cd..f199be83c4 100644
--- a/patches/server/0115-Add-ProjectileCollideEvent.patch
+++ b/patches/server/0115-Add-ProjectileCollideEvent.patch
@@ -6,10 +6,10 @@ 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 d5e4c8a0415f74ba3a7964c7ff491bb37bbff16d..933cfc466aced42c3c765093c2a987b9f09089a4 100644
+index 30831f9ef0887fde0f8180aa5d65f7d218bf0d6a..a85c6e0fe88d285908578f05562ede92a0ae336b 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1363,6 +1363,17 @@ public class CraftEventFactory {
+@@ -1365,6 +1365,17 @@ public class CraftEventFactory {
return CraftItemStack.asNMSCopy(bitem);
}
@@ -27,7 +27,7 @@ index d5e4c8a0415f74ba3a7964c7ff491bb37bbff16d..933cfc466aced42c3c765093c2a987b9
public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) {
Projectile bukkitEntity = (Projectile) entity.getBukkitEntity();
ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity);
-@@ -1387,8 +1398,15 @@ public class CraftEventFactory {
+@@ -1389,8 +1400,15 @@ public class CraftEventFactory {
if (position.getType() == HitResult.Type.ENTITY) {
hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity();
}
diff --git a/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index a695922032..5c11879eb1 100644
--- a/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/patches/server/0132-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -14,10 +14,10 @@ To be converted into a Paper-API event at some point in the future?
public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 18b9b172515a99941ab04c10eebf58270e8d3de0..49a99fda573113214c28981f5b23acb8ac192432 100644
+index 8b81073813a7e31273816d1486a59ed6325589df..098d182cc8cf048eb7b4a4640dc2338150f48f2e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2169,6 +2169,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2170,6 +2170,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
switch (packet.getAction()) {
case PRESS_SHIFT_KEY:
this.player.setShiftKeyDown(true);
@@ -32,7 +32,7 @@ index 18b9b172515a99941ab04c10eebf58270e8d3de0..49a99fda573113214c28981f5b23acb8
case RELEASE_SHIFT_KEY:
this.player.setShiftKeyDown(false);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
-index 62a52216e27c0e4847b9c346c35c3d1b7b3b15aa..a2f6e3f381bf251d93a63aff9f9af307350ffc50 100644
+index ca56004082460bc422d5898407eef9dae49071ab..fb9b81efea99b78449b453dd0e4fcdfecc71ec50 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -594,6 +594,7 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
index 1282c4afad..2a2cf77a91 100644
--- a/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
+++ b/patches/server/0133-Add-configuration-option-to-prevent-player-names-fro.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 237941f8ba3ef712b5bea9aa7fee0a392357f7b3..584d12cfd6875034dfe9ca0bdcd821e36c2a397b 100644
+index 7d115f02a003e36ba2b48b618a1cf8e063e38392..9265feda93edd01f8afc0b2e60cd3a54fcbdc208 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2667,5 +2667,10 @@ public final class CraftServer implements Server {
+@@ -2729,5 +2729,10 @@ public final class CraftServer implements Server {
commandMap.registerServerAliases();
return true;
}
diff --git a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
index d64c2f7b10..0a5bf5cb22 100644
--- a/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0134-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -389,18 +389,19 @@ index 6dad42086e598c86a27358e12c5b72a0a79b38ee..daabc5739b7bf6b1cbeb497fe0e9b7ed
this.bans = new UserBanList(PlayerList.USERBANLIST_FILE);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4a157159ba7baf9ee3ea09880ba45e055802bfcc..0b529c373c098d2e48c4485dd189a51f2a846c81 100644
+index 9265feda93edd01f8afc0b2e60cd3a54fcbdc208..7491c7a3fad265708c422e87d069120eb8e3d30c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -44,7 +44,6 @@ import java.util.logging.Level;
+@@ -43,7 +43,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import javax.imageio.ImageIO;
-import jline.console.ConsoleReader;
- import net.minecraft.advancements.Advancement;
++// import jline.console.ConsoleReader;
import net.minecraft.advancements.AdvancementHolder;
import net.minecraft.commands.CommandSourceStack;
-@@ -1295,9 +1294,13 @@ public final class CraftServer implements Server {
+ import net.minecraft.commands.Commands;
+@@ -1296,9 +1296,13 @@ public final class CraftServer implements Server {
return this.logger;
}
diff --git a/patches/server/0140-Add-UnknownCommandEvent.patch b/patches/server/0140-Add-UnknownCommandEvent.patch
index 8c97ad3954..382d3b8965 100644
--- a/patches/server/0140-Add-UnknownCommandEvent.patch
+++ b/patches/server/0140-Add-UnknownCommandEvent.patch
@@ -83,10 +83,10 @@ index d1ecf61ffecb8669214ad85334374a4569811de8..e63632f09d608371aaeaf09a6dac57c1
b1 = 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 66de956051f6c5b66f806063869e25430144c6ce..0ef8750c7c862a44dfb0e15602ef819790c9f1a4 100644
+index 6c2283ec3a6062eea5a2e20a3e023064cad6b39e..ed3cf7cd9d49c58162caa7f0b4a0b631082358cd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -530,6 +530,7 @@ public final class CraftServer implements Server {
+@@ -532,6 +532,7 @@ public final class CraftServer implements Server {
}
node = clone;
}
@@ -94,7 +94,7 @@ index 66de956051f6c5b66f806063869e25430144c6ce..0ef8750c7c862a44dfb0e15602ef8197
dispatcher.getDispatcher().getRoot().addChild(node);
} else {
-@@ -897,7 +898,13 @@ public final class CraftServer implements Server {
+@@ -899,7 +900,13 @@ public final class CraftServer implements Server {
// Spigot start
if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) {
diff --git a/patches/server/0141-Basic-PlayerProfile-API.patch b/patches/server/0141-Basic-PlayerProfile-API.patch
index cb91dcd794..72030f583d 100644
--- a/patches/server/0141-Basic-PlayerProfile-API.patch
+++ b/patches/server/0141-Basic-PlayerProfile-API.patch
@@ -556,7 +556,7 @@ index 0000000000000000000000000000000000000000..7ac27392a8647ef7d0dc78efe78703e9
+ @NotNull GameProfile buildGameProfile();
+}
diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java
-index dc2ab968ed010289125ac08f0a9ea85af6f6e8bb..82a1a87822e3fc323b92e1aa30ddb0cdb351d89c 100644
+index 395873f89925b495978d151efe1d91da9ad11b0a..e969a0acf06d9265fa75fc07bb637752df468c11 100644
--- a/src/main/java/io/papermc/paper/util/MCUtil.java
+++ b/src/main/java/io/papermc/paper/util/MCUtil.java
@@ -1,5 +1,7 @@
@@ -622,10 +622,10 @@ index c70cd016e1978931d115cfca94664897f0158196..eac9658fa4cab7a651e10e4e18c679e0
String s1 = name.toLowerCase(Locale.ROOT);
GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a8a605251bc5a3c700ead923f94c32d2fb46b62e..7e629afd43e1ac486d259e70c494d0ed89edb1d4 100644
+index ed3cf7cd9d49c58162caa7f0b4a0b631082358cd..67f2b02a23515796b8df450f2360d6914b74bb4a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -263,6 +263,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
+@@ -265,6 +265,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
import net.md_5.bungee.api.chat.BaseComponent; // Spigot
@@ -635,7 +635,7 @@ index a8a605251bc5a3c700ead923f94c32d2fb46b62e..7e629afd43e1ac486d259e70c494d0ed
public final class CraftServer implements Server {
private final String serverName = "Paper"; // Paper
private final String serverVersion;
-@@ -305,6 +308,7 @@ public final class CraftServer implements Server {
+@@ -307,6 +310,7 @@ public final class CraftServer implements Server {
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
@@ -643,7 +643,7 @@ index a8a605251bc5a3c700ead923f94c32d2fb46b62e..7e629afd43e1ac486d259e70c494d0ed
CraftItemFactory.instance();
}
-@@ -2682,5 +2686,42 @@ public final class CraftServer implements Server {
+@@ -2745,5 +2749,42 @@ public final class CraftServer implements Server {
public boolean suggestPlayerNamesWhenNullTabCompletions() {
return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
}
@@ -687,7 +687,7 @@ index a8a605251bc5a3c700ead923f94c32d2fb46b62e..7e629afd43e1ac486d259e70c494d0ed
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
-index 9eafa36b086ed4cde107b81aa9470d1a43e557f1..2d877acc4cb338193449ae37cafb0cfdc452d6b0 100644
+index 2fff882c02aa84ab7b14b267bc6e28b5ad94def6..533d143969592f9a4f4d1ea1660474264150f211 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
@@ -31,7 +31,7 @@ import org.bukkit.profile.PlayerProfile;
@@ -743,7 +743,7 @@ index 9eafa36b086ed4cde107b81aa9470d1a43e557f1..2d877acc4cb338193449ae37cafb0cfd
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerTextures.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerTextures.java
-index b32a2be72d9bae3194cdbb37a705664d2b7e2391..a82bc882939e9f93c2d02918e451e7fe121355ca 100644
+index 78e47fec27f4dd955632d03f7181682af0429961..0dce455fb47b3f5a2eb2b15a1cdbc4c6a54b7b69 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerTextures.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerTextures.java
@@ -48,7 +48,7 @@ public final class CraftPlayerTextures implements PlayerTextures {
diff --git a/patches/server/0147-Implement-ensureServerConversions-API.patch b/patches/server/0147-Implement-ensureServerConversions-API.patch
index c78817409b..e75e93f212 100644
--- a/patches/server/0147-Implement-ensureServerConversions-API.patch
+++ b/patches/server/0147-Implement-ensureServerConversions-API.patch
@@ -20,10 +20,10 @@ index cae548dbb5a3027e2de0bfbe38918ec7c2803e8e..c95c51605ae75cf340c7b0a88ae9146d
this.save(savedStack);
savedStack = (CompoundTag) MinecraftServer.getServer().fixerUpper.update(References.ITEM_STACK, new Dynamic(NbtOps.INSTANCE, savedStack), version, CraftMagicNumbers.INSTANCE.getDataVersion()).getValue();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 2fa36de5d43e2c395e0db2017bd994a62a5b2feb..0bd3a2989be4e158ba343da09914328e819a0f89 100644
+index bb522d4b7485383186cb3ce82a48ae7160ae7e0e..e21999ac116d6788fb8c367cee67190cb49c5f63 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -469,4 +469,11 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -508,4 +508,11 @@ public final class CraftItemFactory implements ItemFactory {
return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName());
}
// Paper end - Adventure
diff --git a/patches/server/0148-Implement-getI18NDisplayName.patch b/patches/server/0148-Implement-getI18NDisplayName.patch
index 0521ce4580..c3c3780802 100644
--- a/patches/server/0148-Implement-getI18NDisplayName.patch
+++ b/patches/server/0148-Implement-getI18NDisplayName.patch
@@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 0bd3a2989be4e158ba343da09914328e819a0f89..709c0e9ba7b33e97666ac74412761bb0e770a037 100644
+index e21999ac116d6788fb8c367cee67190cb49c5f63..8a89fd0f771e0df439dc9070df7dfa6f2cbd5de2 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -476,4 +476,19 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -515,4 +515,19 @@ public final class CraftItemFactory implements ItemFactory {
return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item));
}
// Paper end - ensure server conversions API
diff --git a/patches/server/0157-Add-PlayerJumpEvent.patch b/patches/server/0157-Add-PlayerJumpEvent.patch
index faeb851cd6..d5fd6d3ddf 100644
--- a/patches/server/0157-Add-PlayerJumpEvent.patch
+++ b/patches/server/0157-Add-PlayerJumpEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerJumpEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 49a99fda573113214c28981f5b23acb8ac192432..1b856ecd7926e90a62045176f75d7ae6f0ac69d5 100644
+index 098d182cc8cf048eb7b4a4640dc2338150f48f2e..6e2957e31ad4be418bcd475b2e3a4e56b5be591e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1199,7 +1199,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1200,7 +1200,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag = d7 > 0.0D;
if (this.player.onGround() && !packet.isOnGround() && flag) {
diff --git a/patches/server/0167-AsyncTabCompleteEvent.patch b/patches/server/0167-AsyncTabCompleteEvent.patch
index a43de931b9..e1cae59d0d 100644
--- a/patches/server/0167-AsyncTabCompleteEvent.patch
+++ b/patches/server/0167-AsyncTabCompleteEvent.patch
@@ -16,10 +16,10 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent
Co-authored-by: Aikar <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1b856ecd7926e90a62045176f75d7ae6f0ac69d5..4ba7ed0a4ff52caa21632f69ab087564fb3a5eb7 100644
+index 6e2957e31ad4be418bcd475b2e3a4e56b5be591e..b5abb0d433322224ccbbed8755fb3ebf77b5a36c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -687,12 +687,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -688,12 +688,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
@@ -38,7 +38,7 @@ index 1b856ecd7926e90a62045176f75d7ae6f0ac69d5..4ba7ed0a4ff52caa21632f69ab087564
return;
}
// Paper start
-@@ -703,18 +707,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -704,18 +708,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper end
// CraftBukkit end
@@ -91,10 +91,10 @@ index 1b856ecd7926e90a62045176f75d7ae6f0ac69d5..4ba7ed0a4ff52caa21632f69ab087564
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7e629afd43e1ac486d259e70c494d0ed89edb1d4..b1c965e4a9c8b68a764781266dee078880ee5566 100644
+index 67f2b02a23515796b8df450f2360d6914b74bb4a..654c174df812271e31c72a88445df57ba8aca675 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2132,7 +2132,7 @@ public final class CraftServer implements Server {
+@@ -2195,7 +2195,7 @@ public final class CraftServer implements Server {
offers = this.tabCompleteChat(player, message);
}
@@ -104,7 +104,7 @@ index 7e629afd43e1ac486d259e70c494d0ed89edb1d4..b1c965e4a9c8b68a764781266dee0788
return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions();
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
-index b996fde481cebbbcce80a6c267591136db7cc0bc..14cd8ae69d9b25dc5edad4ff96ff4a9acb1f22cb 100644
+index d24acf28f5ed023acc550bcf877e4b9800ec8c9f..8f82041f0482df22a6a9ea38d50d56228131775d 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
@@ -28,6 +28,61 @@ public class ConsoleCommandCompleter implements Completer {
diff --git a/patches/server/0182-Player.setPlayerProfile-API.patch b/patches/server/0182-Player.setPlayerProfile-API.patch
index a811ca7422..a869a9502d 100644
--- a/patches/server/0182-Player.setPlayerProfile-API.patch
+++ b/patches/server/0182-Player.setPlayerProfile-API.patch
@@ -9,10 +9,10 @@ This can be useful for changing name or skins after a player has logged in.
public-f net.minecraft.world.entity.player.Player gameProfile
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 293ae8afc5c5aef3ed8de4fa2ce3e66850b8a65b..da4120e6c50605139014b8bf470394253f2b5f73 100644
+index b5abb0d433322224ccbbed8755fb3ebf77b5a36c..598b442f84df4562811986cfb5e8614e74df2cc0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1437,7 +1437,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1438,7 +1438,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.internalTeleport(dest.getX(), dest.getY(), dest.getZ(), dest.getYaw(), dest.getPitch(), Collections.emptySet());
}
@@ -40,7 +40,7 @@ index 41ba6f0c88b6205bf33de962c0bc545a0ac40c74..03ff64ad395455f21f4ca30faae17fc6
playerName = gameprofile.getName();
uniqueId = gameprofile.getId();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
-index b8fd3837be598e354999b741a1d98dff326b0399..c68b86f42d0f6bd9707ad6c426f34bed556e0035 100644
+index 477d3245facb5ae59c786d4f696f64226cb540a6..e8490a58dd4d9bc39a5bb2f9fc109526e031b971 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
@@ -81,8 +81,8 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
@@ -55,7 +55,7 @@ index b8fd3837be598e354999b741a1d98dff326b0399..c68b86f42d0f6bd9707ad6c426f34bed
public Server getServer() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bd6dcea0a94bb4b72c98cf6a4829a2cd39a558cd..c65b82d69fa829f3fdfa0d6c65a2f861c2db9f11 100644
+index 317f879a1be75ae77a0cc52dece1ef3530cde786..601153fac20f6f15aa09bbc8bc63995e43494611 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -271,11 +271,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0183-getPlayerUniqueId-API.patch b/patches/server/0183-getPlayerUniqueId-API.patch
index e3b1ec41f3..ecbab9fb8a 100644
--- a/patches/server/0183-getPlayerUniqueId-API.patch
+++ b/patches/server/0183-getPlayerUniqueId-API.patch
@@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b1c965e4a9c8b68a764781266dee078880ee5566..895a12e5859b5e2b21c2f9d7a82932e603a1f791 100644
+index 654c174df812271e31c72a88445df57ba8aca675..0dc45f47960eff60f5d779ee88d49f7477c41944 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1730,6 +1730,25 @@ public final class CraftServer implements Server {
+@@ -1793,6 +1793,25 @@ public final class CraftServer implements Server {
return recipients.size();
}
diff --git a/patches/server/0216-InventoryCloseEvent-Reason-API.patch b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
index 1f922ea1eb..9f85d76fcd 100644
--- a/patches/server/0216-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0216-InventoryCloseEvent-Reason-API.patch
@@ -75,7 +75,7 @@ index 9b670eb2925caa275cae6f51eb75183a9f5208b0..0f5e616ebb90e187ea38b6489e6f4f54
this.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index da4120e6c50605139014b8bf470394253f2b5f73..fdf15bc1a1f5772e50e8a805c2cb8d0720895cf6 100644
+index 598b442f84df4562811986cfb5e8614e74df2cc0..04d1aee392330301bdc14966dccd11f5aad610d6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -215,6 +215,7 @@ import org.bukkit.event.inventory.ClickType;
@@ -86,7 +86,7 @@ index da4120e6c50605139014b8bf470394253f2b5f73..fdf15bc1a1f5772e50e8a805c2cb8d07
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.inventory.SmithItemEvent;
-@@ -2523,10 +2524,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2524,10 +2525,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleContainerClose(ServerboundContainerClosePacket packet) {
@@ -173,7 +173,7 @@ index 602cf19007c622ab9bb12a7018643cf05688f33e..607dc510ac856a0bf3a54bf1004bdf98
@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 676c29c13ae8ece20cb5acaf1a2cf71fc93424bd..a9a2bd81e39ce42138f9931bf0289c82ea9911aa 100644
+index e4ebfccc01edd29521470e7132ac789755b9ba49..845bc8225a5d0694ddd5a26286c1d37e2563f31f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1191,7 +1191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -186,10 +186,10 @@ index 676c29c13ae8ece20cb5acaf1a2cf71fc93424bd..a9a2bd81e39ce42138f9931bf0289c82
// 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 933cfc466aced42c3c765093c2a987b9f09089a4..ec4022e16d3cdf375520a066afd772f1847e3516 100644
+index a85c6e0fe88d285908578f05562ede92a0ae336b..8267af8592cf09051a17f594b98b50dce3493767 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1332,7 +1332,7 @@ public class CraftEventFactory {
+@@ -1334,7 +1334,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
@@ -198,7 +198,7 @@ index 933cfc466aced42c3c765093c2a987b9f09089a4..ec4022e16d3cdf375520a066afd772f1
}
CraftServer server = player.level().getCraftServer();
-@@ -1520,8 +1520,18 @@ public class CraftEventFactory {
+@@ -1522,8 +1522,18 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index 706f5540e0..3439b99842 100644
--- a/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/patches/server/0218-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is
cancelled to avoid this problem.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f9c007725420902f55a8730f530daf09ba45340b..92787d06ddd4d3a81e2c606d8c5daa0dae18253a 100644
+index 04d1aee392330301bdc14966dccd11f5aad610d6..6de25b8230da167afb363f443597df383d3b8ca6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2404,6 +2404,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2405,6 +2405,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (event.isCancelled()) {
diff --git a/patches/server/0226-Vanished-players-don-t-have-rights.patch b/patches/server/0226-Vanished-players-don-t-have-rights.patch
index 01f8c71f5e..e7b95e4245 100644
--- a/patches/server/0226-Vanished-players-don-t-have-rights.patch
+++ b/patches/server/0226-Vanished-players-don-t-have-rights.patch
@@ -89,10 +89,10 @@ index b52a761e84e00f2ccac7b1b9db73e70ffa1c681b..f17cc5da4eb4b4e5bcfae8b234358464
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 ec4022e16d3cdf375520a066afd772f1847e3516..7c8eb12c070bc1203ac94fec1a8f070dd4bda75f 100644
+index 8267af8592cf09051a17f594b98b50dce3493767..653fef73f60f4312b59533b4edc72020d3875d78 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1369,6 +1369,14 @@ public class CraftEventFactory {
+@@ -1371,6 +1371,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/0233-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0233-Break-up-and-make-tab-spam-limits-configurable.patch
index 7de3260bad..dc7530f5d9 100644
--- a/patches/server/0233-Break-up-and-make-tab-spam-limits-configurable.patch
+++ b/patches/server/0233-Break-up-and-make-tab-spam-limits-configurable.patch
@@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on
plugins doing unsafe things.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 92787d06ddd4d3a81e2c606d8c5daa0dae18253a..67b19f5672f6834ea4e6eccd553d926114bcc2c3 100644
+index 6de25b8230da167afb363f443597df383d3b8ca6..3e6430d5769afbe308703e61f7fb7474811fdf38 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -253,6 +253,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -41,7 +41,7 @@ index 92787d06ddd4d3a81e2c606d8c5daa0dae18253a..67b19f5672f6834ea4e6eccd553d9261
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -696,7 +698,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -697,7 +699,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) {
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async
// CraftBukkit start
diff --git a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
index 1ee495ec8a..40194b178d 100644
--- a/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
+++ b/patches/server/0237-Add-Early-Warning-Feature-to-WatchDog.patch
@@ -33,10 +33,10 @@ index b916f11cb3799aecf1edd9c2002f4c631754e89f..e3754d916ce38d0e0e8b8dbb623016ee
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2cb21d2eed25074ede3a7be8f3c5e2a97547d356..a2aced2fbe7d9f3cc42d2c4b5bfde2838ab44360 100644
+index 0dc45f47960eff60f5d779ee88d49f7477c41944..c32315e6cd06ff02fe2a2c6c3f6f1c3c925147f9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -917,6 +917,7 @@ public final class CraftServer implements Server {
+@@ -919,6 +919,7 @@ public final class CraftServer implements Server {
@Override
public void reload() {
@@ -44,7 +44,7 @@ index 2cb21d2eed25074ede3a7be8f3c5e2a97547d356..a2aced2fbe7d9f3cc42d2c4b5bfde283
this.reloadCount++;
this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile());
this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
-@@ -1006,6 +1007,7 @@ public final class CraftServer implements Server {
+@@ -1008,6 +1009,7 @@ public final class CraftServer implements Server {
this.enablePlugins(PluginLoadOrder.STARTUP);
this.enablePlugins(PluginLoadOrder.POSTWORLD);
this.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD));
diff --git a/patches/server/0253-Improve-death-events.patch b/patches/server/0253-Improve-death-events.patch
index 058dcbacfa..1c2f2eec1f 100644
--- a/patches/server/0253-Improve-death-events.patch
+++ b/patches/server/0253-Improve-death-events.patch
@@ -392,7 +392,7 @@ index 1047d9a46314e264ab3f72122aedefd161c7851d..91b9ec5831f439426a853ba9ac7a3f22
this.gameEvent(GameEvent.ENTITY_DIE);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index c72dc80c65484d6fac3b37f6be3f8c678df0a432..39bd2e89f218efc8f851b3bbb86677bdd05a315e 100644
+index 6d34fef4f16bbac6bd66b702fb5c1511edaef3f1..cc5d3e5d1f25a8316b3b09d16183c0e9a79be2a0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2343,7 +2343,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -412,10 +412,10 @@ index c72dc80c65484d6fac3b37f6be3f8c678df0a432..39bd2e89f218efc8f851b3bbb86677bd
public void injectScaledMaxHealth(Collection<AttributeInstance> 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 7c8eb12c070bc1203ac94fec1a8f070dd4bda75f..d0afefaeb5566afcb8754aa24264423d82f6cd3f 100644
+index 653fef73f60f4312b59533b4edc72020d3875d78..ee1be98a7844e983e46cf4ef6f0da1aa1b8c1c1d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -891,9 +891,16 @@ public class CraftEventFactory {
+@@ -893,9 +893,16 @@ public class CraftEventFactory {
public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List<org.bukkit.inventory.ItemStack> drops) {
CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward());
@@ -432,7 +432,7 @@ index 7c8eb12c070bc1203ac94fec1a8f070dd4bda75f..d0afefaeb5566afcb8754aa24264423d
victim.expToDrop = event.getDroppedExp();
for (org.bukkit.inventory.ItemStack stack : event.getDrops()) {
-@@ -910,8 +917,15 @@ public class CraftEventFactory {
+@@ -912,8 +919,15 @@ public class CraftEventFactory {
PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage, stringDeathMessage); // Paper - Adventure
event.setKeepInventory(keepInventory);
event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel
@@ -448,7 +448,7 @@ index 7c8eb12c070bc1203ac94fec1a8f070dd4bda75f..d0afefaeb5566afcb8754aa24264423d
victim.keepLevel = event.getKeepLevel();
victim.newLevel = event.getNewLevel();
-@@ -928,6 +942,31 @@ public class CraftEventFactory {
+@@ -930,6 +944,31 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0273-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0273-Add-option-to-prevent-players-from-moving-into-unloa.patch
index 085bd6901c..f6fea97b7e 100644
--- a/patches/server/0273-Add-option-to-prevent-players-from-moving-into-unloa.patch
+++ b/patches/server/0273-Add-option-to-prevent-players-from-moving-into-unloa.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 67b19f5672f6834ea4e6eccd553d926114bcc2c3..c5de649f2a63e913fca5f915a7e52350eb45ef1b 100644
+index 3e6430d5769afbe308703e61f7fb7474811fdf38..6b2a3d3af54af0699a2331cfa6b165d079e38caf 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -466,9 +466,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -39,7 +39,7 @@ index 67b19f5672f6834ea4e6eccd553d926114bcc2c3..c5de649f2a63e913fca5f915a7e52350
if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
// CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8});
-@@ -1156,9 +1166,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1157,9 +1167,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.allowedPlayerTicks = 20; // CraftBukkit
} else {
this.awaitingTeleportTime = this.tickCount;
@@ -52,7 +52,7 @@ index 67b19f5672f6834ea4e6eccd553d926114bcc2c3..c5de649f2a63e913fca5f915a7e52350
float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot()));
float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot()));
-@@ -1213,6 +1223,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1214,6 +1224,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} else {
speed = this.player.getAbilities().walkingSpeed * 10f;
}
diff --git a/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
index f333920a87..1378506dad 100644
--- a/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
+++ b/patches/server/0281-Don-t-allow-digging-into-unloaded-chunks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't allow digging into unloaded chunks
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 7adf7d1248680e591638298f13f5ae88788f5e4c..bdf11a98614c9c12d3112f437651be81d0d9872a 100644
+index 3273448ebb2db3fa8eb3f45262f5497dbb31a5ba..58277908737a1f3da89e5df827e108e2381396ff 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -119,8 +119,8 @@ public class ServerPlayerGameMode {
@@ -59,10 +59,10 @@ index 7adf7d1248680e591638298f13f5ae88788f5e4c..bdf11a98614c9c12d3112f437651be81
this.level.destroyBlockProgress(this.player.getId(), pos, -1);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c5de649f2a63e913fca5f915a7e52350eb45ef1b..6f33c774c6ac95e79dae59d16059cd7b9ed0dde4 100644
+index 6b2a3d3af54af0699a2331cfa6b165d079e38caf..52b386b608fab59fe930885c0951f9674a257d69 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1561,6 +1561,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1562,6 +1562,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case START_DESTROY_BLOCK:
case ABORT_DESTROY_BLOCK:
case STOP_DESTROY_BLOCK:
diff --git a/patches/server/0282-Make-the-default-permission-message-configurable.patch b/patches/server/0282-Make-the-default-permission-message-configurable.patch
index a2b4b9489b..e0ff8b65c6 100644
--- a/patches/server/0282-Make-the-default-permission-message-configurable.patch
+++ b/patches/server/0282-Make-the-default-permission-message-configurable.patch
@@ -18,10 +18,10 @@ index 0dd48e4098191c8b6e29945d62bc473e9f3a1e77..ae51993e0de706cb62c96795ca9de766
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index cbdf413e16b819432b291d8fb2a87d6c3dba2ed2..4ca91d6e23862c9c7cb0bd3272cd6774d37960a5 100644
+index c32315e6cd06ff02fe2a2c6c3f6f1c3c925147f9..08eb9c98b0ff86131e1842c1b73711fd62344516 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2708,6 +2708,16 @@ public final class CraftServer implements Server {
+@@ -2771,6 +2771,16 @@ public final class CraftServer implements Server {
return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions;
}
diff --git a/patches/server/0287-Book-Size-Limits.patch b/patches/server/0287-Book-Size-Limits.patch
index 67cc2739f2..7e8f4afb62 100644
--- a/patches/server/0287-Book-Size-Limits.patch
+++ b/patches/server/0287-Book-Size-Limits.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Book Size Limits
Puts some limits on the size of books.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6f33c774c6ac95e79dae59d16059cd7b9ed0dde4..e1863e26d31b017c0cad5b43077508187acfd527 100644
+index 52b386b608fab59fe930885c0951f9674a257d69..78b902277521e2e6b33c971f61d27193ab2fc4f8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1023,6 +1023,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1024,6 +1024,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {
diff --git a/patches/server/0295-Implement-Brigadier-Mojang-API.patch b/patches/server/0295-Implement-Brigadier-Mojang-API.patch
index ab7d00fd4a..09febae3e0 100644
--- a/patches/server/0295-Implement-Brigadier-Mojang-API.patch
+++ b/patches/server/0295-Implement-Brigadier-Mojang-API.patch
@@ -10,7 +10,7 @@ Adds CommandRegisteredEvent
- Allows manipulating the CommandNode to add more children/metadata for the client
diff --git a/build.gradle.kts b/build.gradle.kts
-index 85c3b070da9dcde26b8f947e52ba390c535feae2..2f32a91bea8c27eb1f768e8a2a876a081cd68de8 100644
+index ce9ef2199364029c658812851d02047b982d92eb..80ffd7fd14893c70da92dddb5ec37d409c76b729 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -14,6 +14,7 @@ val alsoShade: Configuration by configurations.creating
@@ -131,10 +131,10 @@ index bbf4db5faf4694e78e01f4e74e277b46a02f7afd..148cfe9eac43cafee016d58a1344a97a
if (commandnode2.canUse(source)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e1863e26d31b017c0cad5b43077508187acfd527..3cad1ccf74b078496db5dfe9d0bb55636c059634 100644
+index 78b902277521e2e6b33c971f61d27193ab2fc4f8..892a06c76e5e77b43d592c325fcbf32f9d107181 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -739,8 +739,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -740,8 +740,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack());
this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
@@ -149,7 +149,7 @@ index e1863e26d31b017c0cad5b43077508187acfd527..3cad1ccf74b078496db5dfe9d0bb5563
});
});
}
-@@ -755,7 +759,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -756,7 +760,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip()));
}
});
diff --git a/patches/server/0297-Limit-Client-Sign-length-more.patch b/patches/server/0297-Limit-Client-Sign-length-more.patch
index 409a869e5c..20c34a9a2c 100644
--- a/patches/server/0297-Limit-Client-Sign-length-more.patch
+++ b/patches/server/0297-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 3cad1ccf74b078496db5dfe9d0bb55636c059634..ea267989024ac8546584231f439f1d5c8da6c6ea 100644
+index 892a06c76e5e77b43d592c325fcbf32f9d107181..93b1e0b287d195181cb2253b3490ed537efa6b8e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -288,6 +288,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -33,7 +33,7 @@ index 3cad1ccf74b078496db5dfe9d0bb55636c059634..ea267989024ac8546584231f439f1d5c
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie clientData) {
super(server, connection, clientData, player); // CraftBukkit
-@@ -3051,7 +3052,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3052,7 +3053,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleSignUpdate(ServerboundSignUpdatePacket packet) {
diff --git a/patches/server/0315-Expose-the-internal-current-tick.patch b/patches/server/0315-Expose-the-internal-current-tick.patch
index 83379dbcbf..0eeb26ed18 100644
--- a/patches/server/0315-Expose-the-internal-current-tick.patch
+++ b/patches/server/0315-Expose-the-internal-current-tick.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4ca91d6e23862c9c7cb0bd3272cd6774d37960a5..e331fc0866ae91b1463879661b04dad16f6117ca 100644
+index 08eb9c98b0ff86131e1842c1b73711fd62344516..4a5b18b4e9e664687c1136c5f1a97b8f50f87bf2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2754,5 +2754,10 @@ public final class CraftServer implements Server {
+@@ -2817,5 +2817,10 @@ public final class CraftServer implements Server {
profile.getProperties().putAll(((CraftPlayer) player).getHandle().getGameProfile().getProperties());
return new com.destroystokyo.paper.profile.CraftPlayerProfile(profile);
}
diff --git a/patches/server/0342-Anti-Xray.patch b/patches/server/0342-Anti-Xray.patch
index 4b817d747e..4e34895245 100644
--- a/patches/server/0342-Anti-Xray.patch
+++ b/patches/server/0342-Anti-Xray.patch
@@ -1554,10 +1554,10 @@ index 593cfd68dc0f3679c684b6a1d2036419d4f3bc0c..b4b2f961d1e4f8b5b199052efefd96bc
private static final byte[] EMPTY_LIGHT = new byte[2048];
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 34905e673683620fc5f0158fea3c16049d09f8f2..c70c64c2ae7bed27f39db12bd2329aa600ae2fe5 100644
+index 4a5b18b4e9e664687c1136c5f1a97b8f50f87bf2..212d8473458ce830804f7a7a2848d2df6f4bb3ba 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2278,7 +2278,7 @@ public final class CraftServer implements Server {
+@@ -2341,7 +2341,7 @@ public final class CraftServer implements Server {
public ChunkGenerator.ChunkData createChunkData(World world) {
Preconditions.checkArgument(world != null, "World cannot be null");
ServerLevel handle = ((CraftWorld) world).getHandle();
diff --git a/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch
index c407c28b51..1fca97a93b 100644
--- a/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch
+++ b/patches/server/0352-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 87be89a5e2d8b885f6f077433d4a7e402e8c7d49..cb8ac0475c842ba8c70564ed8a9c5d148257262a 100644
+index ee1be98a7844e983e46cf4ef6f0da1aa1b8c1c1d..96e33c433605ae2e0473b36f03894e030e79cd0d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -401,13 +401,18 @@ public class CraftEventFactory {
+@@ -403,13 +403,18 @@ public class CraftEventFactory {
}
org.bukkit.inventory.ItemStack item;
diff --git a/patches/server/0358-Add-tick-times-API-and-mspt-command.patch b/patches/server/0358-Add-tick-times-API-and-mspt-command.patch
index acc5bf78de..bffbded7a3 100644
--- a/patches/server/0358-Add-tick-times-API-and-mspt-command.patch
+++ b/patches/server/0358-Add-tick-times-API-and-mspt-command.patch
@@ -125,7 +125,7 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7
public static void registerCommands(final MinecraftServer server) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 4d3cd4a5dbf7adb482e60dc88ededdaccf558061..951e283d38cb7601049ac6f24385acde514df553 100644
+index ef6d98d503fdca4322000278de4cf325df56f99d..f700e677d75f911b786a22b4cc9d0a016d99b02f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -247,6 +247,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -184,10 +184,10 @@ index 4d3cd4a5dbf7adb482e60dc88ededdaccf558061..951e283d38cb7601049ac6f24385acde
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 30adaccd8c5a9d9696bede7967f4b9406ffd066e..42d92cd77bea7fa412a60cc6ec67120eedb90ae4 100644
+index 212d8473458ce830804f7a7a2848d2df6f4bb3ba..644c9aab6c2e34263888a6ba854f992c04a1dde1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2533,6 +2533,16 @@ public final class CraftServer implements Server {
+@@ -2596,6 +2596,16 @@ public final class CraftServer implements Server {
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
};
}
diff --git a/patches/server/0359-Expose-MinecraftServer-isRunning.patch b/patches/server/0359-Expose-MinecraftServer-isRunning.patch
index d3b50c2242..c00d1eec4f 100644
--- a/patches/server/0359-Expose-MinecraftServer-isRunning.patch
+++ b/patches/server/0359-Expose-MinecraftServer-isRunning.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning
This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 42d92cd77bea7fa412a60cc6ec67120eedb90ae4..cb49056d4745ecdca38d30d41e1b5f579c7d2c0c 100644
+index 644c9aab6c2e34263888a6ba854f992c04a1dde1..f5357e9816fdd985f7ca9ad705e8c1f42626622f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2769,5 +2769,10 @@ public final class CraftServer implements Server {
+@@ -2832,5 +2832,10 @@ public final class CraftServer implements Server {
public int getCurrentTick() {
return net.minecraft.server.MinecraftServer.currentTick;
}
diff --git a/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch
index a8c259e985..a86be5da2e 100644
--- a/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch
+++ b/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch
@@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the
same item twice because the source was destroyed.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 2f4afa9dd08820c3130fe6a85b051adb80057907..709a71eca4b1edb86af6f5f3345d90e7eb0b2893 100644
+index 186e9541031eb2daaf479d7d14782e917b3e16e5..8ecb398ca26753e602c2862bf0c35b76f9a413c0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2436,11 +2436,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -135,10 +135,10 @@ index 91b9ec5831f439426a853ba9ac7a3f225629b099..e4e734e0f4c43c1687c8e3a8bbe15441
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 0696f48da86cf1755abedf985e25655bd3a89717..0e40822592f2310d088662ffc923b67d7315ff4b 100644
+index 96e33c433605ae2e0473b36f03894e030e79cd0d..39d710d98ca5435e7645ab91c109090c42ffc52f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -894,6 +894,11 @@ public class CraftEventFactory {
+@@ -896,6 +896,11 @@ public class CraftEventFactory {
}
public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List<org.bukkit.inventory.ItemStack> drops) {
@@ -150,7 +150,7 @@ index 0696f48da86cf1755abedf985e25655bd3a89717..0e40822592f2310d088662ffc923b67d
CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward());
populateFields(victim, event); // Paper - make cancellable
-@@ -907,11 +912,13 @@ public class CraftEventFactory {
+@@ -909,11 +914,13 @@ public class CraftEventFactory {
playDeathSound(victim, event);
// Paper end
victim.expToDrop = event.getDroppedExp();
diff --git a/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch
index 10c3fa1965..f018765ed2 100644
--- a/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch
+++ b/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ea267989024ac8546584231f439f1d5c8da6c6ea..4eee9f4a8976831f2a262c0651fed0b51162046f 100644
+index 93b1e0b287d195181cb2253b3490ed537efa6b8e..c06ce8822891e7d2a8fa2b649b02555ce6e3373c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -866,7 +866,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handlePickItem(ServerboundPickItemPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0386-Expose-game-version.patch b/patches/server/0386-Expose-game-version.patch
index 6e3879901b..a8b54fe8da 100644
--- a/patches/server/0386-Expose-game-version.patch
+++ b/patches/server/0386-Expose-game-version.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index ba381026071767428273b35cc57b4181c57c43f1..4ebe72172b01dd48651ac6bf21026a77268fa6dc 100644
+index f5357e9816fdd985f7ca9ad705e8c1f42626622f..914f4673a0add2b14bcba389eed799e599984616 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -584,6 +584,13 @@ public final class CraftServer implements Server {
+@@ -586,6 +586,13 @@ public final class CraftServer implements Server {
return this.bukkitVersion;
}
diff --git a/patches/server/0389-misc-debugging-dumps.patch b/patches/server/0389-misc-debugging-dumps.patch
index be3cf77b44..e2ab0e9a06 100644
--- a/patches/server/0389-misc-debugging-dumps.patch
+++ b/patches/server/0389-misc-debugging-dumps.patch
@@ -29,7 +29,7 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9
+ }
+}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index 41106a10ca8148dae4129e2a46854d83605839b4..a107751a13ccef2729068e9b9822509374d20187 100644
+index 5f8cf962a4b630223fb93ffea49d1b2151e1604d..fdaf757cbbc90841747989add56c13f252f645e5 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -872,6 +872,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -74,10 +74,10 @@ index ed80d9551cd7cc1ec26a5d5fd7bc185b38fddd78..77e19f345bf68d12686a65e669cd597c
this.connection.disconnect(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 4ebe72172b01dd48651ac6bf21026a77268fa6dc..98fec62469f19680cb849cffb6c00b603c34fb65 100644
+index 914f4673a0add2b14bcba389eed799e599984616..753dc48330acc93b8ddbd9ed8f5c9655c72ff311 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1008,6 +1008,7 @@ public final class CraftServer implements Server {
+@@ -1010,6 +1010,7 @@ public final class CraftServer implements Server {
plugin.getDescription().getFullName(),
"This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin"
));
diff --git a/patches/server/0390-Prevent-teleporting-dead-entities.patch b/patches/server/0390-Prevent-teleporting-dead-entities.patch
index 346086056a..6f9db4c9af 100644
--- a/patches/server/0390-Prevent-teleporting-dead-entities.patch
+++ b/patches/server/0390-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 4eee9f4a8976831f2a262c0651fed0b51162046f..e2ee006d6b6971b15741f304945bbe480789079b 100644
+index c06ce8822891e7d2a8fa2b649b02555ce6e3373c..c251202cb6b69b4dfa46b6836c6da1664f533738 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1514,6 +1514,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1515,6 +1515,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
diff --git a/patches/server/0392-Implement-Mob-Goal-API.patch b/patches/server/0392-Implement-Mob-Goal-API.patch
index 022a6bd15b..f821c1b661 100644
--- a/patches/server/0392-Implement-Mob-Goal-API.patch
+++ b/patches/server/0392-Implement-Mob-Goal-API.patch
@@ -792,10 +792,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31
LOOK,
JUMP,
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 3b94e516bdfe927c6741d6bc47ccc86876860f69..e98c1c975ee09e123935a84f0b7f2b8b46d5f237 100644
+index 753dc48330acc93b8ddbd9ed8f5c9655c72ff311..ac8ed31a991e20b7584e98a8923614f6ecb97d38 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2782,5 +2782,11 @@ public final class CraftServer implements Server {
+@@ -2845,5 +2845,11 @@ public final class CraftServer implements Server {
public boolean isStopping() {
return net.minecraft.server.MinecraftServer.getServer().hasStopped();
}
diff --git a/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch
index 0e52c845e6..be87bfcc03 100644
--- a/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch
+++ b/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Option for maximum exp value when merging orbs
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4e0b6798754710e9fa598016938f033ae17b8a09..e9172da1b88ea57415df041178ca939550da83cb 100644
+index 39d710d98ca5435e7645ab91c109090c42ffc52f..195735de5f35c0d80a8c5ae4bca20f149ce49f90 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -688,16 +688,30 @@ public class CraftEventFactory {
+@@ -690,16 +690,30 @@ public class CraftEventFactory {
net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity;
double radius = world.spigotConfig.expMerge;
if (radius > 0) {
diff --git a/patches/server/0395-ExperienceOrbMergeEvent.patch b/patches/server/0395-ExperienceOrbMergeEvent.patch
index 98a256f164..f0074453c8 100644
--- a/patches/server/0395-ExperienceOrbMergeEvent.patch
+++ b/patches/server/0395-ExperienceOrbMergeEvent.patch
@@ -9,10 +9,10 @@ Plugins can cancel this if they want to ensure experience orbs do not lose impor
metadata such as spawn reason, or conditionally move data from source to target.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index e9172da1b88ea57415df041178ca939550da83cb..dedc3cec245b120af3266e23cdf7ea8098f45e96 100644
+index 195735de5f35c0d80a8c5ae4bca20f149ce49f90..c634a4b0d835df3ad6129ca03e11668f715ab8d2 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -698,7 +698,7 @@ public class CraftEventFactory {
+@@ -700,7 +700,7 @@ public class CraftEventFactory {
if (e instanceof net.minecraft.world.entity.ExperienceOrb) {
net.minecraft.world.entity.ExperienceOrb loopItem = (net.minecraft.world.entity.ExperienceOrb) e;
// Paper start
diff --git a/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch
index 3f59b17b5f..65b6451503 100644
--- a/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch
+++ b/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch
@@ -22,10 +22,10 @@ index fdaf757cbbc90841747989add56c13f252f645e5..6b7bacb0ea667c488b09da8c2a8a685d
// CraftBukkit end
this.getConnection().stop();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index dd7305a316c72b55c74c226e2edc4d6a8a2b8d37..92a6b6e838336c086ab5fc534ec8bb2d94e3453a 100644
+index ac8ed31a991e20b7584e98a8923614f6ecb97d38..509927dc2a8d7f4968470130cde346d039aa50d4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1018,6 +1018,31 @@ public final class CraftServer implements Server {
+@@ -1020,6 +1020,31 @@ public final class CraftServer implements Server {
org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload
}
diff --git a/patches/server/0411-Prevent-position-desync-in-playerconnection-causing-.patch b/patches/server/0411-Prevent-position-desync-in-playerconnection-causing-.patch
index e09841f2b5..543b03cce0 100644
--- a/patches/server/0411-Prevent-position-desync-in-playerconnection-causing-.patch
+++ b/patches/server/0411-Prevent-position-desync-in-playerconnection-causing-.patch
@@ -14,10 +14,10 @@ behaviour, we need to move all of this dangerous logic outside
of the move call and into an appropriate place in the tick method.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e2ee006d6b6971b15741f304945bbe480789079b..00e10043b00584595665865c1c8dc692db8ba020 100644
+index c251202cb6b69b4dfa46b6836c6da1664f533738..3f9f2e4b64df72f3f01aed191d57766978c5886c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1340,6 +1340,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1341,6 +1341,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/0414-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0414-Add-and-implement-PlayerRecipeBookClickEvent.patch
index 81e3b77ff5..455db3f928 100644
--- a/patches/server/0414-Add-and-implement-PlayerRecipeBookClickEvent.patch
+++ b/patches/server/0414-Add-and-implement-PlayerRecipeBookClickEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 00e10043b00584595665865c1c8dc692db8ba020..2d9e7baba170e8734abe0601f3446fce1f56ae13 100644
+index 3f9f2e4b64df72f3f01aed191d57766978c5886c..292a80afecb7a67e5e5900578867612d91ca82a5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2958,16 +2958,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2959,16 +2959,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/0417-Add-permission-for-command-blocks.patch b/patches/server/0417-Add-permission-for-command-blocks.patch
index 9c9308838b..fd5bb978b8 100644
--- a/patches/server/0417-Add-permission-for-command-blocks.patch
+++ b/patches/server/0417-Add-permission-for-command-blocks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for command blocks
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
-index 58a1a54b676922ef0862dcab98e7aada5de80311..cf47536a2e37d53406fc9cb3f09095e034af8e15 100644
+index f47fcae72d48cd410a4ac3e0a4bd21f42fae7eec..345bae8d145abd8357f4b71f4977e5850b980ff4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -404,7 +404,7 @@ public class ServerPlayerGameMode {
@@ -18,10 +18,10 @@ index 58a1a54b676922ef0862dcab98e7aada5de80311..cf47536a2e37d53406fc9cb3f09095e0
return false;
} else if (this.player.blockActionRestricted(this.level, pos, this.gameModeForPlayer)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 2d9e7baba170e8734abe0601f3446fce1f56ae13..b664a4ae7b10ce3ea83186a6112c0db0cbd6112a 100644
+index 292a80afecb7a67e5e5900578867612d91ca82a5..6add371484deca6ed041e434fea5dc54c8db12d9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -777,7 +777,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -778,7 +778,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (!this.server.isCommandBlockEnabled()) {
this.player.sendSystemMessage(Component.translatable("advMode.notEnabled"));
@@ -30,7 +30,7 @@ index 2d9e7baba170e8734abe0601f3446fce1f56ae13..b664a4ae7b10ce3ea83186a6112c0db0
this.player.sendSystemMessage(Component.translatable("advMode.notAllowed"));
} else {
BaseCommandBlock commandblocklistenerabstract = null;
-@@ -844,7 +844,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -845,7 +845,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (!this.server.isCommandBlockEnabled()) {
this.player.sendSystemMessage(Component.translatable("advMode.notEnabled"));
@@ -66,7 +66,7 @@ index 061a56e3828767cd6576d5a9edde5f3498e609d0..2e7c03b00bc941b86df6a7f1b2b188c9
return InteractionResult.sidedSuccess(world.isClientSide);
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
-index 70d3949616c63038ad3e9bd1069db5ea2fb3f3b8..8e06bc11fb28baee3407bbfe9d7b3689d6f85ff2 100644
+index 245ad120a36b6defca7e6889faae1ca5fc33d0c7..e0e61115ada9a49d4c528c5d4e02a1ca571d9531 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
@@ -16,6 +16,7 @@ public final class CraftDefaultPermissions {
diff --git a/patches/server/0419-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0419-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index ac9033c81d..cfd462ddb2 100644
--- a/patches/server/0419-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0419-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -89,10 +89,10 @@ index 49d341605ac7e82c5dcdcc960b6581aa7e1fb8f3..a3c1797549e3b149f425f857bbf8564c
playerlist.sendPlayerPermissionLevel(this);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 919a45d3a77330b9e2780fd7f2e96f5a4917b228..5cf42146e1885fe1427ac7a248e2ba6dc1b4128b 100644
+index 6add371484deca6ed041e434fea5dc54c8db12d9..0080136d9aaead083fd1d94d2f7a0df250e3d9d8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3161,7 +3161,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3162,7 +3162,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()) {
@@ -102,10 +102,10 @@ index 919a45d3a77330b9e2780fd7f2e96f5a4917b228..5cf42146e1885fe1427ac7a248e2ba6d
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 92a6b6e838336c086ab5fc534ec8bb2d94e3453a..23faeac3cf5a78ea869744d582fbe631a3d6dc44 100644
+index 509927dc2a8d7f4968470130cde346d039aa50d4..a51cebb2f0f2ade695bb9f8c2b07b066c4872875 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -957,8 +957,8 @@ public final class CraftServer implements Server {
+@@ -959,8 +959,8 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
for (ServerLevel world : this.console.getAllLevels()) {
diff --git a/patches/server/0423-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0423-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index 320730933c..36e24b8889 100644
--- a/patches/server/0423-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/patches/server/0423-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -22,10 +22,10 @@ wants it to collect even faster, they can restore that setting back to 1 instead
Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 23faeac3cf5a78ea869744d582fbe631a3d6dc44..b1162c638a87714ba9e54a24f10f229d303123bd 100644
+index a51cebb2f0f2ade695bb9f8c2b07b066c4872875..a0e67773f4af7e35edad2535f95426308868c69b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -384,7 +384,7 @@ public final class CraftServer implements Server {
+@@ -386,7 +386,7 @@ public final class CraftServer implements Server {
this.overrideSpawnLimits();
console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
@@ -34,7 +34,7 @@ index 23faeac3cf5a78ea869744d582fbe631a3d6dc44..b1162c638a87714ba9e54a24f10f229d
this.minimumAPI = this.configuration.getString("settings.minimum-api");
this.loadIcon();
-@@ -937,7 +937,7 @@ public final class CraftServer implements Server {
+@@ -939,7 +939,7 @@ public final class CraftServer implements Server {
this.console.setMotd(config.motd);
this.overrideSpawnLimits();
this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose"));
diff --git a/patches/server/0433-Add-PrepareResultEvent.patch b/patches/server/0433-Add-PrepareResultEvent.patch
index 963de37d64..911e4ae943 100644
--- a/patches/server/0433-Add-PrepareResultEvent.patch
+++ b/patches/server/0433-Add-PrepareResultEvent.patch
@@ -94,10 +94,10 @@ index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..70ecc3f673ebd56b65ad901e10f40c28
private void setupRecipeList(Container input, ItemStack stack) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 2aa0026d2df9d09f8770280d8f5a9b43e3f4e948..f4040a1187b49a3aaaca91ff983433b404765043 100644
+index c634a4b0d835df3ad6129ca03e11668f715ab8d2..265a30230c0dde7bb48f5ed0e6ebb91556d5b51f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1711,26 +1711,53 @@ public class CraftEventFactory {
+@@ -1718,26 +1718,53 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0451-Add-BellRingEvent.patch b/patches/server/0451-Add-BellRingEvent.patch
index 6453b546ee..539214613a 100644
--- a/patches/server/0451-Add-BellRingEvent.patch
+++ b/patches/server/0451-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 f4040a1187b49a3aaaca91ff983433b404765043..a19979dac60552791b7a8dd4920ba75b525340ca 100644
+index 265a30230c0dde7bb48f5ed0e6ebb91556d5b51f..e2b09b575416a47277c53c6d49572d0845cb8a72 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -367,10 +367,11 @@ public class CraftEventFactory {
+@@ -369,10 +369,11 @@ public class CraftEventFactory {
return tradeSelectEvent;
}
diff --git a/patches/server/0459-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0459-Create-HoverEvent-from-ItemStack-Entity.patch
index a8eadef392..9abcb54dc7 100644
--- a/patches/server/0459-Create-HoverEvent-from-ItemStack-Entity.patch
+++ b/patches/server/0459-Create-HoverEvent-from-ItemStack-Entity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 709c0e9ba7b33e97666ac74412761bb0e770a037..aa90b0bc1ca3f79a38b39442bf87e376cd2d73ae 100644
+index 8a89fd0f771e0df439dc9070df7dfa6f2cbd5de2..2251c06ae08a846129b1cef4842c112708a6ecf4 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -491,4 +491,41 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -530,4 +530,41 @@ public final class CraftItemFactory implements ItemFactory {
return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null;
}
// Paper end - add getI18NDisplayName
diff --git a/patches/server/0461-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0461-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index 232213f6f0..e3fb5a8319 100644
--- a/patches/server/0461-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0461-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 5cf42146e1885fe1427ac7a248e2ba6dc1b4128b..5566a7f225ea16eeb47c7bd3ad41515383574dfa 100644
+index 0080136d9aaead083fd1d94d2f7a0df250e3d9d8..7854073fccf6c3c2eff1acf0e4e6eac0dfcb9919 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -657,7 +657,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -21,7 +21,7 @@ index 5cf42146e1885fe1427ac7a248e2ba6dc1b4128b..5566a7f225ea16eeb47c7bd3ad415153
this.lastGoodX = this.awaitingPositionFromClient.x;
this.lastGoodY = this.awaitingPositionFromClient.y;
this.lastGoodZ = this.awaitingPositionFromClient.z;
-@@ -1556,7 +1556,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1557,7 +1557,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// CraftBukkit end
this.awaitingTeleportTime = this.tickCount;
@@ -31,7 +31,7 @@ index 5cf42146e1885fe1427ac7a248e2ba6dc1b4128b..5566a7f225ea16eeb47c7bd3ad415153
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index eedb6db6a5e4879847ea593975d6f6f1de954642..1035faf0a7af0cae34065c93da23736bcfe2f0ef 100644
+index 78af47c54f8dd3b1b4f81b740bcd438132c27947..d751bae633161abf9aa63197239e519c00676edf 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -159,6 +159,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -69,7 +69,7 @@ index 369298dfd437c1c83801f3d4ba63484ee1b969fe..ae2b95f53e875716489821dc9b0a3a35
if (entity instanceof Mob) {
Mob entityinsentient = (Mob) entity;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index fa1ebfb89eeb129abf6263ea93fb14e5b7607610..a5751fa22a6638abae155de483a769f12b125650 100644
+index 0498a83ceb4c009b76086dc44f80395efaab797e..747445306a19db2b89fa7cdfc5dcd7f361a69f54 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -579,7 +579,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0471-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0471-Fix-for-large-move-vectors-crashing-server.patch
index 7809d6d781..6d40d79362 100644
--- a/patches/server/0471-Fix-for-large-move-vectors-crashing-server.patch
+++ b/patches/server/0471-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 5566a7f225ea16eeb47c7bd3ad41515383574dfa..e4c4984285162523285b19de2e0c81b076b9c33b 100644
+index 7854073fccf6c3c2eff1acf0e4e6eac0dfcb9919..12f88573544269bc7276ca51d7f31be98bd60654 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -464,9 +464,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -57,7 +57,7 @@ index 5566a7f225ea16eeb47c7bd3ad41515383574dfa..e4c4984285162523285b19de2e0c81b0
boolean flag1 = entity.verticalCollisionBelow;
if (entity instanceof LivingEntity) {
-@@ -1248,7 +1259,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1249,7 +1260,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d7 = d1 - this.firstGoodY;
double d8 = d2 - this.firstGoodZ;
double d9 = this.player.getDeltaMovement().lengthSqr();
@@ -77,7 +77,7 @@ index 5566a7f225ea16eeb47c7bd3ad41515383574dfa..e4c4984285162523285b19de2e0c81b0
if (this.player.isSleeping()) {
if (d10 > 1.0D) {
-@@ -1300,9 +1322,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1301,9 +1323,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = this.player.getBoundingBox();
diff --git a/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
index f2e0ca17ed..387c4872e4 100644
--- a/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
+++ b/patches/server/0479-Add-getOfflinePlayerIfCached-String.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String)
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b1162c638a87714ba9e54a24f10f229d303123bd..98fe64fcab9d0f8497794ccb8df563be782798d9 100644
+index a0e67773f4af7e35edad2535f95426308868c69b..99942a9292056998026ef7e2293e882d9b61dfd1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1814,6 +1814,28 @@ public final class CraftServer implements Server {
+@@ -1877,6 +1877,28 @@ public final class CraftServer implements Server {
return result;
}
diff --git a/patches/server/0498-Limit-recipe-packets.patch b/patches/server/0498-Limit-recipe-packets.patch
index 4b41c6795a..fe3937e4ca 100644
--- a/patches/server/0498-Limit-recipe-packets.patch
+++ b/patches/server/0498-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 e4c4984285162523285b19de2e0c81b076b9c33b..059d2521bb2b86ccafd4b51a014bc6822692d854 100644
+index 12f88573544269bc7276ca51d7f31be98bd60654..d8ae73b68e449a2ab7e39acf3c120248948480d6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -254,6 +254,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -24,7 +24,7 @@ index e4c4984285162523285b19de2e0c81b076b9c33b..059d2521bb2b86ccafd4b51a014bc682
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -2974,6 +2976,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2975,6 +2977,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) {
diff --git a/patches/server/0503-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0503-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
index e2a2d2a3a3..f6295463bd 100644
--- a/patches/server/0503-Add-OBSTRUCTED-reason-to-BedEnterResult.patch
+++ b/patches/server/0503-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 a19979dac60552791b7a8dd4920ba75b525340ca..826bb30bd0075bb7827c13e43c2a1ce7a814f0ce 100644
+index e2b09b575416a47277c53c6d49572d0845cb8a72..84f23d00a42af612d4ef636d8841db089e77270f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -302,6 +302,10 @@ public class CraftEventFactory {
+@@ -304,6 +304,10 @@ public class CraftEventFactory {
return BedEnterResult.TOO_FAR_AWAY;
case NOT_SAFE:
return BedEnterResult.NOT_SAFE;
diff --git a/patches/server/0515-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0515-Fix-interact-event-not-being-called-sometimes.patch
index 4670eeb506..8ba9b9c78d 100644
--- a/patches/server/0515-Fix-interact-event-not-being-called-sometimes.patch
+++ b/patches/server/0515-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 <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 059d2521bb2b86ccafd4b51a014bc6822692d854..95cc9134244eb226480969674201cd234a055964 100644
+index d8ae73b68e449a2ab7e39acf3c120248948480d6..11f62618aa36cbc7c12e477d6a8c773c86e59a21 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1733,7 +1733,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1734,7 +1734,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 059d2521bb2b86ccafd4b51a014bc6822692d854..95cc9134244eb226480969674201cd23
this.player.swing(enumhand, true);
}
}
-@@ -2295,13 +2295,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2296,13 +2296,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d3 = this.player.gameMode.getGameModeForPlayer() == GameType.CREATIVE ? 5.0D : 4.5D;
// 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/0522-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0522-Implemented-BlockFailedDispenseEvent.patch
index 4269a73f28..3b210a9abe 100644
--- a/patches/server/0522-Implemented-BlockFailedDispenseEvent.patch
+++ b/patches/server/0522-Implemented-BlockFailedDispenseEvent.patch
@@ -32,10 +32,10 @@ index 7dd0570b2457c612484ab89a8efcedd094c4772c..b1ba2c1da9d7b59a5316574deb824740
} 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 826bb30bd0075bb7827c13e43c2a1ce7a814f0ce..ecbdddf42495e69bc899a017e1313a9f0c32f0c4 100644
+index 84f23d00a42af612d4ef636d8841db089e77270f..ba4c8e74e0e073b48b5cf1fad86eb670bc35586f 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2037,4 +2037,12 @@ public class CraftEventFactory {
+@@ -2044,4 +2044,12 @@ public class CraftEventFactory {
Bukkit.getPluginManager().callEvent(event);
return event;
}
diff --git a/patches/server/0537-Implement-BlockPreDispenseEvent.patch b/patches/server/0537-Implement-BlockPreDispenseEvent.patch
index 7fb05f89fa..9950944d95 100644
--- a/patches/server/0537-Implement-BlockPreDispenseEvent.patch
+++ b/patches/server/0537-Implement-BlockPreDispenseEvent.patch
@@ -17,10 +17,10 @@ index 5cf5b451fecb1ff04d0c4aca1fb0b702c7f99bdf..9b1e51c1d95da885c80c6d05000d8343
tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index ecbdddf42495e69bc899a017e1313a9f0c32f0c4..46ab61bf75bf15bb6156dc9204e4071779e812e6 100644
+index ba4c8e74e0e073b48b5cf1fad86eb670bc35586f..772de0a5e9c5bb6532becfb322011b9b6d896996 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2044,5 +2044,11 @@ public class CraftEventFactory {
+@@ -2051,5 +2051,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/0541-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0541-Add-dropLeash-variable-to-EntityUnleashEvent.patch
index 93cff1f7ad..611e5093da 100644
--- a/patches/server/0541-Add-dropLeash-variable-to-EntityUnleashEvent.patch
+++ b/patches/server/0541-Add-dropLeash-variable-to-EntityUnleashEvent.patch
@@ -122,11 +122,11 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63
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 46ab61bf75bf15bb6156dc9204e4071779e812e6..5bc937175a00c836a3a855780e2b8fd9a0005c07 100644
+index 772de0a5e9c5bb6532becfb322011b9b6d896996..571d9d48f4d4f45e47f17928d106432b438ff95d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1634,8 +1634,10 @@ public class CraftEventFactory {
- return itemInHand;
+@@ -1641,8 +1641,10 @@ public class CraftEventFactory {
+ Bukkit.getPluginManager().callEvent(new PlayerRecipeBookSettingsChangeEvent(player.getBukkitEntity(), bukkitType, open, filter));
}
- public static PlayerUnleashEntityEvent callPlayerUnleashEntityEvent(Mob entity, net.minecraft.world.entity.player.Player player, InteractionHand enumhand) {
diff --git a/patches/server/0547-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0547-Allow-adding-items-to-BlockDropItemEvent.patch
index 18e781092c..e7d78b6fdc 100644
--- a/patches/server/0547-Allow-adding-items-to-BlockDropItemEvent.patch
+++ b/patches/server/0547-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 5bc937175a00c836a3a855780e2b8fd9a0005c07..47ebaf72a087387f9832cfd83f748c8ef3e9c410 100644
+index 571d9d48f4d4f45e47f17928d106432b438ff95d..e09fe6cb64556820fe50e5a771c9f91eebdb8da4 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -451,13 +451,30 @@ public class CraftEventFactory {
+@@ -453,13 +453,30 @@ public class CraftEventFactory {
}
public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List<ItemEntity> items) {
diff --git a/patches/server/0561-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0561-Allow-using-signs-inside-spawn-protection.patch
index 4f612be1e2..2734a5afe5 100644
--- a/patches/server/0561-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0561-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 95cc9134244eb226480969674201cd234a055964..a4f10823242f412ccfece093ed0986512131c4ba 100644
+index 11f62618aa36cbc7c12e477d6a8c773c86e59a21..f4f492bc554c0abea75e613fbfc7e06c54cf47f4 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1725,7 +1725,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1726,7 +1726,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int i = this.player.level().getMaxBuildHeight();
if (blockposition.getY() < i) {
diff --git a/patches/server/0562-Expand-world-key-API.patch b/patches/server/0562-Expand-world-key-API.patch
index bd45d36dbb..f58e673dde 100644
--- a/patches/server/0562-Expand-world-key-API.patch
+++ b/patches/server/0562-Expand-world-key-API.patch
@@ -20,10 +20,10 @@ index 93f44ca0c8388935baaa41f9b0ebb6de2f6906bb..53b62be779bbb31723c4953221d8b5f2
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 98fe64fcab9d0f8497794ccb8df563be782798d9..44d74515165f1ebce5fb5c875ba9c4a53eab9980 100644
+index 99942a9292056998026ef7e2293e882d9b61dfd1..cbd139c6d11b28b788b96d4f403ef40d350529fd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1139,9 +1139,15 @@ public final class CraftServer implements Server {
+@@ -1141,9 +1141,15 @@ public final class CraftServer implements Server {
File folder = new File(this.getWorldContainer(), name);
World world = this.getWorld(name);
@@ -41,7 +41,7 @@ index 98fe64fcab9d0f8497794ccb8df563be782798d9..44d74515165f1ebce5fb5c875ba9c4a5
if (folder.exists()) {
Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name);
-@@ -1228,7 +1234,7 @@ public final class CraftServer implements Server {
+@@ -1230,7 +1236,7 @@ public final class CraftServer implements Server {
} else if (name.equals(levelName + "_the_end")) {
worldKey = net.minecraft.world.level.Level.END;
} else {
@@ -50,7 +50,7 @@ index 98fe64fcab9d0f8497794ccb8df563be782798d9..44d74515165f1ebce5fb5c875ba9c4a5
}
ServerLevel internal = (ServerLevel) new ServerLevel(this.console, this.console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11),
-@@ -1321,6 +1327,15 @@ public final class CraftServer implements Server {
+@@ -1323,6 +1329,15 @@ public final class CraftServer implements Server {
return null;
}
diff --git a/patches/server/0567-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0567-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index e8b8c0ce59..d0ba8dc9ef 100644
--- a/patches/server/0567-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/patches/server/0567-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 a4f10823242f412ccfece093ed0986512131c4ba..b84cc507ee467e61e90a31da1ca8568f0d947f6b 100644
+index f4f492bc554c0abea75e613fbfc7e06c54cf47f4..7dfaaf9fc460d84d87370ae3a0e081e8b21e8348 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1186,7 +1186,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1187,7 +1187,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
itemstack.addTagElement("pages", nbttaglist);
diff --git a/patches/server/0577-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0577-fix-PlayerItemHeldEvent-firing-twice.patch
index 13ba5fd753..b0a36b045a 100644
--- a/patches/server/0577-fix-PlayerItemHeldEvent-firing-twice.patch
+++ b/patches/server/0577-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 b84cc507ee467e61e90a31da1ca8568f0d947f6b..b1f7227cb63491f5899b9b9d8413715924d1b967 100644
+index 7dfaaf9fc460d84d87370ae3a0e081e8b21e8348..c795d07645c5dd1b7502ea443ce92e2a3b3ca8ee 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1894,6 +1894,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1895,6 +1895,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/0584-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0584-add-RespawnFlags-to-PlayerRespawnEvent.patch
index fe72810b24..aa48b1e763 100644
--- a/patches/server/0584-add-RespawnFlags-to-PlayerRespawnEvent.patch
+++ b/patches/server/0584-add-RespawnFlags-to-PlayerRespawnEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b1f7227cb63491f5899b9b9d8413715924d1b967..1c795202f3b5be8f7ee41724258b509aa5b1947d 100644
+index c795d07645c5dd1b7502ea443ce92e2a3b3ca8ee..4d641005076c200ffea9f30a5ee447d2b624ae09 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2628,7 +2628,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2629,7 +2629,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case PERFORM_RESPAWN:
if (this.player.wonGame) {
this.player.wonGame = false;
diff --git a/patches/server/0594-Add-basic-Datapack-API.patch b/patches/server/0594-Add-basic-Datapack-API.patch
index 39820340b7..8be755ff40 100644
--- a/patches/server/0594-Add-basic-Datapack-API.patch
+++ b/patches/server/0594-Add-basic-Datapack-API.patch
@@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 44d74515165f1ebce5fb5c875ba9c4a53eab9980..2bc30c803b311ac57323b4531556e4f5effb4437 100644
+index cbd139c6d11b28b788b96d4f403ef40d350529fd..4f6ba50ec5852b12fdb1b74a04f74e706e3019aa 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -303,6 +303,7 @@ public final class CraftServer implements Server {
+@@ -305,6 +305,7 @@ public final class CraftServer implements Server {
public boolean ignoreVanillaPermissions = false;
private final List<CraftPlayer> playerView;
public int reloadCount;
@@ -103,7 +103,7 @@ index 44d74515165f1ebce5fb5c875ba9c4a53eab9980..2bc30c803b311ac57323b4531556e4f5
public static Exception excessiveVelEx; // Paper - Velocity warnings
static {
-@@ -392,6 +393,7 @@ public final class CraftServer implements Server {
+@@ -394,6 +395,7 @@ public final class CraftServer implements Server {
if (this.configuration.getBoolean("settings.use-map-color-cache")) {
MapPalette.setMapColorCache(new CraftMapColorCache(this.logger));
}
@@ -111,7 +111,7 @@ index 44d74515165f1ebce5fb5c875ba9c4a53eab9980..2bc30c803b311ac57323b4531556e4f5
}
public boolean getCommandBlockOverride(String command) {
-@@ -2850,5 +2852,11 @@ public final class CraftServer implements Server {
+@@ -2913,5 +2915,11 @@ public final class CraftServer implements Server {
public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() {
return mobGoals;
}
diff --git a/patches/server/0596-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0596-additions-to-PlayerGameModeChangeEvent.patch
index f5ea880338..2e255ecf2e 100644
--- a/patches/server/0596-additions-to-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0596-additions-to-PlayerGameModeChangeEvent.patch
@@ -131,10 +131,10 @@ index 40ac674da09a5d28c3b691d8979b228b9c6a8a84..8a8b766d91d9e2328486e3156bd6a408
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1c795202f3b5be8f7ee41724258b509aa5b1947d..bca39612af8c9bed1e97697c42825fb7f128197c 100644
+index 4d641005076c200ffea9f30a5ee447d2b624ae09..71eb195d2f464a434a770e5299836c6fffd9bf8d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2637,7 +2637,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2638,7 +2638,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
@@ -144,7 +144,7 @@ index 1c795202f3b5be8f7ee41724258b509aa5b1947d..bca39612af8c9bed1e97697c42825fb7
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 69d0694f2f25ce51f40c7cd283e1591fe05ffe2c..ba6c3e838fd486a5b68a224c1c32ef38908e3125 100644
+index 980845e905f702fef698a5272f58e365ae936ac9..674084fa12cf1f7defd00e64a198e278855668d0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1552,7 +1552,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0599-Move-range-check-for-block-placing-up.patch b/patches/server/0599-Move-range-check-for-block-placing-up.patch
index 4553cc1ba0..a91002873b 100644
--- a/patches/server/0599-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0599-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 bca39612af8c9bed1e97697c42825fb7f128197c..ef66cd1bac6f80120c14c884d4de5036a3d1d9cc 100644
+index 71eb195d2f464a434a770e5299836c6fffd9bf8d..e579a249e3d441458aa05ea99787b668fae78021 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1711,6 +1711,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1712,6 +1712,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (itemstack.isItemEnabled(worldserver.enabledFeatures())) {
BlockHitResult movingobjectpositionblock = packet.getHitResult();
Vec3 vec3d = movingobjectpositionblock.getLocation();
diff --git a/patches/server/0600-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0600-Fix-and-optimise-world-force-upgrading.patch
index cb7fbee987..3096f18e1c 100644
--- a/patches/server/0600-Fix-and-optimise-world-force-upgrading.patch
+++ b/patches/server/0600-Fix-and-optimise-world-force-upgrading.patch
@@ -360,10 +360,10 @@ index b850dba2b0fa5bc762b170ed7083cf8904761f17..7dee0f7d49f3492c92fceff7750e6962
return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ()));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2bc30c803b311ac57323b4531556e4f5effb4437..6a860029247e1575329975060fb9c2d7e8c9f033 100644
+index 4f6ba50ec5852b12fdb1b74a04f74e706e3019aa..56c0677cab4ca77bbcf853a57d5bacc0042adb74 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1216,9 +1216,7 @@ public final class CraftServer implements Server {
+@@ -1218,9 +1218,7 @@ public final class CraftServer implements Server {
worlddata.checkName(name);
worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified());
@@ -374,7 +374,7 @@ index 2bc30c803b311ac57323b4531556e4f5effb4437..6a860029247e1575329975060fb9c2d7
long j = BiomeManager.obfuscateSeed(creator.seed());
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
-@@ -1229,6 +1227,13 @@ public final class CraftServer implements Server {
+@@ -1231,6 +1229,13 @@ public final class CraftServer implements Server {
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/patches/server/0602-Add-Unix-domain-socket-support.patch b/patches/server/0602-Add-Unix-domain-socket-support.patch
index c1d9e612c9..ad01611040 100644
--- a/patches/server/0602-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0602-Add-Unix-domain-socket-support.patch
@@ -93,10 +93,10 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..5f625acf04ddb56e3596d086252f9bfc
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ef66cd1bac6f80120c14c884d4de5036a3d1d9cc..24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0 100644
+index e579a249e3d441458aa05ea99787b668fae78021..b35f4ab4ff034f7b59f3970fc18af2f777ec2a40 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2460,6 +2460,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2461,6 +2461,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot Start
public SocketAddress getRawAddress()
{
diff --git a/patches/server/0608-Add-PlayerKickEvent-causes.patch b/patches/server/0608-Add-PlayerKickEvent-causes.patch
index dd0f8a66f6..8a96bc776f 100644
--- a/patches/server/0608-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0608-Add-PlayerKickEvent-causes.patch
@@ -197,7 +197,7 @@ index d660041805bcd1bb97cf347d8b1cfe5c65469f56..a0328cfbe4184a2c1dc895e96fa3fefb
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 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360473881f2 100644
+index b35f4ab4ff034f7b59f3970fc18af2f777ec2a40..ef1af985927b1291ccee1ff4f9dbd4fb556bdee6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -340,7 +340,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -245,7 +245,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
-@@ -723,7 +723,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -724,7 +724,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async
// CraftBukkit start
if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable
@@ -254,7 +254,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
// Paper start
-@@ -882,7 +882,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -883,7 +883,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - validate pick item position
if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -263,7 +263,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed
-@@ -1065,7 +1065,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1066,7 +1066,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!");
@@ -272,7 +272,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
byteTotal += byteLength;
-@@ -1088,14 +1088,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1089,14 +1089,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());
@@ -289,7 +289,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
this.lastBookTick = MinecraftServer.currentTick;
-@@ -1219,7 +1219,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1220,7 +1220,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))) {
@@ -298,7 +298,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
} else {
ServerLevel worldserver = this.player.serverLevel();
-@@ -1633,7 +1633,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1634,7 +1634,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.dropCount++;
if (this.dropCount >= 20) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!");
@@ -307,7 +307,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
}
-@@ -1916,7 +1916,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1917,7 +1917,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.resetLastActionTime();
} else {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -316,7 +316,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
}
}
-@@ -1929,7 +1929,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1930,7 +1930,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -325,7 +325,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -1962,7 +1962,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1963,7 +1963,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -334,7 +334,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2017,7 +2017,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2018,7 +2018,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void handleMessageDecodeFailure(SignedMessageChain.DecodeException exception) {
if (exception.shouldDisconnect()) {
@@ -343,7 +343,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
} else {
this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED));
}
-@@ -2048,7 +2048,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2049,7 +2049,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
@@ -352,7 +352,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return Optional.empty();
} else {
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment);
-@@ -2071,7 +2071,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2072,7 +2072,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (optional.isEmpty()) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -361,7 +361,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
}
return optional;
-@@ -2267,7 +2267,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2268,7 +2268,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// this.chatSpamTickCount += 20;
if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
// CraftBukkit end
@@ -370,7 +370,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
}
}
-@@ -2279,7 +2279,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2280,7 +2280,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());
@@ -379,7 +379,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
}
}
-@@ -2432,7 +2432,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2433,7 +2433,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (i > 4096) {
@@ -388,7 +388,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
}
}
-@@ -2489,7 +2489,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2490,7 +2490,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot Start
if ( entity == this.player && !this.player.isSpectator() )
{
@@ -397,7 +397,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
// Spigot End
-@@ -2588,7 +2588,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2589,7 +2589,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// CraftBukkit end
}
} else {
@@ -406,7 +406,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString());
}
}
-@@ -2997,7 +2997,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2998,7 +2998,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start
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) {
@@ -415,7 +415,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
return;
}
}
-@@ -3232,7 +3232,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3233,7 +3233,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) {
if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) {
@@ -424,7 +424,7 @@ index 24e3f3ee7f8af6ec9d61afd8e80e0909ee48c8f0..7f030cac8b3bc7d2d4b1c32ef5edc360
} else {
try {
SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator();
-@@ -3245,7 +3245,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3246,7 +3246,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());
@@ -488,7 +488,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ba6c3e838fd486a5b68a224c1c32ef38908e3125..34377bef2b359292d184ec89311f49dd234be53e 100644
+index 674084fa12cf1f7defd00e64a198e278855668d0..7b7afb768bbc75827cd0a03da568d2a82b16dca7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -586,7 +586,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0625-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0625-Ensure-disconnect-for-book-edit-is-called-on-main.patch
index 6d154d7e68..4774af5eee 100644
--- a/patches/server/0625-Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/0625-Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7f030cac8b3bc7d2d4b1c32ef5edc360473881f2..a1de622805f31e6de771b62cce94ad78dd8a526f 100644
+index ef1af985927b1291ccee1ff4f9dbd4fb556bdee6..dfd4e385e2aa3c0beabc956d46ce30b84e48ebcb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1095,7 +1095,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper end
// CraftBukkit start
if (this.lastBookTick + 20 > MinecraftServer.currentTick) {
diff --git a/patches/server/0629-Adds-PlayerArmSwingEvent.patch b/patches/server/0629-Adds-PlayerArmSwingEvent.patch
index 5aef5fc4e8..c31ebb50d3 100644
--- a/patches/server/0629-Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/0629-Adds-PlayerArmSwingEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Adds PlayerArmSwingEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a1de622805f31e6de771b62cce94ad78dd8a526f..c38d6ff1c4b22833ce8c99ec420741659becf4d2 100644
+index dfd4e385e2aa3c0beabc956d46ce30b84e48ebcb..cc099315b7ecd471d363679d39ca802692b8f962 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2317,7 +2317,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2318,7 +2318,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} // Paper end
// Arm swing animation
diff --git a/patches/server/0630-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0630-Fixes-kick-event-leave-message-not-being-sent.patch
index 160440f8ce..abfd6ed5e9 100644
--- a/patches/server/0630-Fixes-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0630-Fixes-kick-event-leave-message-not-being-sent.patch
@@ -50,10 +50,10 @@ index a0328cfbe4184a2c1dc895e96fa3fefbdc52bf09..598f807f0d0caac98b81e0e2991f1bd4
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 c38d6ff1c4b22833ce8c99ec420741659becf4d2..eabdaf85e904224f936154d415d183ba65e4dbbf 100644
+index cc099315b7ecd471d363679d39ca802692b8f962..c885f3dea2ef128758da59acba42765887ae41ee 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1855,6 +1855,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1856,6 +1856,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void onDisconnect(Component reason) {
@@ -66,7 +66,7 @@ index c38d6ff1c4b22833ce8c99ec420741659becf4d2..eabdaf85e904224f936154d415d183ba
// CraftBukkit start - Rarely it would send a disconnect line twice
if (this.processedDisconnect) {
return;
-@@ -1863,11 +1869,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1864,11 +1870,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString());
@@ -86,7 +86,7 @@ index c38d6ff1c4b22833ce8c99ec420741659becf4d2..eabdaf85e904224f936154d415d183ba
this.chatMessageChain.close();
// CraftBukkit start - Replace vanilla quit message handling with our own.
/*
-@@ -1877,7 +1889,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1878,7 +1890,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.disconnect();
// Paper start - Adventure
diff --git a/patches/server/0638-Add-System.out-err-catcher.patch b/patches/server/0638-Add-System.out-err-catcher.patch
index 6fd5f26dc3..2d4fef523b 100644
--- a/patches/server/0638-Add-System.out-err-catcher.patch
+++ b/patches/server/0638-Add-System.out-err-catcher.patch
@@ -105,10 +105,10 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 6a860029247e1575329975060fb9c2d7e8c9f033..675788beea6c9559d5764501e76d671abcba3f17 100644
+index 56c0677cab4ca77bbcf853a57d5bacc0042adb74..c47716b6136c4eaf55864ccc137652e82b620da4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -305,6 +305,7 @@ public final class CraftServer implements Server {
+@@ -307,6 +307,7 @@ public final class CraftServer implements Server {
public int reloadCount;
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
diff --git a/patches/server/0662-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0662-Add-ItemFactory-getSpawnEgg-API.patch
index 4fd7a361e7..2890a69389 100644
--- a/patches/server/0662-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0662-Add-ItemFactory-getSpawnEgg-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index aa90b0bc1ca3f79a38b39442bf87e376cd2d73ae..48a88dae70fdf2757537d4a90aa60046e6346323 100644
+index 2251c06ae08a846129b1cef4842c112708a6ecf4..50fa1f903b99edadaa3470c2a6e15a32ff23bc85 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -528,4 +528,19 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -567,4 +567,19 @@ public final class CraftItemFactory implements ItemFactory {
new net.md_5.bungee.api.chat.TextComponent(customName));
}
// Paper end - bungee hover events
diff --git a/patches/server/0663-Add-critical-damage-API.patch b/patches/server/0663-Add-critical-damage-API.patch
index 2485aabae6..b2d6f4c157 100644
--- a/patches/server/0663-Add-critical-damage-API.patch
+++ b/patches/server/0663-Add-critical-damage-API.patch
@@ -71,10 +71,10 @@ index 53de7f516aee20cb7b5db0648dea1c38d74e5d96..df7e044a585579534b3cad260abd74c9
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 47ebaf72a087387f9832cfd83f748c8ef3e9c410..98926c017b41226006b7bcd0e106d493c3fec3c1 100644
+index e09fe6cb64556820fe50e5a771c9f91eebdb8da4..b0062d414cec76c47ab6b30738706d1e9ed3646c 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1044,7 +1044,7 @@ public class CraftEventFactory {
+@@ -1046,7 +1046,7 @@ public class CraftEventFactory {
} else {
damageCause = DamageCause.ENTITY_EXPLOSION;
}
@@ -83,7 +83,7 @@ index 47ebaf72a087387f9832cfd83f748c8ef3e9c410..98926c017b41226006b7bcd0e106d493
}
event.setCancelled(cancelled);
-@@ -1076,7 +1076,7 @@ public class CraftEventFactory {
+@@ -1078,7 +1078,7 @@ public class CraftEventFactory {
cause = DamageCause.SONIC_BOOM;
}
@@ -92,7 +92,7 @@ index 47ebaf72a087387f9832cfd83f748c8ef3e9c410..98926c017b41226006b7bcd0e106d493
} else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) {
EntityDamageEvent event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.VOID, modifiers, modifierFunctions);
event.setCancelled(cancelled);
-@@ -1146,7 +1146,7 @@ public class CraftEventFactory {
+@@ -1148,7 +1148,7 @@ public class CraftEventFactory {
} else {
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.getMsgId()));
}
@@ -101,7 +101,7 @@ index 47ebaf72a087387f9832cfd83f748c8ef3e9c410..98926c017b41226006b7bcd0e106d493
event.setCancelled(cancelled);
CraftEventFactory.callEvent(event);
if (!event.isCancelled()) {
-@@ -1195,20 +1195,28 @@ public class CraftEventFactory {
+@@ -1197,20 +1197,28 @@ public class CraftEventFactory {
}
if (cause != null) {
diff --git a/patches/server/0672-Improve-and-expand-AsyncCatcher.patch b/patches/server/0672-Improve-and-expand-AsyncCatcher.patch
index 810a3aa123..23aaa03d81 100644
--- a/patches/server/0672-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0672-Improve-and-expand-AsyncCatcher.patch
@@ -17,10 +17,10 @@ Async catch modifications to critical entity state
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 43e9f9ce338bd1cf803ad707d318cd2435231426..079c7ffa2b1ff8bbb5e51553ad94713d0339e9f4 100644
+index f9c9c3b2f9c6796e4799a829dffc86b90b62559f..e6251951d677e2ac71e738070914997e01086be0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1543,6 +1543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1544,6 +1544,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
diff --git a/patches/server/0673-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0673-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 3201888a6b..c74a59df71 100644
--- a/patches/server/0673-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0673-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -278,10 +278,10 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..d08c7b0b52065980f1f13c5533ff6355
// Paper start - add parameters and int ret type
spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 675788beea6c9559d5764501e76d671abcba3f17..146b5bd0a081afa8aee0e268bfaf8eb4390eacee 100644
+index c47716b6136c4eaf55864ccc137652e82b620da4..3f83b3e54747c42a1321137bb668c6a457677d05 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2184,6 +2184,11 @@ public final class CraftServer implements Server {
+@@ -2247,6 +2247,11 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
diff --git a/patches/server/0697-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0697-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index 63f447f944..301d6807c0 100644
--- a/patches/server/0697-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0697-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 079c7ffa2b1ff8bbb5e51553ad94713d0339e9f4..f1c0ff296b58aa020b00d6681ecf3cb4db09f561 100644
+index e6251951d677e2ac71e738070914997e01086be0..67d9e636b424a91ab1f1478b757016099ca915dc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -734,6 +734,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -735,6 +735,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper end
// CraftBukkit end
diff --git a/patches/server/0718-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0718-Hide-unnecessary-itemmeta-from-clients.patch
index 6553879c95..1bdad58ffc 100644
--- a/patches/server/0718-Hide-unnecessary-itemmeta-from-clients.patch
+++ b/patches/server/0718-Hide-unnecessary-itemmeta-from-clients.patch
@@ -18,10 +18,10 @@ index 8d2870c780c4c253f6570c7ef73f6e7c2ccc46ad..0cbb5dd17c5b37ad90ce11a31b644707
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f1c0ff296b58aa020b00d6681ecf3cb4db09f561..88c543881c8e7453fffc08e1d5a3226505a8889e 100644
+index 67d9e636b424a91ab1f1478b757016099ca915dc..2898712d34dc5dd1f2e505746c515f773de2b0d8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2550,8 +2550,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2551,8 +2551,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Refresh the current entity metadata
entity.getEntityData().refresh(ServerGamePacketListenerImpl.this.player);
// SPIGOT-7136 - Allays
diff --git a/patches/server/0723-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0723-Allow-delegation-to-vanilla-chunk-gen.patch
index 4feabbc623..de93c2dcbb 100644
--- a/patches/server/0723-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0723-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 146b5bd0a081afa8aee0e268bfaf8eb4390eacee..2aacf05d0f79a5418f31a5411b0d06e034f8a0da 100644
+index 3f83b3e54747c42a1321137bb668c6a457677d05..eccfd44eaeb20db22d77fc85307d2a6caa80a587 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2364,6 +2364,88 @@ public final class CraftServer implements Server {
+@@ -2427,6 +2427,88 @@ public final class CraftServer implements Server {
return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters
}
diff --git a/patches/server/0725-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0725-Optimise-collision-checking-in-player-move-packet-ha.patch
index 9e795d10e4..b3b8731f89 100644
--- a/patches/server/0725-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/0725-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
CHECK ME
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c6a17bf6d 100644
+index 2898712d34dc5dd1f2e505746c515f773de2b0d8..5911fc7009a4bdf99f8016d440fbeb1ae9b44441 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -534,7 +534,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -90,7 +90,7 @@ index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c
}
@Override
-@@ -1234,7 +1268,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1235,7 +1269,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (this.awaitingPositionFromClient != null) {
@@ -99,7 +99,7 @@ index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c
this.awaitingTeleportTime = this.tickCount;
this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot());
}
-@@ -1327,7 +1361,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1328,7 +1362,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -108,7 +108,7 @@ index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c
d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
-@@ -1369,6 +1403,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1370,6 +1404,7 @@ 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
@@ -116,7 +116,7 @@ index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c
// Paper start - prevent position desync
if (this.awaitingPositionFromClient != null) {
return; // ... thanks Mojang for letting move calls teleport across dimensions.
-@@ -1387,11 +1422,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1388,11 +1423,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag2 = false;
if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
@@ -142,7 +142,7 @@ index 88c543881c8e7453fffc08e1d5a3226505a8889e..1a44358117e5f72789dd270ce4311f6c
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 {
-@@ -1477,6 +1524,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1478,6 +1525,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
diff --git a/patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 4ed71d8ecc..91ca72093c 100644
--- a/patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0743-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -18,10 +18,10 @@ index f7c1d07c95f7b67e32bd6679af88612aec74f54f..9d4c9368fcc3a44e452c1b71b5bdb43d
biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2aacf05d0f79a5418f31a5411b0d06e034f8a0da..c2ea7afae83b1cbecff86c519b9c6983c083d2a1 100644
+index eccfd44eaeb20db22d77fc85307d2a6caa80a587..1152e408dc13a9b54507707d7a34e9c63655f02c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1223,7 +1223,7 @@ public final class CraftServer implements Server {
+@@ -1225,7 +1225,7 @@ public final class CraftServer implements Server {
List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata));
LevelStem worlddimension = iregistry.get(actualDimension);
diff --git a/patches/server/0751-Kick-on-main-for-illegal-chat.patch b/patches/server/0751-Kick-on-main-for-illegal-chat.patch
index 90fe5ee6ad..da30a2123a 100644
--- a/patches/server/0751-Kick-on-main-for-illegal-chat.patch
+++ b/patches/server/0751-Kick-on-main-for-illegal-chat.patch
@@ -7,10 +7,10 @@ Makes the PlayerKickEvent fire on the main thread for
illegal characters or chat out-of-order errors.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1a44358117e5f72789dd270ce4311f6c6a17bf6d..5dad35d1b38ef4e82d1480ccc04d306dcd6aa9c8 100644
+index 5911fc7009a4bdf99f8016d440fbeb1ae9b44441..69d72c411ad6d8f9ee35bd71307d088c17564aa0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2021,7 +2021,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2022,7 +2022,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// CraftBukkit end
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) {
@@ -20,7 +20,7 @@ index 1a44358117e5f72789dd270ce4311f6c6a17bf6d..5dad35d1b38ef4e82d1480ccc04d306d
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2054,7 +2056,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2055,7 +2057,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleChatCommand(ServerboundChatCommandPacket packet) {
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) {
@@ -30,7 +30,7 @@ index 1a44358117e5f72789dd270ce4311f6c6a17bf6d..5dad35d1b38ef4e82d1480ccc04d306d
} else {
Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages());
-@@ -2140,7 +2144,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2141,7 +2145,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
diff --git a/patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch
index b92c1c2856..0abfde5122 100644
--- a/patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch
+++ b/patches/server/0758-API-for-creating-command-sender-which-forwards-feedb.patch
@@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c2ea7afae83b1cbecff86c519b9c6983c083d2a1..0bca5e89bc8df486b44c0921e217d0546a490d4e 100644
+index 1152e408dc13a9b54507707d7a34e9c63655f02c..0710929b44d721c1996af57186ff2e66b2c305ab 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2015,6 +2015,13 @@ public final class CraftServer implements Server {
+@@ -2078,6 +2078,13 @@ public final class CraftServer implements Server {
return this.console.console;
}
diff --git a/patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
index 56af4853a3..f60a24d4c2 100644
--- a/patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
+++ b/patches/server/0762-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit
Copies appropriate checks from CraftWorld#getSpawnLimit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 0bca5e89bc8df486b44c0921e217d0546a490d4e..93b101b8435fed77950e508901f380e20f943b74 100644
+index 0710929b44d721c1996af57186ff2e66b2c305ab..51094b7bb864e92c5928008b2db520bf2816bd9a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2192,6 +2192,8 @@ public final class CraftServer implements Server {
+@@ -2255,6 +2255,8 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
// Paper start
diff --git a/patches/server/0763-Add-GameEvent-tags.patch b/patches/server/0763-Add-GameEvent-tags.patch
index 02e72d2282..ed4ed1ccb8 100644
--- a/patches/server/0763-Add-GameEvent-tags.patch
+++ b/patches/server/0763-Add-GameEvent-tags.patch
@@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 93b101b8435fed77950e508901f380e20f943b74..2fd1d5c15a5231b0f889832ff1c57156ef46816d 100644
+index 51094b7bb864e92c5928008b2db520bf2816bd9a..c934b7751c591ece8004f2a25668ddfcc4cd0bc7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2613,6 +2613,15 @@ public final class CraftServer implements Server {
+@@ -2676,6 +2676,15 @@ public final class CraftServer implements Server {
return (org.bukkit.Tag<T>) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey);
}
}
@@ -65,7 +65,7 @@ index 93b101b8435fed77950e508901f380e20f943b74..2fd1d5c15a5231b0f889832ff1c57156
default -> throw new IllegalArgumentException();
}
-@@ -2645,6 +2654,13 @@ public final class CraftServer implements Server {
+@@ -2708,6 +2717,13 @@ public final class CraftServer implements Server {
net.minecraft.core.Registry<EntityType<?>> entityTags = BuiltInRegistries.ENTITY_TYPE;
return entityTags.getTags().map(pair -> (org.bukkit.Tag<T>) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList());
}
diff --git a/patches/server/0769-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0769-Put-world-into-worldlist-before-initing-the-world.patch
index 63add2e773..bfabb45ba3 100644
--- a/patches/server/0769-Put-world-into-worldlist-before-initing-the-world.patch
+++ b/patches/server/0769-Put-world-into-worldlist-before-initing-the-world.patch
@@ -23,10 +23,10 @@ index ebf31af53f26d33a745badbfc6fa4e7f84aea87d..9f56553b416df71ec60a3327a58d843b
if (worlddata.getCustomBossEvents() != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2fd1d5c15a5231b0f889832ff1c57156ef46816d..06f8b950bad67e890086db46d3cb9ec9ecbb0a2c 100644
+index c934b7751c591ece8004f2a25668ddfcc4cd0bc7..ca84472f533f980f3ec83de5b0002712f6720581 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1253,10 +1253,11 @@ public final class CraftServer implements Server {
+@@ -1255,10 +1255,11 @@ public final class CraftServer implements Server {
return null;
}
diff --git a/patches/server/0771-Custom-Potion-Mixes.patch b/patches/server/0771-Custom-Potion-Mixes.patch
index bbfbea8133..6fff830011 100644
--- a/patches/server/0771-Custom-Potion-Mixes.patch
+++ b/patches/server/0771-Custom-Potion-Mixes.patch
@@ -172,10 +172,10 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 06f8b950bad67e890086db46d3cb9ec9ecbb0a2c..1ed5a16881cba8eb1c5c72177572b9ef6bb7b686 100644
+index ca84472f533f980f3ec83de5b0002712f6720581..9df3deb1f3b277f71f0efb692ed23392a1630dd9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -306,6 +306,7 @@ public final class CraftServer implements Server {
+@@ -308,6 +308,7 @@ public final class CraftServer implements Server {
private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper
public static Exception excessiveVelEx; // Paper - Velocity warnings
private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper
@@ -183,7 +183,7 @@ index 06f8b950bad67e890086db46d3cb9ec9ecbb0a2c..1ed5a16881cba8eb1c5c72177572b9ef
static {
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
-@@ -335,7 +336,7 @@ public final class CraftServer implements Server {
+@@ -337,7 +338,7 @@ public final class CraftServer implements Server {
Enchantments.SHARPNESS.getClass();
org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations();
@@ -192,7 +192,7 @@ index 06f8b950bad67e890086db46d3cb9ec9ecbb0a2c..1ed5a16881cba8eb1c5c72177572b9ef
MobEffects.BLINDNESS.getClass();
PotionEffectType.stopAcceptingRegistrations();
// Ugly hack :(
-@@ -2977,5 +2978,10 @@ public final class CraftServer implements Server {
+@@ -3040,5 +3041,10 @@ public final class CraftServer implements Server {
return datapackManager;
}
diff --git a/patches/server/0776-More-Projectile-API.patch b/patches/server/0776-More-Projectile-API.patch
index d43871e79b..5cf60d9954 100644
--- a/patches/server/0776-More-Projectile-API.patch
+++ b/patches/server/0776-More-Projectile-API.patch
@@ -509,10 +509,10 @@ index c628594b981f276acae7b9337100d811f919631b..c8b65210d2416b5a293cb4bcc1b71f56
// 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 98926c017b41226006b7bcd0e106d493c3fec3c1..0d8a13fc70c139291fa26d6e8f9c38dbbc512e7d 100644
+index b0062d414cec76c47ab6b30738706d1e9ed3646c..f10d9922d5c6cf37ba64f520822a6668a86fd96d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -832,19 +832,19 @@ public class CraftEventFactory {
+@@ -834,19 +834,19 @@ public class CraftEventFactory {
/**
* PotionSplashEvent
*/
@@ -535,7 +535,7 @@ index 98926c017b41226006b7bcd0e106d493c3fec3c1..0d8a13fc70c139291fa26d6e8f9c38db
hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity();
}
-@@ -853,20 +853,20 @@ public class CraftEventFactory {
+@@ -855,20 +855,20 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0781-Implement-enchantWithLevels-API.patch b/patches/server/0781-Implement-enchantWithLevels-API.patch
index ab96d4c51c..03567d8a09 100644
--- a/patches/server/0781-Implement-enchantWithLevels-API.patch
+++ b/patches/server/0781-Implement-enchantWithLevels-API.patch
@@ -5,13 +5,25 @@ Subject: [PATCH] Implement enchantWithLevels API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 48a88dae70fdf2757537d4a90aa60046e6346323..6e91c7ccc36e088be60739dd71b287f0b922a055 100644
+index 50fa1f903b99edadaa3470c2a6e15a32ff23bc85..b72da22c626ff5c41e877209d9a5a2939526d18f 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -458,6 +458,21 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -492,8 +492,7 @@ public final class CraftItemFactory implements ItemFactory {
+ }
+
+ CraftItemStack craft = (CraftItemStack) itemStack;
+- EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures);
+- return craft;
++ return EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures).asBukkitCopy(); // Paper - fix broken implementation
}
// Paper start - Adventure
+@@ -582,4 +581,21 @@ public final class CraftItemFactory implements ItemFactory {
+ return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror();
+ }
+ // Paper end
++
++ // Paper start - enchantWithLevels API
+ @Override
+ public ItemStack enchantWithLevels(ItemStack itemStack, int levels, boolean allowTreasure, java.util.Random random) {
+ Preconditions.checkArgument(itemStack != null, "Argument 'itemStack' must not be null");
@@ -26,7 +38,5 @@ index 48a88dae70fdf2757537d4a90aa60046e6346323..6e91c7ccc36e088be60739dd71b287f0
+ final net.minecraft.world.item.ItemStack enchanted = net.minecraft.world.item.enchantment.EnchantmentHelper.enchantItem(new org.bukkit.craftbukkit.util.RandomSourceWrapper(random), internalStack, levels, allowTreasure);
+ return CraftItemStack.asCraftMirror(enchanted);
+ }
-+
- @Override
- public net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowItem> asHoverEvent(final ItemStack item, final java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowItem> op) {
- final net.minecraft.nbt.CompoundTag tag = CraftItemStack.asNMSCopy(item).getTag();
++ // Paper end - enchantWithLevels API
+ }
diff --git a/patches/server/0782-Fix-saving-in-unloadWorld.patch b/patches/server/0782-Fix-saving-in-unloadWorld.patch
index 727e9e5c96..8529b67172 100644
--- a/patches/server/0782-Fix-saving-in-unloadWorld.patch
+++ b/patches/server/0782-Fix-saving-in-unloadWorld.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld
Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1ed5a16881cba8eb1c5c72177572b9ef6bb7b686..2a4b28e36858397b8be69c4375e205cffa91d35c 100644
+index 9df3deb1f3b277f71f0efb692ed23392a1630dd9..694cea63c676757aac083e9bd541b33e720529a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1301,7 +1301,7 @@ public final class CraftServer implements Server {
+@@ -1303,7 +1303,7 @@ public final class CraftServer implements Server {
try {
if (save) {
diff --git a/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch
index c99d407f99..13a94d9cac 100644
--- a/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ b/patches/server/0785-Fix-new-block-data-for-EntityChangeBlockEvent.patch
@@ -196,10 +196,10 @@ index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449ab
}
// 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 0d8a13fc70c139291fa26d6e8f9c38dbbc512e7d..8496bca5c104335ebdddd28193ff4d455313203f 100644
+index f10d9922d5c6cf37ba64f520822a6668a86fd96d..914fb155cbd79d0a1c4fbd5389ae3a15e76cad61 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1411,11 +1411,11 @@ public class CraftEventFactory {
+@@ -1413,11 +1413,11 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch
index e1d3f11682..30492bd5ff 100644
--- a/patches/server/0793-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0793-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 fce18ec126c3019249d2630dce1d8efa9d8f326b..1a38e20ed90e2bb110a7ffbd9195b4b01650b17f 100644
+index df0aa82361cc7172c35f01c119912c5a936f19f9..17fe79afb31d58d8f444eca7285f77189bafa35d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3187,7 +3187,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3188,7 +3188,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
if (this.player.level().isLoaded(blockposition)) {
diff --git a/patches/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch
index a9456a58e4..bfb75d3a93 100644
--- a/patches/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch
+++ b/patches/server/0796-Pass-ServerLevel-for-gamerule-callbacks.patch
@@ -18,10 +18,10 @@ index 5a0a34ea500607b1370df3e5ee4c1ad64f252449..321675996b83fbe34d7e0d690eafe170
if (dedicatedserverproperties.enableQuery) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 1a38e20ed90e2bb110a7ffbd9195b4b01650b17f..b5a20f69f0df93e3786f9b27b17a2b0ab7c69a91 100644
+index 17fe79afb31d58d8f444eca7285f77189bafa35d..ab0a3fed682f6b2cd5e60224c3a0d2a55c69efe8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2751,7 +2751,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2752,7 +2752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
diff --git a/patches/server/0798-WorldCreator-keepSpawnLoaded.patch b/patches/server/0798-WorldCreator-keepSpawnLoaded.patch
index d83f7422f1..a91c469099 100644
--- a/patches/server/0798-WorldCreator-keepSpawnLoaded.patch
+++ b/patches/server/0798-WorldCreator-keepSpawnLoaded.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 2a4b28e36858397b8be69c4375e205cffa91d35c..1665d99aa45f708939dfc21d17a7b02182c7aefb 100644
+index 694cea63c676757aac083e9bd541b33e720529a5..45f6828ce1d08ec2af4ce2879ea6c75632135f4f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1248,7 +1248,7 @@ public final class CraftServer implements Server {
+@@ -1250,7 +1250,7 @@ public final class CraftServer implements Server {
ServerLevel internal = (ServerLevel) new ServerLevel(this.console, this.console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11),
worlddata.isDebugWorld(), j, creator.environment() == Environment.NORMAL ? list : ImmutableList.of(), true, this.console.overworld().getRandomSequences(), creator.environment(), generator, biomeProvider);
@@ -17,7 +17,7 @@ index 2a4b28e36858397b8be69c4375e205cffa91d35c..1665d99aa45f708939dfc21d17a7b021
if (!(this.worlds.containsKey(name.toLowerCase(java.util.Locale.ENGLISH)))) {
return null;
-@@ -1260,6 +1260,7 @@ public final class CraftServer implements Server {
+@@ -1262,6 +1262,7 @@ public final class CraftServer implements Server {
internal.setSpawnSettings(true, true);
// Paper - move up
diff --git a/patches/server/0807-Do-not-accept-invalid-client-settings.patch b/patches/server/0807-Do-not-accept-invalid-client-settings.patch
index 81f2f884ae..37641891a3 100644
--- a/patches/server/0807-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0807-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 b5a20f69f0df93e3786f9b27b17a2b0ab7c69a91..3017a4509cf112578b96dce9bd517256313ebcb8 100644
+index ab0a3fed682f6b2cd5e60224c3a0d2a55c69efe8..ac87735ff07ee0833727cdf8b62f443ce16a3216 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3311,6 +3311,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3312,6 +3312,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0814-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0814-Throw-exception-on-world-create-while-being-ticked.patch
index cdc81374d4..3c32ef7d50 100644
--- a/patches/server/0814-Throw-exception-on-world-create-while-being-ticked.patch
+++ b/patches/server/0814-Throw-exception-on-world-create-while-being-ticked.patch
@@ -45,10 +45,10 @@ index 18041f137157ca95639c0511f225bbb58356fe2b..47c984495a66fdbb10dea6bab33da78f
this.profiler.popPush("connection");
MinecraftTimings.connectionTimer.startTiming(); // Spigot
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 1665d99aa45f708939dfc21d17a7b02182c7aefb..c1229e3ce355fb324a0fe0c37b4d39fbdc60c7a3 100644
+index 45f6828ce1d08ec2af4ce2879ea6c75632135f4f..7405101ee0f499e7d49bc723fcc5be55d0c3ff6f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -876,6 +876,11 @@ public final class CraftServer implements Server {
+@@ -878,6 +878,11 @@ public final class CraftServer implements Server {
return new ArrayList<World>(this.worlds.values());
}
@@ -60,7 +60,7 @@ index 1665d99aa45f708939dfc21d17a7b02182c7aefb..c1229e3ce355fb324a0fe0c37b4d39fb
public DedicatedPlayerList getHandle() {
return this.playerList;
}
-@@ -1135,6 +1140,7 @@ public final class CraftServer implements Server {
+@@ -1137,6 +1142,7 @@ public final class CraftServer implements Server {
@Override
public World createWorld(WorldCreator creator) {
Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP");
@@ -68,7 +68,7 @@ index 1665d99aa45f708939dfc21d17a7b02182c7aefb..c1229e3ce355fb324a0fe0c37b4d39fb
Preconditions.checkArgument(creator != null, "WorldCreator cannot be null");
String name = creator.name();
-@@ -1275,6 +1281,7 @@ public final class CraftServer implements Server {
+@@ -1277,6 +1283,7 @@ public final class CraftServer implements Server {
@Override
public boolean unloadWorld(World world, boolean save) {
diff --git a/patches/server/0821-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0821-Don-t-broadcast-messages-to-command-blocks.patch
index d009bb5b66..0feaf1bbdd 100644
--- a/patches/server/0821-Don-t-broadcast-messages-to-command-blocks.patch
+++ b/patches/server/0821-Don-t-broadcast-messages-to-command-blocks.patch
@@ -20,10 +20,10 @@ index e05eb08a9c229b371887676da510df948b896a85..ceeedbd88c56c08ec8b047c9ca2f14cc
Date date = new Date();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index c1229e3ce355fb324a0fe0c37b4d39fbdc60c7a3..a148d03d746d4580777e1e193c07dad922a080e0 100644
+index 7405101ee0f499e7d49bc723fcc5be55d0c3ff6f..73442cb5ae468b0a342d5f8ffe3e5539172fb3e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1777,7 +1777,7 @@ public final class CraftServer implements Server {
+@@ -1840,7 +1840,7 @@ public final class CraftServer implements Server {
// Paper end
Set<CommandSender> recipients = new HashSet<>();
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
diff --git a/patches/server/0827-Add-some-minimal-debug-information-to-chat-packet-er.patch b/patches/server/0827-Add-some-minimal-debug-information-to-chat-packet-er.patch
index 1305d58c28..7ae9ebbdd4 100644
--- a/patches/server/0827-Add-some-minimal-debug-information-to-chat-packet-er.patch
+++ b/patches/server/0827-Add-some-minimal-debug-information-to-chat-packet-er.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add some minimal debug information to chat packet errors
TODO: potentially add some kick leeway
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 3017a4509cf112578b96dce9bd517256313ebcb8..96882c99ad0f3dfb58d4e7a38a17929e252033c1 100644
+index ac87735ff07ee0833727cdf8b62f443ce16a3216..c518f78af7612f59af7f02fcf2ba5ef274f9694d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2148,7 +2148,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2149,7 +2149,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
if (!this.updateChatOrder(timestamp)) {
diff --git a/patches/server/0829-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0829-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index eb5f74ca9a..66722589c2 100644
--- a/patches/server/0829-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0829-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 96882c99ad0f3dfb58d4e7a38a17929e252033c1..7e388fc82cb4f7a71b36a204c5af827509ab60f3 100644
+index c518f78af7612f59af7f02fcf2ba5ef274f9694d..10bb9364b6ebdd21c4a3602af5c3887871dc0548 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2368,7 +2368,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2369,7 +2369,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Spigot end
// this.chatSpamTickCount += 20;
diff --git a/patches/server/0830-More-Teleport-API.patch b/patches/server/0830-More-Teleport-API.patch
index b6588baba2..21ce2075c1 100644
--- a/patches/server/0830-More-Teleport-API.patch
+++ b/patches/server/0830-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 7e388fc82cb4f7a71b36a204c5af827509ab60f3..331d8c69dc4464ff6b44b4b37ecf426ff3514fc3 100644
+index 10bb9364b6ebdd21c4a3602af5c3887871dc0548..ffc6b7e7349ea1088b9ed5e13686d7bd9483aa1c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1605,11 +1605,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1606,11 +1606,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return false; // CraftBukkit - Return event status
}
@@ -29,7 +29,7 @@ index 7e388fc82cb4f7a71b36a204c5af827509ab60f3..331d8c69dc4464ff6b44b4b37ecf426f
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 b9c69703bb41f7d04f95bef27eb0614c5931c326..706eeebe3ebbecd431c42140e7f351d5f7faf032 100644
+index 28cda0cc2e179b3f03d4bee3ca6c24c3f831214a..e02c454ba75f440342d85b466426b9363992d923 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -566,15 +566,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -72,7 +72,7 @@ index b9c69703bb41f7d04f95bef27eb0614c5931c326..706eeebe3ebbecd431c42140e7f351d5
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4dcc4ad66e7c6cd9cbf568d8763d707b5e2b3b8b..3f31fca8d1bbbcd62d72c3d8ce47237aff2a326d 100644
+index 8c09fbca374bed7707c400adb92e3120815bd508..6005f08cc8423a93c2d209ba080eb0ca68af132e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1200,13 +1200,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0833-Send-block-entities-after-destroy-prediction.patch b/patches/server/0833-Send-block-entities-after-destroy-prediction.patch
index 1ea3e81505..b6e9e352c8 100644
--- a/patches/server/0833-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0833-Send-block-entities-after-destroy-prediction.patch
@@ -57,10 +57,10 @@ index 3fe747fdc4500bd65029446f63e314031d71ed4a..19573bfb05d7f9641964c76e6670e4a7
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 331d8c69dc4464ff6b44b4b37ecf426ff3514fc3..bfa2e9919275a1eb5d83403c5ed88eee245e3194 100644
+index ffc6b7e7349ea1088b9ed5e13686d7bd9483aa1c..372015adb4f198c131d1a5f239e75f862ab5fdd7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1751,8 +1751,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1752,8 +1752,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// Paper end - Don't allow digging in unloaded chunks
diff --git a/patches/server/0840-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0840-Add-Velocity-IP-Forwarding-Support.patch
index 85a2ae83e6..6703fca5b1 100644
--- a/patches/server/0840-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0840-Add-Velocity-IP-Forwarding-Support.patch
@@ -215,10 +215,10 @@ index 5ff49a0f2f42b63d606c7d9205c0e63fe39e163f..aac84898d2563bfb45c7d0884d65be23
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a148d03d746d4580777e1e193c07dad922a080e0..2384ad530ce9c8329e378e7488701df7c2f389fb 100644
+index 73442cb5ae468b0a342d5f8ffe3e5539172fb3e8..64c3eafd2b676938017b43bf46ea6a0e0f324fd6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -805,7 +805,7 @@ public final class CraftServer implements Server {
+@@ -807,7 +807,7 @@ public final class CraftServer implements Server {
@Override
public long getConnectionThrottle() {
// Spigot Start - Automatically set connection throttle for bungee configurations
diff --git a/patches/server/0860-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0860-Correctly-handle-interactions-with-items-on-cooldown.patch
index e49f829afc..a7f34f5272 100644
--- a/patches/server/0860-Correctly-handle-interactions-with-items-on-cooldown.patch
+++ b/patches/server/0860-Correctly-handle-interactions-with-items-on-cooldown.patch
@@ -30,10 +30,10 @@ index 25cbbc714e86c11dcf05329430a83bba2cd05364..4b1af7bba3ce10a1247bb61535456510
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 8496bca5c104335ebdddd28193ff4d455313203f..10169884ea37531a08d5a0ecb1fae95874332496 100644
+index 914fb155cbd79d0a1c4fbd5389ae3a15e76cad61..5f35eed82193e1868102cdfa931f1cb2c7662185 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -544,7 +544,13 @@ public class CraftEventFactory {
+@@ -546,7 +546,13 @@ public class CraftEventFactory {
return CraftEventFactory.callPlayerInteractEvent(who, action, position, direction, itemstack, false, hand, null);
}
@@ -47,7 +47,7 @@ index 8496bca5c104335ebdddd28193ff4d455313203f..10169884ea37531a08d5a0ecb1fae958
Player player = (who == null) ? null : (Player) who.getBukkitEntity();
CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack);
-@@ -579,6 +585,11 @@ public class CraftEventFactory {
+@@ -581,6 +587,11 @@ public class CraftEventFactory {
if (cancelledBlock) {
event.setUseInteractedBlock(Event.Result.DENY);
}
diff --git a/patches/server/0891-Properly-resend-entities.patch b/patches/server/0891-Properly-resend-entities.patch
index d727b5e226..89573864bd 100644
--- a/patches/server/0891-Properly-resend-entities.patch
+++ b/patches/server/0891-Properly-resend-entities.patch
@@ -85,10 +85,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d
public static class DataItem<T> {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index bfa2e9919275a1eb5d83403c5ed88eee245e3194..c4425cd7357049e74e825b824e30b9691ad93196 100644
+index 372015adb4f198c131d1a5f239e75f862ab5fdd7..d63451592c34429c1c827ff8e16989347e2efdaa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2648,7 +2648,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2649,7 +2649,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)) {
@@ -125,7 +125,7 @@ index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a
}
entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 53bda7a59a3abf6f99a044df5f2c44bedf1af501..dc1cc4db2195d4f346bdc5f39e2e14dba454f13d 100644
+index 4199bc76c1f304e19fa7c3b7763d31b56a57221b..37b1eb5ba224e4de28c49c04d218c3951b1bbfd1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1258,7 +1258,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0898-Improve-logging-and-errors.patch b/patches/server/0898-Improve-logging-and-errors.patch
index 8689ac7c75..00c1b3d1ad 100644
--- a/patches/server/0898-Improve-logging-and-errors.patch
+++ b/patches/server/0898-Improve-logging-and-errors.patch
@@ -19,10 +19,10 @@ index 938fe76677139e7e99698b61691bfcadf70dbd87..8aa7439d9f3c071f88c84c6c75b7a65e
if (advancement.parent() == null) {
this.roots.remove(advancement);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c4425cd7357049e74e825b824e30b9691ad93196..0cd46c761253c197e94b16a78f15110b35b12c12 100644
+index d63451592c34429c1c827ff8e16989347e2efdaa..e87e99569fe5d6d916faa385b1793db858ab39b7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3385,7 +3385,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3386,7 +3386,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/0901-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0901-Add-missing-SpigotConfig-logCommands-check.patch
index 6234450db8..6bdf638285 100644
--- a/patches/server/0901-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0901-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 0cd46c761253c197e94b16a78f15110b35b12c12..a6630c0aefb31b4b07b62219e27ce724325d291c 100644
+index e87e99569fe5d6d916faa385b1793db858ab39b7..5654bc0390f3c205bca3ea1f225eba1a39216005 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2112,7 +2112,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2113,7 +2113,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start
String command = "/" + packet.command();
diff --git a/patches/server/0904-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0904-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
index 39ca938316..3f33ed3a18 100644
--- a/patches/server/0904-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
+++ b/patches/server/0904-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
@@ -130,10 +130,10 @@ index e44cd3b8eef25a3e7eedbe8ae597d74585ecd627..e3b07d623cd64de9645f2372f1e08757
// See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity)
private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 10169884ea37531a08d5a0ecb1fae95874332496..73f12036dbbcecbd5848c8eda391fc34d04e9995 100644
+index 5f35eed82193e1868102cdfa931f1cb2c7662185..bd3893f3ad3d8150c1b23ad01ccce3b1dcb25b1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1046,7 +1046,7 @@ public class CraftEventFactory {
+@@ -1048,7 +1048,7 @@ public class CraftEventFactory {
CraftEventFactory.entityDamage = null;
EntityDamageEvent event;
if (damager == null) {
diff --git a/patches/server/0907-Use-single-player-info-update-packet-on-join.patch b/patches/server/0907-Use-single-player-info-update-packet-on-join.patch
index 23d3f95cd6..42b8a145e8 100644
--- a/patches/server/0907-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0907-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 a6630c0aefb31b4b07b62219e27ce724325d291c..f53bb528e9682c554751fefe549fe823958a79dd 100644
+index 5654bc0390f3c205bca3ea1f225eba1a39216005..4fae5949e1fabb387595a1e0449b0c0ec368f74e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3415,7 +3415,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3416,7 +3416,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID());
this.chatMessageChain.append((executor) -> {
this.player.setChatSession(session);
diff --git a/patches/server/0915-Add-EntityFertilizeEggEvent.patch b/patches/server/0915-Add-EntityFertilizeEggEvent.patch
index ea181cda54..2e6f8c4c7b 100644
--- a/patches/server/0915-Add-EntityFertilizeEggEvent.patch
+++ b/patches/server/0915-Add-EntityFertilizeEggEvent.patch
@@ -69,10 +69,10 @@ index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f
this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F);
} // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 73f12036dbbcecbd5848c8eda391fc34d04e9995..4ad092c25a17cfb3eae26316260ddeeb66a59cfd 100644
+index bd3893f3ad3d8150c1b23ad01ccce3b1dcb25b1b..c6447735475075cad123428dbc6eece55a2a7d82 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2089,4 +2089,29 @@ public class CraftEventFactory {
+@@ -2096,4 +2096,29 @@ public class CraftEventFactory {
return event.callEvent();
}
// Paper end
diff --git a/patches/server/0927-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0927-Treat-sequence-violations-like-they-should-be.patch
index dda0696a1e..8dc7f3c4f3 100644
--- a/patches/server/0927-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0927-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 f53bb528e9682c554751fefe549fe823958a79dd..f06cbdef43e70cde315b0b4cb2d124efa1071618 100644
+index 4fae5949e1fabb387595a1e0449b0c0ec368f74e..bb0d66c30903ee0601bd3327e82744a2fb5aceb4 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2011,6 +2011,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2012,6 +2012,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void ackBlockChangesUpTo(int sequence) {
if (sequence < 0) {
diff --git a/patches/server/0929-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0929-Prevent-causing-expired-keys-from-impacting-new-join.patch
index 920fe148a5..a5c7f14af4 100644
--- a/patches/server/0929-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0929-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -24,7 +24,7 @@ index 40ac5cf19934207f06755fbea02d4626d7aa0511..32e3f347e2e025e2675e9410116386e4
UPDATE_GAME_MODE((serialized, buf) -> {
serialized.gameMode = GameType.byId(buf.readVarInt());
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f06cbdef43e70cde315b0b4cb2d124efa1071618..ba257447048b9322defaecfd7424579f287ff483 100644
+index bb0d66c30903ee0601bd3327e82744a2fb5aceb4..dc50f0c4514cc239a4639a03e4edbda5c258b867 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -284,6 +284,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -49,7 +49,7 @@ index f06cbdef43e70cde315b0b4cb2d124efa1071618..ba257447048b9322defaecfd7424579f
}
public void resetPosition() {
-@@ -3413,6 +3421,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3414,6 +3422,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void resetPlayerChatState(RemoteChatSession session) {
this.chatSession = session;
diff --git a/patches/server/0936-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0936-Fix-DamageCause-for-Falling-Blocks.patch
index 7fe63b9f63..1c7d33b3e0 100644
--- a/patches/server/0936-Fix-DamageCause-for-Falling-Blocks.patch
+++ b/patches/server/0936-Fix-DamageCause-for-Falling-Blocks.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 4ad092c25a17cfb3eae26316260ddeeb66a59cfd..1d9efbde8ec52965bbed22d82a095aa73b8db3b8 100644
+index c6447735475075cad123428dbc6eece55a2a7d82..975e288911779f2acc943acf32eeecd306f10dde 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1086,6 +1086,11 @@ public class CraftEventFactory {
+@@ -1088,6 +1088,11 @@ public class CraftEventFactory {
} else if (source.is(DamageTypes.SONIC_BOOM)) {
cause = DamageCause.SONIC_BOOM;
}
diff --git a/patches/server/0941-Expand-PlayerItemMendEvent.patch b/patches/server/0941-Expand-PlayerItemMendEvent.patch
index f3745282c6..a6ff7047b1 100644
--- a/patches/server/0941-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0941-Expand-PlayerItemMendEvent.patch
@@ -33,7 +33,7 @@ index 37cd883f4920d5e1e58900ebdcfd4495a0abd2ae..6dac7cd4c9abfbde299f5d279acc2739
return k > 0 ? this.repairPlayerItems(player, k) : 0;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index e55898d5237d4413dfa2ea81f7e5f4941901bc08..200f2a0a98e32fa722e50bf204d3ee886da58815 100644
+index 11f4e48f33d6feacdd961bd1f767dbea11412252..5ab142f17b794bf73dc26ee35b5c59797d13efd3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1727,11 +1727,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -51,10 +51,10 @@ index e55898d5237d4413dfa2ea81f7e5f4941901bc08..200f2a0a98e32fa722e50bf204d3ee88
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 1d9efbde8ec52965bbed22d82a095aa73b8db3b8..c87849a4da75c5a0cbe56bb61a288252101a020f 100644
+index 975e288911779f2acc943acf32eeecd306f10dde..81066d1d4e7a5818018469d5659c15dc2d5a43bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1322,10 +1322,10 @@ public class CraftEventFactory {
+@@ -1324,10 +1324,10 @@ public class CraftEventFactory {
return event;
}
diff --git a/patches/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
index efa2da58fc..8fc1d2b4f3 100644
--- a/patches/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
+++ b/patches/server/0948-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch
@@ -5,10 +5,10 @@ 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 2384ad530ce9c8329e378e7488701df7c2f389fb..a2a2260f52032c50d57c2031b41d05f052394866 100644
+index 64c3eafd2b676938017b43bf46ea6a0e0f324fd6..9d86b54a9945d4644f7920e06e5d04faaaa2e8c8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -359,7 +359,11 @@ public final class CraftServer implements Server {
+@@ -361,7 +361,11 @@ public final class CraftServer implements Server {
}
this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile());
this.commandsConfiguration.options().copyDefaults(true);
diff --git a/patches/server/0954-Properly-Cancel-Usable-Items.patch b/patches/server/0954-Properly-Cancel-Usable-Items.patch
index ac735f5582..2a3482e820 100644
--- a/patches/server/0954-Properly-Cancel-Usable-Items.patch
+++ b/patches/server/0954-Properly-Cancel-Usable-Items.patch
@@ -34,10 +34,10 @@ index 4b1af7bba3ce10a1247bb61535456510e18da2d9..76cef8f2861af8fcb88b4dad294a8853
return enuminteractionresult;
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ba257447048b9322defaecfd7424579f287ff483..bb74c271acc02d4f750daeb05bc05b1d6f61ffeb 100644
+index dc50f0c4514cc239a4639a03e4edbda5c258b867..8b0bcaa4239a0966cf7b7676525c1ab69c25f534 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1923,6 +1923,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1924,6 +1924,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (cancelled) {
diff --git a/patches/server/0959-Call-missing-BlockDispenseEvent.patch b/patches/server/0959-Call-missing-BlockDispenseEvent.patch
index 2496dada5e..8c8cc75def 100644
--- a/patches/server/0959-Call-missing-BlockDispenseEvent.patch
+++ b/patches/server/0959-Call-missing-BlockDispenseEvent.patch
@@ -50,10 +50,10 @@ index c0baec6ae9bd90410f47aa04d7c7704233375d1a..e9b748a81ec223a701b56d2dc890c9eb
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 c87849a4da75c5a0cbe56bb61a288252101a020f..8eaa16ef67cbbdc06ae74e1f3c9489d205092264 100644
+index 81066d1d4e7a5818018469d5659c15dc2d5a43bf..e51a54275aeab85158ee9685b2f6d0f5f3a0b58a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -2095,6 +2095,32 @@ public class CraftEventFactory {
+@@ -2102,6 +2102,32 @@ public class CraftEventFactory {
}
// Paper end
diff --git a/patches/server/0964-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0964-fix-item-meta-for-tadpole-buckets.patch
index c1d43316d3..b8d4f28c59 100644
--- a/patches/server/0964-fix-item-meta-for-tadpole-buckets.patch
+++ b/patches/server/0964-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/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-index 6e91c7ccc36e088be60739dd71b287f0b922a055..57f4cf40359fe9bb427eb0134660d00839a63c86 100644
+index b72da22c626ff5c41e877209d9a5a2939526d18f..9469b0d5d8a46ac17c3998a4b537a4feb1deb3b0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -348,6 +348,7 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -355,6 +355,7 @@ public final class CraftItemFactory implements ItemFactory {
case COD_BUCKET:
case PUFFERFISH_BUCKET:
case SALMON_BUCKET:
diff --git a/patches/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch
index 49b157ea07..fea6aa1a5f 100644
--- a/patches/server/0970-ExperienceOrb-should-call-EntitySpawnEvent.patch
+++ b/patches/server/0970-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 8eaa16ef67cbbdc06ae74e1f3c9489d205092264..3ac67ef07f574eacc09d8dc966800cb94caea3c6 100644
+index e51a54275aeab85158ee9685b2f6d0f5f3a0b58a..df3feea9ed025bd7be39dfe1f1e1fdc4c1e77035 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -720,7 +720,10 @@ public class CraftEventFactory {
+@@ -722,7 +722,10 @@ public class CraftEventFactory {
} else if (entity instanceof net.minecraft.world.entity.ExperienceOrb) {
net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity;
double radius = world.spigotConfig.expMerge;
diff --git a/patches/server/0974-Implement-PlayerFailMoveEvent.patch b/patches/server/0974-Implement-PlayerFailMoveEvent.patch
index 9feef646bd..05065fe7c6 100644
--- a/patches/server/0974-Implement-PlayerFailMoveEvent.patch
+++ b/patches/server/0974-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 bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2ea955e6c1 100644
+index 8b0bcaa4239a0966cf7b7676525c1ab69c25f534..2553942e143e5acd0dc6158434d160000a98ea8c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1291,8 +1291,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1292,8 +1292,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;
double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER
@@ -19,7 +19,7 @@ index bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2e
if (this.player.isPassenger()) {
this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1);
-@@ -1358,8 +1358,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1359,8 +1359,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())))) {
@@ -34,7 +34,7 @@ index bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2e
}
// Paper end
-@@ -1368,9 +1374,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1369,9 +1375,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
@@ -51,7 +51,7 @@ index bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2e
}
}
-@@ -1435,8 +1448,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1436,8 +1449,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag2 = false;
if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot
@@ -67,7 +67,7 @@ index bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2e
}
// Paper start - optimise out extra getCubes
-@@ -1449,6 +1469,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1450,6 +1470,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (didCollide || !axisalignedbb.equals(newBox)) {
// note: only call after setLocation, or else getBoundingBox is wrong
teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox);
@@ -83,7 +83,7 @@ index bb74c271acc02d4f750daeb05bc05b1d6f61ffeb..a51ba56ff7072a0fcaf7115486a61c2e
} // else: no collision at all detected, why do we care?
}
if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes
-@@ -1537,6 +1566,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1538,6 +1567,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
diff --git a/patches/server/0975-Folia-scheduler-and-owned-region-API.patch b/patches/server/0975-Folia-scheduler-and-owned-region-API.patch
index 8ad6f6d87c..e06d6a5751 100644
--- a/patches/server/0975-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0975-Folia-scheduler-and-owned-region-API.patch
@@ -1158,7 +1158,7 @@ index 12bb0c619762ca9fc080ae884ce29de477dbcdc2..80919d247a9204ebf8d0e55df7fc6a24
this.players.remove(entityplayer);
this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b28ee70aa98d6a8f3913e11084d0b4a9b09b5e26..80882abd35199f95610af16698aeb0fe61f8f455 100644
+index bf77b0dae2ca25437df7386d2196da24d681e2ed..4516991a4d1299d7e93019a4b9bc227b4844e9ef 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -246,11 +246,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1224,10 +1224,10 @@ index b28ee70aa98d6a8f3913e11084d0b4a9b09b5e26..80882abd35199f95610af16698aeb0fe
public void setLevelCallback(EntityInLevelCallback changeListener) {
this.levelCallback = changeListener;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index a2a2260f52032c50d57c2031b41d05f052394866..e3f776c909c2d4ea4311ea98dad8476b7da1f44e 100644
+index 9d86b54a9945d4644f7920e06e5d04faaaa2e8c8..16906e8ba7d05275561d465a08b792137d284c4e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -308,6 +308,76 @@ public final class CraftServer implements Server {
+@@ -310,6 +310,76 @@ public final class CraftServer implements Server {
private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper
private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper
@@ -1305,7 +1305,7 @@ index a2a2260f52032c50d57c2031b41d05f052394866..e3f776c909c2d4ea4311ea98dad8476b
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 9bd6d3be29b2f50bc91fa02382e34213f51337f5..8472b566bac933d2982683b01dac7eb5e3172192 100644
+index f02b6803e1fe9f3a18e47cd7b5e6776eb6fe183a..acdac5b9b9990b1f8c25effe6b8882746284d9d9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -207,6 +207,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0977-API-for-updating-recipes-on-clients.patch b/patches/server/0977-API-for-updating-recipes-on-clients.patch
index aed3faf1ef..b900631d71 100644
--- a/patches/server/0977-API-for-updating-recipes-on-clients.patch
+++ b/patches/server/0977-API-for-updating-recipes-on-clients.patch
@@ -39,10 +39,10 @@ index 80919d247a9204ebf8d0e55df7fc6a2443ed91aa..3a70b7e1319c3ecab9eb720f8a1a34c0
Iterator iterator1 = this.players.iterator();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index e3f776c909c2d4ea4311ea98dad8476b7da1f44e..7b8f4eac4b7361415695170beae50465d6605a22 100644
+index 16906e8ba7d05275561d465a08b792137d284c4e..6a8f954f38007f47139da348a611e4eb2bc09289 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1131,6 +1131,18 @@ public final class CraftServer implements Server {
+@@ -1133,6 +1133,18 @@ public final class CraftServer implements Server {
ReloadCommand.reload(this.console);
}
@@ -61,7 +61,7 @@ index e3f776c909c2d4ea4311ea98dad8476b7da1f44e..7b8f4eac4b7361415695170beae50465
private void loadIcon() {
this.icon = new CraftIconCache(null);
try {
-@@ -1474,6 +1486,13 @@ public final class CraftServer implements Server {
+@@ -1476,6 +1488,13 @@ public final class CraftServer implements Server {
@Override
public boolean addRecipe(Recipe recipe) {
@@ -75,7 +75,7 @@ index e3f776c909c2d4ea4311ea98dad8476b7da1f44e..7b8f4eac4b7361415695170beae50465
CraftRecipe toAdd;
if (recipe instanceof CraftRecipe) {
toAdd = (CraftRecipe) recipe;
-@@ -1503,6 +1522,11 @@ public final class CraftServer implements Server {
+@@ -1505,6 +1524,11 @@ public final class CraftServer implements Server {
}
}
toAdd.addToCraftingManager();
@@ -87,7 +87,7 @@ index e3f776c909c2d4ea4311ea98dad8476b7da1f44e..7b8f4eac4b7361415695170beae50465
return true;
}
-@@ -1622,10 +1646,23 @@ public final class CraftServer implements Server {
+@@ -1685,10 +1709,23 @@ public final class CraftServer implements Server {
@Override
public boolean removeRecipe(NamespacedKey recipeKey) {
diff --git a/patches/server/0982-Use-correct-seed-on-api-world-load.patch b/patches/server/0982-Use-correct-seed-on-api-world-load.patch
index 63fc9c60eb..4d50d8dc21 100644
--- a/patches/server/0982-Use-correct-seed-on-api-world-load.patch
+++ b/patches/server/0982-Use-correct-seed-on-api-world-load.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Use correct seed on api world load
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 7b8f4eac4b7361415695170beae50465d6605a22..60e67c271fa2e85271fbbadaa794eb41d608093f 100644
+index 6a8f954f38007f47139da348a611e4eb2bc09289..1cad49d031580a7d5a2c8085ce44a0b0b4a5383f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1312,7 +1312,7 @@ public final class CraftServer implements Server {
+@@ -1314,7 +1314,7 @@ public final class CraftServer implements Server {
// Paper - move down
diff --git a/patches/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch
index e45e0c150b..bb2f52c01e 100644
--- a/patches/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch
+++ b/patches/server/0990-Deprecate-and-replace-methods-with-old-StructureType.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 60e67c271fa2e85271fbbadaa794eb41d608093f..5f33d18234c055393255c9c3234c6688af7a455d 100644
+index 1cad49d031580a7d5a2c8085ce44a0b0b4a5383f..770bfdc6ce75e85e2ec94f62e2545e1bc47244ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -1855,6 +1855,11 @@ public final class CraftServer implements Server {
+@@ -1918,6 +1918,11 @@ public final class CraftServer implements Server {
ServerLevel worldServer = ((CraftWorld) world).getHandle();
Location structureLocation = world.locateNearestStructure(location, structureType, radius, findUnexplored);
@@ -20,7 +20,7 @@ index 60e67c271fa2e85271fbbadaa794eb41d608093f..5f33d18234c055393255c9c3234c6688
BlockPos structurePosition = CraftLocation.toBlockPosition(structureLocation);
// Create map with trackPlayer = true, unlimitedTracking = true
-@@ -1865,6 +1870,31 @@ public final class CraftServer implements Server {
+@@ -1928,6 +1933,31 @@ public final class CraftServer implements Server {
return CraftItemStack.asBukkitCopy(stack);
}
diff --git a/patches/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch
index a7e006f843..93fe609c51 100644
--- a/patches/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch
+++ b/patches/server/0991-Don-t-tab-complete-namespaced-commands-if-send-names.patch
@@ -11,10 +11,10 @@ This patch prevents server from sending namespaced commands when player
requests tab-complete only commands.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a51ba56ff7072a0fcaf7115486a61c2ea955e6c1..7afe0df01d5df4ed8025237d0aed220c32a3b7b2 100644
+index 2553942e143e5acd0dc6158434d160000a98ea8c..b016f84ed1e99286073daf148612896ae470d222 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -805,6 +805,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -806,6 +806,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack());
this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
diff --git a/patches/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
index 4ab00d4010..1025d32935 100644
--- a/patches/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
+++ b/patches/server/0997-Expose-clicked-BlockFace-during-BlockDamageEvent.patch
@@ -18,10 +18,10 @@ index ee12ca53c7919d6d424c4306b90d25660eb14af6..cd57234a5f1131f48c9726f89262f253
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 3ac67ef07f574eacc09d8dc966800cb94caea3c6..975f4fe01ce0c3f98c4467927242558a66bc19f3 100644
+index df3feea9ed025bd7be39dfe1f1e1fdc4c1e77035..f73588370d731b58fe7acd51dd9dd3a12b222add 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -650,13 +650,13 @@ public class CraftEventFactory {
+@@ -652,13 +652,13 @@ public class CraftEventFactory {
/**
* BlockDamageEvent
*/
diff --git a/patches/server/1002-Add-PlayerPickItemEvent.patch b/patches/server/1002-Add-PlayerPickItemEvent.patch
index e27b097e29..2a800c9ef9 100644
--- a/patches/server/1002-Add-PlayerPickItemEvent.patch
+++ b/patches/server/1002-Add-PlayerPickItemEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerPickItemEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7afe0df01d5df4ed8025237d0aed220c32a3b7b2..8bca5ba75977c0a61197eb47c94f0456d66b29a4 100644
+index b016f84ed1e99286073daf148612896ae470d222..236ab643cdd65b3572860aedf1f5ac18ff96139a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -942,7 +942,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -943,7 +943,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return;
}
diff --git a/patches/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch
index f9b2542b7c..c56b28040b 100644
--- a/patches/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/1009-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -79,10 +79,10 @@ index 8a6095850cece3203eeae474dbf32090f698a32e..aefb9879b2edadfb4b21d80135d713b9
if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper
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 975f4fe01ce0c3f98c4467927242558a66bc19f3..249e3f703ef1b40b5401f167d4c30faafb69bb5b 100644
+index f73588370d731b58fe7acd51dd9dd3a12b222add..5dc160b743534665c6b3efb10b10f7c36e2da5ab 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1441,10 +1441,21 @@ public class CraftEventFactory {
+@@ -1443,10 +1443,21 @@ public class CraftEventFactory {
}
public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) {
@@ -105,7 +105,7 @@ index 975f4fe01ce0c3f98c4467927242558a66bc19f3..249e3f703ef1b40b5401f167d4c30faa
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
}
-@@ -1459,10 +1470,10 @@ public class CraftEventFactory {
+@@ -1461,10 +1472,10 @@ public class CraftEventFactory {
if (event.isCancelled()) {
container.transferTo(player.containerMenu, craftPlayer);
diff --git a/patches/server/1013-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/1013-Add-slot-sanity-checks-in-container-clicks.patch
index c9eb55f978..eb79d542ce 100644
--- a/patches/server/1013-Add-slot-sanity-checks-in-container-clicks.patch
+++ b/patches/server/1013-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 8bca5ba75977c0a61197eb47c94f0456d66b29a4..33be0db006cca66f38f2105924466b0210139848 100644
+index 236ab643cdd65b3572860aedf1f5ac18ff96139a..65bb221993147a558995b36fb835f7b82e0eb4bd 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2980,6 +2980,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2981,6 +2981,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
break;
case SWAP:
if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) {
diff --git a/patches/server/1047-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1048-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
index ec6b50fe71..ec6b50fe71 100644
--- a/patches/server/1047-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
+++ b/patches/server/1048-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 19830133bd8e6eab082ebbc24ec58a23f16a6d1
+Subproject fde5602a24e30d563009378e8c9b08f693b148e
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 5a72c3c040c8570ba6cb2286f3bc2a5de60ee90
+Subproject c8feb062965f97a637d2a3aa1f597f82251fcbb