diff --git a/gradle.properties b/gradle.properties index 4d606b38d..7af5957ee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ version = 1.18.1-R0.1-SNAPSHOT mcVersion = 1.18.1 packageVersion = 1_18_R1 -paperCommit = 95e30fa1fc521a61efc281a19aa8496c7083bda5 +paperCommit = 09384aef71bebdd904139eeda9437489bb879f73 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch index 311739470..13f32d922 100644 --- a/patches/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -407,10 +407,10 @@ index b937441d2fb46b108644c49fcf073859765aa02e..d95b01bfd0657cf089c0f5412453cca0 } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 1366496271c4c7f72d1e5f990e51775b1c371f99..05bb388407b5bd8a942478237580a38ffaa388c8 100644 +index 42da20011544075a9bea63a12ae86f2f21720667..16d0e517afd3fae21f2666c6b4e1e38dcf5ea64b 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -581,7 +581,9 @@ public final class SimplePluginManager implements PluginManager { +@@ -582,7 +582,9 @@ public final class SimplePluginManager implements PluginManager { // Paper start private void handlePluginException(String msg, Throwable ex, Plugin plugin) { @@ -420,7 +420,7 @@ index 1366496271c4c7f72d1e5f990e51775b1c371f99..05bb388407b5bd8a942478237580a38f callEvent(new ServerExceptionEvent(new ServerPluginEnableDisableException(msg, ex, plugin))); } // Paper end -@@ -640,14 +642,16 @@ public final class SimplePluginManager implements PluginManager { +@@ -641,9 +643,11 @@ public final class SimplePluginManager implements PluginManager { )); } } catch (Throwable ex) { @@ -432,12 +432,6 @@ index 1366496271c4c7f72d1e5f990e51775b1c371f99..05bb388407b5bd8a942478237580a38f if (!(event instanceof ServerExceptionEvent)) { // We don't want to cause an endless event loop callEvent(new ServerExceptionEvent(new ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event))); } - // Paper end -- } -+ } finally { gg.pufferfish.pufferfish.sentry.SentryContext.removeEventContext(); } // Pufferfish - } - } - diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index c8b11793c6a3baabc1c9566e0463ab1d6e293827..2b9218ddd262e89180588c3014dad328317dd8db 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java diff --git a/patches/api/0004-Purpur-config-files.patch b/patches/api/0004-Purpur-config-files.patch index 56b69de66..38058f225 100644 --- a/patches/api/0004-Purpur-config-files.patch +++ b/patches/api/0004-Purpur-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 73446141e8c50b71a17ff6f0c528a62d5c75751b..85b6174f9ede8929e6931a125de03922755997f5 100644 +index a62c27777672eff1c488517b37876e3a44a2d57d..d55ee1f892bb37836acd7204a92962a79b0b76b1 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1790,6 +1790,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1886,6 +1886,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/api/0005-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch index 0d551dbfd..c84540020 100644 --- a/patches/api/0005-Purpur-client-support.patch +++ b/patches/api/0005-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ec1e115879c4f6608e8ba764ed87063577ee44b0..3c96189fae0426b570a4e69ad467a6b4b5066e26 100644 +index 131daee2b29f7016463a00ce7927dff7b0a1b1b4..6a3c22efa63133b8144b8a20e591c30ae00ab7d2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2657,4 +2657,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2652,4 +2652,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0007-Ridables.patch b/patches/api/0007-Ridables.patch index f80815a76..d726eb07a 100644 --- a/patches/api/0007-Ridables.patch +++ b/patches/api/0007-Ridables.patch @@ -22,10 +22,10 @@ index 2405254739a83b2fb517da7fa4ea0721c68f9f6d..dc0535d5ea5b2f4002a428ec64ea52fe * @deprecated removed in 1.16 */ diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index c2c45a93887f99466a8ac4275355ac75c7f901c4..768cfcbf9b780a00aa93247ee43bd51eb636c2e7 100644 +index 8bc6876c82935988436597161fa0ec94c032174b..db83f87af0cb75b275bba306dea38b66907bbb56 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -822,4 +822,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -830,4 +830,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isInPowderedSnow(); // Paper end diff --git a/patches/api/0010-AFK-API.patch b/patches/api/0010-AFK-API.patch index 28618778a..cb044abc2 100644 --- a/patches/api/0010-AFK-API.patch +++ b/patches/api/0010-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3c96189fae0426b570a4e69ad467a6b4b5066e26..2a23cd71d6d9c8835a3c34199a75e3e7f992d64e 100644 +index 6a3c22efa63133b8144b8a20e591c30ae00ab7d2..75680d1b3bd7640ae9f72ec7b0b794689e7c2cb6 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2665,5 +2665,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2660,5 +2660,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return True if Player uses Purpur Client */ public boolean usesPurpurClient(); diff --git a/patches/api/0011-Bring-back-server-name.patch b/patches/api/0011-Bring-back-server-name.patch index afcc2ae2e..cd973ed19 100644 --- a/patches/api/0011-Bring-back-server-name.patch +++ b/patches/api/0011-Bring-back-server-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bring back server name diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 3a8326735b62521f8fb95c51a0909d8b7bac83d1..5d76861b8745c7b5d7a67391c110ca12c0533966 100644 +index 795f8c0aa3929f6de4b4ea4b139bef8b672ab97a..873c264e04b9bec15b79136b612532ee8b6ca9d9 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2195,4 +2195,15 @@ public final class Bukkit { +@@ -2303,4 +2303,15 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -25,10 +25,10 @@ index 3a8326735b62521f8fb95c51a0909d8b7bac83d1..5d76861b8745c7b5d7a67391c110ca12 + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 85b6174f9ede8929e6931a125de03922755997f5..eaabd077d1a819cf074fbae40bccc9364b1a49d3 100644 +index d55ee1f892bb37836acd7204a92962a79b0b76b1..cb835dfa9110f50faf6a5972b2a0c9f52d88f073 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1912,4 +1912,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2008,4 +2008,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @NotNull io.papermc.paper.datapack.DatapackManager getDatapackManager(); // Paper end diff --git a/patches/api/0014-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch index 40f2439cc..21bd752e9 100644 --- a/patches/api/0014-Lagging-threshold.patch +++ b/patches/api/0014-Lagging-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5d76861b8745c7b5d7a67391c110ca12c0533966..1c24ef085669d7d0cc8d67b661e900b172f4b99a 100644 +index 873c264e04b9bec15b79136b612532ee8b6ca9d9..4a18f9ffddf37dcbdca7655da1fab1cf0a878ab9 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2205,5 +2205,14 @@ public final class Bukkit { +@@ -2313,5 +2313,14 @@ public final class Bukkit { public static String getServerName() { return server.getServerName(); } @@ -24,10 +24,10 @@ index 5d76861b8745c7b5d7a67391c110ca12c0533966..1c24ef085669d7d0cc8d67b661e900b1 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index eaabd077d1a819cf074fbae40bccc9364b1a49d3..fc5b0ebb0d71dc4728b95297a50ac61e2f2d58bf 100644 +index cb835dfa9110f50faf6a5972b2a0c9f52d88f073..ab3fd921462f9102480b9da0965c4b2a23af244a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1920,5 +1920,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2016,5 +2016,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull String getServerName(); diff --git a/patches/api/0017-Player-invulnerabilities.patch b/patches/api/0017-Player-invulnerabilities.patch index 5b13c7dd9..629d51a05 100644 --- a/patches/api/0017-Player-invulnerabilities.patch +++ b/patches/api/0017-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2a23cd71d6d9c8835a3c34199a75e3e7f992d64e..69954244ef59597f4d05964518c2147b334baee6 100644 +index 75680d1b3bd7640ae9f72ec7b0b794689e7c2cb6..b07e6709531595b7241ef54754f2450d4561c463 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2684,5 +2684,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2679,5 +2679,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0029-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/api/0029-Fix-javadoc-warnings-missing-param-and-return.patch index 65a104b5e..27dcb9f36 100644 --- a/patches/api/0029-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/api/0029-Fix-javadoc-warnings-missing-param-and-return.patch @@ -475,10 +475,10 @@ index 2acdf2a6d3955923c721222b9da784f3278f6418..737c3b053060e38f6776a5a508948cc3 // Paper start diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 3afd5f5c0208a4ee93b5dbfc2aab2b9d2e8a7544..7838731e0e16bdccfb79e74ceb64148f7c52db79 100644 +index 23e853bae0e051cd43deb9eb24c54e74a56d8ab0..6df8e7b6672a26f123efc3aac1541b870c57e1b5 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -9,6 +9,9 @@ import org.bukkit.permissions.ServerOperator; +@@ -10,6 +10,9 @@ import org.bukkit.profile.PlayerProfile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -489,10 +489,10 @@ index 3afd5f5c0208a4ee93b5dbfc2aab2b9d2e8a7544..7838731e0e16bdccfb79e74ceb64148f /** diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index fc5b0ebb0d71dc4728b95297a50ac61e2f2d58bf..6e4ef6de10442f73ca7bd1c48496d920c3ef3899 100644 +index ab3fd921462f9102480b9da0965c4b2a23af244a..64424da7eae955d9d25da51611cc1f088810f321 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1763,6 +1763,9 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1859,6 +1859,9 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi UnsafeValues getUnsafe(); // Spigot start @@ -790,11 +790,11 @@ index 9e7f42caab1204036f4203354c115fd40c6def92..f76ddd80f9fc926f73b1cc50f0a2767a /** diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 768cfcbf9b780a00aa93247ee43bd51eb636c2e7..5c65100b8f442c5e034531b0ae16b2e1fe5d3e0f 100644 +index db83f87af0cb75b275bba306dea38b66907bbb56..0e6d7d890ea12028d61af492fc0b9f74ad9e1994 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -688,6 +688,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent - Pose getPose(); +@@ -696,6 +696,9 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + SpawnCategory getSpawnCategory(); // Spigot start + /** @@ -803,7 +803,7 @@ index 768cfcbf9b780a00aa93247ee43bd51eb636c2e7..5c65100b8f442c5e034531b0ae16b2e1 public class Spigot extends CommandSender.Spigot { } -@@ -748,36 +751,50 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -756,36 +759,50 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent /** * Check if entity is in rain @@ -910,10 +910,10 @@ index 6f5b6901032eb03606c4566b24459a03baac0c73..9dc1f27d3b36e112d2e79d93b3e49c39 /* diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java -index 9d065625be5931d970d7f34e1225fae1af960314..de3ebfa362ee4d8147bb68c7c115fdfb4eb55143 100644 +index 1dcc2c8f4899da029af8b1c1b2ff1b5e368e82c1..c5f49f3f82fd259a1c795b59e83c3d9f56c98344 100644 --- a/src/main/java/org/bukkit/entity/Panda.java +++ b/src/main/java/org/bukkit/entity/Panda.java -@@ -37,6 +37,9 @@ public interface Panda extends Animals { +@@ -37,6 +37,9 @@ public interface Panda extends Animals, Sittable { // Paper */ void setHiddenGene(@NotNull Gene gene); @@ -924,10 +924,10 @@ index 9d065625be5931d970d7f34e1225fae1af960314..de3ebfa362ee4d8147bb68c7c115fdfb NORMAL(false), diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 69954244ef59597f4d05964518c2147b334baee6..949f522266159fdcf4803fb62bcfdd979470a579 100644 +index b07e6709531595b7241ef54754f2450d4561c463..68fb6c2a92e27b42703c00139df7f88eafa74652 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2487,6 +2487,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2482,6 +2482,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); /** @@ -936,7 +936,7 @@ index 69954244ef59597f4d05964518c2147b334baee6..949f522266159fdcf4803fb62bcfdd97 * @return the client option value of the player */ @NotNull -@@ -2518,6 +2520,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2513,6 +2515,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end // Spigot start diff --git a/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch b/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch index 29a4a8981..b9aafb6be 100644 --- a/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/api/0033-Conflict-on-change-for-adventure-deprecations.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Conflict on change for adventure deprecations diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a84912e0f5f0b 100644 +index 4a18f9ffddf37dcbdca7655da1fab1cf0a878ab9..ae21cdd6ff22cca2a725670d9c0023d85154cb33 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -413,7 +413,7 @@ public final class Bukkit { +@@ -415,7 +415,7 @@ public final class Bukkit { * @return the number of players * @deprecated in favour of {@link Server#broadcast(net.kyori.adventure.text.Component)} */ @@ -17,7 +17,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 public static int broadcastMessage(@NotNull String message) { return server.broadcastMessage(message); } -@@ -1142,7 +1142,7 @@ public final class Bukkit { +@@ -1182,7 +1182,7 @@ public final class Bukkit { * @return number of message recipients * @deprecated in favour of {@link #broadcast(net.kyori.adventure.text.Component, String)} */ @@ -26,7 +26,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 public static int broadcast(@NotNull String message, @NotNull String permission) { return server.broadcast(message, permission); } -@@ -1435,7 +1435,7 @@ public final class Bukkit { +@@ -1517,7 +1517,7 @@ public final class Bukkit { * * @see InventoryType#isCreatable() */ @@ -35,7 +35,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 @NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title) { return server.createInventory(owner, type, title); -@@ -1485,7 +1485,7 @@ public final class Bukkit { +@@ -1567,7 +1567,7 @@ public final class Bukkit { * @throws IllegalArgumentException if the size is not a multiple of 9 * @deprecated in favour of {@link #createInventory(InventoryHolder, InventoryType, net.kyori.adventure.text.Component)} */ @@ -44,7 +44,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 @NotNull public static Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException { return server.createInventory(owner, size, title); -@@ -1512,7 +1512,7 @@ public final class Bukkit { +@@ -1594,7 +1594,7 @@ public final class Bukkit { * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)} */ @NotNull @@ -53,7 +53,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 public static Merchant createMerchant(@Nullable String title) { return server.createMerchant(title); } -@@ -1610,7 +1610,7 @@ public final class Bukkit { +@@ -1718,7 +1718,7 @@ public final class Bukkit { * @deprecated in favour of {@link #motd()} */ @NotNull @@ -62,7 +62,7 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 public static String getMotd() { return server.getMotd(); } -@@ -1632,7 +1632,7 @@ public final class Bukkit { +@@ -1740,7 +1740,7 @@ public final class Bukkit { * @deprecated in favour of {@link #shutdownMessage()} */ @Nullable @@ -72,10 +72,10 @@ index 1c24ef085669d7d0cc8d67b661e900b172f4b99a..a046ba83697ef7e3b9dd0034920a8491 return server.getShutdownMessage(); } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5a123a551 100644 +index 64424da7eae955d9d25da51611cc1f088810f321..be88a4af01680963b9edb205a390018128cb4d13 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -325,7 +325,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -327,7 +327,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return the number of players * @deprecated use {@link #broadcast(net.kyori.adventure.text.Component)} */ @@ -84,7 +84,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 public int broadcastMessage(@NotNull String message); // Paper start -@@ -926,7 +926,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -963,7 +963,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return number of message recipients * @deprecated in favour of {@link #broadcast(net.kyori.adventure.text.Component, String)} */ @@ -93,7 +93,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 public int broadcast(@NotNull String message, @NotNull String permission); // Paper start /** -@@ -1202,7 +1202,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1275,7 +1275,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * * @see InventoryType#isCreatable() */ @@ -102,7 +102,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 @NotNull Inventory createInventory(@Nullable InventoryHolder owner, @NotNull InventoryType type, @NotNull String title); -@@ -1246,7 +1246,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1319,7 +1319,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @throws IllegalArgumentException if the size is not a multiple of 9 * @deprecated in favour of {@link #createInventory(InventoryHolder, int, net.kyori.adventure.text.Component)} */ @@ -111,7 +111,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 @NotNull Inventory createInventory(@Nullable InventoryHolder owner, int size, @NotNull String title) throws IllegalArgumentException; -@@ -1269,7 +1269,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1342,7 +1342,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #createMerchant(net.kyori.adventure.text.Component)} */ @NotNull @@ -120,7 +120,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 Merchant createMerchant(@Nullable String title); /** -@@ -1349,7 +1349,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1445,7 +1445,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #motd()} */ @NotNull @@ -129,7 +129,7 @@ index 6e4ef6de10442f73ca7bd1c48496d920c3ef3899..3d9cbd6b37ee932f0b9908e4410107f5 String getMotd(); // Paper start -@@ -1367,7 +1367,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -1463,7 +1463,7 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @deprecated in favour of {@link #shutdownMessage()} */ @Nullable @@ -170,10 +170,10 @@ index c8d37184d8e882a4084a1bfef85faa330588600b..46bae5c13ce2b973b114682f6a338981 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e73ad7fa1 100644 +index 68fb6c2a92e27b42703c00139df7f88eafa74652..3383aab3f98f089425c9db10057533dff28cc8d4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -76,7 +76,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -71,7 +71,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return the friendly name * @deprecated in favour of {@link #displayName()} */ @@ -182,7 +182,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e @NotNull public String getDisplayName(); -@@ -90,7 +90,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -85,7 +85,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param name The new display name. * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} */ @@ -191,7 +191,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void setDisplayName(@Nullable String name); // Paper start -@@ -131,7 +131,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -126,7 +126,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #playerListName()} */ @NotNull @@ -200,7 +200,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public String getPlayerListName(); /** -@@ -142,7 +142,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -137,7 +137,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param name new player list name * @deprecated in favour of {@link #playerListName(net.kyori.adventure.text.Component)} */ @@ -209,7 +209,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void setPlayerListName(@Nullable String name); /** -@@ -151,7 +151,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -146,7 +146,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return player list header or null * @deprecated in favour of {@link #playerListHeader()} */ @@ -218,7 +218,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e @Nullable public String getPlayerListHeader(); -@@ -161,7 +161,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -156,7 +156,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return player list header or null * @deprecated in favour of {@link #playerListFooter()} */ @@ -227,7 +227,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e @Nullable public String getPlayerListFooter(); -@@ -171,7 +171,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -166,7 +166,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param header player list header, null for empty * @deprecated in favour of {@link #sendPlayerListHeader(net.kyori.adventure.text.Component)} */ @@ -236,7 +236,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void setPlayerListHeader(@Nullable String header); /** -@@ -180,7 +180,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -175,7 +175,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param footer player list footer, null for empty * @deprecated in favour of {@link #sendPlayerListFooter(net.kyori.adventure.text.Component)} */ @@ -245,7 +245,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void setPlayerListFooter(@Nullable String footer); /** -@@ -191,7 +191,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -186,7 +186,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param footer player list footer, null for empty * @deprecated in favour of {@link #sendPlayerListHeaderAndFooter(net.kyori.adventure.text.Component, net.kyori.adventure.text.Component)} */ @@ -254,7 +254,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer); /** -@@ -231,7 +231,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -226,7 +226,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param message kick message * @deprecated in favour of {@link #kick(net.kyori.adventure.text.Component)} */ @@ -263,7 +263,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void kickPlayer(@Nullable String message); // Paper start -@@ -716,7 +716,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -711,7 +711,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)} */ @@ -272,7 +272,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; /** -@@ -737,7 +737,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -732,7 +732,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)} */ @@ -281,7 +281,7 @@ index 949f522266159fdcf4803fb62bcfdd979470a579..38c55785f661b85ce8ba4f8bdd2eb41e public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -2213,7 +2213,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2208,7 +2208,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #locale()} */ @NotNull diff --git a/patches/api/0036-API-for-any-mob-to-burn-daylight.patch b/patches/api/0036-API-for-any-mob-to-burn-daylight.patch index 2b66fb0f1..7bee30e45 100644 --- a/patches/api/0036-API-for-any-mob-to-burn-daylight.patch +++ b/patches/api/0036-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 5c65100b8f442c5e034531b0ae16b2e1fe5d3e0f..f0254799088d5343ef5c0c0a2841a6b51f17d14f 100644 +index 0e6d7d890ea12028d61af492fc0b9f74ad9e1994..26847ed7bae8ae4e0a21106a0ff09a50af6ce689 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -869,5 +869,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -877,5 +877,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if ridable in water */ boolean isRidableInWater(); diff --git a/patches/api/0037-Flying-Fall-Damage-API.patch b/patches/api/0037-Flying-Fall-Damage-API.patch index 8ca57e91d..de0c87e07 100644 --- a/patches/api/0037-Flying-Fall-Damage-API.patch +++ b/patches/api/0037-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 38c55785f661b85ce8ba4f8bdd2eb41e73ad7fa1..c642889243590e76a953182db4e04208dcefce3e 100644 +index 3383aab3f98f089425c9db10057533dff28cc8d4..6e95dbe19df37b67dfb497e0ac37bfeccdcbd38c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2710,5 +2710,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2705,5 +2705,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param invulnerableTicks Invulnerable ticks remaining */ void setSpawnInvulnerableTicks(int invulnerableTicks); diff --git a/patches/api/0042-Extended-OfflinePlayer-API.patch b/patches/api/0042-Extended-OfflinePlayer-API.patch index fde5e7635..e4fc41363 100644 --- a/patches/api/0042-Extended-OfflinePlayer-API.patch +++ b/patches/api/0042-Extended-OfflinePlayer-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Extended OfflinePlayer API diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 7838731e0e16bdccfb79e74ceb64148f7c52db79..8ea59406ddb2293af66719a893e6f13d8377b81e 100644 +index 6df8e7b6672a26f123efc3aac1541b870c57e1b5..409aa7c39ce28f275390e11b917040039f31f1d3 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -437,4 +437,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -450,4 +450,114 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * for the statistic */ public void setStatistic(@NotNull Statistic statistic, @NotNull EntityType entityType, int newValue); diff --git a/patches/api/0043-Added-the-ability-to-add-combustible-items.patch b/patches/api/0043-Added-the-ability-to-add-combustible-items.patch index e0d87a84b..c4ba825f2 100644 --- a/patches/api/0043-Added-the-ability-to-add-combustible-items.patch +++ b/patches/api/0043-Added-the-ability-to-add-combustible-items.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added the ability to add combustible items diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index a046ba83697ef7e3b9dd0034920a84912e0f5f0b..c6d9a42f02cb538ee3739cd01f0a22203c9ceb41 100644 +index ae21cdd6ff22cca2a725670d9c0023d85154cb33..528e0efb7ff16a1810a6de65ad7ce13223c135f4 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2214,5 +2214,24 @@ public final class Bukkit { +@@ -2322,5 +2322,24 @@ public final class Bukkit { public static boolean isLagging() { return server.isLagging(); } @@ -34,10 +34,10 @@ index a046ba83697ef7e3b9dd0034920a84912e0f5f0b..c6d9a42f02cb538ee3739cd01f0a2220 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 3d9cbd6b37ee932f0b9908e4410107f5a123a551..1a38b9e616c6096d8d64c8abaa7178bc5f84e8d4 100644 +index be88a4af01680963b9edb205a390018128cb4d13..47439c4667e6af38b3cf10da7c99d9bbc9c0700c 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -1930,5 +1930,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2026,5 +2026,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return True if lagging */ boolean isLagging(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 14e7eb31b..39c6c8eeb 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -2136,24 +2136,41 @@ index 0000000000000000000000000000000000000000..facd55463d44cb7e3d2ca6892982f549 + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 9c111d479bbcc101886c12950c97f10941125ae7..90018506da9e900d448a1fc43b3213ac513686e6 100644 +index 34e571b702684673b89103176838dc246ff9b24d..d985932adec493163ac41f7f35d0b530c1e1f7db 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -391,6 +391,10 @@ public class Util { - } +@@ -392,16 +392,27 @@ public class Util { + private static final CompletableFuture[] EMPTY_FUTURE = new CompletableFuture[0]; // Paper public static CompletableFuture> sequence(List> futures) { +- // Paper start - optimize +- return CompletableFuture.allOf(futures.toArray(EMPTY_FUTURE)) +- .thenApply(v -> { +- List list = Lists.newArrayListWithCapacity(futures.size()); +- for (CompletableFuture future : futures) { +- list.add(future.join()); +- } +- return list; + // Pufferfish start - faster sequencing without all of.. _that_ + return CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()])) + .thenApply(unused -> futures.stream().map(CompletableFuture::join).collect(Collectors.toList())); + /* - return futures.stream().reduce(CompletableFuture.completedFuture(Lists.newArrayList()), (completableFuture, completableFuture2) -> { - return completableFuture2.thenCombine(completableFuture, (object, list) -> { - List list2 = Lists.newArrayListWithCapacity(list.size() + 1); -@@ -406,6 +410,8 @@ public class Util { - return list3; ++ return futures.stream().reduce(CompletableFuture.completedFuture(Lists.newArrayList()), (completableFuture, completableFuture2) -> { ++ return completableFuture2.thenCombine(completableFuture, (object, list) -> { ++ List list2 = Lists.newArrayListWithCapacity(list.size() + 1); ++ list2.addAll(list); ++ list2.add(object); ++ return list2; }); - }); +- // Paper end ++ }, (completableFuture, completableFuture2) -> { ++ return completableFuture.thenCombine(completableFuture2, (list, list2) -> { ++ List list3 = Lists.newArrayListWithCapacity(list.size() + list2.size()); ++ list3.addAll(list); ++ list3.addAll(list2); ++ return list3; ++ }); ++ }); + */ + // Pufferfish end } @@ -2276,7 +2293,7 @@ index afef3ea6d1ae5f145261eaae3da720fdf9e923a8..ca07ba8eb33f1b4f10aba9f4b4c7c107 return this.scaledRange(i); } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index b0ced77da807d715a39c04708859a12729883939..addf249717b5271b664f4a9d28dd6cc177db5688 100644 +index e20fc528b85a8278bffab32845daac2208836748..7780c6cd92a716e62625df95841680b0e99a86e6 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -78,6 +78,9 @@ public class ServerChunkCache extends ChunkSource { @@ -2295,7 +2312,7 @@ index b0ced77da807d715a39c04708859a12729883939..addf249717b5271b664f4a9d28dd6cc1 gameprofilerfiller.push("pollingChunks"); + this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = level.ticksPerAnimalSpawns != 0L && worlddata.getGameTime() % level.ticksPerAnimalSpawns == 0L; // CraftBukkit + boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit @@ -979,18 +983,25 @@ public class ServerChunkCache extends ChunkSource { // Paper start - per player mob spawning @@ -2449,10 +2466,10 @@ index 403a6fadbeff41e67618393ac7034d32c02af7b8..59d57108f38f38e03cd8b69a53c3e9d4 this.getRandomBlockPosition(j, 0, k, 15, blockposition); int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 23eddc502816e84ab25366c7d5710ce2e660c7a0..cb35f2f1f2f4d568bc59ce5c08ab3b908533264c 100644 +index d945a22e2bb992f3cbba3c9ed0f660b6a385a1b0..b9f2f6713bd9e3431ddbf2a41f16cbda5739ef57 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1116,6 +1116,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1113,6 +1113,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -2573,7 +2590,7 @@ index 7437f01ca8f416e2c9150250e324af4725a4efb6..7ac51dbfce18a2bc52faa7a915abeccc int LARGE_MAX_STACK_SIZE = 64; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6067ac851708fd6d30d3d295acf0e66a2ea16f13..6fbc4dcc1f150b036656be5420ad803c3b26e9f3 100644 +index 9ca080e2745686fc2e39485965ec54c5de0bae6e..fd6e42d3df429aaf753102258b8e65a61ff4d296 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -227,7 +227,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -2645,7 +2662,7 @@ index 6067ac851708fd6d30d3d295acf0e66a2ea16f13..6fbc4dcc1f150b036656be5420ad803c return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this)); } -@@ -3867,16 +3894,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3871,16 +3898,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i } public boolean updateFluidHeightAndDoFluidPushing(Tag tag, double speed) { @@ -2671,7 +2688,7 @@ index 6067ac851708fd6d30d3d295acf0e66a2ea16f13..6fbc4dcc1f150b036656be5420ad803c double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -3884,14 +3913,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3888,14 +3917,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2739,7 +2756,7 @@ index 6067ac851708fd6d30d3d295acf0e66a2ea16f13..6fbc4dcc1f150b036656be5420ad803c if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -3913,9 +3989,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3917,9 +3993,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i // CraftBukkit end } } @@ -3413,10 +3430,10 @@ index e7ca5d6fb8922e7e8065864f736b06056be080a0..6c9e574851b518242dbbee9bce954b44 final String id; private final GameRules.Category category; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db6f388aff 100644 +index 87c8c59b9d47b6c292a92e97471c558c03453cfb..4f8b2617adc0013035cc0ca72bf1b83eb5c18c6c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -308,6 +308,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -305,6 +305,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // Paper end - optimise checkDespawn @@ -3432,7 +3449,7 @@ index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper -@@ -323,6 +332,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -322,6 +331,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.profiler = supplier; this.levelData = worlddatamutable; this.dimensionType = dimensionmanager; @@ -3446,7 +3463,7 @@ index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db this.dimension = resourcekey; this.isClientSide = flag; if (dimensionmanager.coordinateScale() != 1.0D) { -@@ -438,6 +454,91 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -437,6 +453,91 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } @@ -3538,7 +3555,7 @@ index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db public boolean isInWorldBounds(BlockPos pos) { return pos.isInsideBuildHeightAndWorldBoundsHorizontal(this); // Paper - use better/optimized check } -@@ -974,13 +1075,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -973,13 +1074,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -3554,7 +3571,7 @@ index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db // Paper end } } -@@ -1442,6 +1543,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1441,6 +1542,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -3563,10 +3580,10 @@ index 89bc9f452556bafdcd8b76668639ee33c383596e..a98d115b7dccd836fa2c0f50333730db } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 29b27f31080204c9cf33c9eeb8f48bf7928e0371..656b7e07ce6294f4b56b99b928cf37da41ea167d 100644 +index 515e58e3db223fbdc01ca87607aca234c7010d51..f71f8b5c95849a6fb0367d7b027300cb2559b9e8 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -@@ -431,12 +431,12 @@ public final class NaturalSpawner { +@@ -408,12 +408,12 @@ public final class NaturalSpawner { return spawnGroup == MobCategory.MONSTER && world.getBlockState(pos.below()).is(Blocks.NETHER_BRICKS) && structureAccessor.getStructureAt(pos, StructureFeature.NETHER_BRIDGE).isValid(); } @@ -4136,10 +4153,10 @@ index e387de8adc480eac27b58b6f3f0d331ffc4382f1..6dba9d6bb7b81fe176cc0fabbb60b554 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1a1f5c8f9a049d65043f12374fe694068f7d08cf..4bfae47b8163d2737ba796827be8557166db84d1 100644 +index f0629cac377b29246e990a01d60601270cbd77bd..b187f42dc41838b8119b29204368a8b5a7e18de5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -254,7 +254,7 @@ import javax.annotation.Nullable; // Paper +@@ -251,7 +251,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { @@ -4148,7 +4165,7 @@ index 1a1f5c8f9a049d65043f12374fe694068f7d08cf..4bfae47b8163d2737ba796827be85571 private final String serverVersion; private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); -@@ -1063,6 +1063,11 @@ public final class CraftServer implements Server { +@@ -1044,6 +1044,11 @@ public final class CraftServer implements Server { plugin.getDescription().getName(), "This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies." )); diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 86f0830e0..aaed9d8e4 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -221,10 +221,10 @@ index 4502362ff3c43eac489125deee59c66d76204e98..c6267659e8ff73e59d2a4992aa67f86c private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4bfae47b8163d2737ba796827be8557166db84d1..486b0a9a19ac5025125f3bf253cad5ed7d053bf0 100644 +index b187f42dc41838b8119b29204368a8b5a7e18de5..c47bbbdaf75b9691ce2f8436afe3eda431e76ae5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -254,7 +254,7 @@ import javax.annotation.Nullable; // Paper +@@ -251,7 +251,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { diff --git a/patches/server/0003-Purpur-config-files.patch b/patches/server/0003-Purpur-config-files.patch index 193c341ef..ccbefdc36 100644 --- a/patches/server/0003-Purpur-config-files.patch +++ b/patches/server/0003-Purpur-config-files.patch @@ -84,10 +84,10 @@ index 9c31e5d653f2027cf5b028f9fb9268f1469cb1e0..d58e5357f9cb45d9b5ddeaed4ec76aa3 io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc. io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a98d115b7dccd836fa2c0f50333730db6f388aff..7f71a6fe6087630987ae1815ce45dfa45e52f684 100644 +index 4f8b2617adc0013035cc0ca72bf1b83eb5c18c6c..7d2cc5bbeda115bae0b2cdfa89893a75de272f6b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -169,6 +169,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -166,6 +166,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray @@ -96,19 +96,19 @@ index a98d115b7dccd836fa2c0f50333730db6f388aff..7f71a6fe6087630987ae1815ce45dfa4 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -320,6 +322,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -317,6 +319,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper + this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); - this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit + diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 486b0a9a19ac5025125f3bf253cad5ed7d053bf0..11278953cffbb2fd0b74ccd561bcbd22af7f6e63 100644 +index c47bbbdaf75b9691ce2f8436afe3eda431e76ae5..8015ed84e3e37ef0c8377bad66c5658a0279853a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -952,6 +952,7 @@ public final class CraftServer implements Server { +@@ -957,6 +957,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper @@ -116,7 +116,7 @@ index 486b0a9a19ac5025125f3bf253cad5ed7d053bf0..11278953cffbb2fd0b74ccd561bcbd22 for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -992,6 +993,7 @@ public final class CraftServer implements Server { +@@ -973,6 +974,7 @@ public final class CraftServer implements Server { } world.spigotConfig.init(); // Spigot world.paperConfig.init(); // Paper @@ -124,7 +124,7 @@ index 486b0a9a19ac5025125f3bf253cad5ed7d053bf0..11278953cffbb2fd0b74ccd561bcbd22 } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1007,6 +1009,7 @@ public final class CraftServer implements Server { +@@ -988,6 +990,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper @@ -132,7 +132,7 @@ index 486b0a9a19ac5025125f3bf253cad5ed7d053bf0..11278953cffbb2fd0b74ccd561bcbd22 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2674,6 +2677,18 @@ public final class CraftServer implements Server { +@@ -2688,6 +2691,18 @@ public final class CraftServer implements Server { return com.destroystokyo.paper.PaperConfig.config; } @@ -152,7 +152,7 @@ index 486b0a9a19ac5025125f3bf253cad5ed7d053bf0..11278953cffbb2fd0b74ccd561bcbd22 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 55bae3efbc630be6d40d415509de4c3e744a5004..9d649923e28f4839106b336fce41bd3f4114faae 100644 +index f810bebfca3932c80e20646eb0680f7718506707..4e59c357343841a1f32061d26f465edde426fc8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -153,6 +153,14 @@ public class Main { diff --git a/patches/server/0004-Purpur-client-support.patch b/patches/server/0004-Purpur-client-support.patch index 1b7ceefdb..e3d4790ed 100644 --- a/patches/server/0004-Purpur-client-support.patch +++ b/patches/server/0004-Purpur-client-support.patch @@ -17,10 +17,10 @@ index 470dbed47830e2f580c090bc762a7be5cf389ce5..a261fd5f0709bd9891189d538f762aa8 public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cb35f2f1f2f4d568bc59ce5c08ab3b908533264c..ec09ea159a75c33ef9ecbd1d424a2eb81baabdc4 100644 +index b9f2f6713bd9e3431ddbf2a41f16cbda5739ef57..f579bcfd222025ca9bc5b0f0f8b168d3e7385763 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3151,6 +3151,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3147,6 +3147,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index cb35f2f1f2f4d568bc59ce5c08ab3b908533264c..ec09ea159a75c33ef9ecbd1d424a2eb8 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3175,6 +3176,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3171,6 +3172,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -43,10 +43,10 @@ index cb35f2f1f2f4d568bc59ce5c08ab3b908533264c..ec09ea159a75c33ef9ecbd1d424a2eb8 try { byte[] data = new byte[packet.data.readableBytes()]; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a5ccc1b3c7cef43527556c33d846cc9904e3ab8b..b86c5e7d68da91a5c20614082192b144a4e84387 100644 +index 2088b708d7ed7af8de0df31493084d8fcfed8a70..b1540e8bb9332506dbd5762024202414a173c621 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2691,4 +2691,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2693,4 +2693,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0005-Component-related-conveniences.patch index 2f1675960..081d4027d 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0005-Component-related-conveniences.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4b842e78d3e8fbca90f5f3d975bee654ec87d91d..c516ad43cac2419bcf63e11eaa183785b462de5c 100644 +index a261fd5f0709bd9891189d538f762aa8786d19d2..20548a1e7a4d56162ec906646cff3159fc98c817 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1693,6 +1693,26 @@ public class ServerPlayer extends Player { @@ -36,7 +36,7 @@ index 4b842e78d3e8fbca90f5f3d975bee654ec87d91d..c516ad43cac2419bcf63e11eaa183785 public void displayClientMessage(Component message, boolean actionBar) { this.sendMessage(message, actionBar ? ChatType.GAME_INFO : ChatType.CHAT, Util.NIL_UUID); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cd08f9b16c065be8f0eacaeba51d3e72d332daf9..ae3c16ec9404f126c50160d436b7732d82765fc5 100644 +index 7a0c1ba40156df69bbbf36d96bed0950130d2351..6b4cb3a94dc998e7a087c888876a15c36763bfd0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1377,6 +1377,62 @@ public abstract class PlayerList { @@ -123,10 +123,10 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..19d6165f266fcc39bc3533042109ef1b return this.isFireSource; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e0c91bc518168441fffa32f4c611a74800a8d2e2..452d56e6e0c6682f0d55697b3e9e94d53e186f92 100644 +index fd6e42d3df429aaf753102258b8e65a61ff4d296..12357be999e5e0f684e24f6ea611f7cbfc29e986 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3657,6 +3657,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3661,6 +3661,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index cc224a7b3..719636f7f 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -73,10 +73,10 @@ index 20548a1e7a4d56162ec906646cff3159fc98c817..652f7207edb51e2523caaced2bc8bdd9 + } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ec09ea159a75c33ef9ecbd1d424a2eb81baabdc4..298cf742ac8dd03783fee6019663b22209d4f539 100644 +index f579bcfd222025ca9bc5b0f0f8b168d3e7385763..392468375ef80b8c22bf94e336ec96d47177adac 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2462,6 +2462,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2458,6 +2458,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -86,7 +86,7 @@ index ec09ea159a75c33ef9ecbd1d424a2eb81baabdc4..298cf742ac8dd03783fee6019663b222 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((LivingEntity) entity)); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 452d56e6e0c6682f0d55697b3e9e94d53e186f92..ab905ab075fd6966a95db45fc183d630bbf414ec 100644 +index 12357be999e5e0f684e24f6ea611f7cbfc29e986..2885911f5b82ad7ecb1ebea70251804bfc836203 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -297,7 +297,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -126,7 +126,7 @@ index 452d56e6e0c6682f0d55697b3e9e94d53e186f92..ab905ab075fd6966a95db45fc183d630 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4389,4 +4403,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -4393,4 +4407,45 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i return ((ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -201,7 +201,7 @@ index 645c1dc9bd09b135a641759c76ce8d957b9bd488..912767ed261e44c0192c5a07e2c20261 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a6681690e1e556440320c492bf2a8e617008baa1..67912e15aa060261b1ec2c13abcab309d6af8813 100644 +index 3236a1dc51c394b784d3f42b78e76bf7c2f69c37..d1b85bbb53912bacc42ffb8962e2c3fed1b33d26 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -216,9 +216,9 @@ public abstract class LivingEntity extends Entity { @@ -4922,10 +4922,10 @@ index 4759a6b3d3cd7973744562adf97d110d359ebce3..cfb43f277c013680a0e51fb93796e38f Projectile(EntityType type, Level world) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a3673e2943f251e056ecf84a9bff2de12efdb52a..e14754778ca53d30fdfe7c06e31b02f88a82b765 100644 +index 989aaca1d56423729d4f5a491cd4c501342dac7c..728eba385fe5c658bc61114029192295ec7ebf05 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1304,4 +1304,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1311,4 +1311,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. } // Paper end @@ -4954,10 +4954,10 @@ index a3673e2943f251e056ecf84a9bff2de12efdb52a..e14754778ca53d30fdfe7c06e31b02f8 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 519b17fac445b7118f5493508bddccd368dadcde..cd6db807c50f9b6269b54a69b6601837aebd28ed 100644 +index a3c8a0291fa9ae6f3c96d937dd4621edd7c48535..f8150c304346c0ccfb440588663cdc72c22cac6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -542,6 +542,15 @@ public class CraftEventFactory { +@@ -543,6 +543,15 @@ public class CraftEventFactory { } craftServer.getPluginManager().callEvent(event); @@ -4973,7 +4973,7 @@ index 519b17fac445b7118f5493508bddccd368dadcde..cd6db807c50f9b6269b54a69b6601837 return event; } -@@ -971,6 +980,7 @@ public class CraftEventFactory { +@@ -981,6 +990,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API @@ -4981,7 +4981,7 @@ index 519b17fac445b7118f5493508bddccd368dadcde..cd6db807c50f9b6269b54a69b6601837 } event.setCancelled(cancelled); -@@ -1075,6 +1085,7 @@ public class CraftEventFactory { +@@ -1085,6 +1095,7 @@ public class CraftEventFactory { } else { entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled } @@ -4989,7 +4989,7 @@ index 519b17fac445b7118f5493508bddccd368dadcde..cd6db807c50f9b6269b54a69b6601837 return event; } -@@ -1134,6 +1145,7 @@ public class CraftEventFactory { +@@ -1144,6 +1155,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index c0b91d89f..134e31992 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -68,10 +68,10 @@ index 652f7207edb51e2523caaced2bc8bdd98f884ecf..60f28bc4bc0453cf3a87ae992275c0cb return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 298cf742ac8dd03783fee6019663b22209d4f539..8b80ed58d4d7942efb203daa43a6477e2bda6673 100644 +index 392468375ef80b8c22bf94e336ec96d47177adac..2b83c3b7e9bdd7069c0bc49365b5743f21179eb6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -295,6 +295,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -292,6 +292,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private boolean justTeleported = false; private boolean hasMoved; // Spigot @@ -92,7 +92,7 @@ index 298cf742ac8dd03783fee6019663b22209d4f539..8b80ed58d4d7942efb203daa43a6477e public CraftPlayer getCraftPlayer() { return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity(); } -@@ -391,6 +405,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -388,6 +402,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) (this.server.getPlayerIdleTimeout() * 1000 * 60) && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. @@ -105,7 +105,7 @@ index 298cf742ac8dd03783fee6019663b22209d4f539..8b80ed58d4d7942efb203daa43a6477e this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(new TranslatableComponent("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -@@ -676,6 +696,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -673,6 +693,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -114,7 +114,7 @@ index 298cf742ac8dd03783fee6019663b22209d4f539..8b80ed58d4d7942efb203daa43a6477e // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1446,7 +1468,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1443,7 +1465,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot flag1 = true; // Paper - diff on change, this should be moved wrongly @@ -123,7 +123,7 @@ index 298cf742ac8dd03783fee6019663b22209d4f539..8b80ed58d4d7942efb203daa43a6477e } this.player.absMoveTo(d0, d1, d2, f, f1); -@@ -1496,6 +1518,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1493,6 +1515,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -213,10 +213,10 @@ index 1f4b72a0aca200b2e0860449c718e6e607d2fc47..e1dd8932594780b07db13f68efa117eb if (range < 0.0D || d < range * range) { 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 b86c5e7d68da91a5c20614082192b144a4e84387..f73b4facacaa68255c2ec372a0a1a5878e5de484 100644 +index b1540e8bb9332506dbd5762024202414a173c621..db25979960774c59c4bd1d864cc8203f54305d3c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -433,10 +433,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -435,10 +435,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setPlayerListName(String name) { @@ -233,7 +233,7 @@ index b86c5e7d68da91a5c20614082192b144a4e84387..f73b4facacaa68255c2ec372a0a1a587 for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -2697,5 +2702,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2699,5 +2704,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } diff --git a/patches/server/0012-Bring-back-server-name.patch b/patches/server/0012-Bring-back-server-name.patch index cc5054c98..0722fa499 100644 --- a/patches/server/0012-Bring-back-server-name.patch +++ b/patches/server/0012-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index f944e6beafc7876ed9c6923a22f58d82967b77cb..e1c7b7a659e56fa5b3a1f52cb2ccc99b public final boolean spawnNpcs = this.get("spawn-npcs", true); public final boolean pvp = this.get("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 11278953cffbb2fd0b74ccd561bcbd22af7f6e63..87f433d8ed3731a60ff3ec0198c96d401ae1af82 100644 +index 8015ed84e3e37ef0c8377bad66c5658a0279853a..a5c64896d5d87a04773ec578034c5df4febd4914 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2843,4 +2843,11 @@ public final class CraftServer implements Server { +@@ -2857,4 +2857,11 @@ public final class CraftServer implements Server { } // Paper end diff --git a/patches/server/0015-Lagging-threshold.patch b/patches/server/0015-Lagging-threshold.patch index 3a7a4416d..ee4b24a0b 100644 --- a/patches/server/0015-Lagging-threshold.patch +++ b/patches/server/0015-Lagging-threshold.patch @@ -25,10 +25,10 @@ index 0eed0dc8aa52a8ea16e47f7183ba7b4235ce362a..0c7355902448b444c360259a84a7e8a1 } // Spigot end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 87f433d8ed3731a60ff3ec0198c96d401ae1af82..020ba662e992f4b859eccb4b4d5c171123b097a3 100644 +index a5c64896d5d87a04773ec578034c5df4febd4914..805250ab22b07918ad553869ab4391e7fa953e7e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2849,5 +2849,10 @@ public final class CraftServer implements Server { +@@ -2863,5 +2863,10 @@ public final class CraftServer implements Server { public String getServerName() { return this.getProperties().serverName; } diff --git a/patches/server/0018-Player-invulnerabilities.patch b/patches/server/0018-Player-invulnerabilities.patch index 8f5c303c1..c2b247039 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-Player-invulnerabilities.patch @@ -82,10 +82,10 @@ index 60f28bc4bc0453cf3a87ae992275c0cb1c6c881f..4c401de49ab21b4f2f596185b61f1a60 public Scoreboard getScoreboard() { return this.getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8b80ed58d4d7942efb203daa43a6477e2bda6673..8ed6105b8836728a1f972b7eda07851cf25a038f 100644 +index 2b83c3b7e9bdd7069c0bc49365b5743f21179eb6..ce19e2bb8a9b45c3ca134d1911d1c38647557242 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1970,12 +1970,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1966,12 +1966,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); @@ -108,7 +108,7 @@ index 8b80ed58d4d7942efb203daa43a6477e2bda6673..8ed6105b8836728a1f972b7eda07851c this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // Paper end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6b4cb3a94dc998e7a087c888876a15c36763bfd0..55e3ab7b82a287715b35045a1bb6d6ebbc9486a7 100644 +index 0c7afc7787bf9303a8f8a7b4125a3bc45b70ccff..cb4af460cae665016e0a6ec7ff664830be41d5a5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -997,6 +997,8 @@ public abstract class PlayerList { @@ -121,10 +121,10 @@ index 6b4cb3a94dc998e7a087c888876a15c36763bfd0..55e3ab7b82a287715b35045a1bb6d6eb return entityplayer1; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f73b4facacaa68255c2ec372a0a1a5878e5de484..b3ce4424b83d8f44f61b8923d02f2f9e4c415e67 100644 +index db25979960774c59c4bd1d864cc8203f54305d3c..2bdc1caa5748cf947f3941b4388e9f81e4c42ce2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2717,5 +2717,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2719,5 +2719,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } diff --git a/patches/server/0021-Alternative-Keepalive-Handling.patch b/patches/server/0021-Alternative-Keepalive-Handling.patch index a18902be6..a7d54e18f 100644 --- a/patches/server/0021-Alternative-Keepalive-Handling.patch +++ b/patches/server/0021-Alternative-Keepalive-Handling.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8ed6105b8836728a1f972b7eda07851cf25a038f..da74c6e0e7f3fdba9b29195c17510e33ebe4cac2 100644 +index ce19e2bb8a9b45c3ca134d1911d1c38647557242..96aa7a49663050e151385106ef23f64efdcc61de 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -227,6 +227,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private long keepAliveTime = Util.getMillis(); private boolean keepAlivePending; private long keepAliveChallenge; @@ -16,7 +16,7 @@ index 8ed6105b8836728a1f972b7eda07851cf25a038f..da74c6e0e7f3fdba9b29195c17510e33 // CraftBukkit start - multithreaded fields private final AtomicInteger chatSpamTickCount = new AtomicInteger(); private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits -@@ -373,6 +374,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -370,6 +371,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -38,7 +38,7 @@ index 8ed6105b8836728a1f972b7eda07851cf25a038f..da74c6e0e7f3fdba9b29195c17510e33 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3143,6 +3159,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3139,6 +3155,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0062-Add-canSaveToDisk-to-Entity.patch b/patches/server/0062-Add-canSaveToDisk-to-Entity.patch index 2a5b9b9b9..08644dde8 100644 --- a/patches/server/0062-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0062-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c1d6e5db593142188e3e7f4174bcaf5bd9b44527..f4395b55dac3b6a5501fbe8c88006a008af0fde3 100644 +index f9ccf9d2d426ff895a7586a1aaf213c415f87b37..d6870a178e991bf2e07517596d12d8b3d198fa47 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4444,5 +4444,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -4448,5 +4448,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i public boolean processClick(InteractionHand hand) { return false; } @@ -19,7 +19,7 @@ index c1d6e5db593142188e3e7f4174bcaf5bd9b44527..f4395b55dac3b6a5501fbe8c88006a00 // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 8480ebae938abd4f11ad82fd11e3a5ad405aa180..9e6b44da2098b11b204d45a0f44287d842b5f792 100644 +index 72287c44fb4be9cd75d4e408dfaaee2c8d9235a5..30b3d19f9d4710874b98550d12b53feed47078cc 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -209,6 +209,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -35,7 +35,7 @@ index 8480ebae938abd4f11ad82fd11e3a5ad405aa180..9e6b44da2098b11b204d45a0f44287d8 skull.setPosRaw(headX, headY, headZ); level.addFreshEntity(skull); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index fec7d5c6a7b7a20ac9aecec1d3187f5c61fc430c..d4fd425c934e1e033d9aefda66958c864c11ea7d 100644 +index acb484e074391d2f1b6b83978ea9483cfb5c214c..2a812da233a944cce776c003194dcb9695db718f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java @@ -92,6 +92,7 @@ public class EntityStorage implements EntityPersistentStorage { diff --git a/patches/server/0066-Add-5-second-tps-average-in-tps.patch b/patches/server/0066-Add-5-second-tps-average-in-tps.patch index a6a06b0df..fbbd637ab 100644 --- a/patches/server/0066-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0066-Add-5-second-tps-average-in-tps.patch @@ -69,10 +69,10 @@ index 5e2d1e31722791f879f09705ebd491dedc6ac1da..20fd8a043ea8e8221aab94479ffb73c4 lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur tickSection = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 020ba662e992f4b859eccb4b4d5c171123b097a3..38b1fce9fb3800ba2c37f3bc476f5c41fc4adb41 100644 +index 805250ab22b07918ad553869ab4391e7fa953e7e..3952c4340f84902741371e170f4be6ccc375ee22 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2631,6 +2631,7 @@ public final class CraftServer implements Server { +@@ -2645,6 +2645,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { diff --git a/patches/server/0077-Add-allow-water-in-end-world-option.patch b/patches/server/0077-Add-allow-water-in-end-world-option.patch index 75c9caa7c..5b72d0135 100644 --- a/patches/server/0077-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0077-Add-allow-water-in-end-world-option.patch @@ -27,10 +27,10 @@ index a3f04f66c66f40068792da3ef0e75e7df102b0e0..e4ee273568502f4cf4d85c5d50d5d63c return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7f71a6fe6087630987ae1815ce45dfa45e52f684..9abaecd72e40fe3629bb044e087e968c756ca337 100644 +index 7d2cc5bbeda115bae0b2cdfa89893a75de272f6b..8e88d2064f98ca9a4acff588bf6fe33abd1aa633 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1603,4 +1603,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1602,4 +1602,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean shouldDelayFallingBlockEntityRemoval(Entity.RemovalReason reason) { return false; } @@ -68,7 +68,7 @@ index 2676cddca511ea775766cec0001269407599df6e..1dacd2e3a9340420c9b4443cc2f8a3c6 } else { world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 9fa6d8f3e5a5f22fc84b64d28021fb84f3d18669..b1c72d8427a9e80cf3fac84cd88e31523cbfd8a2 100644 +index e49c2c16f6130eb1343d49d5a3972f505155aba2..e63ae0cd672f162566c8edad0b2376cab907898a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -237,6 +237,11 @@ public class PurpurConfig { diff --git a/patches/server/0078-Allow-color-codes-in-books.patch b/patches/server/0078-Allow-color-codes-in-books.patch index 18a4df9cb..622141a44 100644 --- a/patches/server/0078-Allow-color-codes-in-books.patch +++ b/patches/server/0078-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index da74c6e0e7f3fdba9b29195c17510e33ebe4cac2..8cb641008f9def46cb74b4be224b3daba64ccefe 100644 +index 96aa7a49663050e151385106ef23f64efdcc61de..651178b4ea058d8a424961ff160d161bfc3a1187 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1240,13 +1240,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1237,13 +1237,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser itemstack1.setTag(nbttagcompound.copy()); } @@ -28,7 +28,7 @@ index da74c6e0e7f3fdba9b29195c17510e33ebe4cac2..8cb641008f9def46cb74b4be224b3dab this.updateBookPages(pages, (s) -> { return Component.Serializer.toJson(new TextComponent(s)); -@@ -1258,10 +1261,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1255,10 +1258,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index da74c6e0e7f3fdba9b29195c17510e33ebe4cac2..8cb641008f9def46cb74b4be224b3dab Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1271,10 +1277,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1268,10 +1274,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser for (int j = list.size(); i < j; ++i) { TextFilter.FilteredText itextfilter_a = (TextFilter.FilteredText) list.get(i); @@ -57,7 +57,7 @@ index da74c6e0e7f3fdba9b29195c17510e33ebe4cac2..8cb641008f9def46cb74b4be224b3dab if (!s.equals(s1)) { nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1)); -@@ -1290,6 +1296,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1287,6 +1293,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/server/0079-Entity-lifespan.patch b/patches/server/0079-Entity-lifespan.patch index bb87084a1..b40a0cb32 100644 --- a/patches/server/0079-Entity-lifespan.patch +++ b/patches/server/0079-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8cb641008f9def46cb74b4be224b3daba64ccefe..e772b87896ce878c34ad226991c6c339792195ae 100644 +index 651178b4ea058d8a424961ff160d161bfc3a1187..ffc7b49f4b3a783e37670efa935501295b6660a5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2517,6 +2517,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -2513,6 +2513,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser double d0 = 36.0D; if (this.player.distanceToSqr(entity) < 36.0D) { diff --git a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch b/patches/server/0092-Stop-squids-floating-on-top-of-water.patch index c9a7c7983..56603aec0 100644 --- a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0092-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f4395b55dac3b6a5501fbe8c88006a008af0fde3..bc89ad23c1ec02a1f5a1e03b3f6f9982cc0fa1f2 100644 +index d6870a178e991bf2e07517596d12d8b3d198fa47..3e1dfe002eebb48d8ae402196deeb37d5baa3a1b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3936,6 +3936,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3940,6 +3940,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i this.yRotO = this.getYRot(); } diff --git a/patches/server/0094-Entities-can-use-portals-configuration.patch b/patches/server/0094-Entities-can-use-portals-configuration.patch index 23d7e7a43..cad85a831 100644 --- a/patches/server/0094-Entities-can-use-portals-configuration.patch +++ b/patches/server/0094-Entities-can-use-portals-configuration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bc89ad23c1ec02a1f5a1e03b3f6f9982cc0fa1f2..7f9cf9fdb548e1e728c39a36d47b0b8c71aea82d 100644 +index 3e1dfe002eebb48d8ae402196deeb37d5baa3a1b..2c1358794db54433cc8d98ce30ed04039b8f67f7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2764,7 +2764,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -17,7 +17,7 @@ index bc89ad23c1ec02a1f5a1e03b3f6f9982cc0fa1f2..7f9cf9fdb548e1e728c39a36d47b0b8c if (!this.level.isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3425,7 +3425,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -3429,7 +3429,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i } public boolean canChangeDimensions() { diff --git a/patches/server/0104-Stonecutter-damage.patch b/patches/server/0104-Stonecutter-damage.patch index b567eacc6..8a3b80558 100644 --- a/patches/server/0104-Stonecutter-damage.patch +++ b/patches/server/0104-Stonecutter-damage.patch @@ -24,7 +24,7 @@ index 19d6165f266fcc39bc3533042109ef1b725ecb77..32bf8264fecb8873f3ffa0e57a4bb48b private boolean bypassArmor; private boolean bypassInvul; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7f9cf9fdb548e1e728c39a36d47b0b8c71aea82d..13f5699077a37670abf916a7a34554f898e28aa8 100644 +index 2c1358794db54433cc8d98ce30ed04039b8f67f7..b02a880dad1d7f36c918dd54788321f121053a45 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1058,7 +1058,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -80,10 +80,10 @@ index 737d0405a195d322ffe9a57acadb9f6d645c03b8..d7bdf3c2a5b99ff7adb3e960ff356a1f } else if (blockState.is(Blocks.HONEY_BLOCK)) { return BlockPathTypes.STICKY_HONEY; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index cd6db807c50f9b6269b54a69b6601837aebd28ed..bf888a3dc060476d386d23244e2db6be70b436c4 100644 +index f8150c304346c0ccfb440588663cdc72c22cac6c..8bc029dcd80452678eead24eaca867ca9afcb5da 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1044,6 +1044,10 @@ public class CraftEventFactory { +@@ -1054,6 +1054,10 @@ public class CraftEventFactory { cause = DamageCause.MAGIC; } else if (source == DamageSource.IN_FIRE) { cause = DamageCause.FIRE; @@ -95,7 +95,7 @@ index cd6db807c50f9b6269b54a69b6601837aebd28ed..bf888a3dc060476d386d23244e2db6be throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.msgId)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8455ff2aa26039940dd42e43205ad9a2164cd41f..7fd2d06df6a3b04b370204403a677109b202c355 100644 +index 1cd8358c3d9f96073224846143516097aeb8fd23..4b3c590f0f1231e164e8664f21a14c1b39d73842 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -187,6 +187,11 @@ public class PurpurConfig { diff --git a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch index 7cbc4ea89..a879e0e5b 100644 --- a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch @@ -33,10 +33,10 @@ index 2bc77858b4a78e24227b4b096fd44177202d5292..b26d5482d89e28897bcc9dc8a15042a5 entityageable.setBaby(true); entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e5e4fa1865cdd903a4c543b79b4d30a2f067742d..dfcb5d9fe165852bffe2a676f134ba060ea1aa71 100644 +index 8e88d2064f98ca9a4acff588bf6fe33abd1aa633..395dde0dd9dda63df441ebf78767ceaa90eafc23 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -188,6 +188,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -185,6 +185,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // Paper end - fix and optimise world upgrading @@ -86,16 +86,16 @@ index e5e4fa1865cdd903a4c543b79b4d30a2f067742d..dfcb5d9fe165852bffe2a676f134ba06 public CraftWorld getWorld() { return this.world; } -@@ -323,6 +366,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -320,6 +363,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur + this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); - this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit + diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9e7544bd441041837df2327c363882b85b0ccc03..4a3acf6e9159ee6ef095a93c1f67c028c7ae8356 100644 +index 4616d5d99e08a9be8ccbee3c67046dc3226b1d7b..54ae2e855d2572a788d852d17a998311691687a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -109,6 +109,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0122-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0122-Spread-out-and-optimise-player-list-ticksSpread-out-.patch index 388860174..528d023d4 100644 --- a/patches/server/0122-Spread-out-and-optimise-player-list-ticksSpread-out-.patch +++ b/patches/server/0122-Spread-out-and-optimise-player-list-ticksSpread-out-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Spread out and optimise player list ticksSpread out and diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a5e4bf56f7e429738c0ba6f392315d2b33ae3925..1d7e80ddddcb7b99a1944795fcfb1ddf3cb71a48 100644 +index b69c05a7cddacfb791a4f46920677eae805ec42a..1d3692d8d533bb4c3ac18f8837aa44f8704c10be 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1011,22 +1011,22 @@ public abstract class PlayerList { @@ -46,10 +46,10 @@ index a5e4bf56f7e429738c0ba6f392315d2b33ae3925..1d7e80ddddcb7b99a1944795fcfb1ddf public void broadcastAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b3ce4424b83d8f44f61b8923d02f2f9e4c415e67..35581fffd46a1baccd218566f3fce0333b321dc3 100644 +index 2bdc1caa5748cf947f3941b4388e9f81e4c42ce2..755316f873762f7bb988756a1103127253eec8cc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1631,7 +1631,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1633,7 +1633,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) { diff --git a/patches/server/0129-PlayerBookTooLargeEvent.patch b/patches/server/0129-PlayerBookTooLargeEvent.patch index 579b652d3..b4b35596c 100644 --- a/patches/server/0129-PlayerBookTooLargeEvent.patch +++ b/patches/server/0129-PlayerBookTooLargeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8cb641008f9def46cb74b4be224b3daba64ccefe..0586314f02595d73b8268e03d650b6b2d0756dc8 100644 +index ffc7b49f4b3a783e37670efa935501295b6660a5..7aed16c2ab8cef0b7d0eef4b8b5e0845d45b79ab 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1162,10 +1162,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1159,10 +1159,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize; double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier)); long byteAllowed = maxBookPageSize; @@ -21,7 +21,7 @@ index 8cb641008f9def46cb74b4be224b3daba64ccefe..0586314f02595d73b8268e03d650b6b2 server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1189,6 +1191,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1186,6 +1188,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch index db8d3dbfc..6755bfc33 100644 --- a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch @@ -78,10 +78,10 @@ index 500a4013ce525c0474fe3991457d4c2a50ceb7ed..74de26d72e705041318beee0ebef59d6 blockEntity.teleportCooldown = 100; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index e14754778ca53d30fdfe7c06e31b02f88a82b765..b6ae2d263d107d5a81ea6a66fcd229b2584a9959 100644 +index 728eba385fe5c658bc61114029192295ec7ebf05..e875bc08aaecc41db09ca0ffa00ff0f1ba40d350 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -562,6 +562,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -564,6 +564,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { location.checkFinite(); if (this.entity.isVehicle() || this.entity.isRemoved()) { @@ -93,10 +93,10 @@ index e14754778ca53d30fdfe7c06e31b02f88a82b765..b6ae2d263d107d5a81ea6a66fcd229b2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 35581fffd46a1baccd218566f3fce0333b321dc3..3e58123943be422860b6461a962670930d192f4d 100644 +index 755316f873762f7bb988756a1103127253eec8cc..703eef24baa26475e8ec5f843fbc92420599c20a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1037,6 +1037,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1039,6 +1039,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle()) { diff --git a/patches/server/0142-Dont-run-with-scissors.patch b/patches/server/0142-Dont-run-with-scissors.patch index f7b2e83e7..5019521f6 100644 --- a/patches/server/0142-Dont-run-with-scissors.patch +++ b/patches/server/0142-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0586314f02595d73b8268e03d650b6b2d0756dc8..dc55854d7bc91923fca3ae86e24708c0d1c53a9c 100644 +index 7aed16c2ab8cef0b7d0eef4b8b5e0845d45b79ab..5d95ff124cfccb3d95e149a5e7cc63bef03ca471 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1595,6 +1595,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1592,6 +1592,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.player.resetFallDistance(); } @@ -22,7 +22,7 @@ index 0586314f02595d73b8268e03d650b6b2d0756dc8..dc55854d7bc91923fca3ae86e24708c0 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1628,6 +1635,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1625,6 +1632,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // Paper end - optimise out extra getCubes @@ -53,10 +53,10 @@ index 32bf8264fecb8873f3ffa0e57a4bb48b5517fb77..0f56c60962b9c61c72d05edc7d9b10e9 private boolean damageHelmet; private boolean bypassArmor; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index bf888a3dc060476d386d23244e2db6be70b436c4..4bf67cdbe9516e4d167ddcfca3d0c033a7ca5172 100644 +index 8bc029dcd80452678eead24eaca867ca9afcb5da..361bd8edcc6e6d0fbac958e3ec91d74a622d630a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1124,6 +1124,10 @@ public class CraftEventFactory { +@@ -1134,6 +1134,10 @@ public class CraftEventFactory { cause = DamageCause.FREEZE; } else if (source == DamageSource.GENERIC) { cause = DamageCause.CUSTOM; @@ -68,7 +68,7 @@ index bf888a3dc060476d386d23244e2db6be70b436c4..4bf67cdbe9516e4d167ddcfca3d0c033 if (cause != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 7280f023ddb2d6b1737a987bfacb4e57d0524d67..a6836b07f50baf1920d2b2491bd0685ed271c911 100644 +index b85cc48ce8334f47c1776e1e35d81003118c2318..24cca9a7a5656f50a998f2d5e357315a6a3adffa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -176,6 +176,7 @@ public class PurpurConfig { diff --git a/patches/server/0154-Sneak-to-bulk-process-composter.patch b/patches/server/0154-Sneak-to-bulk-process-composter.patch index c80369b3a..750a80c06 100644 --- a/patches/server/0154-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0154-Sneak-to-bulk-process-composter.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 3125af569ec2bb1cd613a9dd96c3a181d723006d..c24cc105d31b4d41acf6e2ea3bc7a08a02490ca7 100644 +index cc5dbc86c8265540948e6b1445d84ecf0b7762aa..ab73f66976d3ea3fa561a4e2d8afcce8586c5b25 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -580,7 +580,7 @@ public class ServerPlayerGameMode { +@@ -582,7 +582,7 @@ public class ServerPlayerGameMode { boolean flag1 = player.isSecondaryUseActive() && flag; ItemStack itemstack1 = stack.copy(); @@ -75,7 +75,7 @@ index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e1 int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 007ebed0fcffb1dc4c06d4f9585c6ba88c8c9c0c..b1c81d9d7d3769c56eddab029d4d24c7dd93d350 100644 +index fb16a3541c86f73ea4922baa4e34788ee3c9112d..7a7fbc0f8d5f6e40c209666a83de9f7371f3e4d3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -462,6 +462,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0159-Break-individual-slabs-when-sneaking.patch b/patches/server/0159-Break-individual-slabs-when-sneaking.patch index 1b6d44e89..f0ec65ba9 100644 --- a/patches/server/0159-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0159-Break-individual-slabs-when-sneaking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c24cc105d31b4d41acf6e2ea3bc7a08a02490ca7..0409daff0f01db6d0644934fc8ffd64b6158e378 100644 +index ab73f66976d3ea3fa561a4e2d8afcce8586c5b25..0d1a833a6568128e542bde425b0ce77b4534d144 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -418,6 +418,7 @@ public class ServerPlayerGameMode { +@@ -420,6 +420,7 @@ public class ServerPlayerGameMode { } return false; } @@ -47,7 +47,7 @@ index 54df5c2987822a727a31be2b3769d39fabb6159a..70b6a65a7d321fc71c98289f09f21cca + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aa01c1d87121a761a66ca0af164d5f24bd3fd2ed..77ad69e86deb7b55d5d5bd96c92dc93b02c28be0 100644 +index 4f913ecf1d259badb7eaf584da57ff8327e0e66b..036b6f987a8fc966539795ab22bdf505e48bdd1f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -582,6 +582,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch index f1be038a1..d88198008 100644 --- a/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch @@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for creative players) instead of routing it through the LootableBuilder. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 0409daff0f01db6d0644934fc8ffd64b6158e378..7649742f5e37d875e79c169c709ae82529b0db77 100644 +index 0d1a833a6568128e542bde425b0ce77b4534d144..5524d85aaf3fc8c0bc561fa4a88e82d416fab83d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -447,7 +447,7 @@ public class ServerPlayerGameMode { +@@ -449,7 +449,7 @@ public class ServerPlayerGameMode { block.destroy(this.level, pos, iblockdata); } @@ -35,7 +35,7 @@ index 7f1230d915c98b6f30b13a06c2788bc2f7b7e912..9439119a70a411b1a7d9cd6a0090e413 blockEntity.saveToItem(itemStack); if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index de1b73bea9d61b14df93bfdb7cf86c242e475d8b..2a7b4120502d72f4f5ce0cdccc084c0a5bc6bf83 100644 +index 6ccfbcf813fb2262f4cdf33513cf9d208a7d2a00..476b6018dc378599902d895f05e3e5babcec1a9d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -653,6 +653,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch b/patches/server/0187-API-for-any-mob-to-burn-daylight.patch index 35b32f360..f9e013ff1 100644 --- a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0187-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 994fa9a62936314420f124d8fa48af585439f91b..b80927752acd563c944ef6928db55e5c99e1a96c 100644 +index e414f44168a03874910c5ebdb865fe39d91e27b7..7e85785b902a2ef72c09d53f0e24cb2ab96b0b58 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4457,5 +4457,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -4461,5 +4461,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i public boolean canSaveToDisk() { return true; } @@ -349,10 +349,10 @@ index 4b288fe8923bb4beefb88e8196bfb4d5d2b10b8b..e4e357af439c9a02b8013ce3349ff582 // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b6ae2d263d107d5a81ea6a66fcd229b2584a9959..22f19467e0d5e0ab96e1f696d7aa22c4e6c361f0 100644 +index e875bc08aaecc41db09ca0ffa00ff0f1ba40d350..f46ce327586781f74d8feb47e6a904d732888289 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -197,6 +197,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -199,6 +199,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { this.entity = entity; } diff --git a/patches/server/0192-Flying-Fall-Damage-API.patch b/patches/server/0192-Flying-Fall-Damage-API.patch index 25c73ac30..d6891bcc2 100644 --- a/patches/server/0192-Flying-Fall-Damage-API.patch +++ b/patches/server/0192-Flying-Fall-Damage-API.patch @@ -26,10 +26,10 @@ index 3b25bbb0cc86c8fba1fb770556c0f8c9ef6ac46e..15a8c193d7f5a0dda7e3d2d1aa967a91 } 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 3e58123943be422860b6461a962670930d192f4d..57f53ad50e3f26c9301f16f0d6b25f1cd1bebaa5 100644 +index 703eef24baa26475e8ec5f843fbc92420599c20a..91d3c8110a3a185780b77c7377640b244af961a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2742,5 +2742,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2744,5 +2744,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) { getHandle().spawnInvulnerableTime = spawnInvulnerableTime; } diff --git a/patches/server/0202-Armor-click-equip-options.patch b/patches/server/0202-Armor-click-equip-options.patch index aa00da961..ee763e2e4 100644 --- a/patches/server/0202-Armor-click-equip-options.patch +++ b/patches/server/0202-Armor-click-equip-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Armor click equip options diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 7649742f5e37d875e79c169c709ae82529b0db77..61d0fcaf3c96a2b241b35b2b21104b9fbf403160 100644 +index 5524d85aaf3fc8c0bc561fa4a88e82d416fab83d..7b09735818f027aced43158978bc54795618b64b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -497,7 +497,7 @@ public class ServerPlayerGameMode { +@@ -499,7 +499,7 @@ public class ServerPlayerGameMode { return interactionresultwrapper.getResult(); } else { player.setItemInHand(hand, itemstack1); @@ -58,7 +58,7 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 59cee8f525b3158d1c69c10b8e1460ccb254c7f5..c3a24784e980d38ef5899985e72cd206ab5e8939 100644 +index 10dcb1623caa995922bba0a96f73907e05772e9c..d8fb8dc520ba0b88239c0d4c3f731c0567c422cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -383,6 +383,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch index a34e959e8..ad453072c 100644 --- a/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -6,10 +6,10 @@ Subject: [PATCH] option to disable shulker box items from dropping contents diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index 893d5bf448ddbccb30db0ee751c7f4a4e83634b9..b7a7d9ef5f7c8fecb5625a98471314b6f5fc9a42 100644 +index 8f3b9b8784f0d7b137a1ad87655ee8bad801b59d..8a5f6d955577a8f8a63a846169a63fe9685b6321 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java -@@ -293,7 +293,7 @@ public class BlockItem extends Item { +@@ -294,7 +294,7 @@ public class BlockItem extends Item { @Override public void onDestroyed(ItemEntity entity) { @@ -19,7 +19,7 @@ index 893d5bf448ddbccb30db0ee751c7f4a4e83634b9..b7a7d9ef5f7c8fecb5625a98471314b6 CompoundTag nbttagcompound = BlockItem.getBlockEntityData(itemstack); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3b9114e3c0789eeb6edcd49400c7ece14dc9d7a9..0077e4e3f5dbf1a5a692f5cbeeb8e72b8a737070 100644 +index 719612684b4d5f72589576bb69c2d6c908bdc485..0b14878546df0217fa83eabfc26f6ede84f8ebb2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -213,6 +213,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0227-Extended-OfflinePlayer-API.patch b/patches/server/0227-Extended-OfflinePlayer-API.patch index 5429bf522..db17adcd0 100644 --- a/patches/server/0227-Extended-OfflinePlayer-API.patch +++ b/patches/server/0227-Extended-OfflinePlayer-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Extended OfflinePlayer API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index 88bc0807e8bf66a65422f85f1112336334eb3de2..d0e822b329085b9d0a42276c3cacd6cb36548246 100644 +index 1f2bc88d4570c6ef00e67a772b745e0b0c98e051..f505e871a9836503377f168c31c1f09f8ed591f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -525,4 +525,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -528,4 +528,213 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa manager.save(); } } @@ -223,10 +223,10 @@ index 88bc0807e8bf66a65422f85f1112336334eb3de2..d0e822b329085b9d0a42276c3cacd6cb + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 57f53ad50e3f26c9301f16f0d6b25f1cd1bebaa5..1bfc4c8156ebcab30a7009f5daaf5ebcd59aed45 100644 +index 91d3c8110a3a185780b77c7377640b244af961a2..d7008f2a1f647ae042eb7e25068b942e39e4b728 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2005,6 +2005,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2007,6 +2007,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } diff --git a/patches/server/0228-Added-the-ability-to-add-combustible-items.patch b/patches/server/0228-Added-the-ability-to-add-combustible-items.patch index 379c467a1..8fbef181b 100644 --- a/patches/server/0228-Added-the-ability-to-add-combustible-items.patch +++ b/patches/server/0228-Added-the-ability-to-add-combustible-items.patch @@ -24,7 +24,7 @@ index 4adfc26062b322443828e94e6b0943884a18846b..0d9ecca25bff63f3428ccf93e2789fca } else if (this.isFuel(itemstack1)) { if (!this.moveItemStackTo(itemstack1, 1, 2, false)) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 0d9b592ebfd22dc679ba7dbfd339db4d6bc5ad44..f5fd6e0fd67c1b760000c2e75ce09d1c680b4cf6 100644 +index 974f9461ee0932e8870520c0cd93d3e62f6a2157..f11ec870135e9cccaeb209c76fd4ee0d62f465a2 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -205,6 +205,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -51,10 +51,10 @@ index 0d9b592ebfd22dc679ba7dbfd339db4d6bc5ad44..f5fd6e0fd67c1b760000c2e75ce09d1c private int maxStack = MAX_STACK; public List transaction = new java.util.ArrayList(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f69fc2e41a5a319e7e790d6ba0f7c85604787ab5..9b474cebe9999068384e810b5f14d6b3a049a564 100644 +index 3952c4340f84902741371e170f4be6ccc375ee22..4f4d35a988e11a19ecdc4ed1215743be0737c1e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1444,6 +1444,19 @@ public final class CraftServer implements Server { +@@ -1425,6 +1425,19 @@ public final class CraftServer implements Server { return true; } diff --git a/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch index 5bbfdd8a2..70d93120b 100644 --- a/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shift right click to use exp for mending diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 61d0fcaf3c96a2b241b35b2b21104b9fbf403160..c5c7fd414953fb432549e46918fe7e32ff587e6b 100644 +index 7b09735818f027aced43158978bc54795618b64b..29329381ee67a409ed6b324c8c1f0d7ae05970da 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -524,6 +524,7 @@ public class ServerPlayerGameMode { +@@ -526,6 +526,7 @@ public class ServerPlayerGameMode { public InteractionHand interactHand; public ItemStack interactItemStack; public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) { @@ -16,7 +16,7 @@ index 61d0fcaf3c96a2b241b35b2b21104b9fbf403160..c5c7fd414953fb432549e46918fe7e32 BlockPos blockposition = hitResult.getBlockPos(); BlockState iblockdata = world.getBlockState(blockposition); InteractionResult enuminteractionresult = InteractionResult.PASS; -@@ -617,4 +618,18 @@ public class ServerPlayerGameMode { +@@ -619,4 +620,18 @@ public class ServerPlayerGameMode { public void setLevel(ServerLevel world) { this.level = world; } @@ -36,10 +36,10 @@ index 61d0fcaf3c96a2b241b35b2b21104b9fbf403160..c5c7fd414953fb432549e46918fe7e32 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dc55854d7bc91923fca3ae86e24708c0d1c53a9c..f05912f1dea06105a2c3b2248e19d640f082dbc3 100644 +index 5d95ff124cfccb3d95e149a5e7cc63bef03ca471..84de797d405b55cd82d2c9068b924e7fd450e996 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1966,6 +1966,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1962,6 +1962,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { diff --git a/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch index ff6a8e930..d580b33d7 100644 --- a/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -7,10 +7,10 @@ Makes it so that when a BlockEntity is placed in the world and then broken, the dropped ItemStack retains any original custom display name/lore. diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index b7a7d9ef5f7c8fecb5625a98471314b6f5fc9a42..326c3b9e2ee25dded8f0f3878be78b23d5ec11d0 100644 +index 8a5f6d955577a8f8a63a846169a63fe9685b6321..eb595d1b6ef59ca18ce1c3c3ccd2aa05242ebe65 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java -@@ -150,7 +150,24 @@ public class BlockItem extends Item { +@@ -151,7 +151,24 @@ public class BlockItem extends Item { } protected boolean updateCustomBlockEntityTag(BlockPos pos, Level world, @Nullable Player player, ItemStack stack, BlockState state) { @@ -200,7 +200,7 @@ index 5601d0c2fe635a2a4f073c333531e1a8adf1833c..9e7d2fbdfa89736807d2025a5814ddd8 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 410f15b1aa575cba890ec1ed66476cc4fa03797e..a37c61807883ed31032a47794b3259fa78e887a6 100644 +index f1d8ddc36abfd278cc7d956f5fe980e0d1bcafeb..7b76d4f6ad4425b38f018f5dd1632b4801804013 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -124,6 +124,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0242-Signs-allow-color-codes.patch b/patches/server/0242-Signs-allow-color-codes.patch index fbbb051d8..2b9d2c997 100644 --- a/patches/server/0242-Signs-allow-color-codes.patch +++ b/patches/server/0242-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index f300589fad36c5c9768474a13db74144b760c2a5..61b0b0a847042557d7b9cd20f0ad51f0 this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0439bfb0cba7e3a4c80668f32ae8fbe1e1bf8e4e..bfa9fa16ec033570162acd015a6b2da721a0e9ee 100644 +index 84de797d405b55cd82d2c9068b924e7fd450e996..058c45ee30e687165d837980f7aed229475a4ea3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3167,11 +3167,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3163,11 +3163,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // Paper end