From ea0b63992c307cf5425ba7876d6b853ef3173b88 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 31 May 2023 16:36:57 -0700 Subject: [PATCH] Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9228) 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: 4727d326 Don't let Sign extend SignSide, mark API as experimental 9b29bdcc PR-845: Add preliminary support for multi sided signs CraftBukkit Changes: b346a5f6d PR-1170: Add preliminary support for multi sided signs 86c816189 Update SQLite version d9324b4bc Fix addition of custom smithing trim / transform recipes Spigot Changes: 7d7b241e Rebuild patches --- patches/api/0005-Adventure.patch | 205 +++++++++------ patches/api/0010-Timings-v2.patch | 4 +- .../0012-Player-affects-spawning-API.patch | 4 +- patches/api/0017-Add-view-distance-API.patch | 4 +- ...cord-chat-API-from-spigot-subclasses.patch | 4 +- .../0025-Player-Tab-List-and-Title-APIs.patch | 4 +- .../api/0027-Complete-resource-pack-API.patch | 6 +- ...0046-Add-String-based-Action-Bar-API.patch | 6 +- patches/api/0055-Fix-upstream-javadocs.patch | 12 +- ...nt-protocol-version-and-virtual-host.patch | 4 +- ...0-Ability-to-apply-mending-to-XP-API.patch | 6 +- .../0091-Player.setPlayerProfile-API.patch | 4 +- ...4-Add-openSign-method-to-HumanEntity.patch | 4 +- ...95-Add-Ban-Methods-to-Player-Objects.patch | 4 +- ...e-attack-cooldown-methods-for-Player.patch | 4 +- .../0189-Add-Player-Client-Options-API.patch | 4 +- patches/api/0206-Brand-support.patch | 4 +- .../api/0218-Player-elytra-boost-API.patch | 4 +- patches/api/0245-Add-sendOpLevel-API.patch | 4 +- .../api/0293-Add-PlayerKickEvent-causes.patch | 4 +- .../0328-Add-player-health-update-API.patch | 4 +- patches/api/0343-Multi-Block-Change-API.patch | 4 +- patches/api/0371-More-Teleport-API.patch | 4 +- ...stom-Chat-Completion-Suggestions-API.patch | 4 +- .../0383-Elder-Guardian-appearance-API.patch | 4 +- .../0391-Add-Player-Warden-Warning-API.patch | 4 +- patches/api/0400-fix-Instruments.patch | 4 +- .../0402-Add-Sneaking-API-for-Entities.patch | 6 +- patches/api/0405-Flying-Fall-Damage-API.patch | 4 +- patches/api/0408-Win-Screen-API.patch | 4 +- .../server/0001-Setup-Gradle-project.patch | 8 +- .../server/0003-Build-system-changes.patch | 4 +- patches/server/0004-Test-changes.patch | 4 +- patches/server/0005-Paper-config-files.patch | 8 +- patches/server/0008-CB-fixes.patch | 4 +- patches/server/0010-Adventure.patch | 246 ++++++++++-------- patches/server/0011-Paper-command.patch | 6 +- patches/server/0013-Paper-Plugins.patch | 10 +- patches/server/0014-Timings-v2.patch | 10 +- .../server/0018-Rewrite-chunk-system.patch | 12 +- ...-option-to-load-extra-plugin-jars-no.patch | 4 +- ...ient-crashes-server-lists-and-Mojang.patch | 4 +- .../0030-Player-affects-spawning-API.patch | 4 +- ...031-Further-improve-server-tick-loop.patch | 4 +- ...032-Only-refresh-abilities-if-needed.patch | 4 +- ...45-Implement-PlayerLocaleChangeEvent.patch | 4 +- ...52-Ensure-commands-are-not-ran-async.patch | 8 +- .../0054-Expose-server-CommandMap.patch | 4 +- .../0056-Player-Tab-List-and-Title-APIs.patch | 4 +- .../server/0058-Add-velocity-warnings.patch | 4 +- ...ble-inter-world-teleportation-safety.patch | 4 +- .../0065-Complete-resource-pack-API.patch | 16 +- ...ading-permissions.yml-before-plugins.patch | 6 +- ...llow-Reloading-of-Custom-Permissions.patch | 4 +- .../0068-Remove-Metadata-on-reload.patch | 4 +- ...th-absorb-values-and-repair-bad-data.patch | 4 +- ...setting-for-proxy-online-mode-status.patch | 4 +- ...3-Allow-Reloading-of-Command-Aliases.patch | 4 +- .../0122-String-based-Action-Bar-API.patch | 4 +- ...n-option-to-prevent-player-names-fro.patch | 4 +- ...oleAppender-for-console-improvements.patch | 6 +- .../server/0142-Add-UnknownCommandEvent.patch | 6 +- .../server/0143-Basic-PlayerProfile-API.patch | 8 +- ...nt-protocol-version-and-virtual-host.patch | 4 +- .../server/0169-AsyncTabCompleteEvent.patch | 6 +- ...1-Ability-to-apply-mending-to-XP-API.patch | 4 +- .../0184-Player.setPlayerProfile-API.patch | 14 +- .../server/0185-getPlayerUniqueId-API.patch | 4 +- ...89-Flag-to-disable-the-channel-limit.patch | 6 +- ...0-Add-openSign-method-to-HumanEntity.patch | 6 +- .../0218-InventoryCloseEvent-Reason-API.patch | 4 +- ...r-to-keep-logging-IO-off-main-thread.patch | 4 +- ...dd-Early-Warning-Feature-to-WatchDog.patch | 6 +- ...e-attack-cooldown-methods-for-Player.patch | 4 +- .../server/0255-Improve-death-events.patch | 4 +- ...ault-permission-message-configurable.patch | 4 +- ...-replace-OfflinePlayer-getLastPlayed.patch | 10 +- ...-remove-from-being-called-on-Players.patch | 4 +- ...318-Expose-the-internal-current-tick.patch | 4 +- patches/server/0343-Anti-Xray.patch | 6 +- ...-Add-tick-times-API-and-mspt-command.patch | 4 +- ...364-Expose-MinecraftServer-isRunning.patch | 4 +- ...-Implement-Player-Client-Options-API.patch | 4 +- patches/server/0391-Expose-game-version.patch | 4 +- .../server/0394-misc-debugging-dumps.patch | 4 +- ...ktraces-in-log-messages-crash-report.patch | 4 +- .../server/0397-Implement-Mob-Goal-API.patch | 6 +- ...Wait-for-Async-Tasks-during-shutdown.patch | 4 +- ...ld-Difficulty-Remembering-Difficulty.patch | 6 +- ...-Plugin-Tickets-to-API-Chunk-Methods.patch | 6 +- patches/server/0456-Brand-support.patch | 4 +- .../server/0457-Add-setMaxPlayers-API.patch | 6 +- .../server/0490-Player-elytra-boost-API.patch | 4 +- ...-Add-getOfflinePlayerIfCached-String.patch | 4 +- ...r-spawnParticle-x-y-z-precision-loss.patch | 4 +- patches/server/0545-Add-sendOpLevel-API.patch | 6 +- .../server/0581-Expand-world-key-API.patch | 8 +- ...opy-TESign-isEditable-from-snapshots.patch | 10 +- .../server/0615-Add-basic-Datapack-API.patch | 8 +- ...ditions-to-PlayerGameModeChangeEvent.patch | 4 +- ...x-and-optimise-world-force-upgrading.patch | 6 +- .../0629-Add-PlayerKickEvent-causes.patch | 8 +- .../0659-Add-System.out-err-catcher.patch | 4 +- .../server/0665-Add-PlayerSetSpawnEvent.patch | 6 +- ...aper-mobcaps-and-paper-playermobcaps.patch | 6 +- ...ocity-compression-and-cipher-natives.patch | 4 +- .../0753-Add-player-health-update-API.patch | 6 +- ...llow-delegation-to-vanilla-chunk-gen.patch | 4 +- ...vanilla-BiomeProvider-from-WorldInfo.patch | 6 +- ...ulti-Block-Change-API-Implementation.patch | 4 +- ...-command-sender-which-forwards-feedb.patch | 4 +- ...date-calls-to-CraftServer-getSpawnLi.patch | 4 +- patches/server/0795-Add-GameEvent-tags.patch | 6 +- ...o-worldlist-before-initing-the-world.patch | 4 +- patches/server/0803-Custom-Potion-Mixes.patch | 8 +- .../0814-Fix-saving-in-unloadWorld.patch | 4 +- .../0830-WorldCreator-keepSpawnLoaded.patch | 4 +- ...n-on-world-create-while-being-ticked.patch | 8 +- ...broadcast-messages-to-command-blocks.patch | 4 +- patches/server/0863-More-Teleport-API.patch | 12 +- ...stom-Chat-Completion-Suggestions-API.patch | 4 +- ...4-Add-Velocity-IP-Forwarding-Support.patch | 4 +- .../0899-Elder-Guardian-appearance-API.patch | 4 +- .../0916-Add-Player-Warden-Warning-API.patch | 4 +- patches/server/0930-fix-Instruments.patch | 4 +- patches/server/0941-Flying-Fall-Damage.patch | 4 +- patches/server/0947-Win-Screen-API.patch | 4 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 130 files changed, 599 insertions(+), 512 deletions(-) diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch index 89fbdabbc5..d23beb6485 100644 --- a/patches/api/0005-Adventure.patch +++ b/patches/api/0005-Adventure.patch @@ -1529,18 +1529,94 @@ index 372c0bd5a4d7800a11c24c95e39fe376a96232bf..9c88be68b4f403d0500cb607394b3a16 + // Paper end } diff --git a/src/main/java/org/bukkit/block/Sign.java b/src/main/java/org/bukkit/block/Sign.java -index ab6b0ec328e94bf65a0dafd0403e5ee3b870296c..f87bdb2757760d95038d1a1cf6e7f5b2cff91432 100644 +index 1844b7136ddcc1aa267b8fb2159244d04900da36..9a9f4af69fc8adbd0a05e2e7574f83ff9befad85 100644 --- a/src/main/java/org/bukkit/block/Sign.java +++ b/src/main/java/org/bukkit/block/Sign.java -@@ -7,13 +7,48 @@ import org.jetbrains.annotations.NotNull; +@@ -11,6 +11,42 @@ import org.jetbrains.annotations.NotNull; * Represents a captured state of either a SignPost or a WallSign. */ public interface Sign extends TileState, Colorable { + // Paper start + /** -+ * Gets all the lines of text currently on this sign. ++ * Gets all the lines of text currently on the {@link Side#FRONT} of this sign. + * -+ * @return Array of Strings containing each line of text ++ * @return List of components containing each line of text ++ * @see #getSide(Side) ++ */ ++ @NotNull ++ public java.util.List lines(); ++ ++ /** ++ * Gets the line of text at the specified index on the {@link Side#FRONT}. ++ *

++ * For example, getLine(0) will return the first line of text. ++ * ++ * @param index Line number to get the text from, starting at 0 ++ * @throws IndexOutOfBoundsException Thrown when the line does not exist ++ * @return Text on the given line ++ * @see #getSide(Side) ++ */ ++ @NotNull ++ public net.kyori.adventure.text.Component line(int index) throws IndexOutOfBoundsException; ++ ++ /** ++ * Sets the line of text at the specified index on the {@link Side#FRONT}. ++ *

++ * For example, setLine(0, "Line One") will set the first line of text to ++ * "Line One". ++ * ++ * @param index Line number to set the text at, starting from 0 ++ * @param line New text to set at the specified index ++ * @throws IndexOutOfBoundsException If the index is out of the range 0..3 ++ * @see #getSide(Side) ++ */ ++ public void line(int index, net.kyori.adventure.text.@NotNull Component line) throws IndexOutOfBoundsException; ++ // Paper end + + /** + * Gets all the lines of text currently on the {@link Side#FRONT} of this sign. +@@ -19,6 +55,7 @@ public interface Sign extends TileState, Colorable { + * @see #getSide(Side) + */ + @NotNull ++ @Deprecated // Paper + public String[] getLines(); + + /** +@@ -30,8 +67,10 @@ public interface Sign extends TileState, Colorable { + * @return Text on the given line + * @throws IndexOutOfBoundsException Thrown when the line does not exist + * @see #getSide(Side) ++ * @deprecated in favour of {@link #line(int)} + */ + @NotNull ++ @Deprecated // Paper + public String getLine(int index) throws IndexOutOfBoundsException; + + /** +@@ -44,7 +83,9 @@ public interface Sign extends TileState, Colorable { + * @param line New text to set at the specified index + * @throws IndexOutOfBoundsException If the index is out of the range 0..3 + * @see #getSide(Side) ++ * @deprecated in favour of {@link #line(int, net.kyori.adventure.text.Component)} + */ ++ @Deprecated // Paper + public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException; + + /** +diff --git a/src/main/java/org/bukkit/block/sign/SignSide.java b/src/main/java/org/bukkit/block/sign/SignSide.java +index 85be6cfa9ed074073656cd0678600780eb03b47b..e6b9a1b0dbf7cdffafe4a9bb5dd1c3e8afb846e5 100644 +--- a/src/main/java/org/bukkit/block/sign/SignSide.java ++++ b/src/main/java/org/bukkit/block/sign/SignSide.java +@@ -9,6 +9,39 @@ import org.jetbrains.annotations.NotNull; + */ + @Experimental + public interface SignSide extends Colorable { ++ // Paper start ++ /** ++ * Gets all the lines of text currently on the sign. ++ * ++ * @return List of components containing each line of text + */ + @NotNull + public java.util.List lines(); @@ -1571,37 +1647,7 @@ index ab6b0ec328e94bf65a0dafd0403e5ee3b870296c..f87bdb2757760d95038d1a1cf6e7f5b2 + // Paper end /** - * Gets all the lines of text currently on this sign. - * - * @return Array of Strings containing each line of text -+ * @deprecated in favour of {@link #lines()} - */ - @NotNull -+ @Deprecated // Paper - public String[] getLines(); - - /** -@@ -24,8 +59,10 @@ public interface Sign extends TileState, Colorable { - * @param index Line number to get the text from, starting at 0 - * @return Text on the given line - * @throws IndexOutOfBoundsException Thrown when the line does not exist -+ * @deprecated in favour of {@link #line(int)} - */ - @NotNull -+ @Deprecated // Paper - public String getLine(int index) throws IndexOutOfBoundsException; - - /** -@@ -37,7 +74,9 @@ public interface Sign extends TileState, Colorable { - * @param index Line number to set the text at, starting from 0 - * @param line New text to set at the specified index - * @throws IndexOutOfBoundsException If the index is out of the range 0..3 -+ * @deprecated in favour of {@link #line(int, net.kyori.adventure.text.Component)} - */ -+ @Deprecated // Paper - public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException; - - /** + * Gets all the lines of text currently on this side of the sign. diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java index 80209bb88a0294d4eedc78509533a6257315d856..75759131bd94b672bec4cd8e271ebff1ad391cba 100644 --- a/src/main/java/org/bukkit/command/Command.java @@ -1996,10 +2042,10 @@ index f3afe67f0832cb828d25be3654518ff73a80b0e1..598abaa82c634178043a29f6caa6ac52 + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf73c6559a 100644 +index 7fffb5cdac7a0fe9baeb7ef09a4615221dca8322..4190d5b3b3d3eb9525ed342179cb827cc5590e3b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -41,7 +41,28 @@ import org.jetbrains.annotations.Nullable; +@@ -42,7 +42,28 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ @@ -2029,7 +2075,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * {@inheritDoc} -@@ -58,7 +79,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -59,7 +80,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @return the friendly name @@ -2039,7 +2085,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf @NotNull public String getDisplayName(); -@@ -70,15 +93,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -71,15 +94,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @param name The new display name. @@ -2090,7 +2136,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public String getPlayerListName(); /** -@@ -87,14 +145,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -88,14 +146,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * If the value is null, the name will be identical to {@link #getName()}. * * @param name new player list name @@ -2109,7 +2155,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf @Nullable public String getPlayerListHeader(); -@@ -102,7 +164,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -103,7 +165,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gets the currently displayed player list footer for this player. * * @return player list header or null @@ -2119,7 +2165,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf @Nullable public String getPlayerListFooter(); -@@ -110,14 +174,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -111,14 +175,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Sets the currently displayed player list header for this player. * * @param header player list header, null for empty @@ -2138,7 +2184,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void setPlayerListFooter(@Nullable String footer); /** -@@ -126,7 +194,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -127,7 +195,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param header player list header, null for empty * @param footer player list footer, null for empty @@ -2148,7 +2194,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer); /** -@@ -164,9 +234,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -165,9 +235,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Kicks player with custom kick message. * * @param message kick message @@ -2174,7 +2220,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * Says a message (or runs a command). * -@@ -608,6 +694,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -609,6 +695,90 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull Map items); @@ -2265,7 +2311,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * Send a sign change. This fakes a sign change packet for a user at * a certain location. This will not actually change the world in any way. -@@ -622,7 +792,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -623,7 +793,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param lines the new text on the sign or null to clear it * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2275,7 +2321,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; /** -@@ -641,7 +813,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -642,7 +814,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if dyeColor is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2285,7 +2331,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -661,7 +835,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -662,7 +836,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if dyeColor is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2295,7 +2341,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor, boolean hasGlowingText) throws IllegalArgumentException; /** -@@ -1155,6 +1331,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1156,6 +1332,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * pack correctly. * * @@ -2303,7 +2349,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf * @param url The URL from which the client will download the resource * pack. The string must contain only US-ASCII characters and should * be encoded as per RFC 1738. -@@ -1211,8 +1388,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1212,8 +1389,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2314,7 +2360,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * Request that the player's client download and switch resource packs. *

-@@ -1248,6 +1427,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1249,6 +1428,54 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param hash The sha1 hash sum of the resource pack file which is used * to apply a cached version of the pack directly without downloading * if it is available. Hast to be 20 bytes long! @@ -2369,7 +2415,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf * @param force If true, the client will be disconnected from the server * when it declines to use the resource pack. * @throws IllegalArgumentException Thrown if the URL is null. -@@ -1302,8 +1529,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1303,8 +1530,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2427,7 +2473,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * Gets the Scoreboard displayed to this player * -@@ -1419,7 +1695,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1420,7 +1696,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param title Title text * @param subtitle Subtitle text @@ -2436,7 +2482,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf */ @Deprecated public void sendTitle(@Nullable String title, @Nullable String subtitle); -@@ -1438,7 +1714,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1439,7 +1715,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param fadeIn time in ticks for titles to fade in. Defaults to 10. * @param stay time in ticks for titles to stay. Defaults to 70. * @param fadeOut time in ticks for titles to fade out. Defaults to 20. @@ -2446,7 +2492,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendTitle(@Nullable String title, @Nullable String subtitle, int fadeIn, int stay, int fadeOut); /** -@@ -1665,6 +1943,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1666,6 +1944,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public int getClientViewDistance(); @@ -2461,7 +2507,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf /** * Gets the player's estimated ping in milliseconds. * -@@ -1690,8 +1976,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1691,8 +1977,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * they wish. * * @return the player's locale @@ -2472,7 +2518,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public String getLocale(); /** -@@ -1733,6 +2021,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1744,6 +2032,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public boolean isAllowingServerListings(); @@ -2487,7 +2533,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf // Spigot start public class Spigot extends Entity.Spigot { -@@ -1787,11 +2083,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1798,11 +2094,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM throw new UnsupportedOperationException("Not supported yet."); } @@ -2501,7 +2547,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf @Override public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); -@@ -1802,7 +2100,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1813,7 +2111,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param component the components to send @@ -2511,7 +2557,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1812,7 +2112,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1823,7 +2123,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param components the components to send @@ -2521,7 +2567,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1823,7 +2125,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1834,7 +2136,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param position the screen position * @param sender the sender of the message * @param component the components to send @@ -2531,7 +2577,7 @@ index 363567304c9698ffe21eaf0da9aef694c8050eb0..8708ca080bda0f4ec43964db3a4e56cf public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1834,7 +2138,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1845,7 +2149,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param position the screen position * @param sender the sender of the message * @param components the components to send @@ -2598,25 +2644,38 @@ index 63c80b4ee1f7adc8a9efc3b607993104b1991f90..91cab8b13d5bba34007f124838b32a1d } diff --git a/src/main/java/org/bukkit/event/block/SignChangeEvent.java b/src/main/java/org/bukkit/event/block/SignChangeEvent.java -index 7190db11eff7d48df8a99f405a9dbaefdfa76e3d..c40536f781393cb39e6a1a4ba6e780713d5dc126 100644 +index f4ac033ff8794a61c82a49dc6c3f863f3291455d..d944d67f544494355f03c5bc9afd8ea7726e6412 100644 --- a/src/main/java/org/bukkit/event/block/SignChangeEvent.java +++ b/src/main/java/org/bukkit/event/block/SignChangeEvent.java -@@ -16,12 +16,25 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { +@@ -17,18 +17,38 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancel = false; private final Player player; - private final String[] lines; -+ // Paper start -+ private final java.util.List adventure$lines; ++ private final java.util.List adventure$lines; // Paper + private final Side side; -+ public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player player, @NotNull final java.util.List adventure$lines) { ++ // Paper start ++ public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player player, @NotNull final java.util.List adventure$lines, @NotNull Side side) { + super(theBlock); + this.player = player; + this.adventure$lines = adventure$lines; ++ this.side = side; + } + -+ @Deprecated // Paper end ++ @Deprecated ++ public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player player, @NotNull final java.util.List adventure$lines) { ++ this(theBlock, player, adventure$lines, Side.FRONT); ++ } ++ // Paper end ++ + @Deprecated public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player thePlayer, @NotNull final String[] theLines) { + this(theBlock, thePlayer, theLines, Side.FRONT); + } + ++ @Deprecated // Paper + public SignChangeEvent(@NotNull final Block theBlock, @NotNull final Player thePlayer, @NotNull final String[] theLines, @NotNull Side side) { super(theBlock); this.player = thePlayer; - this.lines = theLines; @@ -2626,10 +2685,10 @@ index 7190db11eff7d48df8a99f405a9dbaefdfa76e3d..c40536f781393cb39e6a1a4ba6e78071 + this.adventure$lines.add(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(theLine)); + } + // Paper end + this.side = side; } - /** -@@ -34,14 +47,52 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { +@@ -42,14 +62,52 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { return player; } @@ -2683,7 +2742,7 @@ index 7190db11eff7d48df8a99f405a9dbaefdfa76e3d..c40536f781393cb39e6a1a4ba6e78071 } /** -@@ -52,10 +103,12 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { +@@ -60,10 +118,12 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { * provided index * @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3 * or < 0} @@ -2697,7 +2756,7 @@ index 7190db11eff7d48df8a99f405a9dbaefdfa76e3d..c40536f781393cb39e6a1a4ba6e78071 } /** -@@ -65,9 +118,11 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { +@@ -73,9 +133,11 @@ public class SignChangeEvent extends BlockEvent implements Cancellable { * @param line text to set * @throws IndexOutOfBoundsException thrown when the provided index is {@literal > 3 * or < 0} @@ -2709,7 +2768,7 @@ index 7190db11eff7d48df8a99f405a9dbaefdfa76e3d..c40536f781393cb39e6a1a4ba6e78071 + adventure$lines.set(index, line != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(line) : null); // Paper } - @Override + /** diff --git a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java index 3c2ea8fec3a748cab7f5ad9100d12bd8213ec6c9..a803bfea5400b3578bb4cf3261874e873b6467d9 100644 --- a/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch index 668d38988c..8f276765b8 100644 --- a/patches/api/0010-Timings-v2.patch +++ b/patches/api/0010-Timings-v2.patch @@ -3455,10 +3455,10 @@ index 516d7fc7812aac343782861d0d567f54aa578c2a..00000000000000000000000000000000 - // Spigot end -} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8708ca080bda0f4ec43964db3a4e56cf73c6559a..28f27988d22c0f38b520273920a9965d64107569 100644 +index 4190d5b3b3d3eb9525ed342179cb827cc5590e3b..3fffe6844d5f113f13ae3e2636efd7a8f43940dd 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2143,7 +2143,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2154,7 +2154,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); diff --git a/patches/api/0012-Player-affects-spawning-API.patch b/patches/api/0012-Player-affects-spawning-API.patch index 80b9acdbc9..7038ebf984 100644 --- a/patches/api/0012-Player-affects-spawning-API.patch +++ b/patches/api/0012-Player-affects-spawning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 28f27988d22c0f38b520273920a9965d64107569..6d68274302fc36dd7d32cf6fb2889f86baebab89 100644 +index 3fffe6844d5f113f13ae3e2636efd7a8f43940dd..aaca12b0fd009f605ce8120f0cbe0a1049771cf5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1982,6 +1982,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1983,6 +1983,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public String getLocale(); diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0017-Add-view-distance-API.patch index f65d617a04..662ec59b79 100644 --- a/patches/api/0017-Add-view-distance-API.patch +++ b/patches/api/0017-Add-view-distance-API.patch @@ -75,10 +75,10 @@ index 1a71d628d9f593157d92f0c9fda9d3214c138352..cc4e72335d8c66c8081ce64149ce3ac3 public class Spigot { diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 6d68274302fc36dd7d32cf6fb2889f86baebab89..70f2cb3126a06079b31b7ea36501ce5253a805fe 100644 +index aaca12b0fd009f605ce8120f0cbe0a1049771cf5..e543a0cc1bd7e4d87038c06cad0f5bde7c64f1b9 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1996,6 +1996,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1997,6 +1997,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param affects Whether the player can affect mob spawning */ public void setAffectsSpawning(boolean affects); 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 464a06835a..d37aa5dba4 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 @@ -76,10 +76,10 @@ index 866559ab7cd3f351266fb41dce26a210a7702ff8..74e5f26c32e6e0c84c604b9704bfe672 * 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/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 70f2cb3126a06079b31b7ea36501ce5253a805fe..b0df10469e98d439e534c26ecc8a5bae98c9b77c 100644 +index e543a0cc1bd7e4d87038c06cad0f5bde7c64f1b9..9caacc128a53d13b049a03f78d9dea16f8ff025e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -848,6 +848,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -849,6 +849,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch index 19903d85ab..d5b8c545e4 100644 --- a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch +++ b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch @@ -432,10 +432,10 @@ index 0000000000000000000000000000000000000000..9e90c3df567a65b48a0b9341f784eb90 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b0df10469e98d439e534c26ecc8a5bae98c9b77c..0f70b49877383351a5ba2033bc6537b7e0deed3b 100644 +index 9caacc128a53d13b049a03f78d9dea16f8ff025e..c7d9185e2f16b77f78779403d075f31dabbc117b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -882,6 +882,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -883,6 +883,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) { spigot().sendMessage(position, components); } diff --git a/patches/api/0027-Complete-resource-pack-API.patch b/patches/api/0027-Complete-resource-pack-API.patch index d74e1c3064..8c8028a9b9 100644 --- a/patches/api/0027-Complete-resource-pack-API.patch +++ b/patches/api/0027-Complete-resource-pack-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 0f70b49877383351a5ba2033bc6537b7e0deed3b..f4db9cec173c5018f8896d157405150b67bca253 100644 +index c7d9185e2f16b77f78779403d075f31dabbc117b..29b1cceff7100cbcde7ddca0d1acbb717f3b6b1c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1460,7 +1460,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1461,7 +1461,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the URL is null. * @throws IllegalArgumentException Thrown if the URL is too long. The * length restriction is an implementation specific arbitrary value. @@ -18,7 +18,7 @@ index 0f70b49877383351a5ba2033bc6537b7e0deed3b..f4db9cec173c5018f8896d157405150b public void setResourcePack(@NotNull String url); /** -@@ -2276,6 +2278,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2287,6 +2289,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM default net.kyori.adventure.text.event.HoverEvent asHoverEvent(final @NotNull java.util.function.UnaryOperator op) { return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.displayName()))); } diff --git a/patches/api/0046-Add-String-based-Action-Bar-API.patch b/patches/api/0046-Add-String-based-Action-Bar-API.patch index 34ae48c21a..a7440bd6b1 100644 --- a/patches/api/0046-Add-String-based-Action-Bar-API.patch +++ b/patches/api/0046-Add-String-based-Action-Bar-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add String based Action Bar API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f4db9cec173c5018f8896d157405150b67bca253..3826a3f6c525ddb6308fc9ceab86764ab0087c33 100644 +index 29b1cceff7100cbcde7ddca0d1acbb717f3b6b1c..d85ce38bcae05a643479e7f687431dced1834b93 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -849,6 +849,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -850,6 +850,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start @@ -48,7 +48,7 @@ index f4db9cec173c5018f8896d157405150b67bca253..3826a3f6c525ddb6308fc9ceab86764a /** * Sends the component to the player * -@@ -876,9 +909,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -877,9 +910,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Sends an array of components as a single message to the specified screen position of this player * diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch index 05cd6b5646..a1faeea006 100644 --- a/patches/api/0055-Fix-upstream-javadocs.patch +++ b/patches/api/0055-Fix-upstream-javadocs.patch @@ -414,10 +414,10 @@ index ae9eaaa8e38e1d9dfc459926c7fc51ddb89de84a..b2ec535bb1b0ce0c114ddd7638b90218 @Override public int getConversionTime(); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3826a3f6c525ddb6308fc9ceab86764ab0087c33..f683159bd02d5c6ea7940f50deecf2f1a8105d5e 100644 +index d85ce38bcae05a643479e7f687431dced1834b93..bb12eb007aeb932c2d89c6e6c4081c4802469cb6 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -312,15 +312,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -313,15 +313,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Saves the players current location, health, inventory, motion, and @@ -437,7 +437,7 @@ index 3826a3f6c525ddb6308fc9ceab86764ab0087c33..f683159bd02d5c6ea7940f50deecf2f1 *

* Note: This will overwrite the players current inventory, health, * motion, etc, with the state from the saved dat file. -@@ -555,7 +555,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -556,7 +556,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Plays an effect to just this player. * @@ -446,7 +446,7 @@ index 3826a3f6c525ddb6308fc9ceab86764ab0087c33..f683159bd02d5c6ea7940f50deecf2f1 * @param loc the location to play the effect at * @param effect the {@link Effect} * @param data a data bit needed for some effects -@@ -866,7 +866,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -867,7 +867,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * Use supplied alternative character to the section symbol to represent legacy color codes. * @@ -455,7 +455,7 @@ index 3826a3f6c525ddb6308fc9ceab86764ab0087c33..f683159bd02d5c6ea7940f50deecf2f1 * @param message The message to send * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)} */ -@@ -1330,7 +1330,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1331,7 +1331,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see a player that was previously hidden. If @@ -464,7 +464,7 @@ index 3826a3f6c525ddb6308fc9ceab86764ab0087c33..f683159bd02d5c6ea7940f50deecf2f1 * remain hidden until the other plugin calls this method too. * * @param plugin Plugin that wants to show the player -@@ -1359,7 +1359,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1360,7 +1360,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see an entity that was previously hidden. If diff --git a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch index fa73f16c76..079c74bbd2 100644 --- a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch @@ -57,10 +57,10 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b + +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f683159bd02d5c6ea7940f50deecf2f1a8105d5e..1d791f76151c1baa762d85cb82c6cfcd7b30d1ab 100644 +index bb12eb007aeb932c2d89c6e6c4081c4802469cb6..c7c23873a09c9eb0d86a6984e3dfe3413f88d5e1 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -41,7 +41,7 @@ import org.jetbrains.annotations.Nullable; +@@ -42,7 +42,7 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ diff --git a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch index 7c702078d0..acb4f5a0bd 100644 --- a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch @@ -10,10 +10,10 @@ of giving the player experience points. Both an API To standalone mend, and apply mending logic to .giveExp has been added. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1d791f76151c1baa762d85cb82c6cfcd7b30d1ab..89af3de0f439cfb5bde2a23147b2ba7da482f9c1 100644 +index c7c23873a09c9eb0d86a6984e3dfe3413f88d5e1..e4e254c26adb15be4f60a59a0cf8a41816b9250a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1173,6 +1173,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1174,6 +1174,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void resetPlayerWeather(); @@ -29,7 +29,7 @@ index 1d791f76151c1baa762d85cb82c6cfcd7b30d1ab..89af3de0f439cfb5bde2a23147b2ba7d /** * Gets the player's cooldown between picking up experience orbs. * -@@ -1198,8 +1207,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1199,8 +1208,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gives the player the amount of experience specified. * * @param amount Exp amount to give diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch index f305cd2757..6ad18344f6 100644 --- a/patches/api/0091-Player.setPlayerProfile-API.patch +++ b/patches/api/0091-Player.setPlayerProfile-API.patch @@ -93,10 +93,10 @@ index d769ad908c3454fa9088a42f32250bbdf8f9fa7e..2eaf31f1053787b39184dfa8ac6df87d /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 89af3de0f439cfb5bde2a23147b2ba7da482f9c1..16f11367a92624d8dd45838d606f0031b1c86903 100644 +index e4e254c26adb15be4f60a59a0cf8a41816b9250a..93129241f182e217478e61df37d6f7789954fc62 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2452,6 +2452,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2463,6 +2463,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * was {@link org.bukkit.event.player.PlayerResourcePackStatusEvent.Status#SUCCESSFULLY_LOADED} */ boolean hasResourcePack(); diff --git a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch index caffd849d7..d22bf25564 100644 --- a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch @@ -24,10 +24,10 @@ index abdca9fe5acc90f167219eb769ece66c35682bb1..9715a9d36187e2eecfeab1a05087d27c /** * Make the entity drop the item in their hand. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 16f11367a92624d8dd45838d606f0031b1c86903..459c9f64a32ec0e5a83146ffff3e436393e60078 100644 +index 93129241f182e217478e61df37d6f7789954fc62..26f9b1b5773f39aad3d8fe02a53d040c4042e81d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2307,7 +2307,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2308,7 +2308,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Open a Sign for editing by the Player. * diff --git a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch index 95d50a7058..b59fe35c9d 100644 --- a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch @@ -74,10 +74,10 @@ index b1ded556a1ce4e1d3c873ab9d7f799b6edcc5118..6ab8f05be11f8101202d56bfebc7ec23 /** * Checks if this player is whitelisted or not diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 459c9f64a32ec0e5a83146ffff3e436393e60078..fdbbe75cad2ecb6b4e404b775d64a49e176ce92c 100644 +index 26f9b1b5773f39aad3d8fe02a53d040c4042e81d..675e1fed283a90c49380f51e4e50e0e7dde9c3e4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -849,6 +849,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -850,6 +850,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start diff --git a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch index 9c321b401c..27430272ef 100644 --- a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index fdbbe75cad2ecb6b4e404b775d64a49e176ce92c..23ded8a67663d887f636a2b04d7a7afb86ead22c 100644 +index 675e1fed283a90c49380f51e4e50e0e7dde9c3e4..44aa4ad14818e26993c912460bd91015ded09754 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2622,6 +2622,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2633,6 +2633,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param profile The new profile to use */ void setPlayerProfile(@NotNull com.destroystokyo.paper.profile.PlayerProfile profile); diff --git a/patches/api/0189-Add-Player-Client-Options-API.patch b/patches/api/0189-Add-Player-Client-Options-API.patch index dbf5dceb38..11a43b629e 100644 --- a/patches/api/0189-Add-Player-Client-Options-API.patch +++ b/patches/api/0189-Add-Player-Client-Options-API.patch @@ -229,10 +229,10 @@ index 0000000000000000000000000000000000000000..cf67dc7d465223710adbf2b798109f52 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 23ded8a67663d887f636a2b04d7a7afb86ead22c..75c15bf4ad598fabc0b9598ab7a0bb57afa61111 100644 +index 44aa4ad14818e26993c912460bd91015ded09754..a2dd30628458a60922a1326c88e2cbc158a28e89 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2642,6 +2642,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2653,6 +2653,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the cooldown counter to 0, effectively starting the cooldown period. */ void resetCooldown(); diff --git a/patches/api/0206-Brand-support.patch b/patches/api/0206-Brand-support.patch index 520dedd875..b32abad272 100644 --- a/patches/api/0206-Brand-support.patch +++ b/patches/api/0206-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 75c15bf4ad598fabc0b9598ab7a0bb57afa61111..c1b7e15c04027ce61621b74ae188f51c883bfc29 100644 +index a2dd30628458a60922a1326c88e2cbc158a28e89..2606c3edf89ca1f435aa3809d4609fe104211523 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2774,6 +2774,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2785,6 +2785,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end } diff --git a/patches/api/0218-Player-elytra-boost-API.patch b/patches/api/0218-Player-elytra-boost-API.patch index 088b6b3010..571a3da396 100644 --- a/patches/api/0218-Player-elytra-boost-API.patch +++ b/patches/api/0218-Player-elytra-boost-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index c1b7e15c04027ce61621b74ae188f51c883bfc29..da34d0151dd71ff93db9a1b76271a8fe398ace66 100644 +index 2606c3edf89ca1f435aa3809d4609fe104211523..8caa318f71c8fd765a583c18af72705e3864f23a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2648,6 +2648,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2659,6 +2659,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ @NotNull T getClientOption(@NotNull com.destroystokyo.paper.ClientOption option); diff --git a/patches/api/0245-Add-sendOpLevel-API.patch b/patches/api/0245-Add-sendOpLevel-API.patch index 8adf5efb6d..4eed894093 100644 --- a/patches/api/0245-Add-sendOpLevel-API.patch +++ b/patches/api/0245-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index da34d0151dd71ff93db9a1b76271a8fe398ace66..842d26eb83836e1d11a5a6b0dbe5f1666bc3b7d7 100644 +index 8caa318f71c8fd765a583c18af72705e3864f23a..f874f4342fbd1095ea4996da5d29f25ba7135e9a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2661,6 +2661,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2672,6 +2672,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ @Nullable Firework boostElytra(@NotNull ItemStack firework); diff --git a/patches/api/0293-Add-PlayerKickEvent-causes.patch b/patches/api/0293-Add-PlayerKickEvent-causes.patch index b492050019..13269984a8 100644 --- a/patches/api/0293-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0293-Add-PlayerKickEvent-causes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 842d26eb83836e1d11a5a6b0dbe5f1666bc3b7d7..8a87c128bb562ad46df4d02d53c72cce3b10db43 100644 +index f874f4342fbd1095ea4996da5d29f25ba7135e9a..44665d304b4245da3e5fe63e9d58649755259647 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -251,6 +251,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -252,6 +252,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param message kick message */ void kick(final net.kyori.adventure.text.@Nullable Component message); diff --git a/patches/api/0328-Add-player-health-update-API.patch b/patches/api/0328-Add-player-health-update-API.patch index d8a83675be..7e84f09ec9 100644 --- a/patches/api/0328-Add-player-health-update-API.patch +++ b/patches/api/0328-Add-player-health-update-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8a87c128bb562ad46df4d02d53c72cce3b10db43..ba329be88c9da9c4d98eff4b3c6321e2ddab2dba 100644 +index 44665d304b4245da3e5fe63e9d58649755259647..195acdc1d1805caf4ef865e53280f4e8c360eb66 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2049,6 +2049,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2050,6 +2050,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public double getHealthScale(); diff --git a/patches/api/0343-Multi-Block-Change-API.patch b/patches/api/0343-Multi-Block-Change-API.patch index 1253897748..392912e02c 100644 --- a/patches/api/0343-Multi-Block-Change-API.patch +++ b/patches/api/0343-Multi-Block-Change-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Multi Block Change API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ba329be88c9da9c4d98eff4b3c6321e2ddab2dba..8997a2f854bdcbf40e74a10376de6dfc1acef697 100644 +index 195acdc1d1805caf4ef865e53280f4e8c360eb66..a4eb5ca72061ccc593ec8f03b663aebe9b2ccb02 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -648,6 +648,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -649,6 +649,27 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendBlockDamage(@NotNull Location loc, float progress); diff --git a/patches/api/0371-More-Teleport-API.patch b/patches/api/0371-More-Teleport-API.patch index 9a087f3fae..2af9ab7301 100644 --- a/patches/api/0371-More-Teleport-API.patch +++ b/patches/api/0371-More-Teleport-API.patch @@ -165,10 +165,10 @@ index ab0ceaba9ddcbe20a8b8a1fc3ed19cb3c64ecd3d..97f0bc6573c8ba09de77061b6312b91c * Teleports this entity to the given location. If this entity is riding a * vehicle, it will be dismounted prior to teleportation. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8997a2f854bdcbf40e74a10376de6dfc1acef697..49aa859225d82c38e974aa6ed62ba92e702bf849 100644 +index a4eb5ca72061ccc593ec8f03b663aebe9b2ccb02..c100a2815a1ee7bd59ecbd8c12a907d8aabb0290 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2862,6 +2862,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2873,6 +2873,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch index 5475478b82..d7165e4edb 100644 --- a/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0373-Custom-Chat-Completion-Suggestions-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 49aa859225d82c38e974aa6ed62ba92e702bf849..f3fd12368a5a49ba9415cd871757b38e9211963c 100644 +index c100a2815a1ee7bd59ecbd8c12a907d8aabb0290..b886e9a59272ef6c8afa65f31a42bfc47f48b43a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2726,6 +2726,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2737,6 +2737,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}). */ void sendOpLevel(byte level); diff --git a/patches/api/0383-Elder-Guardian-appearance-API.patch b/patches/api/0383-Elder-Guardian-appearance-API.patch index 770323eb80..14d8e806a9 100644 --- a/patches/api/0383-Elder-Guardian-appearance-API.patch +++ b/patches/api/0383-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f3fd12368a5a49ba9415cd871757b38e9211963c..f313073f745629e75787020d5bb444125f01c714 100644 +index b886e9a59272ef6c8afa65f31a42bfc47f48b43a..a7dca9f902cd9916afd7a453288d669ab06c626c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2924,6 +2924,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2935,6 +2935,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor); // Paper end - Teleport API diff --git a/patches/api/0391-Add-Player-Warden-Warning-API.patch b/patches/api/0391-Add-Player-Warden-Warning-API.patch index eb029a28cc..664bc6ed45 100644 --- a/patches/api/0391-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0391-Add-Player-Warden-Warning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f313073f745629e75787020d5bb444125f01c714..d02cc0194d492beb4d3e1c88dff7f6b2ea73554f 100644 +index a7dca9f902cd9916afd7a453288d669ab06c626c..bdb63e445c1bc2e08bfa840d61cdeb2d8576bde7 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2940,6 +2940,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2951,6 +2951,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param silent whether sound should be silenced */ void showElderGuardian(boolean silent); diff --git a/patches/api/0400-fix-Instruments.patch b/patches/api/0400-fix-Instruments.patch index bee24d14c3..79a34a6fe1 100644 --- a/patches/api/0400-fix-Instruments.patch +++ b/patches/api/0400-fix-Instruments.patch @@ -110,10 +110,10 @@ index 8f70d86a1d39351424335842c38625d42cfbdfb8..271fb4d41909654b87519edba1c1d4f4 public static Instrument getByType(final byte type) { return BY_DATA.get(type); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d02cc0194d492beb4d3e1c88dff7f6b2ea73554f..5234c31b640c21e87215671f0235f6450994fcef 100644 +index bdb63e445c1bc2e08bfa840d61cdeb2d8576bde7..fabe9a415c88d3669c7b09e4d7c2453c0f2edeff 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -392,9 +392,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -393,9 +393,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void playNote(@NotNull Location loc, byte instrument, byte note); /** diff --git a/patches/api/0402-Add-Sneaking-API-for-Entities.patch b/patches/api/0402-Add-Sneaking-API-for-Entities.patch index 739f3265e3..057cb23cad 100644 --- a/patches/api/0402-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0402-Add-Sneaking-API-for-Entities.patch @@ -35,10 +35,10 @@ index 3f3ea5bb6b3ea6f55b5cd699f1c01ac159619add..a2a423d4e4c2702ba5967223cab0432d * Get the category of spawn to which this entity belongs. * diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5234c31b640c21e87215671f0235f6450994fcef..462987f2c119509b3bc1b9ff061e975b774ea5dd 100644 +index fabe9a415c88d3669c7b09e4d7c2453c0f2edeff..7627cc0c25fc37cf914befda49ce83eeda9bfbef 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -295,6 +295,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -296,6 +296,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @return true if player is in sneak mode */ @@ -46,7 +46,7 @@ index 5234c31b640c21e87215671f0235f6450994fcef..462987f2c119509b3bc1b9ff061e975b public boolean isSneaking(); /** -@@ -302,6 +303,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -303,6 +304,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param sneak true if player should appear sneaking */ diff --git a/patches/api/0405-Flying-Fall-Damage-API.patch b/patches/api/0405-Flying-Fall-Damage-API.patch index f2c1f0db9e..c779db5b39 100644 --- a/patches/api/0405-Flying-Fall-Damage-API.patch +++ b/patches/api/0405-Flying-Fall-Damage-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 462987f2c119509b3bc1b9ff061e975b774ea5dd..3f6eb664988b1f2c9d85157e75f3d5f3d89831d7 100644 +index 7627cc0c25fc37cf914befda49ce83eeda9bfbef..1c79a556c2267b5d87d5469123818e270840a684 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1508,6 +1508,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1509,6 +1509,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setAllowFlight(boolean flight); diff --git a/patches/api/0408-Win-Screen-API.patch b/patches/api/0408-Win-Screen-API.patch index 4c98c1ab68..f558002195 100644 --- a/patches/api/0408-Win-Screen-API.patch +++ b/patches/api/0408-Win-Screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Win Screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3f6eb664988b1f2c9d85157e75f3d5f3d89831d7..9cd49bf6db451af67cd15c8857d7bf51a4e1a67a 100644 +index 1c79a556c2267b5d87d5469123818e270840a684..88c4885569d2b8b22fce55601d50608ac8e9388c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -877,6 +877,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -878,6 +878,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 329ccf4e30..0b7fd954c1 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -28,7 +28,7 @@ index 3df8c60ab5cd1454660980883f80668d535b742b..37c3a00659ce21623be07317f4f6a45b +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..e090175d2fbe8eba664500feafc29c0567bb0c87 +index 0000000000000000000000000000000000000000..c207fd9b001dccaa71ba1615ffcdc093dd2b581c --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,137 @@ @@ -48,7 +48,7 @@ index 0000000000000000000000000000000000000000..e090175d2fbe8eba664500feafc29c05 + } + implementation("org.ow2.asm:asm:9.4") + implementation("commons-lang:commons-lang:2.6") -+ runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") ++ runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") + runtimeOnly("com.mysql:mysql-connector-j:8.0.32") + + runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5") @@ -171,7 +171,7 @@ index 0000000000000000000000000000000000000000..e090175d2fbe8eba664500feafc29c05 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 67ae7c25ee4e007e1fdfb3ac37687e1bd8ab58ca..0000000000000000000000000000000000000000 +index d3490073bebae5918fe97895ead320c06c8358c7..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,587 +0,0 @@ @@ -405,7 +405,7 @@ index 67ae7c25ee4e007e1fdfb3ac37687e1bd8ab58ca..00000000000000000000000000000000 - - org.xerial - sqlite-jdbc -- 3.41.0.0 +- 3.41.2.2 - runtime - - diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 6a27314478..3e15e55997 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts -index e090175d2fbe8eba664500feafc29c0567bb0c87..d77f15c58f41f1e00c75e0a022919bb7dacc9926 100644 +index c207fd9b001dccaa71ba1615ffcdc093dd2b581c..ac679b0a66ce9676937a9971bf3ee2a935dd9acb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,10 +9,9 @@ plugins { @@ -19,7 +19,7 @@ index e090175d2fbe8eba664500feafc29c0567bb0c87..d77f15c58f41f1e00c75e0a022919bb7 implementation("org.ow2.asm:asm:9.4") + implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") @@ -23,6 +22,8 @@ dependencies { diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index 5da8aa57bd..eef7d22999 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Test changes diff --git a/build.gradle.kts b/build.gradle.kts -index d77f15c58f41f1e00c75e0a022919bb7dacc9926..0d04c3af92f7d4e63b1178247e493174cedd9178 100644 +index ac679b0a66ce9676937a9971bf3ee2a935dd9acb..e0724559c70b5967123010e898e66e757b2b1b58 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,6 +12,7 @@ dependencies { @@ -14,7 +14,7 @@ index d77f15c58f41f1e00c75e0a022919bb7dacc9926..0d04c3af92f7d4e63b1178247e493174 implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation + testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") diff --git a/src/test/java/io/papermc/paper/testing/DummyServer.java b/src/test/java/io/papermc/paper/testing/DummyServer.java new file mode 100644 diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 082abf1a61..6d18391e0f 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -14,7 +14,7 @@ public org.spigotmc.SpigotWorldConfig getString(Ljava/lang/String;Ljava/lang/Str public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 0d04c3af92f7d4e63b1178247e493174cedd9178..1c183e9083a5ce2a2995ae45864c564b7cde3f53 100644 +index e0724559c70b5967123010e898e66e757b2b1b58..b0facb2b0b86fafbfd5776eba2e5bdb69cc1cbed 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,6 +13,7 @@ dependencies { @@ -23,7 +23,7 @@ index 0d04c3af92f7d4e63b1178247e493174cedd9178..1c183e9083a5ce2a2995ae45864c564b testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito + implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java new file mode 100644 @@ -4571,10 +4571,10 @@ index 9a86fedb7ea4932590b86ef96785141489b03528..40deaa2463876659c0579b5273b52497 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 07c5931efcb5f3ca269e13183318eee57bb5389f..1e130b0f34d651f2f78f90950c52bac947993a74 100644 +index 6b5d97752b07ebd70a7986331bd28dde14958ccc..79ee400968a82aa5eb125d62f0440f926e3298f9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -881,6 +881,7 @@ public final class CraftServer implements Server { +@@ -883,6 +883,7 @@ public final class CraftServer implements Server { } org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch index ec06440bcf..82c0ee4671 100644 --- a/patches/server/0008-CB-fixes.patch +++ b/patches/server/0008-CB-fixes.patch @@ -83,10 +83,10 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd this.registryAccess = registryManager; this.structureTemplateManager = structureTemplateManager; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1e130b0f34d651f2f78f90950c52bac947993a74..6581c2c498a73c1fb60bb922114e24a43d355748 100644 +index 79ee400968a82aa5eb125d62f0440f926e3298f9..b6ac46929d68207dee5364902a2ba6fa0f1a4a42 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2304,7 +2304,13 @@ public final class CraftServer implements Server { +@@ -2306,7 +2306,13 @@ public final class CraftServer implements Server { Validate.notNull(key, "NamespacedKey cannot be null"); LootTables registry = this.getServer().getLootTables(); diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index d7b03ad85d..70b5c0b84a 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2852,10 +2852,10 @@ index 0e04e7467ee27ea9e3ef60fe598cc21ab39f4c68..0f5e92a2256fe22b55d2428f98db403a } collection = icons; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee7f96006a 100644 +index b6ac46929d68207dee5364902a2ba6fa0f1a4a42..df637dec0e910f3879e1e38aa11d8cf3e755bc20 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -601,8 +601,10 @@ public final class CraftServer implements Server { +@@ -603,8 +603,10 @@ public final class CraftServer implements Server { } @Override @@ -2866,7 +2866,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee } @Override -@@ -1440,7 +1442,15 @@ public final class CraftServer implements Server { +@@ -1442,7 +1444,15 @@ public final class CraftServer implements Server { return this.configuration.getInt("settings.spawn-radius", -1); } @@ -2882,7 +2882,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee public String getShutdownMessage() { return this.configuration.getString("settings.shutdown-message"); } -@@ -1608,7 +1618,20 @@ public final class CraftServer implements Server { +@@ -1610,7 +1620,20 @@ public final class CraftServer implements Server { } @Override @@ -2903,7 +2903,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee Set recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { if (permissible instanceof CommandSender && permissible.hasPermission(permission)) { -@@ -1616,14 +1639,14 @@ public final class CraftServer implements Server { +@@ -1618,14 +1641,14 @@ public final class CraftServer implements Server { } } @@ -2920,7 +2920,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee for (CommandSender recipient : recipients) { recipient.sendMessage(message); -@@ -1874,6 +1897,14 @@ public final class CraftServer implements Server { +@@ -1876,6 +1899,14 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, type); } @@ -2935,7 +2935,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee @Override public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) { Validate.isTrue(type.isCreatable(), "Cannot open an inventory of type ", type); -@@ -1886,13 +1917,28 @@ public final class CraftServer implements Server { +@@ -1888,13 +1919,28 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, size); } @@ -2964,7 +2964,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee public Merchant createMerchant(String title) { return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title); } -@@ -1957,6 +2003,12 @@ public final class CraftServer implements Server { +@@ -1959,6 +2005,12 @@ public final class CraftServer implements Server { return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog) } @@ -2977,7 +2977,7 @@ index 6581c2c498a73c1fb60bb922114e24a43d355748..15449084959d4dcd112ea112e2bc79ee @Override public String getMotd() { return this.console.getMotd(); -@@ -2383,4 +2435,53 @@ public final class CraftServer implements Server { +@@ -2385,4 +2437,53 @@ public final class CraftServer implements Server { return this.spigot; } // Spigot end @@ -3213,105 +3213,34 @@ index 0beb96dc896f63003e1b1ae458b73902bdbe648a..102eb86bad3000f258775ac06ecd1a6d public String getCustomName() { EnchantmentTableBlockEntity enchant = this.getSnapshot(); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 55fcabb1d6e0767fc21c1f0beb76e941ed3c0846..9fd6a05fb8022c5e4e3d67f9b0e9df3f477ea637 100644 +index 3bdf17b1cc28c390e40299c3edf7941f98393661..46b18cac2c40db01ebd29528d529fe631b03ddbb 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -13,34 +13,60 @@ import org.bukkit.entity.Player; - public class CraftSign extends CraftBlockEntityState implements Sign { - - // Lazily initialized only if requested: -- private String[] originalLines = null; -- private String[] lines = null; -+ // Paper start -+ private java.util.ArrayList originalLines = null; // ArrayList for RandomAccess -+ private java.util.ArrayList lines = null; // ArrayList for RandomAccess -+ // Paper end - - public CraftSign(World world, T tileEntity) { - super(world, tileEntity); +@@ -23,6 +23,23 @@ public class CraftSign extends CraftBlockEntityState< + this.front = new CraftSignSide(this.getSnapshot()); } + // Paper start - @Override -- public String[] getLines() { -- if (this.lines == null) { -- // Lazy initialization: -- SignBlockEntity sign = this.getSnapshot(); -- this.lines = new String[sign.messages.length]; -- System.arraycopy(CraftSign.revertComponents(sign.messages), 0, lines, 0, lines.length); -- this.originalLines = new String[lines.length]; -- System.arraycopy(lines, 0, originalLines, 0, originalLines.length); -- } -+ public java.util.List lines() { -+ this.loadLines(); - return this.lines; - } - + @Override -+ public net.kyori.adventure.text.Component line(int index) { -+ this.loadLines(); -+ return this.lines.get(index); ++ public java.util.@NotNull List lines() { ++ return this.front.lines(); + } + + @Override -+ public void line(int index, net.kyori.adventure.text.Component line) { -+ this.loadLines(); -+ this.lines.set(index, line); ++ public net.kyori.adventure.text.@NotNull Component line(int index) { ++ return this.front.line(index); + } + -+ private void loadLines() { -+ if (lines != null) { -+ return; -+ } -+ // Lazy initialization: -+ SignBlockEntity sign = this.getSnapshot(); -+ lines = io.papermc.paper.adventure.PaperAdventure.asAdventure(com.google.common.collect.Lists.newArrayList(sign.messages)); -+ originalLines = new java.util.ArrayList<>(lines); ++ @Override ++ public void line(int index, net.kyori.adventure.text.@NotNull Component line) { ++ this.front.line(index, line); + } + // Paper end -+ @Override -+ public String[] getLines() { -+ this.loadLines(); -+ return this.lines.stream().map(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection()::serialize).toArray(String[]::new); // Paper -+ } + @Override - public String getLine(int index) throws IndexOutOfBoundsException { -- return this.getLines()[index]; -+ this.loadLines(); -+ return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.lines.get(index)); // Paper - } - - @Override - public void setLine(int index, String line) throws IndexOutOfBoundsException { -- this.getLines()[index] = line; -+ this.loadLines(); -+ this.lines.set(index, line != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(line) : net.kyori.adventure.text.Component.empty()); // Paper - } - - @Override -@@ -78,13 +104,16 @@ public class CraftSign extends CraftBlockEntityState< - super.applyTo(sign); - - if (this.lines != null) { -- for (int i = 0; i < lines.length; i++) { -- String line = (this.lines[i] == null) ? "" : this.lines[i]; -- if (line.equals(this.originalLines[i])) { -+ // Paper start -+ for (int i = 0; i < this.lines.size(); ++i) { -+ net.kyori.adventure.text.Component component = this.lines.get(i); -+ net.kyori.adventure.text.Component origComp = this.originalLines.get(i); -+ if (component.equals(origComp)) { - continue; // The line contents are still the same, skip. - } -- sign.setMessage(i, CraftChatMessage.fromString(line)[0]); -+ sign.setMessage(i, io.papermc.paper.adventure.PaperAdventure.asVanilla(component)); - } -+ // Paper end - } - } - -@@ -99,6 +128,20 @@ public class CraftSign extends CraftBlockEntityState< + public String[] getLines() { + return this.front.getLines(); +@@ -94,6 +111,20 @@ public class CraftSign extends CraftBlockEntityState< ((CraftPlayer) player).getHandle().openTextEdit(handle); } @@ -3332,6 +3261,113 @@ index 55fcabb1d6e0767fc21c1f0beb76e941ed3c0846..9fd6a05fb8022c5e4e3d67f9b0e9df3f public static Component[] sanitizeLines(String[] lines) { Component[] components = new Component[4]; +diff --git a/src/main/java/org/bukkit/craftbukkit/block/sign/CraftSignSide.java b/src/main/java/org/bukkit/craftbukkit/block/sign/CraftSignSide.java +index 5a6bd104a823f011a977f5d8a681dc9d29fbe8f6..e38414fe568e0d84ecacf71dd85c1a12ec7bc053 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/sign/CraftSignSide.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/sign/CraftSignSide.java +@@ -11,36 +11,69 @@ import org.jetbrains.annotations.Nullable; + public class CraftSignSide implements SignSide { + + // Lazily initialized only if requested: +- private String[] originalLines = null; +- private String[] lines = null; ++ // Paper start ++ private java.util.ArrayList originalLines = null; // ArrayList for RandomAccess ++ private java.util.ArrayList lines = null; // ArrayList for RandomAccess ++ // Paper end + private final SignBlockEntity signText; + + public CraftSignSide(SignBlockEntity signText) { + this.signText = signText; + } + ++ // Paper start ++ @Override ++ public java.util.@NotNull List lines() { ++ this.loadLines(); ++ return this.lines; ++ } ++ ++ @Override ++ public net.kyori.adventure.text.@NotNull Component line(final int index) throws IndexOutOfBoundsException { ++ this.loadLines(); ++ return this.lines.get(index); ++ } ++ ++ @Override ++ public void line(final int index, final net.kyori.adventure.text.@NotNull Component line) throws IndexOutOfBoundsException { ++ this.loadLines(); ++ this.lines.set(index, line); ++ } ++ ++ private void loadLines() { ++ if (this.lines != null) { ++ return; ++ } ++ // Lazy initialization: ++ this.lines = io.papermc.paper.adventure.PaperAdventure.asAdventure(com.google.common.collect.Lists.newArrayList(this.signText.messages)); ++ this.originalLines = new java.util.ArrayList<>(this.lines); ++ } ++ // Paper end ++ + @NotNull + @Override + public String[] getLines() { +- if (this.lines == null) { +- // Lazy initialization: +- this.lines = new String[signText.messages.length]; +- System.arraycopy(CraftSign.revertComponents(signText.messages), 0, lines, 0, lines.length); +- this.originalLines = new String[lines.length]; +- System.arraycopy(lines, 0, originalLines, 0, originalLines.length); +- } +- return this.lines; ++ // Paper start ++ this.loadLines(); ++ return this.lines.stream().map(net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection()::serialize).toArray(String[]::new); // Paper ++ // Paper end + } + + @NotNull + @Override + public String getLine(int index) throws IndexOutOfBoundsException { +- return this.getLines()[index]; ++ // Paper start ++ this.loadLines(); ++ return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(this.lines.get(index)); ++ // Paper end + } + + @Override + public void setLine(int index, @NotNull String line) throws IndexOutOfBoundsException { +- this.getLines()[index] = line; ++ // Paper start ++ this.loadLines(); ++ this.lines.set(index, line != null ? net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(line) : net.kyori.adventure.text.Component.empty()); ++ // Paper end + } + + @Override +@@ -66,13 +99,16 @@ public class CraftSignSide implements SignSide { + + public void applyLegacyStringToSignSide() { + if (this.lines != null) { +- for (int i = 0; i < lines.length; i++) { +- String line = (this.lines[i] == null) ? "" : this.lines[i]; +- if (line.equals(this.originalLines[i])) { ++ // Paper start ++ for (int i = 0; i < this.lines.size(); ++i) { ++ net.kyori.adventure.text.Component component = this.lines.get(i); ++ net.kyori.adventure.text.Component origComp = this.originalLines.get(i); ++ if (component.equals(origComp)) { + continue; // The line contents are still the same, skip. + } +- this.signText.setMessage(i, CraftChatMessage.fromString(line)[0]); ++ this.signText.setMessage(i, io.papermc.paper.adventure.PaperAdventure.asVanilla(component)); + } ++ // Paper end + } + } + } diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java index 3de88112bdb08d6bd0d28f20582c4090bfd8dbfe..87f2cea36d852c81fdb0a1bc21162d41377ab2e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/CraftBlockCommandSender.java @@ -3585,10 +3621,10 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa 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 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e07921f02 100644 +index 4176633bf32c1e28694f3af1cda2033df05bca94..2162df3654bcad4073f499138f9faac96fbc8007 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -283,14 +283,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -285,14 +285,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getDisplayName() { @@ -3628,7 +3664,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e @Override public String getPlayerListName() { return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName); -@@ -309,42 +334,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -311,42 +336,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } @@ -3680,7 +3716,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e this.getHandle().connection.send(packet); } -@@ -376,6 +401,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -378,6 +403,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.disconnect(message == null ? "" : message); } @@ -3704,7 +3740,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e @Override public void setCompassTarget(Location loc) { if (this.getHandle().connection == null) return; -@@ -704,6 +746,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -706,6 +748,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } @@ -3729,7 +3765,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e @Override public void sendSignChange(Location loc, String[] lines) { this.sendSignChange(loc, lines, DyeColor.BLACK); -@@ -731,6 +791,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -733,6 +793,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } Component[] components = CraftSign.sanitizeLines(lines); @@ -3741,7 +3777,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState()); sign.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData())); sign.setHasGlowingText(hasGlowingText); -@@ -738,7 +803,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -740,7 +805,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { sign.setMessage(i, components[i]); } @@ -3751,7 +3787,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e } @Override -@@ -1631,7 +1697,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1633,7 +1699,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url) { @@ -3760,7 +3796,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e } @Override -@@ -1646,7 +1712,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1648,7 +1714,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url, byte[] hash, boolean force) { @@ -3769,7 +3805,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e } @Override -@@ -1662,6 +1728,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1664,6 +1730,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } @@ -3791,7 +3827,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e public void addChannel(String channel) { Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); channel = StandardMessenger.validateAndCorrectChannel(channel); -@@ -2066,6 +2147,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2068,6 +2149,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance; } @@ -3804,7 +3840,7 @@ index 1fc45821f61b7f14876a31a5792cfbd1f2efe6b2..693978b0ca9eacba0b518d121b03c23e @Override public int getPing() { return this.getHandle().latency; -@@ -2111,6 +2198,232 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2118,6 +2205,232 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().allowsListing(); } diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch index 56e2fdf2a5..01079c9d82 100644 --- a/patches/server/0011-Paper-command.patch +++ b/patches/server/0011-Paper-command.patch @@ -615,10 +615,10 @@ index 1fe07773cf9664164b29164caba22800e5a6bdae..cb6f192c11cda6230ec365e6cefb44a3 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 15449084959d4dcd112ea112e2bc79ee7f96006a..04a1eb79f8fc5651a39b739cc2bbb2412f8a76c1 100644 +index df637dec0e910f3879e1e38aa11d8cf3e755bc20..42d25bed20199403ae75e6a832aaa3e56b0ba44e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -905,6 +905,7 @@ public final class CraftServer implements Server { +@@ -907,6 +907,7 @@ public final class CraftServer implements Server { this.commandMap.clearCommands(); this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot @@ -626,7 +626,7 @@ index 15449084959d4dcd112ea112e2bc79ee7f96006a..04a1eb79f8fc5651a39b739cc2bbb241 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2475,6 +2476,34 @@ public final class CraftServer implements Server { +@@ -2477,6 +2478,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 20e8ed1d69..df63138071 100644 --- a/patches/server/0013-Paper-Plugins.patch +++ b/patches/server/0013-Paper-Plugins.patch @@ -6750,10 +6750,10 @@ index aa054369cef3da4f90ce17788dcb9ca80dc98010..d9f2518a08bc4ae978051be51e467597 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 df1058c8f3198fee567938b91021e253e9fbbf00..2d112dd2ea808773e364396b26f04bca54a6fa37 100644 +index 42d25bed20199403ae75e6a832aaa3e56b0ba44e..054a18343ff806d0ad96e9354f82c7906467adb2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -264,7 +264,8 @@ public final class CraftServer implements Server { +@@ -266,7 +266,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(); @@ -6763,7 +6763,7 @@ index df1058c8f3198fee567938b91021e253e9fbbf00..2d112dd2ea808773e364396b26f04bca private final StructureManager structureManager; protected final DedicatedServer console; protected final DedicatedPlayerList playerList; -@@ -412,24 +413,7 @@ public final class CraftServer implements Server { +@@ -414,24 +415,7 @@ public final class CraftServer implements Server { } public void loadPlugins() { @@ -6789,7 +6789,7 @@ index df1058c8f3198fee567938b91021e253e9fbbf00..2d112dd2ea808773e364396b26f04bca } public void enablePlugins(PluginLoadOrder type) { -@@ -518,15 +502,17 @@ public final class CraftServer implements Server { +@@ -520,15 +504,17 @@ public final class CraftServer implements Server { private void enablePlugin(Plugin plugin) { try { List perms = plugin.getDescription().getPermissions(); @@ -6813,7 +6813,7 @@ index df1058c8f3198fee567938b91021e253e9fbbf00..2d112dd2ea808773e364396b26f04bca this.pluginManager.enablePlugin(plugin); } catch (Throwable ex) { -@@ -929,6 +915,7 @@ public final class CraftServer implements Server { +@@ -931,6 +917,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 31e1d98993..f73ac076fc 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -1632,10 +1632,10 @@ index 9c3ce492051199acb8d38ade121ec8a0cbc50f54..aa4f2dc63dd79e6c3d7594d2fd63fa00 }; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7eaf75ac95a5651b6245b406983144a484a0832c..3f68ecca17f297e74bfdb8f93c2cfc71c6719b31 100644 +index 054a18343ff806d0ad96e9354f82c7906467adb2..cdc2ae90e70407455ba03b0805941ace809fa7f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -362,7 +362,7 @@ public final class CraftServer implements Server { +@@ -364,7 +364,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"); @@ -1644,7 +1644,7 @@ index 7eaf75ac95a5651b6245b406983144a484a0832c..3f68ecca17f297e74bfdb8f93c2cfc71 this.overrideSpawnLimits(); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); -@@ -2392,12 +2392,31 @@ public final class CraftServer implements Server { +@@ -2394,12 +2394,31 @@ public final class CraftServer implements Server { private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot() { @@ -1846,10 +1846,10 @@ 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 693978b0ca9eacba0b518d121b03c23e07921f02..ec0eeee342340f8fc099d29a234e658672a7ba7c 100644 +index 2162df3654bcad4073f499138f9faac96fbc8007..12676b0e8860d98693c176287c3904c3f87f1db7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2509,6 +2509,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2516,6 +2516,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR)); } diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch index ae03eab4a5..a6d7a34162 100644 --- a/patches/server/0018-Rewrite-chunk-system.patch +++ b/patches/server/0018-Rewrite-chunk-system.patch @@ -17854,10 +17854,10 @@ index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b9958 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3f68ecca17f297e74bfdb8f93c2cfc71c6719b31..c77a7bc3a3e0d244b082ba917412685822df47cb 100644 +index cdc2ae90e70407455ba03b0805941ace809fa7f3..de42661734a2e0484c584c8b017bed5654a2acee 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1125,7 +1125,7 @@ public final class CraftServer implements Server { +@@ -1127,7 +1127,7 @@ public final class CraftServer implements Server { this.console.addLevel(internal); this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal); @@ -17866,7 +17866,7 @@ index 3f68ecca17f297e74bfdb8f93c2cfc71c6719b31..c77a7bc3a3e0d244b082ba9174126858 this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld())); return internal.getWorld(); -@@ -1169,7 +1169,7 @@ public final class CraftServer implements Server { +@@ -1171,7 +1171,7 @@ public final class CraftServer implements Server { } handle.getChunkSource().close(save); @@ -17875,7 +17875,7 @@ index 3f68ecca17f297e74bfdb8f93c2cfc71c6719b31..c77a7bc3a3e0d244b082ba9174126858 handle.convertable.close(); } catch (Exception ex) { this.getLogger().log(Level.SEVERE, null, ex); -@@ -1988,7 +1988,7 @@ public final class CraftServer implements Server { +@@ -1990,7 +1990,7 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { @@ -18004,10 +18004,10 @@ index aab8099b9980b4d4b4ee6d7484abcc0b55962a5f..9920eaa5d9efa301462f2dbf7e06835b // 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 ec0eeee342340f8fc099d29a234e658672a7ba7c..94b8b1c5c624c59cff74be1631cc3e790bf1d4ab 100644 +index 12676b0e8860d98693c176287c3904c3f87f1db7..5237eb9d18fa3ed0474b9c3aa166058c21a66d5e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -182,6 +182,81 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -184,6 +184,81 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = System.currentTimeMillis(); } 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 fd60b50555..6b6c13f1ba 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 e6193b5403d4cb762f702b45ca7c07d5f64d8218..401a0976af9f911d1ddcc24b77505dba2665a65f 100644 +index de42661734a2e0484c584c8b017bed5654a2acee..ada6faf50976d7dd7b244c32f376419d31738bb1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -416,6 +416,35 @@ public final class CraftServer implements Server { +@@ -418,6 +418,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 } 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 88cb13820c..84454754f4 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 @@ -19,10 +19,10 @@ index 6251d93c2ea61c471b4e1069048327782acc78e7..d3cd196e1a6f707ed5e0008123cc65df 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 401a0976af9f911d1ddcc24b77505dba2665a65f..86480565d736e47e9f0c59c80b1242a5589d0f6f 100644 +index ada6faf50976d7dd7b244c32f376419d31738bb1..ee2247aa527f4dacaf0e2083a2df0246dac7514e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -255,7 +255,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; +@@ -257,7 +257,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot public final class CraftServer implements Server { diff --git a/patches/server/0030-Player-affects-spawning-API.patch b/patches/server/0030-Player-affects-spawning-API.patch index 4f81895266..a2d8b6f9a7 100644 --- a/patches/server/0030-Player-affects-spawning-API.patch +++ b/patches/server/0030-Player-affects-spawning-API.patch @@ -137,10 +137,10 @@ index be6e3e21ad62da01e5e2dd78e300cbc8efdbeb42..ea98625fe7c00743b8df74a24e6d4b75 for(Player player : this.players()) { if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bfd61549b3df0885a03276a2acfc798f078e3245..910f95f29c033b8d7adce705eae170235acf427e 100644 +index 5237eb9d18fa3ed0474b9c3aa166058c21a66d5e..50612858a0000d488dd9838ebd79403e1edd03e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2236,8 +2236,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2238,8 +2238,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { return this.getHandle().locale; diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch index b80e2e9749..fe91dad833 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 d3cd196e1a6f707ed5e0008123cc65df80422859..a7f9a3e57c7736b065b8dc4dba6e018c 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 86480565d736e47e9f0c59c80b1242a5589d0f6f..4a8aa6dcc8c359c12eadf87d1194cac4919ec2ae 100644 +index ee2247aa527f4dacaf0e2083a2df0246dac7514e..77bfda008ca983ba5ba4b26510f629a9d743b73b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2417,6 +2417,17 @@ public final class CraftServer implements Server { +@@ -2419,6 +2419,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } diff --git a/patches/server/0032-Only-refresh-abilities-if-needed.patch b/patches/server/0032-Only-refresh-abilities-if-needed.patch index f849607b54..8a6cfeb628 100644 --- a/patches/server/0032-Only-refresh-abilities-if-needed.patch +++ b/patches/server/0032-Only-refresh-abilities-if-needed.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 910f95f29c033b8d7adce705eae170235acf427e..617e504e6d19325a03875fc09eda80014d933724 100644 +index 50612858a0000d488dd9838ebd79403e1edd03e4..a80cd0e9d8c1ff3d653a21b2302d0d27dd0d95b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1905,12 +1905,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1907,12 +1907,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setFlying(boolean value) { diff --git a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch index e4729c6ec4..fc5846b32e 100644 --- a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch +++ b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch @@ -30,10 +30,10 @@ index 0d06bb85f2c81331dcf5cccde31c650a7c46f0b9..10660cd8df20269f07726af53dc07fa7 this.locale = packet.language; // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 617e504e6d19325a03875fc09eda80014d933724..dcadf816cfe7e4a54261b936ceb1684b9d6bec17 100644 +index a80cd0e9d8c1ff3d653a21b2302d0d27dd0d95b2..ada4dfb8e520eb2e383373771719f924b2062d1b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2236,8 +2236,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2238,8 +2238,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { diff --git a/patches/server/0052-Ensure-commands-are-not-ran-async.patch b/patches/server/0052-Ensure-commands-are-not-ran-async.patch index ac0013efd4..acdbd37833 100644 --- a/patches/server/0052-Ensure-commands-are-not-ran-async.patch +++ b/patches/server/0052-Ensure-commands-are-not-ran-async.patch @@ -74,10 +74,10 @@ index 5291581c87b65be72f482b4da1fccd33fa053591..dae74cda3b9faa0c8aeecc6c7bc32995 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 4a8aa6dcc8c359c12eadf87d1194cac4919ec2ae..080afe93a303626254d737dac1222736587a53c3 100644 +index 77bfda008ca983ba5ba4b26510f629a9d743b73b..452171d26219f5169c707f17c56c46b928a84c60 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -853,6 +853,28 @@ public final class CraftServer implements Server { +@@ -855,6 +855,28 @@ public final class CraftServer implements Server { Validate.notNull(commandLine, "CommandLine cannot be null"); org.spigotmc.AsyncCatcher.catchOp("command dispatch"); // Spigot @@ -107,10 +107,10 @@ index 4a8aa6dcc8c359c12eadf87d1194cac4919ec2ae..080afe93a303626254d737dac1222736 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 dcadf816cfe7e4a54261b936ceb1684b9d6bec17..859637f7a5eca51db5a880a06355f1fc601bc266 100644 +index ada4dfb8e520eb2e383373771719f924b2062d1b..ce45e409ea3413cabb2e77c7013fa9b867817ad6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -510,7 +510,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -512,7 +512,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void chat(String msg) { if (this.getHandle().connection == null) return; diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch index 372de181ad..b49d3f4441 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 080afe93a303626254d737dac1222736587a53c3..5674691d0f4c8b0a4c4255476d3d156b08225206 100644 +index 452171d26219f5169c707f17c56c46b928a84c60..979bed9ee435cfc17aadb83184b2420b9a81c21e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1992,6 +1992,7 @@ public final class CraftServer implements Server { +@@ -1994,6 +1994,7 @@ public final class CraftServer implements Server { return this.helpMap; } diff --git a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch index d80aa181a2..5d66ceedc0 100644 --- a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch +++ b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch @@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4 // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 859637f7a5eca51db5a880a06355f1fc601bc266..f1c73e221a0fc0cb24076171b69db5c9fcb271e5 100644 +index ce45e409ea3413cabb2e77c7013fa9b867817ad6..aea668388c2960f515def749d4a8bf5359625dbd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,6 @@ @@ -73,7 +73,7 @@ index 859637f7a5eca51db5a880a06355f1fc601bc266..f1c73e221a0fc0cb24076171b69db5c9 import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.io.BaseEncoding; -@@ -356,6 +357,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -358,6 +359,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch index 84bc209e87..e53d93a966 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 5674691d0f4c8b0a4c4255476d3d156b08225206..5364bc705fb28380ef66c5faec336287360c7c6f 100644 +index 979bed9ee435cfc17aadb83184b2420b9a81c21e..e5c712fff29255da5173b2a35eba0f35ccd75ee3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -290,6 +290,7 @@ public final class CraftServer implements Server { +@@ -292,6 +292,7 @@ public final class CraftServer implements Server { public boolean ignoreVanillaPermissions = false; private final List playerView; public int reloadCount; diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch index e1984f893e..05975c8bfb 100644 --- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch +++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch @@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended This only is the case if the player is teleporting between worlds. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f1c73e221a0fc0cb24076171b69db5c9fcb271e5..053c07ae24782ab309900851f1a0e0f2b10186f6 100644 +index aea668388c2960f515def749d4a8bf5359625dbd..470eac3191c09c7c7fe4b36165ed1c213bac421c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1207,7 +1207,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1209,7 +1209,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { entity.connection.teleport(to); } else { // The respawn reason should never be used if the passed location is non null. diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch index 6b21b9b1d2..cb2efb14cc 100644 --- a/patches/server/0065-Complete-resource-pack-API.patch +++ b/patches/server/0065-Complete-resource-pack-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ee0cff3525ff6ca47c91363dd7660c7b85111971..b976e99aaabefefab37651467d4c60d664fda036 100644 +index dae74cda3b9faa0c8aeecc6c7bc329950033f653..dac2665008b5ba49134c84373f916c5c6ed355e9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1756,8 +1756,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -23,18 +23,10 @@ index ee0cff3525ff6ca47c91363dd7660c7b85111971..b976e99aaabefefab37651467d4c60d6 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 053c07ae24782ab309900851f1a0e0f2b10186f6..dfa60512f9113524a584d4a874a7d1e9e53259ba 100644 +index 470eac3191c09c7c7fe4b36165ed1c213bac421c..31785e1cee09977356ee2b65a7d41df2c959d1b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -158,6 +158,7 @@ import org.bukkit.plugin.Plugin; - import org.bukkit.plugin.messaging.StandardMessenger; - import org.bukkit.profile.PlayerProfile; - import org.bukkit.scoreboard.Scoreboard; -+import org.jetbrains.annotations.NotNull; - - import net.md_5.bungee.api.chat.BaseComponent; // Spigot - -@@ -176,6 +177,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -178,6 +178,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private double healthScale = 20; private CraftWorldBorder clientWorldBorder = null; private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener(); @@ -45,7 +37,7 @@ index 053c07ae24782ab309900851f1a0e0f2b10186f6..dfa60512f9113524a584d4a874a7d1e9 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -2359,6 +2364,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2361,6 +2365,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean getAffectsSpawning() { return this.getHandle().affectsSpawning; } 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 186807708e..96cd8aeb71 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 5364bc705fb28380ef66c5faec336287360c7c6f..377e631bb70c4711152ff2895bc8ffd3c032bba4 100644 +index e5c712fff29255da5173b2a35eba0f35ccd75ee3..da13de547f4f4343ca3301f1b8684eb3d42d62a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -450,6 +450,7 @@ public final class CraftServer implements Server { +@@ -452,6 +452,7 @@ public final class CraftServer implements Server { if (type == PluginLoadOrder.STARTUP) { this.helpMap.clear(); this.helpMap.initializeGeneralTopics(); @@ -27,7 +27,7 @@ index 5364bc705fb28380ef66c5faec336287360c7c6f..377e631bb70c4711152ff2895bc8ffd3 } Plugin[] plugins = this.pluginManager.getPlugins(); -@@ -469,7 +470,7 @@ public final class CraftServer implements Server { +@@ -471,7 +472,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 a5a43b5cad..2063290d84 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 0a0cb354c7a1016a7c1893581591f6b848bf221c..b6f7d306b35b496d1e85e0de588aea631e63c1d1 100644 +index da13de547f4f4343ca3301f1b8684eb3d42d62a1..488c37ef814a8c592f82cfc4197e9dcfd2a9e95c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2583,5 +2583,23 @@ public final class CraftServer implements Server { +@@ -2585,5 +2585,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 957790d315..e30c86c10e 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 ec97b740a935196d689fac7ff239968b87884a96..90ab7190b1f59f2a6440ebfa6454a4b395f45ab5 100644 +index 488c37ef814a8c592f82cfc4197e9dcfd2a9e95c..42fa812b86f439b3addce1f33365c7bfc3129fe2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -940,8 +940,16 @@ public final class CraftServer implements Server { +@@ -942,8 +942,16 @@ public final class CraftServer implements Server { world.spigotConfig.init(); // Spigot } diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 0262ded23d..f81b89e692 100644 --- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,10 +44,10 @@ index 9936fb67766dedba71b582316dd2bddd6567c342..2f161145789890fcd9bfd893b099f25a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index dfa60512f9113524a584d4a874a7d1e9e53259ba..2525b010fb36bc28327a33a5def6602e1ecfb3de 100644 +index 31785e1cee09977356ee2b65a7d41df2c959d1b2..16dc9546303d692c62b6a1538106019f6bbe149b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2164,6 +2164,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2165,6 +2165,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setRealHealth(double health) { 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 a6ef14dc06..4fdb8abac5 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 da98f074ccd5a40c635824112c97fd174c393cb1..6599f874d9f97e9ef4862039ecad7277 } 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 90ab7190b1f59f2a6440ebfa6454a4b395f45ab5..94dd69d1b8beaf0edf9faf79a66ba2d41e12b5b8 100644 +index 42fa812b86f439b3addce1f33365c7bfc3129fe2..6c055610a5aa3ae46a0505e533b72c7ea2ae6008 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1715,7 +1715,7 @@ public final class CraftServer implements Server { +@@ -1717,7 +1717,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/0113-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0113-Allow-Reloading-of-Command-Aliases.patch index 0552a020d4..587b5c1146 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 05b10d3f413021353b6cf84e3ec9c2f8413d5216..8c84447e96945f486a687f73bbd35e55d061a130 100644 +index 6c055610a5aa3ae46a0505e533b72c7ea2ae6008..9e6232ff554867a50eab767e1e8457cdfa0db81d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2609,5 +2609,24 @@ public final class CraftServer implements Server { +@@ -2611,5 +2611,24 @@ public final class CraftServer implements Server { DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); } diff --git a/patches/server/0122-String-based-Action-Bar-API.patch b/patches/server/0122-String-based-Action-Bar-API.patch index 73ceb8a2b0..e9f2445fe9 100644 --- a/patches/server/0122-String-based-Action-Bar-API.patch +++ b/patches/server/0122-String-based-Action-Bar-API.patch @@ -26,10 +26,10 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2525b010fb36bc28327a33a5def6602e1ecfb3de..0ae1f334eae66cfcca618655942c13809e38060b 100644 +index 16dc9546303d692c62b6a1538106019f6bbe149b..d9205d45b72c5d36feeb4da8a70532eaf0ff215f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -363,6 +363,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -364,6 +364,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper start diff --git a/patches/server/0135-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0135-Add-configuration-option-to-prevent-player-names-fro.patch index 5d433a1645..50c9d5fba4 100644 --- a/patches/server/0135-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/patches/server/0135-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 8c84447e96945f486a687f73bbd35e55d061a130..be56089f8e44161606aa5bc3ea89bc51a8f4adff 100644 +index 9e6232ff554867a50eab767e1e8457cdfa0db81d..0918939ff59989a2104d5320fb2fcea13dea3b8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2628,5 +2628,10 @@ public final class CraftServer implements Server { +@@ -2630,5 +2630,10 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); return true; } diff --git a/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch index 92915e6fb7..1bb7ccb13c 100644 --- a/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0136-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -19,7 +19,7 @@ Other changes: configuration diff --git a/build.gradle.kts b/build.gradle.kts -index 1c183e9083a5ce2a2995ae45864c564b7cde3f53..3e8f983cd7c69e9a95bcd863349adaf22be85128 100644 +index b0facb2b0b86fafbfd5776eba2e5bdb69cc1cbed..4a222d6769fe8dd33bcffa2e312e9bdf106e3eee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,17 @@ plugins { @@ -236,7 +236,7 @@ index a34c9da6dbd37ab01385b768c06fef418de9c7c8..ce2291fb34df531b783d34f8453128a7 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 325e65488b31efe609f60b5d6d95ca89eda39f92..cd9a7d5f30e0ca11bd735bbc132a80a228ca4c2e 100644 +index 0918939ff59989a2104d5320fb2fcea13dea3b8b..d29a4681006bd3ae7aa096988eb86f849c47613b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -41,7 +41,6 @@ import java.util.logging.Level; @@ -247,7 +247,7 @@ index 325e65488b31efe609f60b5d6d95ca89eda39f92..cd9a7d5f30e0ca11bd735bbc132a80a2 import net.minecraft.advancements.Advancement; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -@@ -1281,9 +1280,13 @@ public final class CraftServer implements Server { +@@ -1283,9 +1282,13 @@ public final class CraftServer implements Server { return this.logger; } diff --git a/patches/server/0142-Add-UnknownCommandEvent.patch b/patches/server/0142-Add-UnknownCommandEvent.patch index a493f62980..43cb3162d1 100644 --- a/patches/server/0142-Add-UnknownCommandEvent.patch +++ b/patches/server/0142-Add-UnknownCommandEvent.patch @@ -83,10 +83,10 @@ index 971fc7f5f51ba82a7e8abafa6a5139c24a9aac0b..7f561ab6e56cd1749da8eff950080d3a b1 = 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cd9a7d5f30e0ca11bd735bbc132a80a228ca4c2e..78deb4398cc45cf20d054dcbaacfe04366193ab5 100644 +index d29a4681006bd3ae7aa096988eb86f849c47613b..708203b92f22374501aa252646b6a5e485f0bdad 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -516,6 +516,7 @@ public final class CraftServer implements Server { +@@ -518,6 +518,7 @@ public final class CraftServer implements Server { } node = clone; } @@ -94,7 +94,7 @@ index cd9a7d5f30e0ca11bd735bbc132a80a228ca4c2e..78deb4398cc45cf20d054dcbaacfe043 dispatcher.getDispatcher().getRoot().addChild(node); } else { -@@ -882,7 +883,13 @@ public final class CraftServer implements Server { +@@ -884,7 +885,13 @@ public final class CraftServer implements Server { // Spigot start if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) { diff --git a/patches/server/0143-Basic-PlayerProfile-API.patch b/patches/server/0143-Basic-PlayerProfile-API.patch index 6a404daa6c..334495f2c4 100644 --- a/patches/server/0143-Basic-PlayerProfile-API.patch +++ b/patches/server/0143-Basic-PlayerProfile-API.patch @@ -631,10 +631,10 @@ index 4038bb76339d43f18770624bd7fecc79b8d7f2a9..2456edc11b29a92b1648937cd3dd6a9a 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 6ec9de5d0a9076a841a183b1c696bb53e48f9f97..b305c6e026ccd0a7f1b2b2ac79da9555c21feeb4 100644 +index 708203b92f22374501aa252646b6a5e485f0bdad..ba53c66b4708e7d2efc2563edf8a39b8664b6f4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -253,6 +253,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; +@@ -255,6 +255,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -644,7 +644,7 @@ index 6ec9de5d0a9076a841a183b1c696bb53e48f9f97..b305c6e026ccd0a7f1b2b2ac79da9555 public final class CraftServer implements Server { private final String serverName = "Paper"; // Paper private final String serverVersion; -@@ -294,6 +297,7 @@ public final class CraftServer implements Server { +@@ -296,6 +299,7 @@ public final class CraftServer implements Server { static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); ConfigurationSerialization.registerClass(CraftPlayerProfile.class); @@ -652,7 +652,7 @@ index 6ec9de5d0a9076a841a183b1c696bb53e48f9f97..b305c6e026ccd0a7f1b2b2ac79da9555 CraftItemFactory.instance(); } -@@ -2643,5 +2647,37 @@ public final class CraftServer implements Server { +@@ -2645,5 +2649,37 @@ public final class CraftServer implements Server { public boolean suggestPlayerNamesWhenNullTabCompletions() { return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions; } diff --git a/patches/server/0161-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0161-Expose-client-protocol-version-and-virtual-host.patch index e29258c71e..7132084e0b 100644 --- a/patches/server/0161-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0161-Expose-client-protocol-version-and-virtual-host.patch @@ -90,10 +90,10 @@ index 2be1bd39ee1341128f02e38afe5698b837735827..cca08b8c6e1e15f13326a2a7e33e7f32 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0ae1f334eae66cfcca618655942c13809e38060b..a88c11fda59484d6d8d15dfca06ae1fe5d41259c 100644 +index d9205d45b72c5d36feeb4da8a70532eaf0ff215f..aafaaa0457c2f52d6b9a30b9774246b564277256 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -307,6 +307,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -308,6 +308,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/server/0169-AsyncTabCompleteEvent.patch b/patches/server/0169-AsyncTabCompleteEvent.patch index 4b245eb6a8..7ee41315ee 100644 --- a/patches/server/0169-AsyncTabCompleteEvent.patch +++ b/patches/server/0169-AsyncTabCompleteEvent.patch @@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f6365bfdcd3c516ce1ce9ea780e0af3d4102a758..0ad5aed5d1bbfb60d951db4b897e66af6c00ad4d 100644 +index be2b8c7cf8c36242f4eee12c9f7b8217f31b12ab..efc9b3bf0a63f87f8d1cab57b8f521a306aef5f3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -780,12 +780,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -91,10 +91,10 @@ index f6365bfdcd3c516ce1ce9ea780e0af3d4102a758..0ad5aed5d1bbfb60d951db4b897e66af @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 435de87653033ed417d722b99b9acb8e3e68f915..de0b3ab49809702c2194f9d148909e5fcaf2ed2f 100644 +index ba53c66b4708e7d2efc2563edf8a39b8664b6f4c..c5bf6cd46d72d415cf3581823dd8fa9a4f4699c1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2096,7 +2096,7 @@ public final class CraftServer implements Server { +@@ -2098,7 +2098,7 @@ public final class CraftServer implements Server { offers = this.tabCompleteChat(player, message); } diff --git a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch index b9e8a9132f..097ebe86c7 100644 --- a/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0171-Ability-to-apply-mending-to-XP-API.patch @@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a88c11fda59484d6d8d15dfca06ae1fe5d41259c..5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077 100644 +index aafaaa0457c2f52d6b9a30b9774246b564277256..6ec434b6e07aba63b28f9f03eadc3550e43f9998 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1535,7 +1535,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1536,7 +1536,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override diff --git a/patches/server/0184-Player.setPlayerProfile-API.patch b/patches/server/0184-Player.setPlayerProfile-API.patch index 6019473305..293c40d7a8 100644 --- a/patches/server/0184-Player.setPlayerProfile-API.patch +++ b/patches/server/0184-Player.setPlayerProfile-API.patch @@ -9,7 +9,7 @@ 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 0ad5aed5d1bbfb60d951db4b897e66af6c00ad4d..560ac213e67d1099b7bc3f385bd8c024f7fd49df 100644 +index efc9b3bf0a63f87f8d1cab57b8f521a306aef5f3..d9c441f600a1f981a9dad075cba9d1d9b28e1aa0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1536,7 +1536,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -55,7 +55,7 @@ index e7442952ef1f03969949014492a7ddc6d0796ba5..69a1852905dd4724c30ac8ab88c14251 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 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4fec250470 100644 +index 6ec434b6e07aba63b28f9f03eadc3550e43f9998..d3b5c7d0d6ac449ecfb99e0ed62981b296528e07 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -82,6 +82,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes; @@ -66,7 +66,7 @@ index 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4f import net.minecraft.world.level.block.entity.SignBlockEntity; import net.minecraft.world.level.border.BorderChangeListener; import net.minecraft.world.level.saveddata.maps.MapDecoration; -@@ -290,11 +291,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -291,11 +292,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return server.getPlayer(getUniqueId()) != null; } @@ -78,7 +78,7 @@ index 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4f @Override public InetSocketAddress getAddress() { if (this.getHandle().connection == null) return null; -@@ -1685,8 +1681,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1686,8 +1682,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private void untrackAndHideEntity(org.bukkit.entity.Entity entity) { // Remove this entity from the hidden player's EntityTrackerEntry @@ -95,7 +95,7 @@ index 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4f ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); if (entry != null) { entry.removePlayer(this.getHandle()); -@@ -1699,8 +1702,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1700,8 +1703,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new ClientboundPlayerInfoRemovePacket(List.of(otherPlayer.getUUID()))); } } @@ -104,7 +104,7 @@ index 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4f } void resetAndHideEntity(org.bukkit.entity.Entity entity) { -@@ -1777,8 +1778,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1778,8 +1779,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) { entry.updatePlayer(this.getHandle()); } @@ -144,7 +144,7 @@ index 5cbbed3f8a82c7cb4158b236ffb2a0c20f3d5077..a6ecffe0d8f83425617be2a8fbf91e4f } void resetAndShowEntity(org.bukkit.entity.Entity entity) { -@@ -1791,6 +1822,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1792,6 +1823,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.trackAndShowEntity(entity); } } diff --git a/patches/server/0185-getPlayerUniqueId-API.patch b/patches/server/0185-getPlayerUniqueId-API.patch index 676489a477..26c97d85bb 100644 --- a/patches/server/0185-getPlayerUniqueId-API.patch +++ b/patches/server/0185-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 de0b3ab49809702c2194f9d148909e5fcaf2ed2f..f6e7cfc4d86dfdc0ff87642fbc7af330df8eb725 100644 +index c5bf6cd46d72d415cf3581823dd8fa9a4f4699c1..d43c27328801f1b830f2438fe1d7a11d44c08885 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1718,6 +1718,25 @@ public final class CraftServer implements Server { +@@ -1720,6 +1720,25 @@ public final class CraftServer implements Server { return recipients.size(); } diff --git a/patches/server/0189-Flag-to-disable-the-channel-limit.patch b/patches/server/0189-Flag-to-disable-the-channel-limit.patch index 0268c68335..4e0b086404 100644 --- a/patches/server/0189-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0189-Flag-to-disable-the-channel-limit.patch @@ -9,10 +9,10 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a6ecffe0d8f83425617be2a8fbf91e4fec250470..eae9f51464d6bcb26178ac79f7026154c12b6bc9 100644 +index d3b5c7d0d6ac449ecfb99e0ed62981b296528e07..e65981b8d064c6f9309b7b574531a6083fe0d783 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -181,6 +181,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; private String resourcePackHash; @@ -20,7 +20,7 @@ index a6ecffe0d8f83425617be2a8fbf91e4fec250470..eae9f51464d6bcb26178ac79f7026154 // Paper end public CraftPlayer(CraftServer server, ServerPlayer entity) { -@@ -2060,7 +2061,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2061,7 +2062,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end public void addChannel(String channel) { diff --git a/patches/server/0190-Add-openSign-method-to-HumanEntity.patch b/patches/server/0190-Add-openSign-method-to-HumanEntity.patch index ec647635b1..318ce16abc 100644 --- a/patches/server/0190-Add-openSign-method-to-HumanEntity.patch +++ b/patches/server/0190-Add-openSign-method-to-HumanEntity.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 9fd6a05fb8022c5e4e3d67f9b0e9df3f477ea637..32592483dfb477501a72360b6b9bc497a608ce0a 100644 +index 46b18cac2c40db01ebd29528d529fe631b03ddbb..f399a69e9dbac06e591219040634cbdb9382d3a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -117,15 +117,15 @@ public class CraftSign extends CraftBlockEntityState< - } +@@ -100,15 +100,15 @@ public class CraftSign extends CraftBlockEntityState< + super.applyTo(sign); } - public static void openSign(Sign sign, Player player) { diff --git a/patches/server/0218-InventoryCloseEvent-Reason-API.patch b/patches/server/0218-InventoryCloseEvent-Reason-API.patch index d4570886f2..192e54ddb1 100644 --- a/patches/server/0218-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0218-InventoryCloseEvent-Reason-API.patch @@ -173,10 +173,10 @@ index 04fe1bd9254b084eacbbca0e2a8a1ac100d17f12..77314674a1f66a514f8f5a0fef5ca188 @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 eae9f51464d6bcb26178ac79f7026154c12b6bc9..db79410d56e0defeb710203f9332dff6d5418ee4 100644 +index e65981b8d064c6f9309b7b574531a6083fe0d783..931ad65bc199a3d5089c9f52d7b8b5d29b115285 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1238,7 +1238,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1239,7 +1239,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { diff --git a/patches/server/0221-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0221-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch index f1dc80e7b1..e95d8952ce 100644 --- a/patches/server/0221-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch +++ b/patches/server/0221-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread diff --git a/build.gradle.kts b/build.gradle.kts -index 2134a7d28cdf1a1b6ef50d4978e80e4411cf3c5a..6ca33c80c8bd4d87953103c06804fa9a0eef4f3c 100644 +index 8af9299c67ad2a1746bb340287b3373b208568ee..03095720795b994d0d97e7f65d350552792d71a8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") + runtimeOnly("com.lmax:disruptor:3.4.4") // Paper diff --git a/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch index 4a7c660433..a0b659a988 100644 --- a/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0239-Add-Early-Warning-Feature-to-WatchDog.patch @@ -33,10 +33,10 @@ index e6826cd0a596f063e8737dcde3c8c6c5b3f71970..1a2607d1b257cea65c82c661a6b3d46c 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 f6e7cfc4d86dfdc0ff87642fbc7af330df8eb725..9894d5d10c76469ad6f26100ce3924b65597e738 100644 +index d43c27328801f1b830f2438fe1d7a11d44c08885..d351c9076cdc8e6c491e5afeaafda59182c169d6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -902,6 +902,7 @@ public final class CraftServer implements Server { +@@ -904,6 +904,7 @@ public final class CraftServer implements Server { @Override public void reload() { @@ -44,7 +44,7 @@ index f6e7cfc4d86dfdc0ff87642fbc7af330df8eb725..9894d5d10c76469ad6f26100ce3924b6 this.reloadCount++; this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile()); this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile()); -@@ -991,6 +992,7 @@ public final class CraftServer implements Server { +@@ -993,6 +994,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/0254-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch index e06155b58b..9358575b58 100644 --- a/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0254-Expose-attack-cooldown-methods-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b1d32f9f272b4cb88d0ed745ea5f6b227dc369bb..30c4cc750aac280475b69d1ab6b7e0c52b9d7350 100644 +index 931ad65bc199a3d5089c9f52d7b8b5d29b115285..31c75a7b7a947626417421287be0f0e2097acbd9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2795,6 +2795,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2801,6 +2801,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.adventure$pointers; } diff --git a/patches/server/0255-Improve-death-events.patch b/patches/server/0255-Improve-death-events.patch index 393fc27372..5b3368871f 100644 --- a/patches/server/0255-Improve-death-events.patch +++ b/patches/server/0255-Improve-death-events.patch @@ -352,10 +352,10 @@ index e38cbdff34479673f1640c46d727f1a807a609c7..dbb4bfb3d1f1ce2e435ca531be36ea44 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 124cc062b8b8f63788d903b5706999dc64b8c974..081317023417d759ff8d0e754af426fb0902b642 100644 +index 31c75a7b7a947626417421287be0f0e2097acbd9..f3d532ea98264c233cacde042d6af0957ca6f31d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2320,7 +2320,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2321,7 +2321,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void sendHealthUpdate() { diff --git a/patches/server/0284-Make-the-default-permission-message-configurable.patch b/patches/server/0284-Make-the-default-permission-message-configurable.patch index 310173ba17..3f2f450738 100644 --- a/patches/server/0284-Make-the-default-permission-message-configurable.patch +++ b/patches/server/0284-Make-the-default-permission-message-configurable.patch @@ -18,10 +18,10 @@ index e3467aaf6d0c8d486b84362e3c20b3fe631b50ff..8f16640fc2f1233c10392d7e32a54d78 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 153e82a91e01e05cb89a64c88c5660fb9765c3a0..f282954ee9b92749a3bcdcdb0fec67809287f4f0 100644 +index d351c9076cdc8e6c491e5afeaafda59182c169d6..d90435e05330a625514fab36fa7195b4d78ab713 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2669,6 +2669,16 @@ public final class CraftServer implements Server { +@@ -2671,6 +2671,16 @@ public final class CraftServer implements Server { return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions; } diff --git a/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index feccc88cee..06800dabb4 100644 --- a/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0292-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -106,10 +106,10 @@ index 69a1852905dd4724c30ac8ab88c14251eee2c371..17b3d5de58a9ef3acc67624c46cd6bbd public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 081317023417d759ff8d0e754af426fb0902b642..ea8dc87ce9a995ace56c27c53a15ef51dc4a871d 100644 +index f3d532ea98264c233cacde042d6af0957ca6f31d..a87007a67ee1188150abab643329fa7314f9e583 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -183,6 +183,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; private String resourcePackHash; private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit @@ -117,7 +117,7 @@ index 081317023417d759ff8d0e754af426fb0902b642..ea8dc87ce9a995ace56c27c53a15ef51 // Paper end public CraftPlayer(CraftServer server, ServerPlayer entity) { -@@ -1932,6 +1933,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1933,6 +1934,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = firstPlayed; } @@ -136,7 +136,7 @@ index 081317023417d759ff8d0e754af426fb0902b642..ea8dc87ce9a995ace56c27c53a15ef51 public void readExtraData(CompoundTag nbttagcompound) { this.hasPlayedBefore = true; if (nbttagcompound.contains("bukkit")) { -@@ -1954,6 +1967,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1955,6 +1968,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setExtraData(CompoundTag nbttagcompound) { @@ -145,7 +145,7 @@ index 081317023417d759ff8d0e754af426fb0902b642..ea8dc87ce9a995ace56c27c53a15ef51 if (!nbttagcompound.contains("bukkit")) { nbttagcompound.put("bukkit", new CompoundTag()); } -@@ -1968,6 +1983,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1969,6 +1984,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { data.putLong("firstPlayed", this.getFirstPlayed()); data.putLong("lastPlayed", System.currentTimeMillis()); data.putString("lastKnownName", handle.getScoreboardName()); diff --git a/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch index efc7b00de4..f8eface290 100644 --- a/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch +++ b/patches/server/0294-Block-Entity-remove-from-being-called-on-Players.patch @@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to be unintentional in the few cases we've seen so far. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6425c208fb103165b75f7bfde0d9fc937ee08f7a..0f570d7a56c9e7456ce6863af73af19f89a759bc 100644 +index a87007a67ee1188150abab643329fa7314f9e583..fefe3dc1597d7449e0138be2f60918b06864108a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2842,6 +2842,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2848,6 +2848,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetCooldown() { getHandle().resetAttackStrengthTicker(); } diff --git a/patches/server/0318-Expose-the-internal-current-tick.patch b/patches/server/0318-Expose-the-internal-current-tick.patch index 812ff61f9a..224a643d90 100644 --- a/patches/server/0318-Expose-the-internal-current-tick.patch +++ b/patches/server/0318-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 f282954ee9b92749a3bcdcdb0fec67809287f4f0..2fb9698b0037a04472c36b801249c6aa82b09b22 100644 +index d90435e05330a625514fab36fa7195b4d78ab713..af732bd31dc2cce4e65e01d69a0c366e71439097 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2710,5 +2710,10 @@ public final class CraftServer implements Server { +@@ -2712,5 +2712,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/0343-Anti-Xray.patch b/patches/server/0343-Anti-Xray.patch index 38bf806dcf..c7c29f0bf5 100644 --- a/patches/server/0343-Anti-Xray.patch +++ b/patches/server/0343-Anti-Xray.patch @@ -1572,10 +1572,10 @@ index b738e1f7debac7d70910d5ac908ca9d4f60640d5..269ebe8e8826a0c89e471cb59b503900 public CraftChunk(net.minecraft.world.level.chunk.LevelChunk chunk) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5c7bae55758760a67f54c48427ddc3f021c22087..2be7afb4cfd77dd2b6cb0ca700b52812f2b5ffe1 100644 +index af732bd31dc2cce4e65e01d69a0c366e71439097..5096c8a665343c9b6f8be0e5721e8e3b83fdb122 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2244,7 +2244,7 @@ public final class CraftServer implements Server { +@@ -2246,7 +2246,7 @@ public final class CraftServer implements Server { public ChunkGenerator.ChunkData createChunkData(World world) { Validate.notNull(world, "World cannot be null"); ServerLevel handle = ((CraftWorld) world).getHandle(); @@ -1585,7 +1585,7 @@ index 5c7bae55758760a67f54c48427ddc3f021c22087..2be7afb4cfd77dd2b6cb0ca700b52812 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e95c0d533f518837d5f6000eb919d685c921d302..dbc211b8d23d766ecff7aab1884c72dc7e568dfb 100644 +index 998bfd1f63fc08067e9cc9fd5ed503e232dd4783..ef9813df00119d3effa48c5d0fb8f07f7ba7da15 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -417,11 +417,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0363-Add-tick-times-API-and-mspt-command.patch b/patches/server/0363-Add-tick-times-API-and-mspt-command.patch index d538b5a761..84ddc011e4 100644 --- a/patches/server/0363-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0363-Add-tick-times-API-and-mspt-command.patch @@ -184,10 +184,10 @@ index 2e29d1c3e5faf970bfaf3a545ef3553f284d68ef..d00545c31de383470bcb8e4d9c6edad2 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2be7afb4cfd77dd2b6cb0ca700b52812f2b5ffe1..a59e4c85d69f342bb55942e8b12053d907e97dd9 100644 +index 5096c8a665343c9b6f8be0e5721e8e3b83fdb122..42247677468ad3eac34fa1110e3684c2e51268ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2494,6 +2494,16 @@ public final class CraftServer implements Server { +@@ -2496,6 +2496,16 @@ public final class CraftServer implements Server { net.minecraft.server.MinecraftServer.getServer().tps15.getAverage() }; } diff --git a/patches/server/0364-Expose-MinecraftServer-isRunning.patch b/patches/server/0364-Expose-MinecraftServer-isRunning.patch index 67fa695d57..d59d535b65 100644 --- a/patches/server/0364-Expose-MinecraftServer-isRunning.patch +++ b/patches/server/0364-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 7912c5c1c2dabe698bb0c748449f7edc8a6ce9f6..808517a5912425a36ae446cf08b8600cc3b67a6e 100644 +index 42247677468ad3eac34fa1110e3684c2e51268ec..422413ddd62e19dced2776bb41f73af1ad294f43 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2725,5 +2725,10 @@ public final class CraftServer implements Server { +@@ -2727,5 +2727,10 @@ public final class CraftServer implements Server { public int getCurrentTick() { return net.minecraft.server.MinecraftServer.currentTick; } diff --git a/patches/server/0381-Implement-Player-Client-Options-API.patch b/patches/server/0381-Implement-Player-Client-Options-API.patch index 0980f77c4f..dfe55c81e4 100644 --- a/patches/server/0381-Implement-Player-Client-Options-API.patch +++ b/patches/server/0381-Implement-Player-Client-Options-API.patch @@ -116,10 +116,10 @@ index fedd9727e9d73fdbced6431b313a080705b1d9a5..75350988934c6eb1cd39587fa1f53335 if (getMainArm() != packet.mainHand()) { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5e4735ed74e47c28d85c2e7e08458e74f6559e47..a77858a6253a3195879aaa3bccccee6c0af5b00a 100644 +index fefe3dc1597d7449e0138be2f60918b06864108a..ef7078780b4829e61048233b60150b26f6a9b792 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -626,6 +626,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -627,6 +627,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message); } } diff --git a/patches/server/0391-Expose-game-version.patch b/patches/server/0391-Expose-game-version.patch index 66090aa90e..52e1433780 100644 --- a/patches/server/0391-Expose-game-version.patch +++ b/patches/server/0391-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 d6ed4cff5dba860f8ccd694052d68034426949be..c69b341774d2e1624344a62e52cdf9764195033a 100644 +index 422413ddd62e19dced2776bb41f73af1ad294f43..44658126e87eacc042752940685b3f7457ad9d5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -570,6 +570,13 @@ public final class CraftServer implements Server { +@@ -572,6 +572,13 @@ public final class CraftServer implements Server { return this.bukkitVersion; } diff --git a/patches/server/0394-misc-debugging-dumps.patch b/patches/server/0394-misc-debugging-dumps.patch index a3e5aaa046..1d27e91681 100644 --- a/patches/server/0394-misc-debugging-dumps.patch +++ b/patches/server/0394-misc-debugging-dumps.patch @@ -74,10 +74,10 @@ index 0c7f280bae81bbb492d5780a43e5ffda0f58756a..238a7bc87ab49da1f0fa3c733dd512fd this.connection.send(new ClientboundDisconnectPacket(ichatmutablecomponent)); this.connection.disconnect(ichatmutablecomponent); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c69b341774d2e1624344a62e52cdf9764195033a..1f1f63a37fdbed26e7cc77ecc19d546c2ef12c36 100644 +index 44658126e87eacc042752940685b3f7457ad9d5a..88e93f9daa5d69d858f61baf03724b96b8b5f1d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -993,6 +993,7 @@ public final class CraftServer implements Server { +@@ -995,6 +995,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/0396-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0396-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index be3feddf50..447763fd3a 100644 --- a/patches/server/0396-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0396-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and diff --git a/build.gradle.kts b/build.gradle.kts -index b6b077262132be3b30f81a2a6c9288afbd11c358..18949b866cd8da3825b730a7d0545bd8af21afa2 100644 +index c04f733d053a52218893ef2b9ca050f911b50b0a..e63ad0e49818709cb292b9e43f5b52f5cb13002f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { @@ -22,7 +22,7 @@ index b6b077262132be3b30f81a2a6c9288afbd11c358..18949b866cd8da3825b730a7d0545bd8 implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files implementation("commons-lang:commons-lang:2.6") + implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper @@ -105,6 +107,18 @@ tasks.check { diff --git a/patches/server/0397-Implement-Mob-Goal-API.patch b/patches/server/0397-Implement-Mob-Goal-API.patch index 37d3a61ed2..ea6cc39eb1 100644 --- a/patches/server/0397-Implement-Mob-Goal-API.patch +++ b/patches/server/0397-Implement-Mob-Goal-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API diff --git a/build.gradle.kts b/build.gradle.kts -index 18949b866cd8da3825b730a7d0545bd8af21afa2..d98add7d741e47d9ff095a817e0f895b7235a488 100644 +index e63ad0e49818709cb292b9e43f5b52f5cb13002f..719f4b4bff2ab651156f17e27412ae8b0e9e5d02 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,6 +36,7 @@ dependencies { @@ -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 9f4489e69bd69183e2ea158515a85828a6643959..cc3703fb00b0da8ec9d835868dbdf8e03fbee7cf 100644 +index 88e93f9daa5d69d858f61baf03724b96b8b5f1d8..164c137ee1cbfa540ec6ce85bfadab4d34e0c038 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2738,5 +2738,11 @@ public final class CraftServer implements Server { +@@ -2740,5 +2740,11 @@ public final class CraftServer implements Server { public boolean isStopping() { return net.minecraft.server.MinecraftServer.getServer().hasStopped(); } diff --git a/patches/server/0404-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0404-Wait-for-Async-Tasks-during-shutdown.patch index 1b7d3410de..5cd8daf120 100644 --- a/patches/server/0404-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0404-Wait-for-Async-Tasks-during-shutdown.patch @@ -22,10 +22,10 @@ index e189de6d2aa94e9bbb20f1477ee2e34431adb324..4a58843f7ce2dd9e50f9daf3065d056a // CraftBukkit end if (this.getConnection() != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d8ff8f02adbe532724d47fef5142fdf9b08de10d..86acd4c9acc33197fb9d35381677152521168cf1 100644 +index 164c137ee1cbfa540ec6ce85bfadab4d34e0c038..e2fd9a4fc9b0879416fe70aa5352327d3a901a4a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1003,6 +1003,31 @@ public final class CraftServer implements Server { +@@ -1005,6 +1005,31 @@ public final class CraftServer implements Server { org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload } diff --git a/patches/server/0427-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0427-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index e9be92ec6d..76771a632d 100644 --- a/patches/server/0427-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0427-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -102,10 +102,10 @@ index e9902fa67719c4b40fb9524bf77798357e9a97d9..b4f17b9c195081b54d79494d9afaf0da } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 86acd4c9acc33197fb9d35381677152521168cf1..d26c17cda10dd0a816175be9ab3a1fff30fcd9bd 100644 +index e2fd9a4fc9b0879416fe70aa5352327d3a901a4a..01f734e0e4eb51083ae4d80f3423122a98190095 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -942,8 +942,8 @@ public final class CraftServer implements Server { +@@ -944,8 +944,8 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); for (ServerLevel world : this.console.getAllLevels()) { @@ -117,7 +117,7 @@ index 86acd4c9acc33197fb9d35381677152521168cf1..d26c17cda10dd0a816175be9ab3a1fff for (SpawnCategory spawnCategory : SpawnCategory.values()) { if (CraftSpawnCategory.isValidForLimits(spawnCategory)) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dbc211b8d23d766ecff7aab1884c72dc7e568dfb..6c6408710bcb67295e5058631e4d56d7e7386ab8 100644 +index ef9813df00119d3effa48c5d0fb8f07f7ba7da15..3f1521b4f5a7b76a648fdaf7af9e2753c98ed545 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1143,7 +1143,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0431-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0431-Add-Plugin-Tickets-to-API-Chunk-Methods.patch index 7cac1156a2..51b5206647 100644 --- a/patches/server/0431-Add-Plugin-Tickets-to-API-Chunk-Methods.patch +++ b/patches/server/0431-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 14e6caf028dd6b44d6435e4cecb4d5dd5156d09b..6737fecddad32e65bbdcb43de70504678d4a5077 100644 +index 01f734e0e4eb51083ae4d80f3423122a98190095..5a09fa2042adc34d541b24fff12acca382a8f998 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -370,7 +370,7 @@ public final class CraftServer implements Server { +@@ -372,7 +372,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 14e6caf028dd6b44d6435e4cecb4d5dd5156d09b..6737fecddad32e65bbdcb43de7050467 this.minimumAPI = this.configuration.getString("settings.minimum-api"); this.loadIcon(); -@@ -922,7 +922,7 @@ public final class CraftServer implements Server { +@@ -924,7 +924,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/0456-Brand-support.patch b/patches/server/0456-Brand-support.patch index 0b33015f98..a982bee0d0 100644 --- a/patches/server/0456-Brand-support.patch +++ b/patches/server/0456-Brand-support.patch @@ -56,10 +56,10 @@ index b4f17b9c195081b54d79494d9afaf0da21f292c0..139daac1cc7359be4eebf73b2a578e07 return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 486f3b8c802d2224013c648347c91fc14f522d91..eddb463507bd12477345a661e07e8e111aec90b6 100644 +index ef7078780b4829e61048233b60150b26f6a9b792..65d311d01b9d18627f20de5dc89585a9b2055367 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2969,6 +2969,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2975,6 +2975,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end }; diff --git a/patches/server/0457-Add-setMaxPlayers-API.patch b/patches/server/0457-Add-setMaxPlayers-API.patch index 44cd861b9b..2b03270007 100644 --- a/patches/server/0457-Add-setMaxPlayers-API.patch +++ b/patches/server/0457-Add-setMaxPlayers-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add #setMaxPlayers API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 14d00939b9a8488eba040bf435e6837ecb424d65..9b75cf08096689522b670ad48e73126ad4cfc9b5 100644 +index cfe2dea64104eeaffd6606fdff0d5a1a2c111329..0e22201853ae2befdc6904e194f8bbc6d57fc9f5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -155,7 +155,7 @@ public abstract class PlayerList { @@ -18,10 +18,10 @@ index 14d00939b9a8488eba040bf435e6837ecb424d65..9b75cf08096689522b670ad48e73126a private int simulationDistance; private boolean allowCheatsForAllPlayers; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 64e59d5c545e6bc4e000e2ca779df427a67e5aae..5891dc6a41a0043ff85d343b7da5024c96f9a77e 100644 +index 5a09fa2042adc34d541b24fff12acca382a8f998..24d0419ac82ee388e8d545b3fb391eea424a53f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -665,6 +665,13 @@ public final class CraftServer implements Server { +@@ -667,6 +667,13 @@ public final class CraftServer implements Server { return this.playerList.getMaxPlayers(); } diff --git a/patches/server/0490-Player-elytra-boost-API.patch b/patches/server/0490-Player-elytra-boost-API.patch index d3ebc81c4e..6c41c479de 100644 --- a/patches/server/0490-Player-elytra-boost-API.patch +++ b/patches/server/0490-Player-elytra-boost-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6cac6959133d90f5755ed5272f7edc261a94cb69..aa926c0647acfc98ab9075b826dd34f68a4189c1 100644 +index 65d311d01b9d18627f20de5dc89585a9b2055367..28d0d184e990e30835d2848a32e53c39dd704319 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -648,6 +648,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -649,6 +649,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } throw new RuntimeException("Unknown settings type"); } diff --git a/patches/server/0493-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0493-Add-getOfflinePlayerIfCached-String.patch index 6a847fc835..9c16782d08 100644 --- a/patches/server/0493-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0493-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 5891dc6a41a0043ff85d343b7da5024c96f9a77e..1a745fbb6325d3dfb87714f54d7aa46ddf93ce04 100644 +index 24d0419ac82ee388e8d545b3fb391eea424a53f7..a6eba94e20b1c134fed45060645d80081a5e2184 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1809,6 +1809,28 @@ public final class CraftServer implements Server { +@@ -1811,6 +1811,28 @@ public final class CraftServer implements Server { return result; } diff --git a/patches/server/0504-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0504-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 51ad47abb3..d81d5e18f9 100644 --- a/patches/server/0504-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0504-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index aa926c0647acfc98ab9075b826dd34f68a4189c1..c4b5267263fdf5b1a7d94ac3f5fd5212d026cefd 100644 +index 28d0d184e990e30835d2848a32e53c39dd704319..01fd98028c3d7a3faa8fb3857116c38c752a2ea9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2513,7 +2513,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2514,7 +2514,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (data != null && !particle.getDataType().isInstance(data)) { throw new IllegalArgumentException("data should be " + particle.getDataType() + " got " + data.getClass()); } diff --git a/patches/server/0545-Add-sendOpLevel-API.patch b/patches/server/0545-Add-sendOpLevel-API.patch index 6c3c461da8..9355fae2dc 100644 --- a/patches/server/0545-Add-sendOpLevel-API.patch +++ b/patches/server/0545-Add-sendOpLevel-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8b683ffd930155adf7b1cd1088322621d4e0a037..e287ed6e916e750ac8e87a5025b9f1503470d1cf 100644 +index 74aacb322ac0ddc8b8f679e7e4d98336782c11c0..81faf7ca99132a87d68a0bc6c9b662a810d0b7b3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1079,6 +1079,11 @@ public abstract class PlayerList { @@ -32,10 +32,10 @@ index 8b683ffd930155adf7b1cd1088322621d4e0a037..e287ed6e916e750ac8e87a5025b9f150 public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c4b5267263fdf5b1a7d94ac3f5fd5212d026cefd..48e6d04473a5c7c66f0d66b8aa119e8da755f321 100644 +index 01fd98028c3d7a3faa8fb3857116c38c752a2ea9..207032804244857b849e38f87479f0fbe2902633 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -662,6 +662,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -663,6 +663,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ? (org.bukkit.entity.Firework) entity.getBukkitEntity() : null; } diff --git a/patches/server/0581-Expand-world-key-API.patch b/patches/server/0581-Expand-world-key-API.patch index 6f7bd70964..80f5832a89 100644 --- a/patches/server/0581-Expand-world-key-API.patch +++ b/patches/server/0581-Expand-world-key-API.patch @@ -20,10 +20,10 @@ index 3ffea505826bbe4151268ed9cffa5f2ddea27b62..287dd68f1aa78bf5f1406f585e4a6575 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1a745fbb6325d3dfb87714f54d7aa46ddf93ce04..79a0db289c837cc37e0d1caca91359bc3d96dbfe 100644 +index a6eba94e20b1c134fed45060645d80081a5e2184..2cdeb4505c02942079fb18cf7af15e63463f550c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1131,9 +1131,15 @@ public final class CraftServer implements Server { +@@ -1133,9 +1133,15 @@ public final class CraftServer implements Server { File folder = new File(this.getWorldContainer(), name); World world = this.getWorld(name); @@ -41,7 +41,7 @@ index 1a745fbb6325d3dfb87714f54d7aa46ddf93ce04..79a0db289c837cc37e0d1caca91359bc if ((folder.exists()) && (!folder.isDirectory())) { throw new IllegalArgumentException("File exists with the name '" + name + "' and isn't a folder"); -@@ -1222,7 +1228,7 @@ public final class CraftServer implements Server { +@@ -1224,7 +1230,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 1a745fbb6325d3dfb87714f54d7aa46ddf93ce04..79a0db289c837cc37e0d1caca91359bc } ServerLevel internal = (ServerLevel) new ServerLevel(this.console, console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11), -@@ -1314,6 +1320,15 @@ public final class CraftServer implements Server { +@@ -1316,6 +1322,15 @@ public final class CraftServer implements Server { return null; } diff --git a/patches/server/0584-copy-TESign-isEditable-from-snapshots.patch b/patches/server/0584-copy-TESign-isEditable-from-snapshots.patch index e438c4025a..b2904aa76c 100644 --- a/patches/server/0584-copy-TESign-isEditable-from-snapshots.patch +++ b/patches/server/0584-copy-TESign-isEditable-from-snapshots.patch @@ -5,13 +5,13 @@ Subject: [PATCH] copy TESign#isEditable from snapshots diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index cdc9474d37028324d39037a456be07fd4f576a6e..548f0676fc42523d6b64f3186508ef004c3a7f9e 100644 +index f399a69e9dbac06e591219040634cbdb9382d3a2..ed570d536d2ffcbcf7a591bc436401ee32b238c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -115,6 +115,7 @@ public class CraftSign extends CraftBlockEntityState< - } - // Paper end - } +@@ -98,6 +98,7 @@ public class CraftSign extends CraftBlockEntityState< + this.front.applyLegacyStringToSignSide(); + + super.applyTo(sign); + sign.isEditable = getSnapshot().isEditable; // Paper - copy manually } diff --git a/patches/server/0615-Add-basic-Datapack-API.patch b/patches/server/0615-Add-basic-Datapack-API.patch index 2fb769c755..b2cd735e8e 100644 --- a/patches/server/0615-Add-basic-Datapack-API.patch +++ b/patches/server/0615-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 7b3e69e4b21fb7dc8a1f3abcdc287f3b29d9f511..b61607c55c968e6a0d5c57799d73a8ccb91a2eea 100644 +index 2cdeb4505c02942079fb18cf7af15e63463f550c..acc119434a0510c89250b1c9c13fc99fb74ec302 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -292,6 +292,7 @@ public final class CraftServer implements Server { +@@ -294,6 +294,7 @@ public final class CraftServer implements Server { public boolean ignoreVanillaPermissions = false; private final List playerView; public int reloadCount; @@ -103,7 +103,7 @@ index 7b3e69e4b21fb7dc8a1f3abcdc287f3b29d9f511..b61607c55c968e6a0d5c57799d73a8cc public static Exception excessiveVelEx; // Paper - Velocity warnings static { -@@ -378,6 +379,7 @@ public final class CraftServer implements Server { +@@ -380,6 +381,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 7b3e69e4b21fb7dc8a1f3abcdc287f3b29d9f511..b61607c55c968e6a0d5c57799d73a8cc } public boolean getCommandBlockOverride(String command) { -@@ -2813,5 +2815,11 @@ public final class CraftServer implements Server { +@@ -2815,5 +2817,11 @@ public final class CraftServer implements Server { public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return mobGoals; } diff --git a/patches/server/0617-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0617-additions-to-PlayerGameModeChangeEvent.patch index a8dc9d980d..fbcce9d319 100644 --- a/patches/server/0617-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0617-additions-to-PlayerGameModeChangeEvent.patch @@ -142,10 +142,10 @@ index e6cbeae6800d22017b1762eaf9465419fbbe925f..43f02b1de7176f335f88ca6080b6d88b } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 48e6d04473a5c7c66f0d66b8aa119e8da755f321..05c7a359ee18612eeda9672afb362754ca776b2d 100644 +index 207032804244857b849e38f87479f0fbe2902633..45b338d33fae5017ab2eab3af6b83b8109e67c1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1560,7 +1560,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1561,7 +1561,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { throw new IllegalArgumentException("Mode cannot be null"); } diff --git a/patches/server/0621-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0621-Fix-and-optimise-world-force-upgrading.patch index b89f668424..677402e8db 100644 --- a/patches/server/0621-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0621-Fix-and-optimise-world-force-upgrading.patch @@ -359,10 +359,10 @@ index b294ef87fb93e7f4651dc04128124f297575860d..65fd57609e45ccd49ebfc1ba80d25243 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 08e3da659371dc67db7ebea33ee2528f304a13ae..a963c1e6aaba4fd55f5462be89e9afe8b20f082a 100644 +index acc119434a0510c89250b1c9c13fc99fb74ec302..286531263ece5fe3650433445f5e3e7e394371d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1207,12 +1207,7 @@ public final class CraftServer implements Server { +@@ -1209,12 +1209,7 @@ public final class CraftServer implements Server { worlddata.customDimensions = iregistry; worlddata.checkName(name); worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified()); @@ -376,7 +376,7 @@ index 08e3da659371dc67db7ebea33ee2528f304a13ae..a963c1e6aaba4fd55f5462be89e9afe8 long j = BiomeManager.obfuscateSeed(creator.seed()); List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); -@@ -1223,6 +1218,13 @@ public final class CraftServer implements Server { +@@ -1225,6 +1220,13 @@ public final class CraftServer implements Server { biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/patches/server/0629-Add-PlayerKickEvent-causes.patch b/patches/server/0629-Add-PlayerKickEvent-causes.patch index 2411e963b5..d769b78d19 100644 --- a/patches/server/0629-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0629-Add-PlayerKickEvent-causes.patch @@ -434,7 +434,7 @@ index 6fa63190a39343c50c2d49fe7fa09f7163db7101..18bf0ab7e897d4c75134359fee7e089e } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8883a3a0b28377bf3290adfc0353d2e65c70b828..c3e0fa27c34132a99f6cc9c0eb7d9544a9873eed 100644 +index b5a2805999dd93b9af2ee96a3af9684367c80af6..32295fa4016b375800a27a961c42047013d14d1d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -671,7 +671,7 @@ public abstract class PlayerList { @@ -491,10 +491,10 @@ index a24e7a66d52eddbdad8db71cf5e45f1a458c389f..e1c13ac7b11fb0080435fc34502208c8 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 05c7a359ee18612eeda9672afb362754ca776b2d..6c8649749b3e66d6ab473321be6c48a0ddebc9f0 100644 +index 45b338d33fae5017ab2eab3af6b83b8109e67c1f..fd7d05c097dcb300aab5320b395e7133dc54998f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -608,7 +608,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -609,7 +609,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot if (this.getHandle().connection == null) return; @@ -503,7 +503,7 @@ index 05c7a359ee18612eeda9672afb362754ca776b2d..6c8649749b3e66d6ab473321be6c48a0 } // Paper start -@@ -620,10 +620,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -621,10 +621,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void kick(final net.kyori.adventure.text.Component message) { diff --git a/patches/server/0659-Add-System.out-err-catcher.patch b/patches/server/0659-Add-System.out-err-catcher.patch index b62b0b372b..77cbe97540 100644 --- a/patches/server/0659-Add-System.out-err-catcher.patch +++ b/patches/server/0659-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 a963c1e6aaba4fd55f5462be89e9afe8b20f082a..8e8e0cc2f60c11ddd1ac2d232a698b3f4286426c 100644 +index 286531263ece5fe3650433445f5e3e7e394371d4..826e288f633a2a7cea9fa0022b44947f75fc1163 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -294,6 +294,7 @@ public final class CraftServer implements Server { +@@ -296,6 +296,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/0665-Add-PlayerSetSpawnEvent.patch b/patches/server/0665-Add-PlayerSetSpawnEvent.patch index a22382afb4..6f92ddad0b 100644 --- a/patches/server/0665-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0665-Add-PlayerSetSpawnEvent.patch @@ -139,7 +139,7 @@ index a649d1baa727dd16cb8e786bdf510021e2d16d26..cdf85898d6ca9f1159b175dbc2760522 public void trackChunk(ChunkPos chunkPos, Packet chunkDataPacket) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0e314e2b85ed17bef7b9cc75573b0dc6c13b46b1..9386d0836ed6dad232aa24219bdbbaeafffc49c0 100644 +index 4771829ba2b2b215567b2f4ceca963a7d2a0f559..801cf17505cee999e7ed58081fa908ca693df498 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -853,7 +853,7 @@ public abstract class PlayerList { @@ -172,10 +172,10 @@ index 1a27b7faa22e6b3dc5fce329ed06425de56c4315..b9903c29bdea8d1e3b6fce0e97be6bd9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6c8649749b3e66d6ab473321be6c48a0ddebc9f0..e826a9e405c0ea985f8a742f4bc81b38c9d98bba 100644 +index fd7d05c097dcb300aab5320b395e7133dc54998f..88ec1bb0bea5aeb4a6e0ee628de58ac9f1f546cf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1370,9 +1370,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1371,9 +1371,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setBedSpawnLocation(Location location, boolean override) { if (location == null) { diff --git a/patches/server/0695-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0695-Add-paper-mobcaps-and-paper-playermobcaps.patch index a132936fa4..5b23ef374b 100644 --- a/patches/server/0695-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0695-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -278,10 +278,10 @@ index a1770e5ae4b3014c3538b52d4912c60864e186a8..906def91bba96bab7c7aea9b87d9ec56 // 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 8e8e0cc2f60c11ddd1ac2d232a698b3f4286426c..ce968a5f44282095cec4d44f43bdfe953bce069c 100644 +index 826e288f633a2a7cea9fa0022b44947f75fc1163..95015ceeb458d44229d7a23bbcb092c07f5d322e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2162,6 +2162,11 @@ public final class CraftServer implements Server { +@@ -2164,6 +2164,11 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { @@ -294,7 +294,7 @@ index 8e8e0cc2f60c11ddd1ac2d232a698b3f4286426c..ce968a5f44282095cec4d44f43bdfe95 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 60ad39ba1cde4d4d1231f43902af4441a944556f..6e7aba92fd3f6c02680d9902c974bc2af0428fb1 100644 +index 53d1dee6e81697ff2d9d498f27b57882a9418702..ea8a372a13b7729121e084a79540b317a4c028e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1696,9 +1696,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0721-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0721-Use-Velocity-compression-and-cipher-natives.patch index e7761e7d84..b083963b6d 100644 --- a/patches/server/0721-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0721-Use-Velocity-compression-and-cipher-natives.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Use Velocity compression and cipher natives diff --git a/build.gradle.kts b/build.gradle.kts -index d98add7d741e47d9ff095a817e0f895b7235a488..1cd32d28475b3130b02ad39b9f53aa7074792556 100644 +index 719f4b4bff2ab651156f17e27412ae8b0e9e5d02..6d429252023f84d0d512e68a6a3112fa4e27a83f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -31,6 +31,11 @@ dependencies { - runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") + runtimeOnly("org.xerial:sqlite-jdbc:3.41.2.2") runtimeOnly("com.mysql:mysql-connector-j:8.0.32") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper + // Paper start - Use Velocity cipher diff --git a/patches/server/0753-Add-player-health-update-API.patch b/patches/server/0753-Add-player-health-update-API.patch index 01b414fc4d..86b85b1099 100644 --- a/patches/server/0753-Add-player-health-update-API.patch +++ b/patches/server/0753-Add-player-health-update-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add player health update API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e826a9e405c0ea985f8a742f4bc81b38c9d98bba..207ae9c07d4646686bc79156d7b72ade71084ce2 100644 +index 88ec1bb0bea5aeb4a6e0ee628de58ac9f1f546cf..14f7fc4a6724ed4650117de2397052c54ae05df4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2392,9 +2392,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2393,9 +2393,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().maxHealthCache = getMaxHealth(); } @@ -22,7 +22,7 @@ index e826a9e405c0ea985f8a742f4bc81b38c9d98bba..207ae9c07d4646686bc79156d7b72ade if (this.getHandle().queueHealthUpdatePacket) { this.getHandle().queuedHealthUpdatePacket = packet; } else { -@@ -2403,6 +2405,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2404,6 +2406,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end } diff --git a/patches/server/0755-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0755-Allow-delegation-to-vanilla-chunk-gen.patch index 054292f6f5..7710b03f6d 100644 --- a/patches/server/0755-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0755-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 ce968a5f44282095cec4d44f43bdfe953bce069c..05605d7a6384349f7ff13950d81d4f08a243b4eb 100644 +index 95015ceeb458d44229d7a23bbcb092c07f5d322e..53a58b6988cd11d37d6cdff6f2699710e3229745 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2334,6 +2334,90 @@ public final class CraftServer implements Server { +@@ -2336,6 +2336,90 @@ 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/0775-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0775-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index db426ff666..585527e48a 100644 --- a/patches/server/0775-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0775-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -18,10 +18,10 @@ index 24c88555ea85dd2a0656e1f67a4828a5137157b8..cbbb0ff40488c430d15c2ed054d1b288 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 05605d7a6384349f7ff13950d81d4f08a243b4eb..4e3ee12d6cdd18372239f35d3ab188e2116128fa 100644 +index 53a58b6988cd11d37d6cdff6f2699710e3229745..fa74b5a331bb33d4ce7205c0fa80faf6eb613081 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1214,7 +1214,7 @@ public final class CraftServer implements Server { +@@ -1216,7 +1216,7 @@ public final class CraftServer implements Server { List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = iregistry.get(actualDimension); @@ -31,7 +31,7 @@ index 05605d7a6384349f7ff13950d81d4f08a243b4eb..4e3ee12d6cdd18372239f35d3ab188e2 biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0855b437d8ba0ec71b4c0a5ed29629ff28f56f8a..4cea156d555688b366b6d54f965132871995015c 100644 +index ea8a372a13b7729121e084a79540b317a4c028e1..0986a740f5b095cc603d67133c684b5224ae66ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -201,6 +201,30 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0784-Multi-Block-Change-API-Implementation.patch b/patches/server/0784-Multi-Block-Change-API-Implementation.patch index d193b8b305..17526e4c9c 100644 --- a/patches/server/0784-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0784-Multi-Block-Change-API-Implementation.patch @@ -25,10 +25,10 @@ index c96e75456c2f8564d3bc75993cc6e03ba605597d..7c6a6693760638a07b7c7c330aaeffd9 public void write(FriendlyByteBuf buf) { buf.writeLong(this.sectionPos.asLong()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 207ae9c07d4646686bc79156d7b72ade71084ce2..85c28926533c3159d42e8e7d90051472613dda8c 100644 +index 14f7fc4a6724ed4650117de2397052c54ae05df4..5a51b19345670ab9590f9ee2a9668d5f9fd010fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -952,6 +952,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -953,6 +953,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/server/0790-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0790-API-for-creating-command-sender-which-forwards-feedb.patch index 496bc6f530..a615b80876 100644 --- a/patches/server/0790-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0790-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 4e3ee12d6cdd18372239f35d3ab188e2116128fa..56ab53830525b497d2abc7e422b03d1e98d1118c 100644 +index fa74b5a331bb33d4ce7205c0fa80faf6eb613081..c0df30bcd8d6c7e56fb4c7b1c7c5e4a56f365a2a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1996,6 +1996,13 @@ public final class CraftServer implements Server { +@@ -1998,6 +1998,13 @@ public final class CraftServer implements Server { return console.console; } diff --git a/patches/server/0794-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0794-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 97da54485d..56802bb0ff 100644 --- a/patches/server/0794-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0794-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 56ab53830525b497d2abc7e422b03d1e98d1118c..b6070faf0a30da3956fe64e194250504bada9ba5 100644 +index c0df30bcd8d6c7e56fb4c7b1c7c5e4a56f365a2a..33ae1bf0e904c20626156192d306eb303dc3cdf1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2170,6 +2170,8 @@ public final class CraftServer implements Server { +@@ -2172,6 +2172,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { // Paper start diff --git a/patches/server/0795-Add-GameEvent-tags.patch b/patches/server/0795-Add-GameEvent-tags.patch index 70bc5ac6f0..64e9748f45 100644 --- a/patches/server/0795-Add-GameEvent-tags.patch +++ b/patches/server/0795-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 b6070faf0a30da3956fe64e194250504bada9ba5..0907143274c0e1d1c122eb6fb4b116f52c360ec9 100644 +index 33ae1bf0e904c20626156192d306eb303dc3cdf1..d4063237f6f3c9e88b90943e09dfef9cf8a69801 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2580,6 +2580,15 @@ public final class CraftServer implements Server { +@@ -2582,6 +2582,15 @@ public final class CraftServer implements Server { return (org.bukkit.Tag) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } @@ -65,7 +65,7 @@ index b6070faf0a30da3956fe64e194250504bada9ba5..0907143274c0e1d1c122eb6fb4b116f5 default -> throw new IllegalArgumentException(); } -@@ -2612,6 +2621,13 @@ public final class CraftServer implements Server { +@@ -2614,6 +2623,13 @@ public final class CraftServer implements Server { net.minecraft.core.Registry> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } diff --git a/patches/server/0801-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0801-Put-world-into-worldlist-before-initing-the-world.patch index 9f558932d3..979dc61d4c 100644 --- a/patches/server/0801-Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/0801-Put-world-into-worldlist-before-initing-the-world.patch @@ -23,10 +23,10 @@ index 23fce58a5909c5b01a5f0ef6912f90858cd3302c..a30c61e176501d1cbd2e330f85d5d258 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 0907143274c0e1d1c122eb6fb4b116f52c360ec9..4736b0f3ac468be99a42b5c0e62cffbbe2149610 100644 +index d4063237f6f3c9e88b90943e09dfef9cf8a69801..1d13a97eba403eb3e21cd8fe5b473d38b8edf5dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1243,10 +1243,11 @@ public final class CraftServer implements Server { +@@ -1245,10 +1245,11 @@ public final class CraftServer implements Server { return null; } diff --git a/patches/server/0803-Custom-Potion-Mixes.patch b/patches/server/0803-Custom-Potion-Mixes.patch index ff7965d78d..c4cc33630b 100644 --- a/patches/server/0803-Custom-Potion-Mixes.patch +++ b/patches/server/0803-Custom-Potion-Mixes.patch @@ -164,10 +164,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 7922e466e80bf959f2acdf474d6c44159482e791..6712237bb2b2e68c7081265af7ebdf85f7ac07cd 100644 +index 1d13a97eba403eb3e21cd8fe5b473d38b8edf5dd..ec555493b2bacf174cc6fc9924cb9199df442e60 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -295,6 +295,7 @@ public final class CraftServer implements Server { +@@ -297,6 +297,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 @@ -175,7 +175,7 @@ index 7922e466e80bf959f2acdf474d6c44159482e791..6712237bb2b2e68c7081265af7ebdf85 static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); -@@ -321,7 +322,7 @@ public final class CraftServer implements Server { +@@ -323,7 +324,7 @@ public final class CraftServer implements Server { Enchantments.SHARPNESS.getClass(); org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations(); @@ -184,7 +184,7 @@ index 7922e466e80bf959f2acdf474d6c44159482e791..6712237bb2b2e68c7081265af7ebdf85 MobEffects.BLINDNESS.getClass(); PotionEffectType.stopAcceptingRegistrations(); // Ugly hack :( -@@ -2939,5 +2940,10 @@ public final class CraftServer implements Server { +@@ -2941,5 +2942,10 @@ public final class CraftServer implements Server { return datapackManager; } diff --git a/patches/server/0814-Fix-saving-in-unloadWorld.patch b/patches/server/0814-Fix-saving-in-unloadWorld.patch index c73233d365..17a3aee564 100644 --- a/patches/server/0814-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0814-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 fc088b26c3fab1afcfbcacfd19dc8a3b6111e94c..49eec475f702b9ac35be92e92b77c047ee6e35bb 100644 +index ec555493b2bacf174cc6fc9924cb9199df442e60..ad0b88f32ec9777ca9593c175660a209a45aab4a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1291,7 +1291,7 @@ public final class CraftServer implements Server { +@@ -1293,7 +1293,7 @@ public final class CraftServer implements Server { try { if (save) { diff --git a/patches/server/0830-WorldCreator-keepSpawnLoaded.patch b/patches/server/0830-WorldCreator-keepSpawnLoaded.patch index 5f05ddfb3c..6fedb30d41 100644 --- a/patches/server/0830-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0830-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 49eec475f702b9ac35be92e92b77c047ee6e35bb..1eca37136dedd5bd8e59446cda7476cab46fb0f6 100644 +index ad0b88f32ec9777ca9593c175660a209a45aab4a..86cdffd1572ab33e61c8ab0ef2e83cf8ca9b5124 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1250,6 +1250,7 @@ public final class CraftServer implements Server { +@@ -1252,6 +1252,7 @@ public final class CraftServer implements Server { internal.setSpawnSettings(true, true); // Paper - move up diff --git a/patches/server/0846-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0846-Throw-exception-on-world-create-while-being-ticked.patch index 06073529ff..06d9a60eb7 100644 --- a/patches/server/0846-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0846-Throw-exception-on-world-create-while-being-ticked.patch @@ -45,10 +45,10 @@ index 3e59620c84b3aa93d8ce41b0e9901a1621bb48df..682005e4b19ba3959d4e3a66475487da 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 1eca37136dedd5bd8e59446cda7476cab46fb0f6..a141cd0d415e312da0a92349eb9cae3ccda3c397 100644 +index 86cdffd1572ab33e61c8ab0ef2e83cf8ca9b5124..e23023859248fa7fa3aa01a5eccdc3599f54256a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -846,6 +846,11 @@ public final class CraftServer implements Server { +@@ -848,6 +848,11 @@ public final class CraftServer implements Server { return new ArrayList(this.worlds.values()); } @@ -60,7 +60,7 @@ index 1eca37136dedd5bd8e59446cda7476cab46fb0f6..a141cd0d415e312da0a92349eb9cae3c public DedicatedPlayerList getHandle() { return this.playerList; } -@@ -1127,6 +1132,7 @@ public final class CraftServer implements Server { +@@ -1129,6 +1134,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 1eca37136dedd5bd8e59446cda7476cab46fb0f6..a141cd0d415e312da0a92349eb9cae3c Validate.notNull(creator, "Creator may not be null"); String name = creator.name(); -@@ -1265,6 +1271,7 @@ public final class CraftServer implements Server { +@@ -1267,6 +1273,7 @@ public final class CraftServer implements Server { @Override public boolean unloadWorld(World world, boolean save) { diff --git a/patches/server/0853-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0853-Don-t-broadcast-messages-to-command-blocks.patch index 7ff69f974f..90e0da770d 100644 --- a/patches/server/0853-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0853-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,10 +20,10 @@ index 7c7e5f3c0f9cd1f16192a8fc8163da9b2d9519d5..888936385196a178ab8b730fd5e4fff4 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 a141cd0d415e312da0a92349eb9cae3ccda3c397..8be0badce29413922dfd744b946ca3e4403bc4f6 100644 +index e23023859248fa7fa3aa01a5eccdc3599f54256a..a06eb05470b145b4d4001b957ec6252b3744eeb5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1769,7 +1769,7 @@ public final class CraftServer implements Server { +@@ -1771,7 +1771,7 @@ public final class CraftServer implements Server { // Paper end Set recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { diff --git a/patches/server/0863-More-Teleport-API.patch b/patches/server/0863-More-Teleport-API.patch index 32735d1984..0980af0e90 100644 --- a/patches/server/0863-More-Teleport-API.patch +++ b/patches/server/0863-More-Teleport-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] More Teleport API public net.minecraft.server.network.ServerGamePacketListenerImpl internalTeleport(DDDFFLjava/util/Set;Z)V diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f83fd2dd742533285cde99bbc5180a34feb09c31..014a94c5b2f7c900f33a8e29a64d61690c94b150 100644 +index 99fe650529e267f8026c5019eab0295b2cddfc53..f67ce080d9d9e3786009ec86eb9dda658c7b6a30 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1710,11 +1710,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -74,10 +74,10 @@ index 6478faa20adea00349600620c2ab7d559e2fc3b7..52f8a76832b05061dc80381220c86631 // 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 85c28926533c3159d42e8e7d90051472613dda8c..6e0e0e8405873069274c574240feea793e287f0c 100644 +index 5a51b19345670ab9590f9ee2a9668d5f9fd010fe..5098dc4f380dca3d4a32cbd201e4c925d2504d9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1259,13 +1259,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1260,13 +1260,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setRotation(float yaw, float pitch) { @@ -179,7 +179,7 @@ index 85c28926533c3159d42e8e7d90051472613dda8c..6e0e0e8405873069274c574240feea79 location.checkFinite(); ServerPlayer entity = this.getHandle(); -@@ -1278,7 +1365,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1279,7 +1366,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return false; } @@ -188,7 +188,7 @@ index 85c28926533c3159d42e8e7d90051472613dda8c..6e0e0e8405873069274c574240feea79 return false; } -@@ -1296,7 +1383,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1297,7 +1384,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // If this player is riding another entity, we must dismount before teleporting. @@ -197,7 +197,7 @@ index 85c28926533c3159d42e8e7d90051472613dda8c..6e0e0e8405873069274c574240feea79 // SPIGOT-5509: Wakeup, similar to riding if (this.isSleeping()) { -@@ -1312,13 +1399,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1313,13 +1400,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle(); // Close any foreign inventory diff --git a/patches/server/0868-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0868-Custom-Chat-Completion-Suggestions-API.patch index 599e55c500..254af7f763 100644 --- a/patches/server/0868-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0868-Custom-Chat-Completion-Suggestions-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6e0e0e8405873069274c574240feea793e287f0c..b764d508951e19634aface33b618bd3d3e114479 100644 +index 5098dc4f380dca3d4a32cbd201e4c925d2504d9a..ec5b1a1434a732ffd99113b301088865e5e34400 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -674,6 +674,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -675,6 +675,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false); } diff --git a/patches/server/0874-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0874-Add-Velocity-IP-Forwarding-Support.patch index 6745465173..f889381156 100644 --- a/patches/server/0874-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0874-Add-Velocity-IP-Forwarding-Support.patch @@ -213,10 +213,10 @@ index 3fcd7bfdb8945b276c94a263e9da6b85ce470366..3431b1132e55c53cda7cf47f021f2306 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8be0badce29413922dfd744b946ca3e4403bc4f6..e769f7b0904814ee63e2a73dca57e5dc33382fba 100644 +index a06eb05470b145b4d4001b957ec6252b3744eeb5..894c0d5bfa001def4374b657e3eb8f15a0caa1e9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -775,7 +775,7 @@ public final class CraftServer implements Server { +@@ -777,7 +777,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/0899-Elder-Guardian-appearance-API.patch b/patches/server/0899-Elder-Guardian-appearance-API.patch index 7327342eb0..841e9c0e64 100644 --- a/patches/server/0899-Elder-Guardian-appearance-API.patch +++ b/patches/server/0899-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1dfdc5046b1fe2907734428d7feaab37a2951ea9..24b1f4f479a49976bbf06d08fc6aea74bc18444d 100644 +index ec5b1a1434a732ffd99113b301088865e5e34400..405634ea82f48ccaa170b9de27140573cb647608 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3139,6 +3139,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3145,6 +3145,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0916-Add-Player-Warden-Warning-API.patch b/patches/server/0916-Add-Player-Warden-Warning-API.patch index 11edd64b9b..42d71b377d 100644 --- a/patches/server/0916-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0916-Add-Player-Warden-Warning-API.patch @@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 24b1f4f479a49976bbf06d08fc6aea74bc18444d..2af561e773338d58bb88bbcdbdf54afbcce30e21 100644 +index 405634ea82f48ccaa170b9de27140573cb647608..ff223f33c3fa712ed2c775836412cfed3624137a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3144,6 +3144,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3150,6 +3150,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void showElderGuardian(boolean silent) { if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F)); } diff --git a/patches/server/0930-fix-Instruments.patch b/patches/server/0930-fix-Instruments.patch index a8afc9ff34..fe391bb96c 100644 --- a/patches/server/0930-fix-Instruments.patch +++ b/patches/server/0930-fix-Instruments.patch @@ -6,10 +6,10 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 652489579c7014b46ebf67b0c72d2e50508955c2..4edffaef5075de849a3489cdfdee0eaf53b0df57 100644 +index ff223f33c3fa712ed2c775836412cfed3624137a..53f2c187d6a16ba5566d74619bfaf058c684c0b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -776,62 +776,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -777,62 +777,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void playNote(Location loc, Instrument instrument, Note note) { if (this.getHandle().connection == null) return; diff --git a/patches/server/0941-Flying-Fall-Damage.patch b/patches/server/0941-Flying-Fall-Damage.patch index 293c3fe2d0..6d43a33074 100644 --- a/patches/server/0941-Flying-Fall-Damage.patch +++ b/patches/server/0941-Flying-Fall-Damage.patch @@ -26,10 +26,10 @@ index 5b772b3caeafe98aa45a01bffe215a5dd33323b6..0629c471d38a77c44fc1c86ccdfcb069 } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4edffaef5075de849a3489cdfdee0eaf53b0df57..124a42abda64f29bb21ea3a48ee9c40d69932721 100644 +index 53f2c187d6a16ba5566d74619bfaf058c684c0b7..e167872b279a59b348218a535555e563a9faaf3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2329,6 +2329,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2330,6 +2330,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().onUpdateAbilities(); } diff --git a/patches/server/0947-Win-Screen-API.patch b/patches/server/0947-Win-Screen-API.patch index b16b497433..6a489994f1 100644 --- a/patches/server/0947-Win-Screen-API.patch +++ b/patches/server/0947-Win-Screen-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 124a42abda64f29bb21ea3a48ee9c40d69932721..3f498543cf0476ff1b184788d93f13b70c476c16 100644 +index e167872b279a59b348218a535555e563a9faaf3f..5f0146255b050dfc873789e7dd4bc1dc4a929f02 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1229,6 +1229,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1230,6 +1230,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/work/Bukkit b/work/Bukkit index 2fcba9b271..4727d326da 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 2fcba9b271a8557073af845ba6c9c1c121565bea +Subproject commit 4727d326da2bcd87ae2a6e6d6dd0cc5249c0288f diff --git a/work/CraftBukkit b/work/CraftBukkit index 01b2e1af41..b346a5f6dd 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 01b2e1af41a8698d54437d275b2e7d41014d5d81 +Subproject commit b346a5f6dd890c8ecfff2323082a8178c4fffa62 diff --git a/work/Spigot b/work/Spigot index 7da74dae7f..7d7b241e35 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 7da74dae7f21e374cd5ee71645fb2bfccdf05beb +Subproject commit 7d7b241e353e86ee90ad025dab0262b050a6fe4a