diff options
348 files changed, 1390 insertions, 1255 deletions
diff --git a/build-data/reobf-mappings-patch.tiny b/build-data/reobf-mappings-patch.tiny index 1d192e5e6b..48699a5e43 100644 --- a/build-data/reobf-mappings-patch.tiny +++ b/build-data/reobf-mappings-patch.tiny @@ -26,10 +26,3 @@ c net/minecraft/server/level/ChunkMap net/minecraft/server/level/PlayerChunkMap # Paper changes type c net/minecraft/core/MappedRegistry net/minecraft/core/RegistryMaterials f Lit/unimi/dsi/fastutil/objects/Reference2IntOpenHashMap; toId e - -# upstream makes a bunch of methods public that cause accidental overrides now -c net/minecraft/world/entity/Display net/minecraft/world/entity/Display - m ()I getInterpolationDelay getInterpolationDelay_ - m (I)V setInterpolationDelay setInterpolationDelay_ - m (I)V setInterpolationDuration setInterpolationDuration_ - diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch index b5071c6988..0dc8757ff4 100644 --- a/patches/api/0001-Convert-project-to-Gradle.patch +++ b/patches/api/0001-Convert-project-to-Gradle.patch @@ -118,7 +118,7 @@ index 0000000000000000000000000000000000000000..232cc8fafb1d7d9730cf2f58777e8977 +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index d3b75bb8b9cb0623ed9e13226ced09c5fa7c3f2c..0000000000000000000000000000000000000000 +index c513b14a874045c14968c9f157621b3e18c3add1..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,270 +0,0 @@ @@ -241,7 +241,7 @@ index d3b75bb8b9cb0623ed9e13226ced09c5fa7c3f2c..00000000000000000000000000000000 - <plugin> - <groupId>net.md-5</groupId> - <artifactId>scriptus</artifactId> -- <version>0.4.1</version> +- <version>0.5.0</version> - <executions> - <execution> - <phase>initialize</phase> @@ -287,7 +287,7 @@ index d3b75bb8b9cb0623ed9e13226ced09c5fa7c3f2c..00000000000000000000000000000000 - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> -- <version>3.4.1</version> +- <version>3.5.0</version> - <executions> - <execution> - <phase>package</phase> diff --git a/patches/api/0005-Adventure.patch b/patches/api/0005-Adventure.patch index 98191e3a7d..f40fd834ac 100644 --- a/patches/api/0005-Adventure.patch +++ b/patches/api/0005-Adventure.patch @@ -2131,10 +2131,10 @@ index f3afe67f0832cb828d25be3654518ff73a80b0e1..598abaa82c634178043a29f6caa6ac52 + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896a23b437f 100644 +index 3d84a75a6999129353a9ead48f9db25bc80f685b..a5010cb46aa5ef69c559ef9fc717f90365c05807 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -49,7 +49,41 @@ import org.jetbrains.annotations.Nullable; +@@ -51,7 +51,41 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ @@ -2177,7 +2177,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * {@inheritDoc} -@@ -66,7 +100,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -68,7 +102,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @return the friendly name @@ -2187,7 +2187,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 @NotNull public String getDisplayName(); -@@ -78,15 +114,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -80,15 +116,50 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * places defined by plugins. * * @param name The new display name. @@ -2238,7 +2238,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public String getPlayerListName(); /** -@@ -95,14 +166,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -97,14 +168,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * If the value is null, the name will be identical to {@link #getName()}. * * @param name new player list name @@ -2257,7 +2257,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 @Nullable public String getPlayerListHeader(); -@@ -110,7 +185,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -112,7 +187,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gets the currently displayed player list footer for this player. * * @return player list header or null @@ -2267,7 +2267,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 @Nullable public String getPlayerListFooter(); -@@ -118,14 +195,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -120,14 +197,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Sets the currently displayed player list header for this player. * * @param header player list header, null for empty @@ -2286,7 +2286,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void setPlayerListFooter(@Nullable String footer); /** -@@ -134,7 +215,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -136,7 +217,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param header player list header, null for empty * @param footer player list footer, null for empty @@ -2296,7 +2296,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void setPlayerListHeaderFooter(@Nullable String header, @Nullable String footer); /** -@@ -172,9 +255,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -174,9 +257,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Kicks player with custom kick message. * * @param message kick message @@ -2322,7 +2322,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will * update the entry. -@@ -671,6 +770,106 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -737,6 +836,106 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendEquipmentChange(@NotNull LivingEntity entity, @NotNull Map<EquipmentSlot, ItemStack> items); @@ -2429,7 +2429,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * Send a sign change. This fakes a sign change packet for a user at * a certain location. This will not actually change the world in any way. -@@ -688,7 +887,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -754,7 +953,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param lines the new text on the sign or null to clear it * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2441,7 +2441,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; /** -@@ -710,7 +913,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -776,7 +979,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if dyeColor is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2453,7 +2453,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -733,7 +940,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -799,7 +1006,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if location is null * @throws IllegalArgumentException if dyeColor is null * @throws IllegalArgumentException if lines is non-null and has a length less than 4 @@ -2465,7 +2465,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor, boolean hasGlowingText) throws IllegalArgumentException; /** -@@ -1249,6 +1460,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1315,6 +1526,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * pack correctly. * </ul> * @@ -2473,7 +2473,15 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 * @param url The URL from which the client will download the resource * pack. The string must contain only US-ASCII characters and should * be encoded as per RFC 1738. -@@ -1305,8 +1517,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1358,6 +1570,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + * pack correctly. + * </ul> + * ++ * @deprecated in favour of {@link #setResourcePack(String, byte[], Component, boolean)} + * @param url The URL from which the client will download the resource + * pack. The string must contain only US-ASCII characters and should + * be encoded as per RFC 1738. +@@ -1371,8 +1584,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2531,15 +2539,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * Request that the player's client download and switch resource packs. * <p> -@@ -1336,6 +1597,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM - * pack correctly. - * </ul> - * -+ * @deprecated in favour of {@link #setResourcePack(String, byte[], Component, boolean)} - * @param url The URL from which the client will download the resource - * pack. The string must contain only US-ASCII characters and should - * be encoded as per RFC 1738. -@@ -1396,8 +1658,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1462,8 +1724,57 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the hash is not 20 bytes * long. */ @@ -2597,7 +2597,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * Gets the Scoreboard displayed to this player * -@@ -1532,7 +1843,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1598,7 +1909,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param title Title text * @param subtitle Subtitle text @@ -2606,7 +2606,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 */ @Deprecated public void sendTitle(@Nullable String title, @Nullable String subtitle); -@@ -1551,7 +1862,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1617,7 +1928,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param fadeIn time in ticks for titles to fade in. Defaults to 10. * @param stay time in ticks for titles to stay. Defaults to 70. * @param fadeOut time in ticks for titles to fade out. Defaults to 20. @@ -2616,7 +2616,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendTitle(@Nullable String title, @Nullable String subtitle, int fadeIn, int stay, int fadeOut); /** -@@ -1778,6 +2091,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1844,6 +2157,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public int getClientViewDistance(); @@ -2631,7 +2631,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 /** * Gets the player's estimated ping in milliseconds. * -@@ -1803,8 +2124,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1869,8 +2190,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * they wish. * * @return the player's locale @@ -2642,7 +2642,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public String getLocale(); /** -@@ -1856,6 +2179,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1922,6 +2245,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public boolean isAllowingServerListings(); @@ -2657,7 +2657,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 // Spigot start public class Spigot extends Entity.Spigot { -@@ -1887,11 +2218,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1953,11 +2284,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM throw new UnsupportedOperationException("Not supported yet."); } @@ -2671,7 +2671,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 @Override public void sendMessage(@NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); -@@ -1902,7 +2235,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1968,7 +2301,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param component the components to send @@ -2681,7 +2681,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1912,7 +2247,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1978,7 +2313,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param position the screen position * @param components the components to send @@ -2691,7 +2691,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1923,7 +2260,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1989,7 +2326,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param position the screen position * @param sender the sender of the message * @param component the components to send @@ -2701,7 +2701,7 @@ index 7591d6de16694467b0fa5ab7ee746f3efdafad82..513e48de04a78268d16c924717d64896 public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent component) { throw new UnsupportedOperationException("Not supported yet."); } -@@ -1934,7 +2273,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2000,7 +2339,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param position the screen position * @param sender the sender of the message * @param components the components to send @@ -3988,15 +3988,15 @@ index e12996492c1558fed9fab30de9f8018e0ed7fac3..002acfbdce1db10f7ba1b6a013e678f5 /** diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index f89d71b77d1200314df6ca23614d5ca6fb15ceb3..af4a7ce37eb10bab06eadb6583c7894b3ec55ae6 100644 +index a66bec33fffd4e11d859efd8d17d274a5fa75f69..9578d6b0fa54feac75fa9a0727d878bd13b9e19e 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -159,4 +159,24 @@ public interface ItemFactory { - @Deprecated - @NotNull - Material updateMaterial(@NotNull final ItemMeta meta, @NotNull final Material material) throws IllegalArgumentException; +@@ -171,4 +171,24 @@ public interface ItemFactory { + */ + @Nullable + Material getSpawnEgg(@NotNull EntityType type); + -+ // Paper start ++ // Paper start - Adventure + /** + * Creates a hover event for the given item. + * @@ -4014,7 +4014,7 @@ index f89d71b77d1200314df6ca23614d5ca6fb15ceb3..af4a7ce37eb10bab06eadb6583c7894b + */ + @NotNull + net.kyori.adventure.text.Component displayName(@NotNull ItemStack itemStack); -+ // Paper end ++ // Paper end - Adventure } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java index d80b0a52968920b990a75cff85e436a16d782500..9d327f0832c40d4a8d212346284274f6cf78834f 100644 @@ -4617,21 +4617,21 @@ index 03ca87a1cbace2459174bb7bb8847bda766e80c5..b37938745f916b5f0111b07b1a1c9752 * Returns the name of the plugin. * <p> diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java -index 2ff3a11f1f9c115722ea224873e7eb6dc6dc63e6..86a0a6f9e8487d6dfaf60876ace3dcc9b4722826 100644 +index 78fd35e6115072c6bc2ff5a899ffc2edb8f45801..22b1dc5fd4d453161a5ee520072f8e8f955b3a80 100644 --- a/src/main/java/org/bukkit/scoreboard/Objective.java +++ b/src/main/java/org/bukkit/scoreboard/Objective.java -@@ -19,14 +19,35 @@ public interface Objective { - */ +@@ -20,13 +20,35 @@ public interface Objective { @NotNull - String getName() throws IllegalStateException; -+ // Paper start + String getName(); + ++ // Paper start - Adventure + /** -+ * Gets the name displayed to players for this objective ++ * Gets the display name for this objective + * + * @return this objective's display name + * @throws IllegalStateException if this objective has been unregistered + */ -+ net.kyori.adventure.text.@NotNull Component displayName() throws IllegalStateException; ++ net.kyori.adventure.text.@NotNull Component displayName(); + /** + * Sets the name displayed to players for this objective. + * @@ -4641,9 +4641,9 @@ index 2ff3a11f1f9c115722ea224873e7eb6dc6dc63e6..86a0a6f9e8487d6dfaf60876ace3dcc9 + * @throws IllegalArgumentException if displayName is longer than 128 + * characters. + */ -+ void displayName(net.kyori.adventure.text.@Nullable Component displayName) throws IllegalStateException, IllegalArgumentException; -+ // Paper end - ++ void displayName(net.kyori.adventure.text.@Nullable Component displayName); ++ // Paper end - Adventure ++ /** * Gets the name displayed to players for this objective * @@ -4653,49 +4653,44 @@ index 2ff3a11f1f9c115722ea224873e7eb6dc6dc63e6..86a0a6f9e8487d6dfaf60876ace3dcc9 */ @NotNull + @Deprecated // Paper - String getDisplayName() throws IllegalStateException; + String getDisplayName(); /** -@@ -37,7 +58,9 @@ public interface Objective { - * @throws IllegalArgumentException if displayName is null - * @throws IllegalArgumentException if displayName is longer than 128 - * characters. +@@ -34,7 +56,9 @@ public interface Objective { + * + * @param displayName Display name to set + * @throws IllegalStateException if this objective has been unregistered + * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} */ + @Deprecated // Paper - void setDisplayName(@NotNull String displayName) throws IllegalStateException, IllegalArgumentException; + void setDisplayName(@NotNull String displayName); /** diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java -index a15183f302de42956d8965efe5f0585fc2cd030e..ebb72912c1f8431606162b0643f6289203331253 100644 +index 083bb2c92a2c557e10b705b773ced97401586c3c..d5723e977d9a25701a4f387f1b26d2414e0fffb8 100644 --- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java +++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java -@@ -27,6 +27,92 @@ public interface Scoreboard { - @Deprecated +@@ -26,6 +26,71 @@ public interface Scoreboard { @NotNull - Objective registerNewObjective(@NotNull String name, @NotNull String criteria) throws IllegalArgumentException; -+ // Paper start + Objective registerNewObjective(@NotNull String name, @NotNull String criteria); + ++ // Paper start - Adventure + /** + * Registers an Objective on this Scoreboard + * + * @param name Name of the Objective + * @param criteria Criteria for the Objective -+ * @param displayName Name displayed to players for the Objective. ++ * @param displayName display name for the Objective. + * @return The registered Objective -+ * @throws IllegalArgumentException if name is null + * @throws IllegalArgumentException if name is longer than 32767 + * characters. -+ * @throws IllegalArgumentException if criteria is null -+ * @throws IllegalArgumentException if displayName is null -+ * @throws IllegalArgumentException if displayName is longer than 128 -+ * characters. + * @throws IllegalArgumentException if an objective by that name already + * exists + * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component)} + */ + @NotNull + @Deprecated -+ Objective registerNewObjective(@NotNull String name, @NotNull String criteria, net.kyori.adventure.text.@Nullable Component displayName) throws IllegalArgumentException; ++ Objective registerNewObjective(@NotNull String name, @NotNull String criteria, net.kyori.adventure.text.@Nullable Component displayName); + /** + * Registers an Objective on this Scoreboard + * @@ -4704,14 +4699,8 @@ index a15183f302de42956d8965efe5f0585fc2cd030e..ebb72912c1f8431606162b0643f62892 + * @param displayName Name displayed to players for the Objective. + * @param renderType Manner of rendering the Objective + * @return The registered Objective -+ * @throws IllegalArgumentException if name is null + * @throws IllegalArgumentException if name is longer than 32767 + * characters. -+ * @throws IllegalArgumentException if criteria is null -+ * @throws IllegalArgumentException if displayName is null -+ * @throws IllegalArgumentException if displayName is longer than 128 -+ * characters. -+ * @throws IllegalArgumentException if renderType is null + * @throws IllegalArgumentException if an objective by that name already + * exists + * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component, RenderType)} @@ -4726,13 +4715,8 @@ index a15183f302de42956d8965efe5f0585fc2cd030e..ebb72912c1f8431606162b0643f62892 + * @param criteria Criteria for the Objective + * @param displayName Name displayed to players for the Objective. + * @return The registered Objective -+ * @throws IllegalArgumentException if name is null + * @throws IllegalArgumentException if name is longer than 32767 + * characters. -+ * @throws IllegalArgumentException if criteria is null -+ * @throws IllegalArgumentException if displayName is null -+ * @throws IllegalArgumentException if displayName is longer than 128 -+ * characters. + * @throws IllegalArgumentException if an objective by that name already + * exists + */ @@ -4746,40 +4730,43 @@ index a15183f302de42956d8965efe5f0585fc2cd030e..ebb72912c1f8431606162b0643f62892 + * @param displayName Name displayed to players for the Objective. + * @param renderType Manner of rendering the Objective + * @return The registered Objective -+ * @throws IllegalArgumentException if name is null + * @throws IllegalArgumentException if name is longer than 32767 + * characters. -+ * @throws IllegalArgumentException if criteria is null -+ * @throws IllegalArgumentException if displayName is null -+ * @throws IllegalArgumentException if displayName is longer than 128 -+ * characters. -+ * @throws IllegalArgumentException if renderType is null + * @throws IllegalArgumentException if an objective by that name already + * exists + */ + @NotNull + Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, net.kyori.adventure.text.@Nullable Component displayName, @NotNull RenderType renderType) throws IllegalArgumentException; -+ // Paper end - ++ // Paper end - Adventure ++ /** * Registers an Objective on this Scoreboard -@@ -47,6 +133,7 @@ public interface Scoreboard { - * @deprecated use {@link #registerNewObjective(String, Criteria, String)} + * +@@ -37,9 +102,10 @@ public interface Scoreboard { + * characters. + * @throws IllegalArgumentException if an objective by that name already + * exists +- * @deprecated use {@link #registerNewObjective(String, Criteria, String)} ++ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component)} */ @NotNull + @Deprecated // Paper - Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName) throws IllegalArgumentException; + Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName); /** -@@ -70,6 +157,7 @@ public interface Scoreboard { - * @deprecated use {@link #registerNewObjective(String, Criteria, String, RenderType)} +@@ -54,9 +120,10 @@ public interface Scoreboard { + * characters. + * @throws IllegalArgumentException if an objective by that name already + * exists +- * @deprecated use {@link #registerNewObjective(String, Criteria, String, RenderType)} ++ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component, RenderType)} */ @NotNull + @Deprecated // Paper - Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName, @NotNull RenderType renderType) throws IllegalArgumentException; + Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName, @NotNull RenderType renderType); /** -@@ -88,8 +176,10 @@ public interface Scoreboard { +@@ -70,8 +137,10 @@ public interface Scoreboard { * characters. * @throws IllegalArgumentException if an objective by that name already * exists @@ -4787,36 +4774,36 @@ index a15183f302de42956d8965efe5f0585fc2cd030e..ebb72912c1f8431606162b0643f62892 */ @NotNull + @Deprecated // Paper - Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, @NotNull String displayName) throws IllegalArgumentException; + Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, @NotNull String displayName); /** -@@ -110,8 +200,10 @@ public interface Scoreboard { - * @throws IllegalArgumentException if renderType is null +@@ -86,8 +155,10 @@ public interface Scoreboard { + * characters. * @throws IllegalArgumentException if an objective by that name already * exists + * @deprecated in favour of {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component, RenderType)} */ @NotNull + @Deprecated // Paper - Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, @NotNull String displayName, @NotNull RenderType renderType) throws IllegalArgumentException; + Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, @NotNull String displayName, @NotNull RenderType renderType); /** diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java -index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2798cb82e 100644 +index 7b9a7890b25ca4bd95ab81f3181288bf79ed649c..e5a38e3568148170025e05c7ba69e8615f578047 100644 --- a/src/main/java/org/bukkit/scoreboard/Team.java +++ b/src/main/java/org/bukkit/scoreboard/Team.java -@@ -22,14 +22,100 @@ public interface Team { - */ +@@ -23,13 +23,96 @@ public interface Team { @NotNull - String getName() throws IllegalStateException; -+ // Paper start + String getName(); + ++ // Paper start - Adventure + /** -+ * Gets the name displayed to entries for this team ++ * Gets the display name for this team + * + * @return Team display name + * @throws IllegalStateException if this team has been unregistered + */ -+ net.kyori.adventure.text.@NotNull Component displayName() throws IllegalStateException; ++ net.kyori.adventure.text.@NotNull Component displayName(); + + /** + * Sets the name displayed to entries for this team @@ -4824,7 +4811,7 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 + * @param displayName New display name + * @throws IllegalStateException if this team has been unregistered + */ -+ void displayName(net.kyori.adventure.text.@Nullable Component displayName) throws IllegalStateException, IllegalArgumentException; ++ void displayName(net.kyori.adventure.text.@Nullable Component displayName); + + /** + * Gets the prefix prepended to the display of entries on this team. @@ -4832,17 +4819,15 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 + * @return Team prefix + * @throws IllegalStateException if this team has been unregistered + */ -+ net.kyori.adventure.text.@NotNull Component prefix() throws IllegalStateException; ++ net.kyori.adventure.text.@NotNull Component prefix(); + + /** + * Sets the prefix prepended to the display of entries on this team. + * + * @param prefix New prefix -+ * @throws IllegalArgumentException if prefix is null -+ * characters + * @throws IllegalStateException if this team has been unregistered + */ -+ void prefix(net.kyori.adventure.text.@Nullable Component prefix) throws IllegalStateException, IllegalArgumentException; ++ void prefix(net.kyori.adventure.text.@Nullable Component prefix); + + /** + * Gets the suffix appended to the display of entries on this team. @@ -4850,17 +4835,15 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 + * @return the team's current suffix + * @throws IllegalStateException if this team has been unregistered + */ -+ net.kyori.adventure.text.@NotNull Component suffix() throws IllegalStateException; ++ net.kyori.adventure.text.@NotNull Component suffix(); + + /** + * Sets the suffix appended to the display of entries on this team. + * + * @param suffix the new suffix for this team. -+ * @throws IllegalArgumentException if suffix is null -+ * characters + * @throws IllegalStateException if this team has been unregistered + */ -+ void suffix(net.kyori.adventure.text.@Nullable Component suffix) throws IllegalStateException, IllegalArgumentException; ++ void suffix(net.kyori.adventure.text.@Nullable Component suffix); + + /** + * Checks if the team has a color specified @@ -4881,7 +4864,7 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 + * @throws IllegalStateException if the team doesn't have a color + * @see #hasColor() + */ -+ net.kyori.adventure.text.format.@NotNull TextColor color() throws IllegalStateException; ++ net.kyori.adventure.text.format.@NotNull TextColor color(); + + /** + * Sets the color of the team. @@ -4892,8 +4875,8 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 + * @param color new color, null for no color + */ + void color(net.kyori.adventure.text.format.@Nullable NamedTextColor color); -+ // Paper end - ++ // Paper end - Adventure ++ /** * Gets the name displayed to entries for this team * @@ -4903,20 +4886,20 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 */ @NotNull + @Deprecated // Paper - String getDisplayName() throws IllegalStateException; + String getDisplayName(); /** -@@ -39,7 +125,9 @@ public interface Team { - * @throws IllegalArgumentException if displayName is longer than 128 - * characters. +@@ -37,7 +120,9 @@ public interface Team { + * + * @param displayName New display name * @throws IllegalStateException if this team has been unregistered + * @deprecated in favour of {@link #displayName(net.kyori.adventure.text.Component)} */ + @Deprecated // Paper - void setDisplayName(@NotNull String displayName) throws IllegalStateException, IllegalArgumentException; + void setDisplayName(@NotNull String displayName); /** -@@ -47,8 +135,10 @@ public interface Team { +@@ -45,8 +130,10 @@ public interface Team { * * @return Team prefix * @throws IllegalStateException if this team has been unregistered @@ -4924,20 +4907,20 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 */ @NotNull + @Deprecated // Paper - String getPrefix() throws IllegalStateException; + String getPrefix(); /** -@@ -59,7 +149,9 @@ public interface Team { - * @throws IllegalArgumentException if prefix is longer than 64 - * characters +@@ -54,7 +141,9 @@ public interface Team { + * + * @param prefix New prefix * @throws IllegalStateException if this team has been unregistered + * @deprecated in favour of {@link #prefix(net.kyori.adventure.text.Component)} */ + @Deprecated // Paper - void setPrefix(@NotNull String prefix) throws IllegalStateException, IllegalArgumentException; + void setPrefix(@NotNull String prefix); /** -@@ -67,8 +159,10 @@ public interface Team { +@@ -62,8 +151,10 @@ public interface Team { * * @return the team's current suffix * @throws IllegalStateException if this team has been unregistered @@ -4945,20 +4928,20 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 */ @NotNull + @Deprecated // Paper - String getSuffix() throws IllegalStateException; + String getSuffix(); /** -@@ -79,7 +173,9 @@ public interface Team { - * @throws IllegalArgumentException if suffix is longer than 64 - * characters +@@ -71,7 +162,9 @@ public interface Team { + * + * @param suffix the new suffix for this team. * @throws IllegalStateException if this team has been unregistered + * @deprecated in favour of {@link #suffix(net.kyori.adventure.text.Component)} */ + @Deprecated // Paper - void setSuffix(@NotNull String suffix) throws IllegalStateException, IllegalArgumentException; + void setSuffix(@NotNull String suffix); /** -@@ -90,8 +186,10 @@ public interface Team { +@@ -82,8 +175,10 @@ public interface Team { * * @return team color, defaults to {@link ChatColor#RESET} * @throws IllegalStateException if this team has been unregistered @@ -4966,10 +4949,10 @@ index 0db7fe1b9fe5621ceed3f4f046691e359f5949dd..4d625f79ba2e3fe074feade98f7c1bc2 */ @NotNull + @Deprecated // Paper - ChatColor getColor() throws IllegalStateException; + ChatColor getColor(); /** -@@ -102,7 +200,9 @@ public interface Team { +@@ -94,7 +189,9 @@ public interface Team { * * @param color new color, must be non-null. Use {@link ChatColor#RESET} for * no color diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch index d727431d9f..e3a9522044 100644 --- a/patches/api/0010-Timings-v2.patch +++ b/patches/api/0010-Timings-v2.patch @@ -3455,10 +3455,10 @@ index 516d7fc7812aac343782861d0d567f54aa578c2a..00000000000000000000000000000000 - // Spigot end -} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 513e48de04a78268d16c924717d64896a23b437f..5e1b013756d506b42c61a0abd25b324461adb9b2 100644 +index a5010cb46aa5ef69c559ef9fc717f90365c05807..1a54682f584479a5a548f6f1f2ffd5da5dc11c88 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2278,7 +2278,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2344,7 +2344,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); diff --git a/patches/api/0012-Player-affects-spawning-API.patch b/patches/api/0012-Player-affects-spawning-API.patch index 6fabec4012..9ec0eab15d 100644 --- a/patches/api/0012-Player-affects-spawning-API.patch +++ b/patches/api/0012-Player-affects-spawning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player affects spawning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5e1b013756d506b42c61a0abd25b324461adb9b2..2a86cb0a29e89d9dbb43047644c7c857d0abad60 100644 +index 1a54682f584479a5a548f6f1f2ffd5da5dc11c88..6b1a198f930a5a995e0cb6c279b455e1639a5039 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2130,6 +2130,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2196,6 +2196,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public String getLocale(); diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0017-Add-view-distance-API.patch index 472d3cc7c6..d9a570d45e 100644 --- a/patches/api/0017-Add-view-distance-API.patch +++ b/patches/api/0017-Add-view-distance-API.patch @@ -75,10 +75,10 @@ index 5357291ff0f2f20bd87ab9f6e57f6a4f6ff65226..887aa6217583d224d66f6d238ac269c2 public class Spigot { diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2a86cb0a29e89d9dbb43047644c7c857d0abad60..f128512b17ec0079bea6bfd9d7b726b3db578745 100644 +index 6b1a198f930a5a995e0cb6c279b455e1639a5039..f8e45f70fe23cf73c8677b5d24cefcd3aae5e24e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2144,6 +2144,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2210,6 +2210,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param affects Whether the player can affect mob spawning */ public void setAffectsSpawning(boolean affects); diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch index 1fba5bff01..28f44055a3 100644 --- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch +++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch @@ -76,10 +76,10 @@ index 124e88e512d24b6ff7ace3cf7d5a6adf4c2bb40d..ccc825a2ea43bb84a5a08dff00c4d8ec * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f128512b17ec0079bea6bfd9d7b726b3db578745..4e68f6bc8ed217712b1d9a8990ee97ddfac18869 100644 +index f8e45f70fe23cf73c8677b5d24cefcd3aae5e24e..f52e7d4e5b8399d04d77384f8fe5315086acd776 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -975,6 +975,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1041,6 +1041,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch index 1113d68dd6..fe2c52a402 100644 --- a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch +++ b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch @@ -432,10 +432,10 @@ index 0000000000000000000000000000000000000000..9e90c3df567a65b48a0b9341f784eb90 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 4e68f6bc8ed217712b1d9a8990ee97ddfac18869..64c696a5d0c4177c9f860a25e9901ee2bdb64aee 100644 +index f52e7d4e5b8399d04d77384f8fe5315086acd776..3650fb2b79368ad39278062f215d25cc99637cac 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1009,6 +1009,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1075,6 +1075,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) { spigot().sendMessage(position, components); } diff --git a/patches/api/0027-Complete-resource-pack-API.patch b/patches/api/0027-Complete-resource-pack-API.patch index ee22708269..e8e328e5cf 100644 --- a/patches/api/0027-Complete-resource-pack-API.patch +++ b/patches/api/0027-Complete-resource-pack-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 64c696a5d0c4177c9f860a25e9901ee2bdb64aee..d0a9fee7a2fd2a75894ea4acdf47454039406566 100644 +index 3650fb2b79368ad39278062f215d25cc99637cac..967ea421aed7f9d4c8edd366c00cf3ceca723b2f 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1589,7 +1589,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1655,7 +1655,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException Thrown if the URL is null. * @throws IllegalArgumentException Thrown if the URL is too long. The * length restriction is an implementation specific arbitrary value. @@ -18,7 +18,7 @@ index 64c696a5d0c4177c9f860a25e9901ee2bdb64aee..d0a9fee7a2fd2a75894ea4acdf474540 public void setResourcePack(@NotNull String url); /** -@@ -2434,6 +2436,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2500,6 +2502,124 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM default net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowEntity> asHoverEvent(final @NotNull java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowEntity> op) { return net.kyori.adventure.text.event.HoverEvent.showEntity(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowEntity.of(this.getType().getKey(), this.getUniqueId(), this.displayName()))); } diff --git a/patches/api/0046-Add-String-based-Action-Bar-API.patch b/patches/api/0046-Add-String-based-Action-Bar-API.patch index 9e5a66317c..8a43bbc9c0 100644 --- a/patches/api/0046-Add-String-based-Action-Bar-API.patch +++ b/patches/api/0046-Add-String-based-Action-Bar-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add String based Action Bar API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d0a9fee7a2fd2a75894ea4acdf47454039406566..cfa757a782ff592a2f7f998b649edd93052a17ac 100644 +index 967ea421aed7f9d4c8edd366c00cf3ceca723b2f..87b67723cb9dcead110eb88dd741d3348eb9ec1b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -976,6 +976,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1042,6 +1042,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start @@ -48,7 +48,7 @@ index d0a9fee7a2fd2a75894ea4acdf47454039406566..cfa757a782ff592a2f7f998b649edd93 /** * Sends the component to the player * -@@ -1003,9 +1036,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1069,9 +1102,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Sends an array of components as a single message to the specified screen position of this player * diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch index 58ac66699e..e25d33e18f 100644 --- a/patches/api/0055-Fix-upstream-javadocs.patch +++ b/patches/api/0055-Fix-upstream-javadocs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix upstream javadocs diff --git a/src/main/java/org/bukkit/BanList.java b/src/main/java/org/bukkit/BanList.java -index ce35cf91d4a5156e08cd5100fd65db28e38c30e6..c229d3bc37c4e454a4b5a93eda1fe6466a4f4e8b 100644 +index a04cde615f8c4bc593f8d9f8f6f1438008aaa707..548f6d28c28d74bed8b58ee82875909354afe132 100644 --- a/src/main/java/org/bukkit/BanList.java +++ b/src/main/java/org/bukkit/BanList.java -@@ -36,6 +36,9 @@ public interface BanList<T> { +@@ -38,6 +38,9 @@ public interface BanList<T> { /** * Gets a {@link BanEntry} by target. @@ -18,7 +18,7 @@ index ce35cf91d4a5156e08cd5100fd65db28e38c30e6..c229d3bc37c4e454a4b5a93eda1fe646 * * @param target entry parameter to search for * @return the corresponding entry, or null if none found -@@ -57,6 +60,9 @@ public interface BanList<T> { +@@ -59,6 +62,9 @@ public interface BanList<T> { /** * Adds a ban to this list. If a previous ban exists, this will * update the previous entry. @@ -28,7 +28,7 @@ index ce35cf91d4a5156e08cd5100fd65db28e38c30e6..c229d3bc37c4e454a4b5a93eda1fe646 * * @param target the target of the ban * @param reason reason for the ban, null indicates implementation default -@@ -107,6 +113,9 @@ public interface BanList<T> { +@@ -139,6 +145,9 @@ public interface BanList<T> { /** * Gets if a {@link BanEntry} exists for the target, indicating an active * ban status. @@ -38,7 +38,7 @@ index ce35cf91d4a5156e08cd5100fd65db28e38c30e6..c229d3bc37c4e454a4b5a93eda1fe646 * * @param target the target to find * @return true if a {@link BanEntry} exists for the target, indicating an -@@ -129,6 +138,9 @@ public interface BanList<T> { +@@ -161,6 +170,9 @@ public interface BanList<T> { /** * Removes the specified target from this list, therefore indicating a * "not banned" status. @@ -316,7 +316,7 @@ index 8814519df13c5e9475774f4bce4c8c6a462c2978..be9a35790fc664721ac94f3708613eb7 * in a state with no Custom Effects and PotionType.UNCRAFTABLE */ diff --git a/src/main/java/org/bukkit/entity/EnderDragon.java b/src/main/java/org/bukkit/entity/EnderDragon.java -index 0449664d7cd0c52ac34d2101110f1ab42070257c..57f8e7bf4c7b4c4a4e793cfd5d7db74384d8b1b5 100644 +index 1e56aef9188487d3e9c737e85025f601ab359a72..92cd35c87bad578c2b714761c93a5b72ebf4bc9e 100644 --- a/src/main/java/org/bukkit/entity/EnderDragon.java +++ b/src/main/java/org/bukkit/entity/EnderDragon.java @@ -30,7 +30,7 @@ public interface EnderDragon extends ComplexLivingEntity, Boss, Mob, Enemy { @@ -386,10 +386,10 @@ index ae9eaaa8e38e1d9dfc459926c7fc51ddb89de84a..b2ec535bb1b0ce0c114ddd7638b90218 @Override public int getConversionTime(); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index cfa757a782ff592a2f7f998b649edd93052a17ac..49e3e59e369980dd96fec1467cacd88322a0c6ed 100644 +index 87b67723cb9dcead110eb88dd741d3348eb9ec1b..266e89b48d4991f6099290cf9d44fa06b43ffa2c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -365,15 +365,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -431,15 +431,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Saves the players current location, health, inventory, motion, and @@ -409,7 +409,7 @@ index cfa757a782ff592a2f7f998b649edd93052a17ac..49e3e59e369980dd96fec1467cacd883 * <p> * Note: This will overwrite the players current inventory, health, * motion, etc, with the state from the saved dat file. -@@ -608,7 +608,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -674,7 +674,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Plays an effect to just this player. * @@ -418,7 +418,7 @@ index cfa757a782ff592a2f7f998b649edd93052a17ac..49e3e59e369980dd96fec1467cacd883 * @param loc the location to play the effect at * @param effect the {@link Effect} * @param data a data bit needed for some effects -@@ -993,7 +993,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1059,7 +1059,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * Use supplied alternative character to the section symbol to represent legacy color codes. * @@ -427,7 +427,7 @@ index cfa757a782ff592a2f7f998b649edd93052a17ac..49e3e59e369980dd96fec1467cacd883 * @param message The message to send * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)} */ -@@ -1459,7 +1459,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1525,7 +1525,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see a player that was previously hidden. If @@ -436,7 +436,7 @@ index cfa757a782ff592a2f7f998b649edd93052a17ac..49e3e59e369980dd96fec1467cacd883 * remain hidden until the other plugin calls this method too. * * @param plugin Plugin that wants to show the player -@@ -1488,7 +1488,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1554,7 +1554,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Allows this player to see an entity that was previously hidden. If @@ -1063,10 +1063,10 @@ index 62fbd7f6d8195bebcab7f704a0a485a1bbeca26c..5461f7fa75f5a065bb333b4a113640b5 * @return the currently held item * @see #getItemInMainHand() diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index 8971ec20d36c4d1a8fb07ec4603221791a2b52b4..4c7f30877c608e327908a61e4bd68789191e2f3c 100644 +index 05f1acaac3a49c42f6cf544adb3ffec267c72700..9f9c67e935940833bbfe58e6bfa398e6c86980d5 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -30,8 +30,6 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -24,8 +24,6 @@ public class ShapedRecipe extends CraftingRecipe { * @param result The item you want the recipe to create. * @see ShapedRecipe#shape(String...) * @see ShapedRecipe#setIngredient(char, Material) @@ -1075,7 +1075,7 @@ index 8971ec20d36c4d1a8fb07ec4603221791a2b52b4..4c7f30877c608e327908a61e4bd68789 * @see ShapedRecipe#setIngredient(char, RecipeChoice) * @deprecated Recipes must have keys. Use {@link #ShapedRecipe(NamespacedKey, ItemStack)} * instead. -@@ -52,8 +50,6 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -44,8 +42,6 @@ public class ShapedRecipe extends CraftingRecipe { * @param result The item you want the recipe to create. * @see ShapedRecipe#shape(String...) * @see ShapedRecipe#setIngredient(char, Material) @@ -1085,10 +1085,10 @@ index 8971ec20d36c4d1a8fb07ec4603221791a2b52b4..4c7f30877c608e327908a61e4bd68789 */ public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index df4c52f1f0be2409c7506b09167bd58b5602fa7a..74449a635aca84adcc1652e1e85f2d27dcaf6842 100644 +index 3d50775da447175b2a94ed9056ef36aa1e69c2eb..03839302c94adc3175d0a88065cd230257ffd20d 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -38,11 +38,8 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -30,11 +30,8 @@ public class ShapelessRecipe extends CraftingRecipe { * @param key the unique recipe key * @param result The item you want the recipe to create. * @see ShapelessRecipe#addIngredient(Material) @@ -1100,8 +1100,8 @@ index df4c52f1f0be2409c7506b09167bd58b5602fa7a..74449a635aca84adcc1652e1e85f2d27 + * @see ShapelessRecipe#addIngredient(RecipeChoice) */ public ShapelessRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) { - Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); -@@ -184,7 +181,7 @@ public class ShapelessRecipe implements Recipe, Keyed { + super(key, result); +@@ -174,7 +171,7 @@ public class ShapelessRecipe extends CraftingRecipe { /** * Removes multiple instances of an ingredient from the list. If there are @@ -1110,20 +1110,6 @@ index df4c52f1f0be2409c7506b09167bd58b5602fa7a..74449a635aca84adcc1652e1e85f2d27 * matches, with a data value of 0. * * @param count The number of copies to remove. -diff --git a/src/main/java/org/bukkit/inventory/SmithingRecipe.java b/src/main/java/org/bukkit/inventory/SmithingRecipe.java -index af04071d37e70b8cc9837d57477c8493be8afb9f..582671a0a94d47302c0fdc572d486282c32f786f 100644 ---- a/src/main/java/org/bukkit/inventory/SmithingRecipe.java -+++ b/src/main/java/org/bukkit/inventory/SmithingRecipe.java -@@ -21,7 +21,9 @@ public class SmithingRecipe implements Recipe, Keyed { - * @param result The item you want the recipe to create. - * @param base The base ingredient - * @param addition The addition ingredient -+ * @deprecated use {@link SmithingTrimRecipe} or {@link SmithingTransformRecipe} - */ -+ @Deprecated(forRemoval = true) // Paper - public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @NotNull RecipeChoice base, @NotNull RecipeChoice addition) { - this.key = key; - this.result = result; diff --git a/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java b/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java index 07c3dff4d6190ef388d9c1e1c36f67f00a3e8e66..597a18a767b68b47e81454b7d44613c7178c1366 100644 --- a/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java @@ -1169,31 +1155,31 @@ index 049c70c935fd7a781280d223f74bbbf87223f505..f78714c2a6d9da162c9802552984cbfa * AttributeModifiers without a slot are active in any slot.<br> * If there are no attributes set for the given slot, an empty map diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java -index 86a0a6f9e8487d6dfaf60876ace3dcc9b4722826..571b43c2809d2b248feebc7decba6017a67c8aee 100644 +index 0ff409bcf093e6058c957cdcc5bb17bdc32c87be..be3b2e5d9364abde50716c35cabd5938fe2c5e4d 100644 --- a/src/main/java/org/bukkit/scoreboard/Objective.java +++ b/src/main/java/org/bukkit/scoreboard/Objective.java -@@ -88,7 +88,7 @@ public interface Objective { +@@ -86,7 +86,7 @@ public interface Objective { * * @return true if scores are modifiable * @throws IllegalStateException if this objective has been unregistered - * @see Criterias#HEALTH + * @see Criteria#HEALTH */ - boolean isModifiable() throws IllegalStateException; + boolean isModifiable(); diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java -index 4d625f79ba2e3fe074feade98f7c1bc2798cb82e..937a28638c251509ebeb254178a4583fe03c52d0 100644 +index 36260de3424012ac020d6c6e381010b3d4a32c6f..5416386c89a4019a2c123374dd5cb6d4f12744f0 100644 --- a/src/main/java/org/bukkit/scoreboard/Team.java +++ b/src/main/java/org/bukkit/scoreboard/Team.java -@@ -277,7 +277,7 @@ public interface Team { +@@ -265,7 +265,7 @@ public interface Team { * Gets the Set of entries on the team * * @return entries on the team -- * @throws IllegalStateException if this entries has been unregistered\ +- * @throws IllegalStateException if this entries has been unregistered + * @throws IllegalStateException if this team has been unregistered */ @NotNull - Set<String> getEntries() throws IllegalStateException; + Set<String> getEntries(); diff --git a/src/main/java/org/bukkit/util/BoundingBox.java b/src/main/java/org/bukkit/util/BoundingBox.java index 9883983c33fcff0f4c1e23867adafa436e2ed96f..5017b73bcec0d4d5256d89db14201c03829dc981 100644 --- a/src/main/java/org/bukkit/util/BoundingBox.java diff --git a/patches/api/0065-Add-getI18NDisplayName-API.patch b/patches/api/0065-Add-getI18NDisplayName-API.patch index b21d6e25c4..8e66c9c0cc 100644 --- a/patches/api/0065-Add-getI18NDisplayName-API.patch +++ b/patches/api/0065-Add-getI18NDisplayName-API.patch @@ -8,17 +8,18 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index af4a7ce37eb10bab06eadb6583c7894b3ec55ae6..159e5a908b35b84b7fabc36581e093d9aa4c4b67 100644 +index 9578d6b0fa54feac75fa9a0727d878bd13b9e19e..a6795b102c9678b122dfd3b36d02783b9e108b48 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -178,5 +178,19 @@ public interface ItemFactory { - */ +@@ -191,4 +191,20 @@ public interface ItemFactory { @NotNull net.kyori.adventure.text.Component displayName(@NotNull ItemStack itemStack); + // Paper end - Adventure + ++ // Paper start - add getI18NDisplayName + /** + * Gets the Display name as seen in the Client. -+ * Currently the server only supports the English language. To override this, ++ * Currently, the server only supports the English language. To override this, + * You must replace the language file embedded in the server jar. + * + * @param item Item to return Display name of @@ -29,7 +30,7 @@ index af4a7ce37eb10bab06eadb6583c7894b3ec55ae6..159e5a908b35b84b7fabc36581e093d9 + @Nullable + @Deprecated + String getI18NDisplayName(@Nullable ItemStack item); - // Paper end ++ // Paper end - add getI18NDisplayName } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java index 9d327f0832c40d4a8d212346284274f6cf78834f..09a36df6edce2a283df80c67d5ef62da7ff73555 100644 diff --git a/patches/api/0066-ensureServerConversions-API.patch b/patches/api/0066-ensureServerConversions-API.patch index 2b0cf31e73..cdb9f8cb72 100644 --- a/patches/api/0066-ensureServerConversions-API.patch +++ b/patches/api/0066-ensureServerConversions-API.patch @@ -7,26 +7,27 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 159e5a908b35b84b7fabc36581e093d9aa4c4b67..349da0065ddf000cacdc259fab0f2c759332e9ad 100644 +index a6795b102c9678b122dfd3b36d02783b9e108b48..74cd662d0594f2fbc5aa30ba64d9e4928145dbb9 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -192,5 +192,17 @@ public interface ItemFactory { - @Nullable +@@ -207,4 +207,18 @@ public interface ItemFactory { @Deprecated String getI18NDisplayName(@Nullable ItemStack item); + // Paper end - add getI18NDisplayName + ++ // Paper start - ensure server conversions API + /** -+ * Minecraft updates are converting simple item stacks into more complex NBT oriented Item Stacks. ++ * Minecraft's updates are converting simple item stacks into more complex NBT oriented Item Stacks. + * + * Use this method to ensure any desired data conversions are processed. + * The input itemstack will not be the same as the returned itemstack. + * + * @param item The item to process conversions on -+ * @return A potentially Data Converted ItemStack ++ * @return A potentially Data-Converted-ItemStack + */ + @NotNull + ItemStack ensureServerConversions(@NotNull ItemStack item); - // Paper end ++ // Paper end - ensure server conversions API } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java index 09a36df6edce2a283df80c67d5ef62da7ff73555..a8faa4c1881bae4d47d901388a78b991d138b518 100644 diff --git a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch index dc62c440b7..dd1f98147d 100644 --- a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch @@ -57,10 +57,10 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b + +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 77b2e935b823b302a7221cd5be6441ec10557908..4a1c42a55df02b33c144da55b4a01c610217d63c 100644 +index bb9f28d1a0290c5951412de1d2de8c2e6e354369..c1c2e8d9d6ff39ca6cdabb0744076cc540f86681 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -49,7 +49,7 @@ import org.jetbrains.annotations.Nullable; +@@ -51,7 +51,7 @@ import org.jetbrains.annotations.Nullable; /** * Represents a player, connected or not */ diff --git a/patches/api/0077-Display-warning-on-deprecated-recipe-API.patch b/patches/api/0077-Display-warning-on-deprecated-recipe-API.patch index bc3fa9520d..94f1cdd1f2 100644 --- a/patches/api/0077-Display-warning-on-deprecated-recipe-API.patch +++ b/patches/api/0077-Display-warning-on-deprecated-recipe-API.patch @@ -10,26 +10,26 @@ on the players login. Plugin authors need to define a key to keep it consistent between server restarts. diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index 4c7f30877c608e327908a61e4bd68789191e2f3c..be68263386a8faea7744f4de75d484e9358c87df 100644 +index 9f9c67e935940833bbfe58e6bfa398e6c86980d5..71e494177473c62449aafda1699b26a0c4c81a68 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -38,6 +38,7 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -31,6 +31,7 @@ public class ShapedRecipe extends CraftingRecipe { + @Deprecated public ShapedRecipe(@NotNull ItemStack result) { - Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); - this.key = NamespacedKey.randomKey(); -+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); - this.output = new ItemStack(result); + super(NamespacedKey.randomKey(), result); ++ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper } + /** diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index 74449a635aca84adcc1652e1e85f2d27dcaf6842..05ef88225415cd30de36f4517b6fb40d826ce996 100644 +index 03839302c94adc3175d0a88065cd230257ffd20d..d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -27,6 +27,7 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -20,6 +20,7 @@ public class ShapelessRecipe extends CraftingRecipe { + @Deprecated public ShapelessRecipe(@NotNull ItemStack result) { - Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result."); - this.key = NamespacedKey.randomKey(); -+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); - this.output = new ItemStack(result); + super(NamespacedKey.randomKey(), result); ++ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace(); // Paper } + /** diff --git a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch index 14e04a70da..16583a8716 100644 --- a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch @@ -10,10 +10,10 @@ of giving the player experience points. Both an API To standalone mend, and apply mending logic to .giveExp has been added. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 83402738ec9c435b456929ad4d9337e7362f52c2..c742fb537788da58fb8984d588049fff3ba79af1 100644 +index 6586262b6dfcb0b022d78096b7d4ec339c0b396c..2257a1808d19775607e60c155d9e5508e7825811 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1302,6 +1302,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1368,6 +1368,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void resetPlayerWeather(); @@ -29,7 +29,7 @@ index 83402738ec9c435b456929ad4d9337e7362f52c2..c742fb537788da58fb8984d588049fff /** * Gets the player's cooldown between picking up experience orbs. * -@@ -1327,8 +1336,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1393,8 +1402,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gives the player the amount of experience specified. * * @param amount Exp amount to give diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch index fbf3af029b..b7a9c0e5cd 100644 --- a/patches/api/0091-Player.setPlayerProfile-API.patch +++ b/patches/api/0091-Player.setPlayerProfile-API.patch @@ -43,10 +43,10 @@ index dcd539220e5a2bda41f27101ea4c0ece146e1d0d..f5358612884aae8d0686f3ff98ccee56 return server.createPlayerProfile(name); } diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index f000d706bdf50c48314bcbd83978920f5d2daae4..829077d76ad6b179e6f6abf7fb848353fa53a60a 100644 +index bec480aff819e09220b52175cab0cb6d68ae68c6..12349910297a75c00e64f6ccc7981aeeeb43ecd3 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -57,7 +57,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -59,7 +59,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * @return the player's profile */ @NotNull @@ -93,10 +93,10 @@ index 016cee903c7179baf711984503d1d0793d40c5c5..064edd612885b2ea4b35001a864503b5 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index c742fb537788da58fb8984d588049fff3ba79af1..bbd08acb81fd059a95f2f6e09284e7a0264f548d 100644 +index 2257a1808d19775607e60c155d9e5508e7825811..af7af85887e9463c561ddb0c47862b27b5de5d43 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2610,6 +2610,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2676,6 +2676,20 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * was {@link org.bukkit.event.player.PlayerResourcePackStatusEvent.Status#SUCCESSFULLY_LOADED} */ boolean hasResourcePack(); diff --git a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch index 8418db9595..16832e54bf 100644 --- a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch @@ -36,10 +36,10 @@ index abdca9fe5acc90f167219eb769ece66c35682bb1..b3aa3dc6aa5afbc36cc86741b4cba56f /** * Make the entity drop the item in their hand. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index bbd08acb81fd059a95f2f6e09284e7a0264f548d..b1d93f16c55d3fa9a157cf26286936a799ca8025 100644 +index af7af85887e9463c561ddb0c47862b27b5de5d43..8e7482df076c41ae12813e64153206851e020764 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2455,10 +2455,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2521,10 +2521,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM /** * Open a Sign for editing by the Player. * diff --git a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch index d588725a00..a2ee71d3c7 100644 --- a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch @@ -8,10 +8,10 @@ Allows a more logical API for banning players. player.banPlayer("Breaking the rules"); diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 829077d76ad6b179e6f6abf7fb848353fa53a60a..0666cc126ab3709fd7d59c3902c3ec0e712b001c 100644 +index 12349910297a75c00e64f6ccc7981aeeeb43ecd3..8f2f3e0ac5266f571b62a754921422bb07d61984 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -65,6 +65,61 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -67,6 +67,61 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * @return true if banned, otherwise false */ public boolean isBanned(); @@ -74,10 +74,10 @@ index 829077d76ad6b179e6f6abf7fb848353fa53a60a..0666cc126ab3709fd7d59c3902c3ec0e /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b1d93f16c55d3fa9a157cf26286936a799ca8025..24723d089ffc9fc87b1f5dc8ae365b7124dc0e87 100644 +index 8e7482df076c41ae12813e64153206851e020764..6cbb64d4555a3741d0f4938c1850f64d055a3ac4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -976,6 +976,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1042,6 +1042,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void sendMap(@NotNull MapView map); // Paper start diff --git a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch index c6a6f17962..a6e5700233 100644 --- a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 24723d089ffc9fc87b1f5dc8ae365b7124dc0e87..7e304a795d8156c9b1c5ae8a19b71fb116b1b984 100644 +index 6cbb64d4555a3741d0f4938c1850f64d055a3ac4..1b4f70e44bd6cfb8fce17461b90eebb32c5bea73 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2782,6 +2782,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2848,6 +2848,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param profile The new profile to use */ void setPlayerProfile(@NotNull com.destroystokyo.paper.profile.PlayerProfile profile); diff --git a/patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index 6d2c903a3a..552d9f92c6 100644 --- a/patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -16,10 +16,10 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 0666cc126ab3709fd7d59c3902c3ec0e712b001c..4d014215dce2c2ff09a2701accf2db144603c55a 100644 +index 8f2f3e0ac5266f571b62a754921422bb07d61984..774f9ec6a57d5d16a74ebe998e9ad800b1828029 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -181,7 +181,9 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -211,7 +211,9 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * UTC. * * @return Date of last log-in for this player, or 0 @@ -29,7 +29,7 @@ index 0666cc126ab3709fd7d59c3902c3ec0e712b001c..4d014215dce2c2ff09a2701accf2db14 public long getLastPlayed(); /** -@@ -199,6 +201,30 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -229,6 +231,30 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio */ @Nullable public Location getBedSpawnLocation(); diff --git a/patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch index 7c3630854f..d01ff8e6d9 100644 --- a/patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch +++ b/patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch @@ -22,10 +22,10 @@ index 90208bc96085f05a3b657b9467b1670d00b03104..523818cbb0d6c90481ec97123e7fe0e2 public static class ExactChoice implements RecipeChoice { diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index be68263386a8faea7744f4de75d484e9358c87df..c2d224b6472a65cd362e1ab55ce7e3d0b5a3befc 100644 +index 71e494177473c62449aafda1699b26a0c4c81a68..97d5d9c6347bc401e3f4ab7c0ba1391ad5b0449a 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -180,6 +180,13 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -168,6 +168,13 @@ public class ShapedRecipe extends CraftingRecipe { return this; } @@ -40,10 +40,10 @@ index be68263386a8faea7744f4de75d484e9358c87df..c2d224b6472a65cd362e1ab55ce7e3d0 * Get a copy of the ingredients map. * diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index 05ef88225415cd30de36f4517b6fb40d826ce996..8bf26da12dcb03f22f842a57798948d5513c227d 100644 +index d6e38c7ccfe3b6e85eafb611da20b1a29fb74d97..b8ac602cd2718d615ec243ce648951a1a46c26ec 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -141,6 +141,40 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -131,6 +131,40 @@ public class ShapelessRecipe extends CraftingRecipe { return this; } @@ -84,7 +84,7 @@ index 05ef88225415cd30de36f4517b6fb40d826ce996..8bf26da12dcb03f22f842a57798948d5 /** * Removes an ingredient from the list. * -@@ -164,7 +198,7 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -154,7 +188,7 @@ public class ShapelessRecipe extends CraftingRecipe { */ @NotNull public ShapelessRecipe removeIngredient(@NotNull Material ingredient) { @@ -93,7 +93,7 @@ index 05ef88225415cd30de36f4517b6fb40d826ce996..8bf26da12dcb03f22f842a57798948d5 } /** -@@ -191,7 +225,7 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -181,7 +215,7 @@ public class ShapelessRecipe extends CraftingRecipe { */ @NotNull public ShapelessRecipe removeIngredient(int count, @NotNull Material ingredient) { diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch index 3927c91ead..799d3870a9 100644 --- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch @@ -9,7 +9,7 @@ a ton of noise to plugin developers. These do not help plugin developers if they bring moise noise than value. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 213b76f4ba50e882b6c7349d980701e0b6323e7c..f377b0d6bfdc88be2af2a8b059aac04421c4f378 100644 +index 3ad64a11c1e67cce5e49c34d389888060bf2a962..cb0ad65e4e30c3604d655bb75c7b26a7bf4227d7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -837,9 +837,8 @@ public final class Bukkit { @@ -59,7 +59,7 @@ index f9c9ae463aacd593e3aa9caf037ea1e23d56c780..f8ae143acbf586d5279b44f7311ca97f /** diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java -index 20978b269a7757a561d6b872cc77898b44bbd272..2b9a117804a8ca54b47e51e23359bd6e01087641 100644 +index 8508aa2c6fb7c9f41f3d185f5228c86dd3b8b627..f7564581c18425c903e54f949728dd3742ca7bf2 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -46,7 +46,7 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm @@ -203,7 +203,7 @@ index 6277451c3c6c551078c237cd767b6d70c4f585ea..10f5cfb1885833a1d2c1027c03974da4 CRACKED(0x0), GLYPHED(0x1), diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 281c1e511e46a31a1c3ee9380d60888628af87c3..bb90413c0170d3d37bc67565a6bd6f8795b2f6bd 100644 +index 3c09a5e08c2641502b7171f27d28d92d02ed39d0..49877944a385b22e5de66b4e33056ee3f592fcd7 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -703,9 +703,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi @@ -345,19 +345,6 @@ index 4bd127b3646307398e0c937c3e36ab671235b72b..f2557a87f468ee20c2d276dbfc0e9a97 public ItemStack getItem(); /** -diff --git a/src/main/java/org/bukkit/block/DecoratedPot.java b/src/main/java/org/bukkit/block/DecoratedPot.java -index 210f4be510c2074db3938d604937dae0270dd994..59b98f411f62e16fafb0efb489562847a090c733 100644 ---- a/src/main/java/org/bukkit/block/DecoratedPot.java -+++ b/src/main/java/org/bukkit/block/DecoratedPot.java -@@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; - /** - * Represents a captured state of a decorated pot. - */ -+//@ApiStatus.Experimental // Paper - public interface DecoratedPot extends TileState { - - /** diff --git a/src/main/java/org/bukkit/entity/Enderman.java b/src/main/java/org/bukkit/entity/Enderman.java index 605af1a9fc48602643aec57dd14e8c4ab657a0bc..b3085c7ff8b3e96083d209f6612c006578773c24 100644 --- a/src/main/java/org/bukkit/entity/Enderman.java @@ -397,7 +384,7 @@ index f124b35ec76e6cb6a1a0dc464005087043c3efd0..f50aaddf8582be55fd4860ad374d8f22 +@Deprecated(forRemoval = true) // Paper public interface LingeringPotion extends ThrownPotion { } diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index ebb66f19478908518685938ae3b79357d77fc614..cc1f52354d34bc4000a550f795f290244e8e7a7d 100644 +index 79fdb183887cb8153254f6ac84a981a7ffcb561c..373b3ad6b3f94655289155914aec8294cd4f2fb2 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -664,7 +664,9 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource @@ -705,10 +692,10 @@ index f1a48eab1a357ae64545e1f1dc941c383cff8707..466d1bd7089b76f48f953e1a51c611ec /** * Checks if the inventory contains any ItemStacks with the given diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 349da0065ddf000cacdc259fab0f2c759332e9ad..abf95d917eca248ff3f5a5caa008c1c87fa1e029 100644 +index 74cd662d0594f2fbc5aa30ba64d9e4928145dbb9..856751439b6599943d85203a59efd691ddbd89e9 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -26,7 +26,7 @@ public interface ItemFactory { +@@ -27,7 +27,7 @@ public interface ItemFactory { * @return a new ItemMeta that could be applied to an item stack of the * specified material */ @@ -804,10 +791,10 @@ index 5461f7fa75f5a065bb333b4a113640b5fe1e3825..c4d657727e508cb941320730a9d3aa54 /** diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -index c2d224b6472a65cd362e1ab55ce7e3d0b5a3befc..833322283bdddc16524ddb56aaa481bf36881eeb 100644 +index 97d5d9c6347bc401e3f4ab7c0ba1391ad5b0449a..da878c6d4928ddbc16b50ace86d992685a2b7873 100644 --- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java -@@ -112,8 +112,10 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -100,8 +100,10 @@ public class ShapedRecipe extends CraftingRecipe { * @param ingredient The ingredient. * @return The changed recipe, so you can chain calls. * @throws IllegalArgumentException if the {@code key} does not appear in the shape. @@ -818,7 +805,7 @@ index c2d224b6472a65cd362e1ab55ce7e3d0b5a3befc..833322283bdddc16524ddb56aaa481bf public ShapedRecipe setIngredient(char key, @NotNull MaterialData ingredient) { return setIngredient(key, ingredient.getItemType(), ingredient.getData()); } -@@ -191,7 +193,9 @@ public class ShapedRecipe implements Recipe, Keyed { +@@ -179,7 +181,9 @@ public class ShapedRecipe extends CraftingRecipe { * Get a copy of the ingredients map. * * @return The mapping of character to ingredients. @@ -829,10 +816,10 @@ index c2d224b6472a65cd362e1ab55ce7e3d0b5a3befc..833322283bdddc16524ddb56aaa481bf public Map<Character, ItemStack> getIngredientMap() { HashMap<Character, ItemStack> result = new HashMap<Character, ItemStack>(); diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -index 8bf26da12dcb03f22f842a57798948d5513c227d..e5a2febc26a2b0aca0b83c48cd35ccdea1e6a222 100644 +index b8ac602cd2718d615ec243ce648951a1a46c26ec..beb798482479c58a8628c314b510ab6349576ce8 100644 --- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java +++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java -@@ -53,8 +53,10 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -43,8 +43,10 @@ public class ShapelessRecipe extends CraftingRecipe { * * @param ingredient The ingredient to add. * @return The changed recipe, so you can chain calls. @@ -843,7 +830,7 @@ index 8bf26da12dcb03f22f842a57798948d5513c227d..e5a2febc26a2b0aca0b83c48cd35ccde public ShapelessRecipe addIngredient(@NotNull MaterialData ingredient) { return addIngredient(1, ingredient); } -@@ -90,8 +92,10 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -80,8 +82,10 @@ public class ShapelessRecipe extends CraftingRecipe { * @param count How many to add (can't be more than 9!) * @param ingredient The ingredient to add. * @return The changed recipe, so you can chain calls. @@ -854,7 +841,7 @@ index 8bf26da12dcb03f22f842a57798948d5513c227d..e5a2febc26a2b0aca0b83c48cd35ccde public ShapelessRecipe addIngredient(int count, @NotNull MaterialData ingredient) { return addIngredient(count, ingredient.getItemType(), ingredient.getData()); } -@@ -208,8 +212,10 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -198,8 +202,10 @@ public class ShapelessRecipe extends CraftingRecipe { * * @param ingredient The ingredient to remove * @return The changed recipe. @@ -865,7 +852,7 @@ index 8bf26da12dcb03f22f842a57798948d5513c227d..e5a2febc26a2b0aca0b83c48cd35ccde public ShapelessRecipe removeIngredient(@NotNull MaterialData ingredient) { return removeIngredient(ingredient.getItemType(), ingredient.getData()); } -@@ -236,8 +242,10 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -226,8 +232,10 @@ public class ShapelessRecipe extends CraftingRecipe { * @param count The number of copies to remove. * @param ingredient The ingredient to remove. * @return The changed recipe. @@ -876,7 +863,7 @@ index 8bf26da12dcb03f22f842a57798948d5513c227d..e5a2febc26a2b0aca0b83c48cd35ccde public ShapelessRecipe removeIngredient(int count, @NotNull MaterialData ingredient) { return removeIngredient(count, ingredient.getItemType(), ingredient.getData()); } -@@ -298,7 +306,9 @@ public class ShapelessRecipe implements Recipe, Keyed { +@@ -277,7 +285,9 @@ public class ShapelessRecipe extends CraftingRecipe { * Get the list of ingredients used for this recipe. * * @return The input list diff --git a/patches/api/0189-Add-Player-Client-Options-API.patch b/patches/api/0189-Add-Player-Client-Options-API.patch index a100fb3101..c5e0100385 100644 --- a/patches/api/0189-Add-Player-Client-Options-API.patch +++ b/patches/api/0189-Add-Player-Client-Options-API.patch @@ -229,10 +229,10 @@ index 0000000000000000000000000000000000000000..cf67dc7d465223710adbf2b798109f52 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7e304a795d8156c9b1c5ae8a19b71fb116b1b984..1f559c18d961ba31f723a9664201e5522dd7d14a 100644 +index 1b4f70e44bd6cfb8fce17461b90eebb32c5bea73..7a5dda4f2d6b7e9b225c3abd4f2d7fe87ac9e18e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2802,6 +2802,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2868,6 +2868,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the cooldown counter to 0, effectively starting the cooldown period. */ void resetCooldown(); diff --git a/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch index 93bd233b85..9bd7c5c12b 100644 --- a/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch +++ b/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch @@ -94,3 +94,18 @@ index 0000000000000000000000000000000000000000..7fa937d339ee98ad308deebb523fead6 + return handlers; + } +} +diff --git a/src/main/java/org/bukkit/event/player/PlayerRecipeBookClickEvent.java b/src/main/java/org/bukkit/event/player/PlayerRecipeBookClickEvent.java +index eb8623184f69e213196558b077bd0004f08832af..a843f7347308a15b9fba4a3676f60bafafd83a66 100644 +--- a/src/main/java/org/bukkit/event/player/PlayerRecipeBookClickEvent.java ++++ b/src/main/java/org/bukkit/event/player/PlayerRecipeBookClickEvent.java +@@ -9,7 +9,10 @@ import org.jetbrains.annotations.NotNull; + + /** + * Called when a player clicks a recipe in the recipe book. ++ * @deprecated use {@link com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent} + */ ++@Deprecated(forRemoval = true) // Paper [email protected](false) // Paper + public class PlayerRecipeBookClickEvent extends PlayerEvent { + + private static final HandlerList handlers = new HandlerList(); diff --git a/patches/api/0206-Brand-support.patch b/patches/api/0206-Brand-support.patch index c93f4251d6..557c356959 100644 --- a/patches/api/0206-Brand-support.patch +++ b/patches/api/0206-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1f559c18d961ba31f723a9664201e5522dd7d14a..eb5fdf0d907f7e6d49cccbf0476ccfd25f578f2d 100644 +index 7a5dda4f2d6b7e9b225c3abd4f2d7fe87ac9e18e..6b55dce268a9a14d5cb943c08a6287c7f15b3ba3 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2911,6 +2911,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2977,6 +2977,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end } diff --git a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch index 49e64dc27d..274ede44d7 100644 --- a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch +++ b/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index abf95d917eca248ff3f5a5caa008c1c87fa1e029..11e59068b8a8ef1128e3c75283d161c39e2a3a99 100644 +index 856751439b6599943d85203a59efd691ddbd89e9..77ca38e5edda55daf67ab8af9afd633efb4000b1 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -204,5 +204,64 @@ public interface ItemFactory { - */ +@@ -221,4 +221,65 @@ public interface ItemFactory { @NotNull ItemStack ensureServerConversions(@NotNull ItemStack item); + // Paper end - ensure server conversions API + ++ // Paper start - bungee hover events + /** + * Creates a {@link net.md_5.bungee.api.chat.hover.content.Content} of that ItemStack for displaying. + * @@ -71,5 +72,5 @@ index abf95d917eca248ff3f5a5caa008c1c87fa1e029..11e59068b8a8ef1128e3c75283d161c3 + @NotNull + @Deprecated + net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(@NotNull org.bukkit.entity.Entity entity, @NotNull net.md_5.bungee.api.chat.BaseComponent[] customName); - // Paper end ++ // Paper end - bungee hover events } diff --git a/patches/api/0217-Player-elytra-boost-API.patch b/patches/api/0217-Player-elytra-boost-API.patch index 831d469b30..c147f27369 100644 --- a/patches/api/0217-Player-elytra-boost-API.patch +++ b/patches/api/0217-Player-elytra-boost-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index eb5fdf0d907f7e6d49cccbf0476ccfd25f578f2d..d5660c021020b9bacd2888e1b526bf2445aad919 100644 +index 6b55dce268a9a14d5cb943c08a6287c7f15b3ba3..acd49fc890aaf1f34bb3f8524ab4b071f3711b93 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2808,6 +2808,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2874,6 +2874,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ @NotNull <T> T getClientOption(@NotNull com.destroystokyo.paper.ClientOption<T> option); diff --git a/patches/api/0244-Add-sendOpLevel-API.patch b/patches/api/0244-Add-sendOpLevel-API.patch index b67583405d..1ab89e42bb 100644 --- a/patches/api/0244-Add-sendOpLevel-API.patch +++ b/patches/api/0244-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d5660c021020b9bacd2888e1b526bf2445aad919..5eb534d4199a83e94543999a7ae99dd538e1d9aa 100644 +index acd49fc890aaf1f34bb3f8524ab4b071f3711b93..d4e60896fe6a181f2bbf9b874407c6a1ccc666df 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2821,6 +2821,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2887,6 +2887,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ @Nullable Firework boostElytra(@NotNull ItemStack firework); diff --git a/patches/api/0292-Add-PlayerKickEvent-causes.patch b/patches/api/0292-Add-PlayerKickEvent-causes.patch index 264c4cf46e..8b52af1af9 100644 --- a/patches/api/0292-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0292-Add-PlayerKickEvent-causes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e5f52cabf9447bb7dba77f1f5bbd4cdbf6fa772d..3b927832d91dab135da2c3e66d0894ef7a5e4675 100644 +index b28f13c51bce8bedb1fcbe63f89aa7b6262a5676..4ffdb81f5b5f2f1a13b2b8111e836af7aead1a41 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -272,6 +272,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -274,6 +274,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param message kick message */ void kick(final net.kyori.adventure.text.@Nullable Component message); diff --git a/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch index a37dea550d..7e61d68783 100644 --- a/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch +++ b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to prevent NBT copy in smithing recipes diff --git a/src/main/java/org/bukkit/inventory/SmithingRecipe.java b/src/main/java/org/bukkit/inventory/SmithingRecipe.java -index 582671a0a94d47302c0fdc572d486282c32f786f..cfb176130cd1e1008a194231113543d8c052371c 100644 +index 0235f4aa50eb69f87068005c669bd486899025d6..92f6285d87cabde3c1f1690ee4747217c4d098b2 100644 --- a/src/main/java/org/bukkit/inventory/SmithingRecipe.java +++ b/src/main/java/org/bukkit/inventory/SmithingRecipe.java @@ -13,6 +13,7 @@ public class SmithingRecipe implements Recipe, Keyed { @@ -16,9 +16,9 @@ index 582671a0a94d47302c0fdc572d486282c32f786f..cfb176130cd1e1008a194231113543d8 /** * Create a smithing recipe to produce the specified result ItemStack. -@@ -25,6 +26,23 @@ public class SmithingRecipe implements Recipe, Keyed { +@@ -28,6 +29,23 @@ public class SmithingRecipe implements Recipe, Keyed { */ - @Deprecated(forRemoval = true) // Paper + @Deprecated public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @NotNull RecipeChoice base, @NotNull RecipeChoice addition) { + // Paper start + this(key, result, base, addition, true); @@ -33,14 +33,14 @@ index 582671a0a94d47302c0fdc572d486282c32f786f..cfb176130cd1e1008a194231113543d8 + * @param copyNbt whether to copy the nbt from the input base item to the output + * @deprecated use {@link SmithingTrimRecipe} or {@link SmithingTransformRecipe} + */ -+ @Deprecated(forRemoval = true) // Paper ++ @Deprecated + public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @NotNull RecipeChoice base, @NotNull RecipeChoice addition, boolean copyNbt) { + this.copyNbt = copyNbt; + // Paper end this.key = key; this.result = result; this.base = base; -@@ -62,4 +80,15 @@ public class SmithingRecipe implements Recipe, Keyed { +@@ -65,4 +83,15 @@ public class SmithingRecipe implements Recipe, Keyed { public NamespacedKey getKey() { return this.key; } diff --git a/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch b/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch deleted file mode 100644 index bf76f634c7..0000000000 --- a/patches/api/0319-Add-ItemFactory-getSpawnEgg-API.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath <[email protected]> -Date: Thu, 14 Oct 2021 12:09:28 -0500 -Subject: [PATCH] Add ItemFactory#getSpawnEgg API - - -diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 11e59068b8a8ef1128e3c75283d161c39e2a3a99..67d3105258fe4e8165a662dd65bc501b30fcff51 100644 ---- a/src/main/java/org/bukkit/inventory/ItemFactory.java -+++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -263,5 +263,14 @@ public interface ItemFactory { - @NotNull - @Deprecated - net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(@NotNull org.bukkit.entity.Entity entity, @NotNull net.md_5.bungee.api.chat.BaseComponent[] customName); -+ -+ /** -+ * Get a spawn egg ItemStack from an EntityType -+ * -+ * @param type EntityType -+ * @return ItemStack spawner egg -+ */ -+ @Nullable -+ ItemStack getSpawnEgg(@Nullable org.bukkit.entity.EntityType type); - // Paper end - } diff --git a/patches/api/0320-Add-critical-damage-API.patch b/patches/api/0319-Add-critical-damage-API.patch index 3a9d1f8070..3a9d1f8070 100644 --- a/patches/api/0320-Add-critical-damage-API.patch +++ b/patches/api/0319-Add-critical-damage-API.patch diff --git a/patches/api/0321-Fix-issues-with-mob-conversion.patch b/patches/api/0320-Fix-issues-with-mob-conversion.patch index f451d967b6..f451d967b6 100644 --- a/patches/api/0321-Fix-issues-with-mob-conversion.patch +++ b/patches/api/0320-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0322-Add-isCollidable-methods-to-various-places.patch b/patches/api/0321-Add-isCollidable-methods-to-various-places.patch index 62fba2ca0e..62fba2ca0e 100644 --- a/patches/api/0322-Add-isCollidable-methods-to-various-places.patch +++ b/patches/api/0321-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/api/0323-Goat-ram-API.patch b/patches/api/0322-Goat-ram-API.patch index 06d426a786..06d426a786 100644 --- a/patches/api/0323-Goat-ram-API.patch +++ b/patches/api/0322-Goat-ram-API.patch diff --git a/patches/api/0324-Add-API-for-resetting-a-single-score.patch b/patches/api/0323-Add-API-for-resetting-a-single-score.patch index 997ebf42f6..14142e8f6c 100644 --- a/patches/api/0324-Add-API-for-resetting-a-single-score.patch +++ b/patches/api/0323-Add-API-for-resetting-a-single-score.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add API for resetting a single score It was only possible to reset all scores for a specific entry, instead of resetting only specific scores. diff --git a/src/main/java/org/bukkit/scoreboard/Score.java b/src/main/java/org/bukkit/scoreboard/Score.java -index d25b4d04932da7e7562cd1acf67ebec33af5b6ef..07bfad4a908de26e9aa6291e4ad20006e88ffe87 100644 +index 8579c4f5e877a0db6df52094f2f2d82920f3c869..1eaa9a93f8eff5f18a6cce2d74f21eb19db273c8 100644 --- a/src/main/java/org/bukkit/scoreboard/Score.java +++ b/src/main/java/org/bukkit/scoreboard/Score.java @@ -73,4 +73,14 @@ public interface Score { diff --git a/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch index f824dd3957..f824dd3957 100644 --- a/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0325-Add-PlayerItemFrameChangeEvent.patch index a62e452bb4..a62e452bb4 100644 --- a/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch +++ b/patches/api/0325-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch index 0145865559..f91695aefc 100644 --- a/patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index b21d1e8a53e4c51fa7742ee6211b4aedcd460a95..be9fbad7a60f58ef2d087cf5106f40d214b60175 100644 +index 256b98750ac5c48526b6b8d5cb4894b8bb6665be..44575892c30296800e444e38140853178bc24e6c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -1970,6 +1970,24 @@ public final class Bukkit { @@ -34,7 +34,7 @@ index b21d1e8a53e4c51fa7742ee6211b4aedcd460a95..be9fbad7a60f58ef2d087cf5106f40d2 * Creates a boss bar instance to display to players. The progress * defaults to 1.0 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 92db34d3ff29a84b29701de6b64a70413a440ce9..1e000b6ed16a2ea550094a1cbb432eb625899a9a 100644 +index 156f014f94ed100d4d352a4ee5d0a2dc2bff518f..5a23830763fd20aa35cbd3a0669c5e3ee965131e 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1661,6 +1661,22 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0328-Add-more-Campfire-API.patch b/patches/api/0327-Add-more-Campfire-API.patch index 80cdc0bb39..80cdc0bb39 100644 --- a/patches/api/0328-Add-more-Campfire-API.patch +++ b/patches/api/0327-Add-more-Campfire-API.patch diff --git a/patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch index 4be8907b49..4be8907b49 100644 --- a/patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch +++ b/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch diff --git a/patches/api/0330-Improve-scoreboard-entries.patch b/patches/api/0329-Improve-scoreboard-entries.patch index bb288528e5..dbaa948bbf 100644 --- a/patches/api/0330-Improve-scoreboard-entries.patch +++ b/patches/api/0329-Improve-scoreboard-entries.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Improve scoreboard entries diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java -index 571b43c2809d2b248feebc7decba6017a67c8aee..4830db50f408bd9b7e79c30a6d90af567a45af0c 100644 +index be3b2e5d9364abde50716c35cabd5938fe2c5e4d..0e4d7a8b3a100e1e770275063f654c2c5683179e 100644 --- a/src/main/java/org/bukkit/scoreboard/Objective.java +++ b/src/main/java/org/bukkit/scoreboard/Objective.java -@@ -151,9 +151,8 @@ public interface Objective { - * @throws IllegalArgumentException if player is null +@@ -148,9 +148,8 @@ public interface Objective { + * @return Score tracking the Objective and player specified * @throws IllegalStateException if this objective has been unregistered * @see #getScore(String) - * @deprecated Scoreboards can contain entries that aren't players @@ -17,14 +17,14 @@ index 571b43c2809d2b248feebc7decba6017a67c8aee..4830db50f408bd9b7e79c30a6d90af56 - @Deprecated + // @Deprecated // Paper @NotNull - Score getScore(@NotNull OfflinePlayer player) throws IllegalArgumentException, IllegalStateException; + Score getScore(@NotNull OfflinePlayer player); -@@ -168,4 +167,16 @@ public interface Objective { +@@ -164,4 +163,16 @@ public interface Objective { */ @NotNull - Score getScore(@NotNull String entry) throws IllegalArgumentException, IllegalStateException; + Score getScore(@NotNull String entry); + -+ // Paper start ++ // Paper start - improve scoreboard entries + /** + * Gets an entity's Score for an Objective on this Scoreboard. + * @@ -34,51 +34,51 @@ index 571b43c2809d2b248feebc7decba6017a67c8aee..4830db50f408bd9b7e79c30a6d90af56 + * @throws IllegalStateException if this objective has been unregistered + */ + @NotNull Score getScoreFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException, IllegalStateException; -+ // Paper end ++ // Paper end - improve scoreboard entries } diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java -index ebb72912c1f8431606162b0643f6289203331253..5547f82d3d739035da3acc4bdbda72930c863138 100644 +index 7f5afbf87396ecf489566e6924bb196621386b57..97571ad990d3a44f589f01cff2810f16a5f2ff9c 100644 --- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java +++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java -@@ -265,9 +265,8 @@ public interface Scoreboard { +@@ -215,9 +215,8 @@ public interface Scoreboard { + * @param player the player whose scores are being retrieved * @return immutable set of all scores tracked for the player - * @throws IllegalArgumentException if player is null * @see #getScores(String) - * @deprecated Scoreboards can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper @NotNull - Set<Score> getScores(@NotNull OfflinePlayer player) throws IllegalArgumentException; + Set<Score> getScores(@NotNull OfflinePlayer player); -@@ -287,9 +286,8 @@ public interface Scoreboard { +@@ -235,9 +234,8 @@ public interface Scoreboard { + * * @param player the player to drop all current scores for - * @throws IllegalArgumentException if player is null * @see #resetScores(String) - * @deprecated Scoreboards can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper - void resetScores(@NotNull OfflinePlayer player) throws IllegalArgumentException; + void resetScores(@NotNull OfflinePlayer player); /** -@@ -307,9 +305,8 @@ public interface Scoreboard { +@@ -253,9 +251,8 @@ public interface Scoreboard { + * @param player the player to search for * @return the player's Team or null if the player is not on a team - * @throws IllegalArgumentException if player is null * @see #getEntryTeam(String) - * @deprecated Scoreboards can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper @Nullable - Team getPlayerTeam(@NotNull OfflinePlayer player) throws IllegalArgumentException; + Team getPlayerTeam(@NotNull OfflinePlayer player); -@@ -378,4 +375,35 @@ public interface Scoreboard { - * @throws IllegalArgumentException if slot is null +@@ -320,4 +317,35 @@ public interface Scoreboard { + * @param slot the slot to remove objectives */ - void clearSlot(@NotNull DisplaySlot slot) throws IllegalArgumentException; + void clearSlot(@NotNull DisplaySlot slot); + -+ // Paper start ++ // Paper start - improve scoreboard entries + /** + * Gets all scores for an entity on this Scoreboard + * @@ -107,50 +107,50 @@ index ebb72912c1f8431606162b0643f6289203331253..5547f82d3d739035da3acc4bdbda7293 + * @see #getEntryTeam(String) + */ + @Nullable Team getEntityTeam(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException; -+ // Paper end ++ // Paper end - improve scoreboard entries } diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java -index 937a28638c251509ebeb254178a4583fe03c52d0..b7f0686d22cef8d9bd23105ab60051ccb10fa1e6 100644 +index 5416386c89a4019a2c123374dd5cb6d4f12744f0..4a963cb67151287ff6645dcd1c9edddd162dff1a 100644 --- a/src/main/java/org/bukkit/scoreboard/Team.java +++ b/src/main/java/org/bukkit/scoreboard/Team.java -@@ -308,9 +308,8 @@ public interface Team { - * @throws IllegalArgumentException if player is null +@@ -295,9 +295,8 @@ public interface Team { + * @param player the player to add * @throws IllegalStateException if this team has been unregistered * @see #addEntry(String) - * @deprecated Teams can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper - void addPlayer(@NotNull OfflinePlayer player) throws IllegalStateException, IllegalArgumentException; + void addPlayer(@NotNull OfflinePlayer player); /** -@@ -332,9 +331,8 @@ public interface Team { - * @throws IllegalArgumentException if player is null +@@ -317,9 +316,8 @@ public interface Team { + * @return if the player was on this team * @throws IllegalStateException if this team has been unregistered * @see #removeEntry(String) - * @deprecated Teams can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper - boolean removePlayer(@NotNull OfflinePlayer player) throws IllegalStateException, IllegalArgumentException; + boolean removePlayer(@NotNull OfflinePlayer player); /** -@@ -362,9 +360,8 @@ public interface Team { - * @throws IllegalArgumentException if player is null +@@ -345,9 +343,8 @@ public interface Team { + * @return true if the player is a member of this team * @throws IllegalStateException if this team has been unregistered * @see #hasEntry(String) - * @deprecated Teams can contain entries that aren't players */ - @Deprecated + // @Deprecated // Paper - boolean hasPlayer(@NotNull OfflinePlayer player) throws IllegalArgumentException, IllegalStateException; + boolean hasPlayer(@NotNull OfflinePlayer player); /** * Checks to see if the specified entry is a member of this team. -@@ -395,6 +392,42 @@ public interface Team { +@@ -377,6 +374,42 @@ public interface Team { */ - void setOption(@NotNull Option option, @NotNull OptionStatus status) throws IllegalStateException; + void setOption(@NotNull Option option, @NotNull OptionStatus status); -+ // Paper start ++ // Paper start - improve scoreboard entries + /** + * This puts the specified entity onto this team for the scoreboard. + * <p> @@ -184,7 +184,7 @@ index 937a28638c251509ebeb254178a4583fe03c52d0..b7f0686d22cef8d9bd23105ab60051cc + * @see #hasEntry(String) + */ + boolean hasEntity(@NotNull org.bukkit.entity.Entity entity) throws IllegalStateException, IllegalArgumentException; -+ // Paper end ++ // Paper end - improve scoreboard entries + /** * Represents an option which may be applied to this team. diff --git a/patches/api/0331-Entity-powdered-snow-API.patch b/patches/api/0330-Entity-powdered-snow-API.patch index 3ed79d314d..3ed79d314d 100644 --- a/patches/api/0331-Entity-powdered-snow-API.patch +++ b/patches/api/0330-Entity-powdered-snow-API.patch diff --git a/patches/api/0332-Add-API-for-item-entity-health.patch b/patches/api/0331-Add-API-for-item-entity-health.patch index 94373dbdf2..94373dbdf2 100644 --- a/patches/api/0332-Add-API-for-item-entity-health.patch +++ b/patches/api/0331-Add-API-for-item-entity-health.patch diff --git a/patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch index f094cdc255..f094cdc255 100644 --- a/patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch +++ b/patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0334-Bucketable-API.patch b/patches/api/0333-Bucketable-API.patch index 26dbdc9f5d..26dbdc9f5d 100644 --- a/patches/api/0334-Bucketable-API.patch +++ b/patches/api/0333-Bucketable-API.patch diff --git a/patches/api/0335-System-prop-for-default-config-comment-parsing.patch b/patches/api/0334-System-prop-for-default-config-comment-parsing.patch index 632f71e519..632f71e519 100644 --- a/patches/api/0335-System-prop-for-default-config-comment-parsing.patch +++ b/patches/api/0334-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 9b189fc918..9b189fc918 100644 --- a/patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0337-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0336-Add-new-overload-to-PersistentDataContainer-has.patch index 73c49a2fc8..73c49a2fc8 100644 --- a/patches/api/0337-Add-new-overload-to-PersistentDataContainer-has.patch +++ b/patches/api/0336-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/api/0338-Multiple-Entries-with-Scoreboards.patch b/patches/api/0337-Multiple-Entries-with-Scoreboards.patch index 0a4fbab3a7..40407d71ea 100644 --- a/patches/api/0338-Multiple-Entries-with-Scoreboards.patch +++ b/patches/api/0337-Multiple-Entries-with-Scoreboards.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Multiple Entries with Scoreboards diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java -index b7f0686d22cef8d9bd23105ab60051ccb10fa1e6..0f1c08092577a7d66fdc1ea8b645ea67e0d9c6cf 100644 +index 4a963cb67151287ff6645dcd1c9edddd162dff1a..2cf3e30eaec539092dc5cd864ec429eebe9d2be6 100644 --- a/src/main/java/org/bukkit/scoreboard/Team.java +++ b/src/main/java/org/bukkit/scoreboard/Team.java -@@ -323,6 +323,60 @@ public interface Team { +@@ -309,6 +309,60 @@ public interface Team { */ - void addEntry(@NotNull String entry) throws IllegalStateException, IllegalArgumentException; + void addEntry(@NotNull String entry); + // Paper start + /** @@ -69,9 +69,9 @@ index b7f0686d22cef8d9bd23105ab60051ccb10fa1e6..0f1c08092577a7d66fdc1ea8b645ea67 /** * Removes the player from this team. * -@@ -345,6 +399,56 @@ public interface Team { +@@ -329,6 +383,56 @@ public interface Team { */ - boolean removeEntry(@NotNull String entry) throws IllegalStateException, IllegalArgumentException; + boolean removeEntry(@NotNull String entry); + // Paper start + /** diff --git a/patches/api/0339-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index 2d133482d3..2d133482d3 100644 --- a/patches/api/0339-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/api/0340-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0339-Warn-on-strange-EventHandler-return-types.patch index c7807b823b..c7807b823b 100644 --- a/patches/api/0340-Warn-on-strange-EventHandler-return-types.patch +++ b/patches/api/0339-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0341-Multi-Block-Change-API.patch b/patches/api/0340-Multi-Block-Change-API.patch index 80dcae2503..f9dd8d1c58 100644 --- a/patches/api/0341-Multi-Block-Change-API.patch +++ b/patches/api/0340-Multi-Block-Change-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Multi Block Change API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 3b927832d91dab135da2c3e66d0894ef7a5e4675..0af6b1ad7d0449354fd0166d1d6e8484ab1bd73f 100644 +index 4ffdb81f5b5f2f1a13b2b8111e836af7aead1a41..60bae5b28ed69f85e04013d6faaf199cb9ab13fe 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -724,6 +724,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -790,6 +790,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendBlockDamage(@NotNull Location loc, float progress); diff --git a/patches/api/0342-Fix-NotePlayEvent.patch b/patches/api/0341-Fix-NotePlayEvent.patch index d3f827bfd8..d3f827bfd8 100644 --- a/patches/api/0342-Fix-NotePlayEvent.patch +++ b/patches/api/0341-Fix-NotePlayEvent.patch diff --git a/patches/api/0343-Freeze-Tick-Lock-API.patch b/patches/api/0342-Freeze-Tick-Lock-API.patch index fdf81b1a62..fdf81b1a62 100644 --- a/patches/api/0343-Freeze-Tick-Lock-API.patch +++ b/patches/api/0342-Freeze-Tick-Lock-API.patch diff --git a/patches/api/0344-Dolphin-API.patch b/patches/api/0343-Dolphin-API.patch index 73beed437b..73beed437b 100644 --- a/patches/api/0344-Dolphin-API.patch +++ b/patches/api/0343-Dolphin-API.patch diff --git a/patches/api/0345-More-PotionEffectType-API.patch b/patches/api/0344-More-PotionEffectType-API.patch index 5cd5753a92..5cd5753a92 100644 --- a/patches/api/0345-More-PotionEffectType-API.patch +++ b/patches/api/0344-More-PotionEffectType-API.patch diff --git a/patches/api/0346-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch index 3afcddddf9..5a9961dc34 100644 --- a/patches/api/0346-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch @@ -5,7 +5,7 @@ Subject: [PATCH] API for creating command sender which forwards feedback diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index be9fbad7a60f58ef2d087cf5106f40d214b60175..6103ff86cfc7f58b303ec1490fe74b82f6653796 100644 +index 44575892c30296800e444e38140853178bc24e6c..fcd63ae1130eb2db285392e08053af915279b6e7 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -1459,6 +1459,20 @@ public final class Bukkit { @@ -30,7 +30,7 @@ index be9fbad7a60f58ef2d087cf5106f40d214b60175..6103ff86cfc7f58b303ec1490fe74b82 * Gets the folder that contains all of the various {@link World}s. * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 1e000b6ed16a2ea550094a1cbb432eb625899a9a..e76ff3645fdf0ce34bfcd5214f0509d35a7b3088 100644 +index 5a23830763fd20aa35cbd3a0669c5e3ee965131e..c2a9afee5c57d62bb6d62807eadae513b53849ba 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1225,6 +1225,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0347-Implement-regenerateChunk.patch b/patches/api/0346-Implement-regenerateChunk.patch index 721528d5a2..721528d5a2 100644 --- a/patches/api/0347-Implement-regenerateChunk.patch +++ b/patches/api/0346-Implement-regenerateChunk.patch diff --git a/patches/api/0348-Add-GameEvent-tags.patch b/patches/api/0347-Add-GameEvent-tags.patch index 1aabdd065a..1aabdd065a 100644 --- a/patches/api/0348-Add-GameEvent-tags.patch +++ b/patches/api/0347-Add-GameEvent-tags.patch diff --git a/patches/api/0349-Furnace-RecipesUsed-API.patch b/patches/api/0348-Furnace-RecipesUsed-API.patch index 7fed82db21..7fed82db21 100644 --- a/patches/api/0349-Furnace-RecipesUsed-API.patch +++ b/patches/api/0348-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0350-Configurable-sculk-sensor-listener-range.patch b/patches/api/0349-Configurable-sculk-sensor-listener-range.patch index b1ad0cdb5b..b1ad0cdb5b 100644 --- a/patches/api/0350-Configurable-sculk-sensor-listener-range.patch +++ b/patches/api/0349-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0351-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0350-Add-missing-block-data-mins-and-maxes.patch index 600497b952..600497b952 100644 --- a/patches/api/0351-Add-missing-block-data-mins-and-maxes.patch +++ b/patches/api/0350-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0352-Custom-Potion-Mixes.patch b/patches/api/0351-Custom-Potion-Mixes.patch index bef08bef17..346fa4ee18 100644 --- a/patches/api/0352-Custom-Potion-Mixes.patch +++ b/patches/api/0351-Custom-Potion-Mixes.patch @@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..cb6d93526b637946aec311bef103ad30 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 6103ff86cfc7f58b303ec1490fe74b82f6653796..14ddb641d8a20ebd80cb2c5c8bef3062f813026d 100644 +index fcd63ae1130eb2db285392e08053af915279b6e7..209a0c48e092f168744498e1ba7555279318394c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -2492,6 +2492,15 @@ public final class Bukkit { @@ -122,7 +122,7 @@ index 6103ff86cfc7f58b303ec1490fe74b82f6653796..14ddb641d8a20ebd80cb2c5c8bef3062 @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index e76ff3645fdf0ce34bfcd5214f0509d35a7b3088..b6bdb945755a2c37b3cb2c3e2e91f7d769c517c4 100644 +index c2a9afee5c57d62bb6d62807eadae513b53849ba..20f95f8911852d86ea938dd73ed0d44c01b27d28 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2169,5 +2169,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0353-Expose-furnace-minecart-push-values.patch b/patches/api/0352-Expose-furnace-minecart-push-values.patch index 3d8c2336e7..3d8c2336e7 100644 --- a/patches/api/0353-Expose-furnace-minecart-push-values.patch +++ b/patches/api/0352-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0354-More-Projectile-API.patch b/patches/api/0353-More-Projectile-API.patch index fac92210c3..fac92210c3 100644 --- a/patches/api/0354-More-Projectile-API.patch +++ b/patches/api/0353-More-Projectile-API.patch diff --git a/patches/api/0355-Add-getComputedBiome-API.patch b/patches/api/0354-Add-getComputedBiome-API.patch index a1ec54fe08..a1ec54fe08 100644 --- a/patches/api/0355-Add-getComputedBiome-API.patch +++ b/patches/api/0354-Add-getComputedBiome-API.patch diff --git a/patches/api/0356-Add-enchantWithLevels-API.patch b/patches/api/0355-Add-enchantWithLevels-API.patch index fe08c8a617..8c3e1245c0 100644 --- a/patches/api/0356-Add-enchantWithLevels-API.patch +++ b/patches/api/0355-Add-enchantWithLevels-API.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Add enchantWithLevels API diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 67d3105258fe4e8165a662dd65bc501b30fcff51..5a2e091785043e66c5560e870e3729fa70b28bb4 100644 +index 77ca38e5edda55daf67ab8af9afd633efb4000b1..ab73893656932f54009340df59293df2a732be51 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -161,6 +161,22 @@ public interface ItemFactory { - Material updateMaterial(@NotNull final ItemMeta meta, @NotNull final Material material) throws IllegalArgumentException; +@@ -173,6 +173,22 @@ public interface ItemFactory { + Material getSpawnEgg(@NotNull EntityType type); - // Paper start + // Paper start - Adventure + /** + * Randomly enchants a copy of the provided {@link ItemStack} using the given experience levels. + * diff --git a/patches/api/0357-Add-TameableDeathMessageEvent.patch b/patches/api/0356-Add-TameableDeathMessageEvent.patch index 6152eacbe6..6152eacbe6 100644 --- a/patches/api/0357-Add-TameableDeathMessageEvent.patch +++ b/patches/api/0356-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0358-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch index c2f08b9adc..08ffa1fdde 100644 --- a/patches/api/0358-Allow-to-change-the-podium-of-the-EnderDragon.patch +++ b/patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow to change the podium of the EnderDragon diff --git a/src/main/java/org/bukkit/entity/EnderDragon.java b/src/main/java/org/bukkit/entity/EnderDragon.java -index 57f8e7bf4c7b4c4a4e793cfd5d7db74384d8b1b5..64805bef298f869035614da010ace941b2a4d70b 100644 +index 92cd35c87bad578c2b714761c93a5b72ebf4bc9e..68f58c40a56791df177967de5661cca976a7e98c 100644 --- a/src/main/java/org/bukkit/entity/EnderDragon.java +++ b/src/main/java/org/bukkit/entity/EnderDragon.java -@@ -104,4 +104,22 @@ public interface EnderDragon extends ComplexLivingEntity, Boss, Mob, Enemy { +@@ -108,4 +108,22 @@ public interface EnderDragon extends ComplexLivingEntity, Boss, Mob, Enemy { * @return this dragon's death animation ticks */ int getDeathAnimationTicks(); diff --git a/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch index 21b3f85c0b..21b3f85c0b 100644 --- a/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch +++ b/patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch diff --git a/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch index 5775b6f33c..5775b6f33c 100644 --- a/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch +++ b/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0361-WorldCreator-keepSpawnLoaded.patch b/patches/api/0360-WorldCreator-keepSpawnLoaded.patch index c148a391f4..c148a391f4 100644 --- a/patches/api/0361-WorldCreator-keepSpawnLoaded.patch +++ b/patches/api/0360-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch index 032a0872d1..032a0872d1 100644 --- a/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0363-Add-PlayerStopUsingItemEvent.patch b/patches/api/0362-Add-PlayerStopUsingItemEvent.patch index 0743d44ae1..0743d44ae1 100644 --- a/patches/api/0363-Add-PlayerStopUsingItemEvent.patch +++ b/patches/api/0362-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0364-FallingBlock-auto-expire-setting.patch b/patches/api/0363-FallingBlock-auto-expire-setting.patch index 0a1e19afeb..0a1e19afeb 100644 --- a/patches/api/0364-FallingBlock-auto-expire-setting.patch +++ b/patches/api/0363-FallingBlock-auto-expire-setting.patch diff --git a/patches/api/0365-Keyed-Cat-Type.patch b/patches/api/0364-Keyed-Cat-Type.patch index b0797d78b7..b0797d78b7 100644 --- a/patches/api/0365-Keyed-Cat-Type.patch +++ b/patches/api/0364-Keyed-Cat-Type.patch diff --git a/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch index 126775a362..126775a362 100644 --- a/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch +++ b/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch diff --git a/patches/api/0367-Add-WardenAngerChangeEvent.patch b/patches/api/0366-Add-WardenAngerChangeEvent.patch index acf45b5314..acf45b5314 100644 --- a/patches/api/0367-Add-WardenAngerChangeEvent.patch +++ b/patches/api/0366-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0368-Nameable-Banner-API.patch b/patches/api/0367-Nameable-Banner-API.patch index eba196daaf..eba196daaf 100644 --- a/patches/api/0368-Nameable-Banner-API.patch +++ b/patches/api/0367-Nameable-Banner-API.patch diff --git a/patches/api/0369-Add-Player-getFishHook.patch b/patches/api/0368-Add-Player-getFishHook.patch index 291eac5db5..291eac5db5 100644 --- a/patches/api/0369-Add-Player-getFishHook.patch +++ b/patches/api/0368-Add-Player-getFishHook.patch diff --git a/patches/api/0370-More-Teleport-API.patch b/patches/api/0369-More-Teleport-API.patch index 1c18fbae2b..e749435dc5 100644 --- a/patches/api/0370-More-Teleport-API.patch +++ b/patches/api/0369-More-Teleport-API.patch @@ -165,10 +165,10 @@ index ab0ceaba9ddcbe20a8b8a1fc3ed19cb3c64ecd3d..97f0bc6573c8ba09de77061b6312b91c * Teleports this entity to the given location. If this entity is riding a * vehicle, it will be dismounted prior to teleportation. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index cd6dd216eb528bf5c0dcf804a2409d852accb78b..5a514111c21f62d1db8b298270088c1705a9e766 100644 +index 203ba784306d6aae10db9d1b5d9cbe9d797058f3..5c265bf9207d235c9d03ad7a23ad005871c81948 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2976,6 +2976,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3042,6 +3042,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end @@ -219,7 +219,7 @@ index cd6dd216eb528bf5c0dcf804a2409d852accb78b..5a514111c21f62d1db8b298270088c17 @Override Spigot spigot(); diff --git a/src/main/java/org/bukkit/event/player/PlayerTeleportEvent.java b/src/main/java/org/bukkit/event/player/PlayerTeleportEvent.java -index 113e620ce38bb8ff97cf24e309af59b717774b36..c334684341002c469a0dd90fc995758aff6bac61 100644 +index 2deae344c88920ab95eefd2f65df5c858e04750b..32f78f2e32280f5c9ee7394b77ed929845f127d2 100644 --- a/src/main/java/org/bukkit/event/player/PlayerTeleportEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerTeleportEvent.java @@ -13,8 +13,14 @@ public class PlayerTeleportEvent extends PlayerMoveEvent { @@ -253,7 +253,7 @@ index 113e620ce38bb8ff97cf24e309af59b717774b36..c334684341002c469a0dd90fc995758a /** * Gets the cause of this teleportation event * -@@ -84,6 +99,31 @@ public class PlayerTeleportEvent extends PlayerMoveEvent { +@@ -88,6 +103,31 @@ public class PlayerTeleportEvent extends PlayerMoveEvent { UNKNOWN; } diff --git a/patches/api/0371-Add-EntityPortalReadyEvent.patch b/patches/api/0370-Add-EntityPortalReadyEvent.patch index 4b1b1f1e1f..4b1b1f1e1f 100644 --- a/patches/api/0371-Add-EntityPortalReadyEvent.patch +++ b/patches/api/0370-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch index 3d7b9ec1bb..77d99ebaa3 100644 --- a/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5a514111c21f62d1db8b298270088c1705a9e766..b977f198f7385813006473adf5e50166f0b77d5f 100644 +index 5c265bf9207d235c9d03ad7a23ad005871c81948..fbe858323fbabc15ac8533df2018cf5c95f442fa 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2863,6 +2863,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2929,6 +2929,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException If the level is negative or greater than {@code 4} (i.e. not within {@code [0, 4]}). */ void sendOpLevel(byte level); diff --git a/patches/api/0373-Collision-API.patch b/patches/api/0372-Collision-API.patch index 24bcebc503..24bcebc503 100644 --- a/patches/api/0373-Collision-API.patch +++ b/patches/api/0372-Collision-API.patch diff --git a/patches/api/0374-Block-Ticking-API.patch b/patches/api/0373-Block-Ticking-API.patch index 9b2fc54ea1..9b2fc54ea1 100644 --- a/patches/api/0374-Block-Ticking-API.patch +++ b/patches/api/0373-Block-Ticking-API.patch diff --git a/patches/api/0375-Add-NamespacedKey-biome-methods.patch b/patches/api/0374-Add-NamespacedKey-biome-methods.patch index 24cd2b9867..24cd2b9867 100644 --- a/patches/api/0375-Add-NamespacedKey-biome-methods.patch +++ b/patches/api/0374-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0376-Also-load-resources-from-LibraryLoader.patch b/patches/api/0375-Also-load-resources-from-LibraryLoader.patch index ee5785d8cb..ee5785d8cb 100644 --- a/patches/api/0376-Also-load-resources-from-LibraryLoader.patch +++ b/patches/api/0375-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch index 161c82afe3..161c82afe3 100644 --- a/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch +++ b/patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index bec7a5d015..bec7a5d015 100644 --- a/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch index 9b5ef25cf4..9b5ef25cf4 100644 --- a/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch +++ b/patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0380-Add-getDrops-to-BlockState.patch b/patches/api/0379-Add-getDrops-to-BlockState.patch index 48f3a99f04..48f3a99f04 100644 --- a/patches/api/0380-Add-getDrops-to-BlockState.patch +++ b/patches/api/0379-Add-getDrops-to-BlockState.patch diff --git a/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch index f094f9dbc9..f094f9dbc9 100644 --- a/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0382-Elder-Guardian-appearance-API.patch b/patches/api/0381-Elder-Guardian-appearance-API.patch index c2e317d167..8510ba6a3a 100644 --- a/patches/api/0382-Elder-Guardian-appearance-API.patch +++ b/patches/api/0381-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b977f198f7385813006473adf5e50166f0b77d5f..e70375b18de9c2c7c09ce13c5d6faadabd3732c1 100644 +index fbe858323fbabc15ac8533df2018cf5c95f442fa..73c989b03bb6da238300bdd0f1e634e6edce5bcd 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3042,6 +3042,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3108,6 +3108,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor); // Paper end - Teleport API diff --git a/patches/api/0383-Allow-changing-bed-s-occupied-property.patch b/patches/api/0382-Allow-changing-bed-s-occupied-property.patch index 8dfafd6d33..8dfafd6d33 100644 --- a/patches/api/0383-Allow-changing-bed-s-occupied-property.patch +++ b/patches/api/0382-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0383-Add-EquipmentSlot-convenience-methods.patch index 0ef6b4c9b0..0ef6b4c9b0 100644 --- a/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch +++ b/patches/api/0383-Add-EquipmentSlot-convenience-methods.patch diff --git a/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 8ba283e9b1..8ba283e9b1 100644 --- a/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch diff --git a/patches/api/0386-Add-entity-knockback-API.patch b/patches/api/0385-Add-entity-knockback-API.patch index 3852612f24..3852612f24 100644 --- a/patches/api/0386-Add-entity-knockback-API.patch +++ b/patches/api/0385-Add-entity-knockback-API.patch diff --git a/patches/api/0387-Added-EntityToggleSitEvent.patch b/patches/api/0386-Added-EntityToggleSitEvent.patch index af2476123b..af2476123b 100644 --- a/patches/api/0387-Added-EntityToggleSitEvent.patch +++ b/patches/api/0386-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0388-Add-Moving-Piston-API.patch b/patches/api/0387-Add-Moving-Piston-API.patch index 8f889f1e3d..8f889f1e3d 100644 --- a/patches/api/0388-Add-Moving-Piston-API.patch +++ b/patches/api/0387-Add-Moving-Piston-API.patch diff --git a/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0388-Add-PrePlayerAttackEntityEvent.patch index 507b313e56..507b313e56 100644 --- a/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/api/0388-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0390-Add-Player-Warden-Warning-API.patch b/patches/api/0389-Add-Player-Warden-Warning-API.patch index 8d1d1cb540..f4da739795 100644 --- a/patches/api/0390-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0389-Add-Player-Warden-Warning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e70375b18de9c2c7c09ce13c5d6faadabd3732c1..b21d2ee776a25d00ed076b0a83562baec4ff2bd3 100644 +index 73c989b03bb6da238300bdd0f1e634e6edce5bcd..3740f4773795e345c0c61076d2473e67b49b6c65 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3058,6 +3058,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3124,6 +3124,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param silent whether sound should be silenced */ void showElderGuardian(boolean silent); diff --git a/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch index f13fdb5601..f13fdb5601 100644 --- a/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0392-Add-paper-dumplisteners-command.patch b/patches/api/0391-Add-paper-dumplisteners-command.patch index 8053dc2c4f..8053dc2c4f 100644 --- a/patches/api/0392-Add-paper-dumplisteners-command.patch +++ b/patches/api/0391-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0393-ItemStack-damage-API.patch b/patches/api/0392-ItemStack-damage-API.patch index ffdcd4b728..ffdcd4b728 100644 --- a/patches/api/0393-ItemStack-damage-API.patch +++ b/patches/api/0392-ItemStack-damage-API.patch diff --git a/patches/api/0394-Add-Tick-TemporalUnit.patch b/patches/api/0393-Add-Tick-TemporalUnit.patch index 96c1dddab8..96c1dddab8 100644 --- a/patches/api/0394-Add-Tick-TemporalUnit.patch +++ b/patches/api/0393-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0395-Friction-API.patch b/patches/api/0394-Friction-API.patch index dd826ded3b..dd826ded3b 100644 --- a/patches/api/0395-Friction-API.patch +++ b/patches/api/0394-Friction-API.patch diff --git a/patches/api/0396-Player-Entity-Tracking-Events.patch b/patches/api/0395-Player-Entity-Tracking-Events.patch index a824ae278f..a824ae278f 100644 --- a/patches/api/0396-Player-Entity-Tracking-Events.patch +++ b/patches/api/0395-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0397-Add-missing-Fluid-type.patch b/patches/api/0396-Add-missing-Fluid-type.patch index c260bf8497..c260bf8497 100644 --- a/patches/api/0397-Add-missing-Fluid-type.patch +++ b/patches/api/0396-Add-missing-Fluid-type.patch diff --git a/patches/api/0398-fix-Instruments.patch b/patches/api/0397-fix-Instruments.patch index 38cd1521f2..1c2722264d 100644 --- a/patches/api/0398-fix-Instruments.patch +++ b/patches/api/0397-fix-Instruments.patch @@ -98,10 +98,10 @@ index de976be7132d05506fde7a839cac3954b0dd8da4..642feb8b4578e6dbd2bf78d859283d20 public static Instrument getByType(final byte type) { return BY_DATA.get(type); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 60206aaf1dfec3cf1f8911d7dce41a36a8675375..a0801ab1e7c91dfc6451338cfab414145c72a441 100644 +index 3cea1b5e29025cb5f9ccafb2eaf0895ab81409a9..e308cafa28648b09571caae8dc492870b902919d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -445,9 +445,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -511,9 +511,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void playNote(@NotNull Location loc, byte instrument, byte note); /** diff --git a/patches/api/0399-Add-BlockLockCheckEvent.patch b/patches/api/0398-Add-BlockLockCheckEvent.patch index 55a23307b1..55a23307b1 100644 --- a/patches/api/0399-Add-BlockLockCheckEvent.patch +++ b/patches/api/0398-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0400-Add-Sneaking-API-for-Entities.patch b/patches/api/0399-Add-Sneaking-API-for-Entities.patch index 8ad9168a83..46751f5a5f 100644 --- a/patches/api/0400-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0399-Add-Sneaking-API-for-Entities.patch @@ -35,10 +35,10 @@ index 3f3ea5bb6b3ea6f55b5cd699f1c01ac159619add..a2a423d4e4c2702ba5967223cab0432d * Get the category of spawn to which this entity belongs. * diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a0801ab1e7c91dfc6451338cfab414145c72a441..77b0e632f8fefb9165a5170f8620a117c3b71c04 100644 +index e308cafa28648b09571caae8dc492870b902919d..f758e5e3a141733b3046fce7468391534116b34d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -348,6 +348,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -414,6 +414,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @return true if player is in sneak mode */ @@ -46,7 +46,7 @@ index a0801ab1e7c91dfc6451338cfab414145c72a441..77b0e632f8fefb9165a5170f8620a117 public boolean isSneaking(); /** -@@ -355,6 +356,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -421,6 +422,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * * @param sneak true if player should appear sneaking */ diff --git a/patches/api/0401-Improve-PortalEvents.patch b/patches/api/0400-Improve-PortalEvents.patch index f7f53b19fc..f7f53b19fc 100644 --- a/patches/api/0401-Improve-PortalEvents.patch +++ b/patches/api/0400-Improve-PortalEvents.patch diff --git a/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index c9fd0c6501..c9fd0c6501 100644 --- a/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/api/0403-Flying-Fall-Damage-API.patch b/patches/api/0402-Flying-Fall-Damage-API.patch index ff4c01fdd8..c37f4b3e6f 100644 --- a/patches/api/0403-Flying-Fall-Damage-API.patch +++ b/patches/api/0402-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 d4d07bb5cab656973b2ee54c8ea85e57718d2746..e2a3effda47e2c2696636398a0ff450d226ef469 100644 +index 37f781384989962d4930b33dc6a7878dac999797..63070eadd28dbd0d77a58904db751c1bea4bcf5c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1639,6 +1639,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1705,6 +1705,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void setAllowFlight(boolean flight); diff --git a/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 25fa280b26..25fa280b26 100644 --- a/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch index 3936bb4a92..3936bb4a92 100644 --- a/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch +++ b/patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0406-Win-Screen-API.patch b/patches/api/0405-Win-Screen-API.patch index d8e46be6db..0711516cbb 100644 --- a/patches/api/0406-Win-Screen-API.patch +++ b/patches/api/0405-Win-Screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Win Screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e2a3effda47e2c2696636398a0ff450d226ef469..44f5237406128adde97e43304f8b433032920090 100644 +index 63070eadd28dbd0d77a58904db751c1bea4bcf5c..bcab0d70158d5843fc555a8ad532b6376a400749 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1006,6 +1006,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1072,6 +1072,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM */ public void sendMap(@NotNull MapView map); diff --git a/patches/api/0407-Add-Entity-Body-Yaw-API.patch b/patches/api/0406-Add-Entity-Body-Yaw-API.patch index 05fecf4aed..05fecf4aed 100644 --- a/patches/api/0407-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0406-Add-Entity-Body-Yaw-API.patch diff --git a/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch index 98799cd97d..98799cd97d 100644 --- a/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch +++ b/patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0409-Add-EntityFertilizeEggEvent.patch b/patches/api/0408-Add-EntityFertilizeEggEvent.patch index 52283a9df2..52283a9df2 100644 --- a/patches/api/0409-Add-EntityFertilizeEggEvent.patch +++ b/patches/api/0408-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch index f720032bf2..f720032bf2 100644 --- a/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch +++ b/patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0411-Add-Shearable-API.patch b/patches/api/0410-Add-Shearable-API.patch index 96049cfd38..96049cfd38 100644 --- a/patches/api/0411-Add-Shearable-API.patch +++ b/patches/api/0410-Add-Shearable-API.patch diff --git a/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch index 4014e17083..4014e17083 100644 --- a/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch +++ b/patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0413-Add-Mob-Experience-reward-API.patch b/patches/api/0412-Add-Mob-Experience-reward-API.patch index e399177aeb..e399177aeb 100644 --- a/patches/api/0413-Add-Mob-Experience-reward-API.patch +++ b/patches/api/0412-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0414-Expand-PlayerItemMendEvent.patch b/patches/api/0413-Expand-PlayerItemMendEvent.patch index 223922e05e..223922e05e 100644 --- a/patches/api/0414-Expand-PlayerItemMendEvent.patch +++ b/patches/api/0413-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0415-Add-transient-modifier-API.patch b/patches/api/0414-Add-transient-modifier-API.patch index a32e4c86a9..a32e4c86a9 100644 --- a/patches/api/0415-Add-transient-modifier-API.patch +++ b/patches/api/0414-Add-transient-modifier-API.patch diff --git a/patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch index 268785a112..268785a112 100644 --- a/patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch +++ b/patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch index d0a824c013..d0a824c013 100644 --- a/patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/api/0418-Folia-scheduler-and-owned-region-API.patch b/patches/api/0417-Folia-scheduler-and-owned-region-API.patch index 13a38952d2..13a38952d2 100644 --- a/patches/api/0418-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0417-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/api/0419-Add-event-for-player-editing-sign.patch b/patches/api/0418-Add-event-for-player-editing-sign.patch index 7ab903049e..738ff0d1f0 100644 --- a/patches/api/0419-Add-event-for-player-editing-sign.patch +++ b/patches/api/0418-Add-event-for-player-editing-sign.patch @@ -114,3 +114,19 @@ index 0000000000000000000000000000000000000000..a82c0db092684bcb5e3c99f8158eb407 + UNKNOWN, + } +} +diff --git a/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java b/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java +index ea197b1bc0a41355f8cdda3026f16c55f2d4fac9..62f41dbdf93e1912f4ee1376f000ffdc9073043d 100644 +--- a/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java ++++ b/src/main/java/org/bukkit/event/player/PlayerSignOpenEvent.java +@@ -10,8 +10,11 @@ import org.jetbrains.annotations.NotNull; + + /** + * This event is fired when a sign is opened by the player. ++ * @deprecated use {@link io.papermc.paper.event.player.PlayerOpenSignEvent} + */ + @ApiStatus.Experimental ++@Deprecated(forRemoval = true) // Paper [email protected](false) // Paper + public class PlayerSignOpenEvent extends PlayerEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); diff --git a/patches/api/0420-Add-Sign-getInteractableSideFor.patch b/patches/api/0419-Add-Sign-getInteractableSideFor.patch index ded9bb7ac7..ded9bb7ac7 100644 --- a/patches/api/0420-Add-Sign-getInteractableSideFor.patch +++ b/patches/api/0419-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0421-Fix-BanList-API.patch b/patches/api/0420-Fix-BanList-API.patch index de86cde758..f0ff82bd87 100644 --- a/patches/api/0421-Fix-BanList-API.patch +++ b/patches/api/0420-Fix-BanList-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix BanList API diff --git a/src/main/java/org/bukkit/BanList.java b/src/main/java/org/bukkit/BanList.java -index c229d3bc37c4e454a4b5a93eda1fe6466a4f4e8b..adeff14586351edad412a85a5797c28a43aaa9de 100644 +index 548f6d28c28d74bed8b58ee82875909354afe132..a77c0411a68a9bad33ddfb335b7a996a843e478c 100644 --- a/src/main/java/org/bukkit/BanList.java +++ b/src/main/java/org/bukkit/BanList.java -@@ -46,7 +46,7 @@ public interface BanList<T> { +@@ -48,7 +48,7 @@ public interface BanList<T> { */ @Deprecated @Nullable @@ -17,7 +17,7 @@ index c229d3bc37c4e454a4b5a93eda1fe6466a4f4e8b..adeff14586351edad412a85a5797c28a /** * Gets a {@link BanEntry} by target. -@@ -75,7 +75,7 @@ public interface BanList<T> { +@@ -77,7 +77,7 @@ public interface BanList<T> { */ @Deprecated @Nullable @@ -26,7 +26,7 @@ index c229d3bc37c4e454a4b5a93eda1fe6466a4f4e8b..adeff14586351edad412a85a5797c28a /** * Adds a ban to this list. If a previous ban exists, this will -@@ -108,7 +108,7 @@ public interface BanList<T> { +@@ -140,7 +140,7 @@ public interface BanList<T> { * @return an immutable set containing every entry tracked by this list */ @NotNull @@ -36,20 +36,38 @@ index c229d3bc37c4e454a4b5a93eda1fe6466a4f4e8b..adeff14586351edad412a85a5797c28a /** * Gets if a {@link BanEntry} exists for the target, indicating an active diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 4d014215dce2c2ff09a2701accf2db144603c55a..08ae501e97ae2a3f22b1994c9616fc7134cfc0c3 100644 +index 774f9ec6a57d5d16a74ebe998e9ad800b1828029..9b84cb5abdf3db55cbc7ba19c8cd6955bf4fc5ec 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -133,7 +133,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -135,7 +135,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio * (updated) previous ban */ @Nullable - public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Date expires, @Nullable String source); -+ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Date expires, @Nullable String source); ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Date expires, @Nullable String source); // Paper - fix ban list API + + /** + * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will +@@ -149,7 +149,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio + * (updated) previous ban + */ + @Nullable +- public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Instant expires, @Nullable String source); ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Instant expires, @Nullable String source); // Paper - fix ban list API + + /** + * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will +@@ -163,7 +163,7 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio + * (updated) previous ban + */ + @Nullable +- public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Duration duration, @Nullable String source); ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Duration duration, @Nullable String source); // Paper - fix ban list API /** * Checks if this player is whitelisted or not diff --git a/src/main/java/org/bukkit/ban/ProfileBanList.java b/src/main/java/org/bukkit/ban/ProfileBanList.java -index e805e629cede1c4c0674282c930cb67852718c3e..429b6e3730118660585c84319ef09e2e5bb32fd5 100644 +index e805e629cede1c4c0674282c930cb67852718c3e..5248cf08ef83c7304dd76c42a2f646bb81e0efae 100644 --- a/src/main/java/org/bukkit/ban/ProfileBanList.java +++ b/src/main/java/org/bukkit/ban/ProfileBanList.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; @@ -61,7 +79,7 @@ index e805e629cede1c4c0674282c930cb67852718c3e..429b6e3730118660585c84319ef09e2e /** * {@inheritDoc} -@@ -23,8 +23,35 @@ public interface ProfileBanList extends BanList<PlayerProfile> { +@@ -23,8 +23,48 @@ public interface ProfileBanList extends BanList<PlayerProfile> { * @return the entry for the newly created ban, or the entry for the * (updated) previous ban * @throws IllegalArgumentException if ProfilePlayer has an invalid UUID @@ -78,7 +96,7 @@ index e805e629cede1c4c0674282c930cb67852718c3e..429b6e3730118660585c84319ef09e2e + */ + @Nullable BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(com.destroystokyo.paper.profile.@NotNull PlayerProfile target, @Nullable String reason, @Nullable Date expires, @Nullable String source); + -+ // the 3 methods below are added to maintain compat for the PlayerProfile parameter type ++ // the 5 methods below are added to maintain compat for the bukkit.PlayerProfile parameter type + /** + * @deprecated use {@link #getBanEntry(Object)} + */ @@ -96,18 +114,49 @@ index e805e629cede1c4c0674282c930cb67852718c3e..429b6e3730118660585c84319ef09e2e + */ + @Deprecated + void pardon(@NotNull PlayerProfile target); ++ ++ /** ++ * @deprecated use {@link #addBan(Object, String, java.time.Instant, String)} ++ */ ++ @Deprecated ++ @Nullable <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E addBan(@NotNull PlayerProfile target, @Nullable String reason, @Nullable java.time.Instant expires, @Nullable String source); ++ ++ /** ++ * @deprecated use {@link #addBan(Object, String, java.time.Duration, String)} ++ */ ++ @Deprecated ++ @Nullable <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E addBan(@NotNull PlayerProfile target, @Nullable String reason, @Nullable java.time.Duration duration, @Nullable String source); ++ + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d0297f47f18cabf857cf4ce04c529b46525c0f75..06b2b925de745850816d9ce0cf6316412c8d2b49 100644 +index 1c25bdb3479da2d6e43782503c48e8ebda275e96..920424ba408730e63c0e42d24e327fb02c82c61c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -296,7 +296,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -298,7 +298,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * (updated) previous ban */ @Nullable - public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Date expires, @Nullable String source, boolean kickPlayer); -+ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Date expires, @Nullable String source, boolean kickPlayer); // Paper ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Date expires, @Nullable String source, boolean kickPlayer); // Paper - fix ban list API + + /** + * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will +@@ -314,7 +314,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + * (updated) previous ban + */ + @Nullable +- public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Instant expires, @Nullable String source, boolean kickPlayer); ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Instant expires, @Nullable String source, boolean kickPlayer); // Paper - fix ban list API + + /** + * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will +@@ -330,7 +330,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM + * (updated) previous ban + */ + @Nullable +- public BanEntry<PlayerProfile> ban(@Nullable String reason, @Nullable Duration duration, @Nullable String source, boolean kickPlayer); ++ public <E extends BanEntry<? super com.destroystokyo.paper.profile.PlayerProfile>> E ban(@Nullable String reason, @Nullable Duration duration, @Nullable String source, boolean kickPlayer); // Paper - fix ban list API /** * Adds this user's current IP address to the {@link IpBanList}. If a previous ban exists, this will diff --git a/patches/api/0422-Add-whitelist-events.patch b/patches/api/0421-Add-whitelist-events.patch index 236555f3ab..236555f3ab 100644 --- a/patches/api/0422-Add-whitelist-events.patch +++ b/patches/api/0421-Add-whitelist-events.patch diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index 35eeac6761..4587f74b22 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -172,7 +172,7 @@ index 0000000000000000000000000000000000000000..f7d5f785f659aa905000d974f573e43f +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 76dce1e84f5f8f61a866eb3bbdc3e23cc8cc7a5a..0000000000000000000000000000000000000000 +index 241fad1f18c4eaf4283b8179981d1d6e90cd746c..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,587 +0,0 @@ @@ -462,7 +462,7 @@ index 76dce1e84f5f8f61a866eb3bbdc3e23cc8cc7a5a..00000000000000000000000000000000 - <plugin> - <groupId>net.md-5</groupId> - <artifactId>scriptus</artifactId> -- <version>0.4.1</version> +- <version>0.5.0</version> - <executions> - <execution> - <id>ex-spigot</id> @@ -548,7 +548,7 @@ index 76dce1e84f5f8f61a866eb3bbdc3e23cc8cc7a5a..00000000000000000000000000000000 - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> -- <version>3.4.1</version> +- <version>3.5.0</version> - <executions> - <execution> - <phase>package</phase> diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 4d03e74655..9df1c32782 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -79,7 +79,7 @@ index f7d5f785f659aa905000d974f573e43f841e7fc0..59579c22db8e028782f284942fb1e4f9 exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class") } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 4849578ebb117e63a497a1f0365d25a140da4a3e..6c5c05efb58ba8ea919ea14a04ea7e9bc2d702b1 100644 +index 23e88fde465853629c4371d1e1a44d1af493ca3e..5a39201392fefe8da495244fdbc380e882ec938f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -209,7 +209,7 @@ public class Main { @@ -90,7 +90,7 @@ index 4849578ebb117e63a497a1f0365d25a140da4a3e..6c5c05efb58ba8ea919ea14a04ea7e9b + Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -7); + deadline.add(Calendar.DAY_OF_YEAR, -21); diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 7f4ec77dad..9f8f81fe06 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -4600,10 +4600,10 @@ index cda55e481ddbcc1de5478125c5db20ebba168e7d..bacd4d875642cd93c3185f788745dd73 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2f6568effdece27775cacfddf2c9657163aac6ad..81156003f28b68e420d992d6e8d57c5185a9543b 100644 +index 9aa71c85b630590b49a922fcc8d4badd01d46db4..3f5d20c65d9980b57f676d56a074c8e34a0e2fc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -913,6 +913,7 @@ public final class CraftServer implements Server { +@@ -914,6 +914,7 @@ public final class CraftServer implements Server { } org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot @@ -4612,7 +4612,7 @@ index 2f6568effdece27775cacfddf2c9657163aac6ad..81156003f28b68e420d992d6e8d57c51 world.serverLevelData.setDifficulty(config.difficulty); world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 6c5c05efb58ba8ea919ea14a04ea7e9bc2d702b1..2cd2456e73543490d98f0318883f51a7d9bcaa34 100644 +index 5a39201392fefe8da495244fdbc380e882ec938f..e8fb9e3454282ad328e6bc0d078142285d9cfa76 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -141,6 +141,19 @@ public class Main { diff --git a/patches/server/0006-MC-Dev-fixes.patch b/patches/server/0006-MC-Dev-fixes.patch index edb4a1d654..0cedf4efb3 100644 --- a/patches/server/0006-MC-Dev-fixes.patch +++ b/patches/server/0006-MC-Dev-fixes.patch @@ -94,7 +94,7 @@ index 41d6569c00db3d467f6e90d33ebd261529b89f4c..5f051cb22ae77f4d8994b07ac5b963bd }; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8eb949b43e8b403f3d98e36066cabd7cb9ab0e63..a9e30b7b3a666d83b3c595a7975693ccfcf3e8f9 100644 +index a6e12acf65068a2eaea75a7df877f6145a229195..b45950f3fec4540f9a65c7704a34125d9e588dcb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1775,7 +1775,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -201,31 +201,6 @@ index 769614aeb4ca914abcf0f770240a3d4c916f08cd..6c9d163b9f857806461dc72e54713f1a return InteractionResult.PASS; } } -diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 91bb294be2cd8ab3467a62006a5a2751e0bec4ba..5ab7df0042391cb621ed78a187dc20333e344186 100644 ---- a/src/main/java/net/minecraft/world/level/block/SignBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java -@@ -76,18 +76,9 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo - public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - ItemStack itemStack = player.getItemInHand(hand); - Item item = itemStack.getItem(); -- Item signBlockEntity = itemStack.getItem(); -- SignApplicator var10000; -- if (signBlockEntity instanceof SignApplicator signApplicator) { -- var10000 = signApplicator; -- } else { -- var10000 = null; -- } -- -- SignApplicator signApplicator2 = var10000; -+ SignApplicator signApplicator2 = item instanceof SignApplicator signApplicator ? signApplicator : null; // Paper - decompile fixes - boolean bl = signApplicator2 != null && player.mayBuild(); -- BlockEntity bl2 = world.getBlockEntity(pos); -- if (bl2 instanceof SignBlockEntity signBlockEntity) { -+ if (world.getBlockEntity(pos) instanceof SignBlockEntity signBlockEntity) { // Paper - decompile fixes - if (!world.isClientSide) { - boolean bl2 = signBlockEntity.isFacingFrontText(player); - SignText signText = signBlockEntity.getText(bl2); diff --git a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java b/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java index db48010e633165972d2eac339dd7d1fd5a2f5bd8..d818d3ea6d28aa6ffb62127d4efd585d6f2935d1 100644 --- a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java diff --git a/patches/server/0008-CB-fixes.patch b/patches/server/0008-CB-fixes.patch index 0e83ebd93c..686621e73a 100644 --- a/patches/server/0008-CB-fixes.patch +++ b/patches/server/0008-CB-fixes.patch @@ -68,10 +68,10 @@ index 161ad6ab1443b2ce33a2d7d91d189c855db0453b..15a9736a870055d639d03063c7cf67fd this.registryAccess = registryManager; this.structureTemplateManager = structureTemplateManager; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 81156003f28b68e420d992d6e8d57c5185a9543b..d4ad78d3da64bda424d754f514af192543fb6f0b 100644 +index 3f5d20c65d9980b57f676d56a074c8e34a0e2fc8..b7c6c204795592dd5480338043d0da521a916190 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2354,7 +2354,13 @@ public final class CraftServer implements Server { +@@ -2355,7 +2355,13 @@ public final class CraftServer implements Server { Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null"); LootDataManager registry = this.getServer().getLootData(); diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index cb1b5a302b..b13beb23c7 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5526,7 +5526,7 @@ index e6c4379b0fd7c1338e1713281cd9515cb54acecb..a63e7ee5c42bd51312155feab31c6ec4 throw new SkipPacketException(var10); } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a9e30b7b3a666d83b3c595a7975693ccfcf3e8f9..9b34e401040a45393afbb9e984ff421a89f744a0 100644 +index b45950f3fec4540f9a65c7704a34125d9e588dcb..d2a858f4e15920649aaa39fdebfad5b50a788cc5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -296,6 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -6551,7 +6551,7 @@ index ebae711991a3ae35e35c2cffa8d928677c205492..7be97441aed66fa3a21d13ad2211b3e0 public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { // IRegistryCustom.Dimension iregistrycustom_dimension = minecraftserver.registryAccess(); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4a2205fca9b9487b92b120ece69f1548bf764056..ba89c0d7ae99e53350249365d0e035e6f14e1c5f 100644 +index 07220c52935369555f652bdd94692eec910d0fe2..d06430d59259849715e1457a75fd4f52406a34c2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -255,6 +255,8 @@ public class ServerPlayer extends Player { @@ -6646,7 +6646,7 @@ index 337e0a7b3c14e1b1a28744920e0dc0a69e0c5a87..f5829ae484d93b547a5437b85a962134 @Override public void tell(R runnable) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6b94211e45eff227277b5630292a855dd0254238..923b9243d97f9a741009f443d2c126b638fbb753 100644 +index 4d344101aa082c297611daa4d1b0006b85fcb7c8..78c7c779209972186b1244fb678d7208b38e30e3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -323,6 +323,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -6711,10 +6711,10 @@ index a0b5895abc88d297045e05f25bb09527991d43f0..6e0bd0eab0b06a4ac3042496bbb91292 super(type, world); this.xpReward = 5; diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6e0f74b8b59923e2ecddb6720dad2ca39de91fa6..c2b93eaf73ce038559611c272b6e3ecc2bcb903b 100644 +index 194c67d034daf6c584e903721aaf067a243302d5..3f18fb61a47dda559a6997af9c6c043423dd206a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -789,6 +789,25 @@ public final class ItemStack { +@@ -793,6 +793,25 @@ public final class ItemStack { return this.tag != null ? this.tag.getList("Enchantments", 10) : new ListTag(); } @@ -6740,7 +6740,7 @@ index 6e0f74b8b59923e2ecddb6720dad2ca39de91fa6..c2b93eaf73ce038559611c272b6e3ecc public void setTag(@Nullable CompoundTag nbt) { this.tag = nbt; if (this.getItem().canBeDepleted()) { -@@ -1179,6 +1198,7 @@ public final class ItemStack { +@@ -1183,6 +1202,7 @@ public final class ItemStack { // CraftBukkit start @Deprecated public void setItem(Item item) { diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 721b01f4f0..4894cd850f 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -1825,6 +1825,26 @@ index 825ab7534f1ad9787ae2a6c2bf9a300f52cbfc95..53be8a43d784db5e8450c242adeb06f3 + } + // Paper end } +diff --git a/src/main/java/net/minecraft/network/chat/ChatType.java b/src/main/java/net/minecraft/network/chat/ChatType.java +index 618a9335faf9df4a7d0cc971a8e62a0e3b239aa3..375b6d1d1bb491680bdb9f664ed10a9cce1a9cfa 100644 +--- a/src/main/java/net/minecraft/network/chat/ChatType.java ++++ b/src/main/java/net/minecraft/network/chat/ChatType.java +@@ -26,6 +26,7 @@ public record ChatType(ChatTypeDecoration chat, ChatTypeDecoration narration) { + public static final ResourceKey<ChatType> TEAM_MSG_COMMAND_INCOMING = create("team_msg_command_incoming"); + public static final ResourceKey<ChatType> TEAM_MSG_COMMAND_OUTGOING = create("team_msg_command_outgoing"); + public static final ResourceKey<ChatType> EMOTE_COMMAND = create("emote_command"); ++ public static final ResourceKey<ChatType> RAW = create("raw"); // Paper + + private static ResourceKey<ChatType> create(String id) { + return ResourceKey.create(Registries.CHAT_TYPE, new ResourceLocation(id)); +@@ -39,6 +40,7 @@ public record ChatType(ChatTypeDecoration chat, ChatTypeDecoration narration) { + messageTypeRegisterable.register(TEAM_MSG_COMMAND_INCOMING, new ChatType(ChatTypeDecoration.teamMessage("chat.type.team.text"), ChatTypeDecoration.withSender("chat.type.text.narrate"))); + messageTypeRegisterable.register(TEAM_MSG_COMMAND_OUTGOING, new ChatType(ChatTypeDecoration.teamMessage("chat.type.team.sent"), ChatTypeDecoration.withSender("chat.type.text.narrate"))); + messageTypeRegisterable.register(EMOTE_COMMAND, new ChatType(ChatTypeDecoration.withSender("chat.type.emote"), ChatTypeDecoration.withSender("chat.type.emote"))); ++ messageTypeRegisterable.register(RAW, new ChatType(new ChatTypeDecoration("%s", java.util.List.of(ChatTypeDecoration.Parameter.CONTENT), Style.EMPTY), new ChatTypeDecoration("%s", java.util.List.of(ChatTypeDecoration.Parameter.CONTENT), Style.EMPTY))); // Paper + } + + public static ChatType.Bound bind(ResourceKey<ChatType> typeKey, Entity entity) { diff --git a/src/main/java/net/minecraft/network/chat/Component.java b/src/main/java/net/minecraft/network/chat/Component.java index 8f5e07047f88138422ae82143a80427be869a760..37fc353c3e59dd5af2fd6c58ac084fb0e6e155d7 100644 --- a/src/main/java/net/minecraft/network/chat/Component.java @@ -2169,7 +2189,7 @@ index 5f051cb22ae77f4d8994b07ac5b963bd0ff05673..7952635a963e28cb670c8f4869664103 list.forEach((loader) -> { Registry<?> registry = loader.getFirst(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9b34e401040a45393afbb9e984ff421a89f744a0..3250a9310b57351d6d832a8ef42837d990cf6c99 100644 +index d2a858f4e15920649aaa39fdebfad5b50a788cc5..049755ed087a764cd1f0d7df82c21eef7538fbbf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -194,6 +194,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot @@ -2282,7 +2302,7 @@ index 9b34e401040a45393afbb9e984ff421a89f744a0..3250a9310b57351d6d832a8ef42837d9 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ba89c0d7ae99e53350249365d0e035e6f14e1c5f..dc87e56cfcd59bc1505f5b3c0363038e790271a0 100644 +index d06430d59259849715e1457a75fd4f52406a34c2..a0856fc649c50309258f015e623502dd46aeeab4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -161,6 +161,7 @@ import net.minecraft.world.scores.Score; @@ -2387,7 +2407,7 @@ index ba89c0d7ae99e53350249365d0e035e6f14e1c5f..dc87e56cfcd59bc1505f5b3c0363038e // CraftBukkit end this.chatVisibility = packet.chatVisibility(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1bfb51b58c 100644 +index a1a499f8b2a5a12e60b40d716dd539bc438d0128..8205b7cdc235ae7ebd4db6fe9383f5eeb0132438 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -187,6 +187,8 @@ import net.minecraft.world.phys.shapes.VoxelShape; @@ -2399,7 +2419,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b import com.mojang.datafixers.util.Pair; import java.util.Arrays; import java.util.concurrent.ExecutionException; -@@ -252,7 +254,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -254,7 +256,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final int NO_BLOCK_UPDATES_TO_ACK = -1; private static final int TRACKED_MESSAGE_DISCONNECT_THRESHOLD = 4096; private static final Component CHAT_VALIDATION_FAILED = Component.translatable("multiplayer.disconnect.chat_validation_failed"); @@ -2408,7 +2428,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b private final MinecraftServer server; public ServerPlayer player; private int tickCount; -@@ -440,14 +442,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -442,14 +444,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return this.server.isSingleplayerOwner(this.player.getGameProfile()); } @@ -2432,7 +2452,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b // CraftBukkit start - fire PlayerKickEvent if (this.processedDisconnect) { return; -@@ -456,7 +461,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -458,7 +463,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Waitable waitable = new Waitable() { @Override protected Object evaluate() { @@ -2441,7 +2461,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b return null; } }; -@@ -473,9 +478,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -475,9 +480,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } @@ -2453,7 +2473,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); -@@ -487,7 +492,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -489,7 +494,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } this.player.kickLeaveMessage = event.getLeaveMessage(); // CraftBukkit - SPIGOT-3034: Forward leave message to PlayerQuitEvent // Send the possibly modified leave message @@ -2462,7 +2482,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b // CraftBukkit end this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> { -@@ -1786,9 +1791,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1788,9 +1793,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic */ this.player.disconnect(); @@ -2477,7 +2497,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b } // CraftBukkit end this.player.getTextFilter().leave(); -@@ -1885,11 +1892,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1887,11 +1894,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } CompletableFuture<FilteredText> completablefuture = this.filterTextPacket(playerchatmessage.signedContent()); @@ -2491,7 +2511,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b this.broadcastChatMessage(playerchatmessage1); }, this.server.chatExecutor); // CraftBukkit - async chat -@@ -1995,7 +2002,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1997,7 +2004,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment); if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales @@ -2500,7 +2520,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b return Optional.empty(); } else { this.player.resetLastActionTime(); -@@ -2053,7 +2060,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2055,7 +2062,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.handleCommand(s); } else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Do nothing, this is coming from a plugin @@ -2514,7 +2534,7 @@ index ac24831757556215b0723d0fe7dc0ee0c47745db..e2c735f674db15dde5e5baea04af0a1b Player player = this.getCraftPlayer(); AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server)); String originalFormat = event.getFormat(), originalMessage = event.getMessage(); -@@ -2183,7 +2195,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2179,7 +2191,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } }); } else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Re-add "Command Only" flag check @@ -2825,7 +2845,7 @@ index 4c62df5a3781ec9df4a5c5f1b528649e6e8a62d1..affd1b8c7589ba59330dc0b6fc803cce } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index f0c08f3a5094e1faaed70ffdc0eb5b6dd16ed500..8b26e90c0e7affb23fe8f92d757fe3a690b858ec 100644 +index 0a4da811ff200268f40accad7d1f232c80201309..5bd28e1f475aeadaa626a4e9e9e2a1b3a28675f4 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -211,22 +211,22 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @@ -2878,10 +2898,10 @@ index 614e567eb1ef10ac7514909a8425e29ac3627d3d..60596c4ac2ebb8caf19d65591624275b } collection = icons; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb518162328042719 100644 +index b7c6c204795592dd5480338043d0da521a916190..fef313265a5e3f2aea5ed8f767782f4157ec7435 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -611,8 +611,10 @@ public final class CraftServer implements Server { +@@ -612,8 +612,10 @@ public final class CraftServer implements Server { } @Override @@ -2892,7 +2912,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 } @Override -@@ -1468,7 +1470,15 @@ public final class CraftServer implements Server { +@@ -1469,7 +1471,15 @@ public final class CraftServer implements Server { return this.configuration.getInt("settings.spawn-radius", -1); } @@ -2908,7 +2928,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 public String getShutdownMessage() { return this.configuration.getString("settings.shutdown-message"); } -@@ -1636,7 +1646,20 @@ public final class CraftServer implements Server { +@@ -1637,7 +1647,20 @@ public final class CraftServer implements Server { } @Override @@ -2929,7 +2949,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 Set<CommandSender> recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { if (permissible instanceof CommandSender && permissible.hasPermission(permission)) { -@@ -1644,14 +1667,14 @@ public final class CraftServer implements Server { +@@ -1645,14 +1668,14 @@ public final class CraftServer implements Server { } } @@ -2946,7 +2966,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 for (CommandSender recipient : recipients) { recipient.sendMessage(message); -@@ -1914,6 +1937,14 @@ public final class CraftServer implements Server { +@@ -1915,6 +1938,14 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, type); } @@ -2961,7 +2981,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 @Override public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) { Preconditions.checkArgument(type != null, "InventoryType cannot be null"); -@@ -1928,13 +1959,28 @@ public final class CraftServer implements Server { +@@ -1929,13 +1960,28 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, size); } @@ -2990,7 +3010,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 public Merchant createMerchant(String title) { return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title); } -@@ -1999,6 +2045,17 @@ public final class CraftServer implements Server { +@@ -2000,6 +2046,17 @@ public final class CraftServer implements Server { return Thread.currentThread().equals(console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog) } @@ -3008,7 +3028,7 @@ index d4ad78d3da64bda424d754f514af192543fb6f0b..1ad584aedc0212a1e65affcbb5181623 @Override public String getMotd() { return this.console.getMotd(); -@@ -2433,4 +2490,53 @@ public final class CraftServer implements Server { +@@ -2434,4 +2491,53 @@ public final class CraftServer implements Server { return this.spigot; } // Spigot end @@ -3134,7 +3154,7 @@ index 153143b06fc088f3142a8fa17f153d8a344169d8..d01388bbadf3069357cf52463f4104a1 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 2cd2456e73543490d98f0318883f51a7d9bcaa34..a210752cbf3f97b3782f85b3330972e8becfd2f3 100644 +index e8fb9e3454282ad328e6bc0d078142285d9cfa76..ab22205c758768cd0c8a4fc6bca3d7de2e823078 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -20,6 +20,12 @@ public class Main { @@ -3244,10 +3264,10 @@ index 0beb96dc896f63003e1b1ae458b73902bdbe648a..102eb86bad3000f258775ac06ecd1a6d public String getCustomName() { EnchantmentTableBlockEntity enchant = this.getSnapshot(); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 833c1a96a956503d997a80364433c45bfa7c5a96..6ca423ca58f486eec05c55faf055e0cdbabde709 100644 +index 8ea2349ffcfa55bd20343edd4551aa26c88901a6..a19504cf5c98b4d8070dc1ffe322b84e1896d84a 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -25,6 +25,23 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< +@@ -27,6 +27,23 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< this.back = new CraftSignSide(this.getSnapshot().getBackText()); } @@ -3271,7 +3291,7 @@ index 833c1a96a956503d997a80364433c45bfa7c5a96..6ca423ca58f486eec05c55faf055e0cd @Override public String[] getLines() { return this.front.getLines(); -@@ -114,6 +131,20 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< +@@ -120,6 +137,20 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< ((CraftPlayer) player).getHandle().openTextEdit(handle, Side.FRONT == side); } @@ -3653,10 +3673,10 @@ index 446fdca49a5a6999626a7ee3a1d5c168b15a09dd..f9863e138994f6c7a7975a852f106faa public boolean isOp() { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679dcaa3d34 100644 +index 9e884e903f877f8fef036307142cee3b574e829b..498fb1db3091013cbd58aabf8361f961c8a3e755 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -292,14 +292,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -294,14 +294,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getDisplayName() { @@ -3696,7 +3716,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 @Override public String getPlayerListName() { return this.getHandle().listName == null ? getName() : CraftChatMessage.fromComponent(this.getHandle().listName); -@@ -318,42 +343,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -320,42 +345,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } @@ -3748,7 +3768,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 this.getHandle().connection.send(packet); } -@@ -385,6 +410,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -387,6 +412,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.disconnect(message == null ? "" : message); } @@ -3772,7 +3792,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 @Override public void setCompassTarget(Location loc) { Preconditions.checkArgument(loc != null, "Location cannot be null"); -@@ -679,6 +721,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -681,6 +723,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } @@ -3797,7 +3817,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 @Override public void sendSignChange(Location loc, String[] lines) { this.sendSignChange(loc, lines, DyeColor.BLACK); -@@ -702,6 +762,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -704,6 +764,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; Component[] components = CraftSign.sanitizeLines(lines); @@ -3809,7 +3829,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState()); SignText text = sign.getFrontText(); text = text.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData())); -@@ -711,7 +776,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -713,7 +778,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } sign.setText(text, true); @@ -3819,7 +3839,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 } @Override -@@ -1636,7 +1702,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1668,7 +1734,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url) { @@ -3828,7 +3848,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 } @Override -@@ -1651,7 +1717,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1683,7 +1749,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url, byte[] hash, boolean force) { @@ -3837,7 +3857,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 } @Override -@@ -1667,6 +1733,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1699,6 +1765,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } @@ -3859,7 +3879,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 public void addChannel(String channel) { Preconditions.checkState(this.channels.size() < 128, "Cannot register channel '%s'. Too many channels registered!", channel); channel = StandardMessenger.validateAndCorrectChannel(channel); -@@ -2065,6 +2146,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2097,6 +2178,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return (this.getHandle().clientViewDistance == null) ? Bukkit.getViewDistance() : this.getHandle().clientViewDistance; } @@ -3872,7 +3892,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 @Override public int getPing() { return this.getHandle().latency; -@@ -2115,6 +2202,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2147,6 +2234,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().allowsListing(); } @@ -4126,7 +4146,7 @@ index 14bb6b7555f4e9d69b50e0c54d50e770e21d6ed5..845288cc687e7cc8a7ec2cb632c8c679 private final Player.Spigot spigot = new Player.Spigot() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java -index 2becf197a5c2d94f23f72a9b20cb2cd05a0807df..99096c1e3f045e4a99335faedfb8e77e99690299 100644 +index 1cd2af11e8fd43ebc9fd5e0dfc53ac2de4532399..7bfb83d3ac38c5c270d77d9794a55a363ac6302b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java @@ -38,6 +38,17 @@ public class CraftTextDisplay extends CraftDisplay implements TextDisplay { @@ -4148,10 +4168,10 @@ index 2becf197a5c2d94f23f72a9b20cb2cd05a0807df..99096c1e3f045e4a99335faedfb8e77e @Override public int getLineWidth() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 41dc65eeabcece351423209c6289890bfda4de5c..8c9e545b8508172be51c9f244d7067509d32aef9 100644 +index f0e5a161db33fbef97d8f29cb1ac8ea32e8e837f..db30af9b6b9e737066c8a011e4dfe377f800f523 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -851,9 +851,9 @@ public class CraftEventFactory { +@@ -877,9 +877,9 @@ public class CraftEventFactory { return event; } @@ -4163,7 +4183,7 @@ index 41dc65eeabcece351423209c6289890bfda4de5c..8c9e545b8508172be51c9f244d706750 event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel org.bukkit.World world = entity.getWorld(); -@@ -878,7 +878,7 @@ public class CraftEventFactory { +@@ -904,7 +904,7 @@ public class CraftEventFactory { * Server methods */ public static ServerListPingEvent callServerListPingEvent(Server craftServer, InetAddress address, String motd, int numPlayers, int maxPlayers) { @@ -4173,7 +4193,7 @@ index 41dc65eeabcece351423209c6289890bfda4de5c..8c9e545b8508172be51c9f244d706750 return event; } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index 51caf09aa96b6e1f3e856061050fd6128fa736d9..301e89f638e38ad216d545a3cb5b7375695e6fe6 100644 +index bfaa48cfda08c2716f61032b71d38285a9f715e8..1b526fff47e5a3d9a5325c73966dd2bf3dbbdc19 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -72,6 +72,13 @@ public class CraftContainer extends AbstractContainerMenu { @@ -4295,26 +4315,26 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec public String getTitle() { return this.title; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index fb58cfd68c8ababbf9486c9a5a1795b1ac9d5817..b187c4f436ac44a529675869dbf5bfddc4fac86f 100644 +index 87f57266d4cb3a89a38cf7871e5872d29f6d15b9..45872e28cabc655c170bee163d471acf5d913c00 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -437,4 +437,17 @@ public final class CraftItemFactory implements ItemFactory { - public Material updateMaterial(ItemMeta meta, Material material) throws IllegalArgumentException { - return ((CraftMetaItem) meta).updateMaterial(material); +@@ -456,4 +456,17 @@ public final class CraftItemFactory implements ItemFactory { + + return CraftMagicNumbers.getMaterial(nmsItem); } + -+ // Paper start ++ // Paper start - Adventure + @Override + public net.kyori.adventure.text.event.HoverEvent<net.kyori.adventure.text.event.HoverEvent.ShowItem> asHoverEvent(final ItemStack item, final java.util.function.UnaryOperator<net.kyori.adventure.text.event.HoverEvent.ShowItem> op) { + final net.minecraft.nbt.CompoundTag tag = CraftItemStack.asNMSCopy(item).getTag(); -+ return net.kyori.adventure.text.event.HoverEvent.showItem(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowItem.of(item.getType().getKey(), item.getAmount(), io.papermc.paper.adventure.PaperAdventure.asBinaryTagHolder(tag)))); ++ return net.kyori.adventure.text.event.HoverEvent.showItem(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowItem.showItem(item.getType().getKey(), item.getAmount(), io.papermc.paper.adventure.PaperAdventure.asBinaryTagHolder(tag)))); + } + + @Override + public [email protected] Component displayName(@org.jetbrains.annotations.NotNull ItemStack itemStack) { + return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName()); + } -+ // Paper end ++ // Paper end - Adventure } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java index 9e05a8515c5f6f340182e91150fcad8bbf80a22b..adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3 100644 @@ -4758,7 +4778,7 @@ index b47f18b1e448807a17ca9f2ae9609680233da837..9683d7d103af66fffd68c11abc38fb4f } diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java -index b49cc2880fbecfd48d07c2e390c9e2aa2e09b848..de5f382656f9fd08f6ae1795c69743c604d62d5c 100644 +index 6c6d41569e0c7e4d4d17b63b81b955a6dc30afa0..ef1b0b716b11327a8f2856f51545aaba355ce74e 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java @@ -31,6 +31,21 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective @@ -4781,28 +4801,28 @@ index b49cc2880fbecfd48d07c2e390c9e2aa2e09b848..de5f382656f9fd08f6ae1795c69743c6 + } + // Paper end @Override - public String getDisplayName() throws IllegalStateException { + public String getDisplayName() { this.checkState(); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java -index f978617eaa74ff1fa0ab0acec3b6ccd14e2db55d..2471a6d0b7a8086cf4c0a41b10c05ed50d790d11 100644 +index e9cdca6d5fac186ef18167e183518ecade7b4471..3f09420ba9268ac1dc5440c0739744370c0de319 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java @@ -27,6 +27,33 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { - public CraftObjective registerNewObjective(String name, String criteria) throws IllegalArgumentException { + public CraftObjective registerNewObjective(String name, String criteria) { return this.registerNewObjective(name, criteria, name); } -+ // Paper start ++ // Paper start - Adventure + @Override + public CraftObjective registerNewObjective(String name, String criteria, net.kyori.adventure.text.Component displayName) { -+ return registerNewObjective(name, CraftCriteria.getFromBukkit(criteria), displayName, RenderType.INTEGER); ++ return this.registerNewObjective(name, CraftCriteria.getFromBukkit(criteria), displayName, RenderType.INTEGER); + } + @Override + public CraftObjective registerNewObjective(String name, String criteria, net.kyori.adventure.text.Component displayName, RenderType renderType) { -+ return registerNewObjective(name, CraftCriteria.getFromBukkit(criteria), displayName, renderType); ++ return this.registerNewObjective(name, CraftCriteria.getFromBukkit(criteria), displayName, renderType); + } + @Override + public CraftObjective registerNewObjective(String name, Criteria criteria, net.kyori.adventure.text.Component displayName) throws IllegalArgumentException { -+ return registerNewObjective(name, criteria, displayName, RenderType.INTEGER); ++ return this.registerNewObjective(name, criteria, displayName, RenderType.INTEGER); + } + @Override + public CraftObjective registerNewObjective(String name, Criteria criteria, net.kyori.adventure.text.Component displayName, RenderType renderType) throws IllegalArgumentException { @@ -4814,33 +4834,32 @@ index f978617eaa74ff1fa0ab0acec3b6ccd14e2db55d..2471a6d0b7a8086cf4c0a41b10c05ed5 + Preconditions.checkArgument(renderType != null, "RenderType cannot be null"); + Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length()); + Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name); -+ net.minecraft.world.scores.Objective objective = board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType)); ++ net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType)); + return new CraftObjective(this, objective); + } -+ // Paper end ++ // Paper end - Adventure @Override - public CraftObjective registerNewObjective(String name, String criteria, String displayName) throws IllegalArgumentException { -@@ -45,16 +72,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { + public CraftObjective registerNewObjective(String name, String criteria, String displayName) { +@@ -45,15 +72,7 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { @Override - public CraftObjective registerNewObjective(String name, Criteria criteria, String displayName, RenderType renderType) throws IllegalArgumentException { + public CraftObjective registerNewObjective(String name, Criteria criteria, String displayName, RenderType renderType) { - Preconditions.checkArgument(name != null, "Objective name cannot be null"); - Preconditions.checkArgument(criteria != null, "Criteria cannot be null"); - Preconditions.checkArgument(displayName != null, "Display name cannot be null"); - Preconditions.checkArgument(renderType != null, "RenderType cannot be null"); - Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length()); -- Preconditions.checkArgument(displayName.length() <= 128, "The display name '%s' is longer than the limit of 128 characters (%s)", displayName, displayName.length()); - Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name); - - net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, CraftChatMessage.fromStringOrNull(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType)); - return new CraftObjective(this, objective); -+ return registerNewObjective(name, criteria, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(displayName), renderType); // Paper ++ return this.registerNewObjective(name, criteria, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(displayName), renderType); // Paper - Adventure } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -index 4de9d57559e3787089a542fd912e5b28973fe73e..772206a43950db2726bd79911438e2aec2d7189c 100644 +index 5540a766bc7edf8985058e29cc419c2c6b1d4428..baff11728120fda1740d5e15163760f50fe1cd1d 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java @@ -26,6 +26,63 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { @@ -4906,7 +4925,7 @@ index 4de9d57559e3787089a542fd912e5b28973fe73e..772206a43950db2726bd79911438e2ae + // Paper end @Override - public String getDisplayName() throws IllegalStateException { + public String getDisplayName() { diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java index 78ea79b66cc9e90402ef5cdc2e5e04e0c74b1c26..4fede2161792ba3e7cdf0cc5a1f533188becc6f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch index 7be53c5664..e001415eb4 100644 --- a/patches/server/0011-Paper-command.patch +++ b/patches/server/0011-Paper-command.patch @@ -615,10 +615,10 @@ index 2ac30ef2dd72582f2b7f6a05b1f94b12b44fafc9..a01d423f44b3e547b4fa4d6654f9df63 this.setPvpAllowed(dedicatedserverproperties.pvp); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1ad584aedc0212a1e65affcbb518162328042719..c50f9e73d4301db8cc1043237ca8767fafea9828 100644 +index fef313265a5e3f2aea5ed8f767782f4157ec7435..06cfbdfaa849cac2decf8900bb0dc28a11f3fead 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -937,6 +937,7 @@ public final class CraftServer implements Server { +@@ -938,6 +938,7 @@ public final class CraftServer implements Server { this.commandMap.clearCommands(); this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot @@ -626,7 +626,7 @@ index 1ad584aedc0212a1e65affcbb518162328042719..c50f9e73d4301db8cc1043237ca8767f this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2530,6 +2531,34 @@ public final class CraftServer implements Server { +@@ -2531,6 +2532,34 @@ public final class CraftServer implements Server { // Paper end // Paper start diff --git a/patches/server/0013-Paper-Plugins.patch b/patches/server/0013-Paper-Plugins.patch index cafc6f09bd..23687aafc8 100644 --- a/patches/server/0013-Paper-Plugins.patch +++ b/patches/server/0013-Paper-Plugins.patch @@ -6972,10 +6972,10 @@ index 35e7f8e7b19c217fa5f3f55abb0f8b9cd6b16f18..72c2f0bf9434e09a0dd51294d3a2200f Bootstrap.validate(); Util.startTimerHackThread(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c50f9e73d4301db8cc1043237ca8767fafea9828..533017ee385cd070178af14cffb4dc0e600b28d8 100644 +index 06cfbdfaa849cac2decf8900bb0dc28a11f3fead..b8cc3cd61472b1b9103316b79a40e7893d333ee4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -271,7 +271,8 @@ public final class CraftServer implements Server { +@@ -272,7 +272,8 @@ public final class CraftServer implements Server { private final CraftCommandMap commandMap = new CraftCommandMap(this); private final SimpleHelpMap helpMap = new SimpleHelpMap(this); private final StandardMessenger messenger = new StandardMessenger(); @@ -6985,7 +6985,7 @@ index c50f9e73d4301db8cc1043237ca8767fafea9828..533017ee385cd070178af14cffb4dc0e private final StructureManager structureManager; protected final DedicatedServer console; protected final DedicatedPlayerList playerList; -@@ -421,24 +422,7 @@ public final class CraftServer implements Server { +@@ -422,24 +423,7 @@ public final class CraftServer implements Server { } public void loadPlugins() { @@ -7011,7 +7011,7 @@ index c50f9e73d4301db8cc1043237ca8767fafea9828..533017ee385cd070178af14cffb4dc0e } public void enablePlugins(PluginLoadOrder type) { -@@ -527,15 +511,17 @@ public final class CraftServer implements Server { +@@ -528,15 +512,17 @@ public final class CraftServer implements Server { private void enablePlugin(Plugin plugin) { try { List<Permission> perms = plugin.getDescription().getPermissions(); @@ -7035,7 +7035,7 @@ index c50f9e73d4301db8cc1043237ca8767fafea9828..533017ee385cd070178af14cffb4dc0e this.pluginManager.enablePlugin(plugin); } catch (Throwable ex) { -@@ -961,6 +947,7 @@ public final class CraftServer implements Server { +@@ -962,6 +948,7 @@ public final class CraftServer implements Server { "This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin" )); } diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 88fb14354d..0c6b3dba6c 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -732,7 +732,7 @@ index fc4dcd801480fe6d89a985de411baa9a3a66f6ef..4a1148a76020089caf01f888f87afdbb } catch (Exception exception) { if (listener.shouldPropagateHandlingExceptions()) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3250a9310b57351d6d832a8ef42837d990cf6c99..f0cd94f877a83485ab8e96e1c4e00bf658f227b7 100644 +index 049755ed087a764cd1f0d7df82c21eef7538fbbf..6994fff6ce9b946adba7dabf84b165f404495257 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -189,7 +189,7 @@ import org.bukkit.event.player.AsyncPlayerChatPreviewEvent; @@ -1270,10 +1270,10 @@ index 7be97441aed66fa3a21d13ad2211b3e0e08120c0..7cb5abfa89f842194325d26c6e95b494 this.entityManager.saveAll(); } else { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e2c735f674db15dde5e5baea04af0a1bfb51b58c..6aa687542ee86b1c8273d9ed26bca0999a742c64 100644 +index 8205b7cdc235ae7ebd4db6fe9383f5eeb0132438..0c8bf95ae50a089a5d075d965b4df655aaece4e6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -339,7 +339,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -341,7 +341,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void tick() { @@ -1281,7 +1281,7 @@ index e2c735f674db15dde5e5baea04af0a1bfb51b58c..6aa687542ee86b1c8273d9ed26bca099 if (this.ackBlockChangesUpTo > -1) { this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo)); this.ackBlockChangesUpTo = -1; -@@ -420,7 +419,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -422,7 +421,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(Component.translatable("multiplayer.disconnect.idling")); } @@ -1289,7 +1289,7 @@ index e2c735f674db15dde5e5baea04af0a1bfb51b58c..6aa687542ee86b1c8273d9ed26bca099 } -@@ -2147,7 +2145,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2143,7 +2141,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } private void handleCommand(String s) { @@ -1298,7 +1298,7 @@ index e2c735f674db15dde5e5baea04af0a1bfb51b58c..6aa687542ee86b1c8273d9ed26bca099 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2157,7 +2155,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2153,7 +2151,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -1307,7 +1307,7 @@ index e2c735f674db15dde5e5baea04af0a1bfb51b58c..6aa687542ee86b1c8273d9ed26bca099 return; } -@@ -2170,7 +2168,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2166,7 +2164,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -1341,7 +1341,7 @@ index d3dc7752aadf36985660d04dcb4377a69dfeddff..b922654c0b0b1b0d03beb20bb1944b81 public UserWhiteList getWhiteList() { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 923b9243d97f9a741009f443d2c126b638fbb753..bbc5ef297b740ab769e8c030e5af6f573259d953 100644 +index 78c7c779209972186b1244fb678d7208b38e30e3..8fdac0e7bb0b9374ebdb82673d0579fff22af5e3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -134,7 +134,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent; @@ -1632,10 +1632,10 @@ index 0eb09ce5c850d85ffd7229d27cf06b3e0edda11b..cc1d7626a82881c4410d65c6a33dadae }; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 533017ee385cd070178af14cffb4dc0e600b28d8..f5a973a54e9f194891aac409151933f1779b8d28 100644 +index b8cc3cd61472b1b9103316b79a40e7893d333ee4..4167b82564c51000e1ea9bffb234145775fc2993 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -371,7 +371,7 @@ public final class CraftServer implements Server { +@@ -372,7 +372,7 @@ public final class CraftServer implements Server { this.saveCommandsConfig(); this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); @@ -1644,7 +1644,7 @@ index 533017ee385cd070178af14cffb4dc0e600b28d8..f5a973a54e9f194891aac409151933f1 this.overrideSpawnLimits(); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); -@@ -2447,12 +2447,31 @@ public final class CraftServer implements Server { +@@ -2448,12 +2448,31 @@ public final class CraftServer implements Server { private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot() { @@ -1846,10 +1846,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 845288cc687e7cc8a7ec2cb632c8c679dcaa3d34..57d714cc8724db1fe75ec5acf6cb0f20dc9bce12 100644 +index 498fb1db3091013cbd58aabf8361f961c8a3e755..cf87f197d860567746dcae2a15946fed0b1a1d85 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2523,6 +2523,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2555,6 +2555,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR)); } diff --git a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch index 7ca507dfa1..7827f411b0 100644 --- a/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch +++ b/patches/server/0018-Add-command-line-option-to-load-extra-plugin-jars-no.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add command line option to load extra plugin jars not in the ex: java -jar paperclip.jar nogui -add-plugin=/path/to/plugin.jar -add-plugin=/path/to/another/plugin_jar.jar diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f5a973a54e9f194891aac409151933f1779b8d28..a3bd22e4b37a03800e3261b769433d47d0c21ff7 100644 +index 4167b82564c51000e1ea9bffb234145775fc2993..6e2a6901ce9204b232afa1ff390dfe1a453b20a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -425,6 +425,35 @@ public final class CraftServer implements Server { +@@ -426,6 +426,35 @@ public final class CraftServer implements Server { io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.INSTANCE.enter(io.papermc.paper.plugin.entrypoint.Entrypoint.PLUGIN); // Paper - replace implementation } @@ -47,7 +47,7 @@ index f5a973a54e9f194891aac409151933f1779b8d28..a3bd22e4b37a03800e3261b769433d47 if (type == PluginLoadOrder.STARTUP) { this.helpMap.clear(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a210752cbf3f97b3782f85b3330972e8becfd2f3..1d86415570b906ecf2f2c6915694ee26210d2219 100644 +index ab22205c758768cd0c8a4fc6bca3d7de2e823078..ff955d3a20bf953770cc81f8b89a6d4425a5f813 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -159,6 +159,12 @@ public class Main { diff --git a/patches/server/0019-Rewrite-chunk-system.patch b/patches/server/0019-Rewrite-chunk-system.patch index 0cc773795d..138a61ce46 100644 --- a/patches/server/0019-Rewrite-chunk-system.patch +++ b/patches/server/0019-Rewrite-chunk-system.patch @@ -16829,7 +16829,7 @@ index 72c2f0bf9434e09a0dd51294d3a2200f1e0ed1b1..5d56c35d6d3478dbc53e4f5c3547d4dc DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, worldLoader.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f0cd94f877a83485ab8e96e1c4e00bf658f227b7..bea4e947577ee2f5fd680eb932409283f8504ee7 100644 +index 6994fff6ce9b946adba7dabf84b165f404495257..ce9f408ff7394d931bc015c08e9db8221b8f7f39 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -20180,7 +20180,7 @@ index 7cb5abfa89f842194325d26c6e95b49460c5968f..995be2fd84ce343d7430d9658f91868e @Override diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc87e56cfcd59bc1505f5b3c0363038e790271a0..172ea32dfc93b2a2f28b5cdd520c07f8a04f2665 100644 +index a0856fc649c50309258f015e623502dd46aeeab4..5a18f4649b64d47f429eb6c1dbb6238aab3eacd2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,48 @@ public class ServerPlayer extends Player { @@ -20485,10 +20485,10 @@ index e96a0ca47e4701ba187555bd92c968345bc85677..73b96f804079288e9c5fcc11da54e61e + // Paper end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6aa687542ee86b1c8273d9ed26bca0999a742c64..142ffdf61b8f69e9d948b75a424de97ee31e1a87 100644 +index 0c8bf95ae50a089a5d075d965b4df655aaece4e6..713cd247615f91fc0f762e59eae35a376ffce754 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -788,6 +788,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -790,6 +790,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.disconnect(Component.translatable("disconnect.spam")); return; } @@ -20654,7 +20654,7 @@ index 12e72ad737b1219fcdf88d344d41621d9fd5feec..e0bfeebeaac1aaea64bc07cdfdf7790e if (flag1) { ++this.converted; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bbc5ef297b740ab769e8c030e5af6f573259d953..17841455d5afd60eca367591b06e22f69ee23ae4 100644 +index 8fdac0e7bb0b9374ebdb82673d0579fff22af5e3..48ac0559e32a1b6b26a00978cf9ef6a1c13e674b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -327,6 +327,58 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -22646,10 +22646,10 @@ index bf4b2f89d3a7133155c6272379c742318b2c1514..33677ec811ceab939c419bf7d31b9958 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a3bd22e4b37a03800e3261b769433d47d0c21ff7..db1895c2227fd41d9d6ce3f8f0ca2ceb41610f9d 100644 +index 6e2a6901ce9204b232afa1ff390dfe1a453b20a2..2d0d6dbcb515de0d81079a1d6b68c9b2bd973893 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1184,7 +1184,7 @@ public final class CraftServer implements Server { +@@ -1185,7 +1185,7 @@ public final class CraftServer implements Server { this.console.addLevel(internal); this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal); @@ -22658,7 +22658,7 @@ index a3bd22e4b37a03800e3261b769433d47d0c21ff7..db1895c2227fd41d9d6ce3f8f0ca2ceb this.pluginManager.callEvent(new WorldLoadEvent(internal.getWorld())); return internal.getWorld(); -@@ -1228,7 +1228,7 @@ public final class CraftServer implements Server { +@@ -1229,7 +1229,7 @@ public final class CraftServer implements Server { } handle.getChunkSource().close(save); @@ -22667,7 +22667,7 @@ index a3bd22e4b37a03800e3261b769433d47d0c21ff7..db1895c2227fd41d9d6ce3f8f0ca2ceb handle.convertable.close(); } catch (Exception ex) { this.getLogger().log(Level.SEVERE, null, ex); -@@ -2059,7 +2059,7 @@ public final class CraftServer implements Server { +@@ -2060,7 +2060,7 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { @@ -22796,10 +22796,10 @@ index d01388bbadf3069357cf52463f4104a1be4d2b56..b3dfa35bc41191883814c78693a0d958 // Spigot start private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 57d714cc8724db1fe75ec5acf6cb0f20dc9bce12..5eb25bb87443b533029ac49dead86173b7ab55eb 100644 +index cf87f197d860567746dcae2a15946fed0b1a1d85..3b1dbfe6f03e62ac9e12066d41516de157f99719 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -193,6 +193,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -195,6 +195,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = System.currentTimeMillis(); } @@ -22849,7 +22849,7 @@ index 57d714cc8724db1fe75ec5acf6cb0f20dc9bce12..5eb25bb87443b533029ac49dead86173 return this.getHandle().getGameProfile(); } diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java -index 2f0dea0f9540d07f8b38029652fd66c1871dd97c..a7fe78e655a0f4a2c4464e334ea04cf95b9afcd0 100644 +index 02173e8d859d6731836239e0d2dff2be4680e7d1..c3972ba41ad61af4c423e6f942ac984dc61716f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java @@ -265,7 +265,7 @@ public class CustomChunkGenerator extends InternalChunkGenerator { diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index 0b09e566b0..073f6932ba 100644 --- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -19,10 +19,10 @@ index bea4e947577ee2f5fd680eb932409283f8504ee7..b9a49f92e38daf4f80b6d3bf465eb9d2 public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index db1895c2227fd41d9d6ce3f8f0ca2ceb41610f9d..4a45d0d4d2e8d7bd0728225a70b9d469058bfa3e 100644 +index 2d0d6dbcb515de0d81079a1d6b68c9b2bd973893..d5731088df47fa49e3248dfbcd755de7cd91efbd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -262,7 +262,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; +@@ -263,7 +263,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot public final class CraftServer implements Server { @@ -32,11 +32,11 @@ index db1895c2227fd41d9d6ce3f8f0ca2ceb41610f9d..4a45d0d4d2e8d7bd0728225a70b9d469 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 1d86415570b906ecf2f2c6915694ee26210d2219..d9424ce7726eba4a352444b53d31c788d0923049 100644 +index ff955d3a20bf953770cc81f8b89a6d4425a5f813..268192b06592eaa56a454e0f02b2d848f766d9ac 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -240,12 +240,25 @@ public class Main { - deadline.add(Calendar.DAY_OF_YEAR, -7); + deadline.add(Calendar.DAY_OF_YEAR, -21); if (buildDate.before(deadline.getTime())) { System.err.println("*** Error, this build is outdated ***"); - System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***"); diff --git a/patches/server/0030-Player-affects-spawning-API.patch b/patches/server/0030-Player-affects-spawning-API.patch index b8c4e8dee4..9876f7d4a6 100644 --- a/patches/server/0030-Player-affects-spawning-API.patch +++ b/patches/server/0030-Player-affects-spawning-API.patch @@ -137,10 +137,10 @@ index be6e3e21ad62da01e5e2dd78e300cbc8efdbeb42..ea98625fe7c00743b8df74a24e6d4b75 for(Player player : this.players()) { if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5eb25bb87443b533029ac49dead86173b7ab55eb..7bcf858bf9a0ab97a89efc26a22376c46229d1ca 100644 +index 3b1dbfe6f03e62ac9e12066d41516de157f99719..d5f858f07a0b93e439acf676f4c5eefa61f50db0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2202,8 +2202,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2234,8 +2234,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { return this.getHandle().locale; diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch index f13069d771..337c022360 100644 --- a/patches/server/0031-Further-improve-server-tick-loop.patch +++ b/patches/server/0031-Further-improve-server-tick-loop.patch @@ -145,10 +145,10 @@ index b9a49f92e38daf4f80b6d3bf465eb9d249606976..71c8bb318b2e99b7d0b91196ac0b1b5b this.startMetricsRecordingTick(); this.profiler.push("tick"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4a45d0d4d2e8d7bd0728225a70b9d469058bfa3e..68692c36a0db6ac3048dcfac91c154974e5e917f 100644 +index d5731088df47fa49e3248dfbcd755de7cd91efbd..9b725fe12c6f81b02ebea7a12a7c1312a27c6cb1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2472,6 +2472,17 @@ public final class CraftServer implements Server { +@@ -2473,6 +2473,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } diff --git a/patches/server/0032-Only-refresh-abilities-if-needed.patch b/patches/server/0032-Only-refresh-abilities-if-needed.patch index d22500a8e2..046893c840 100644 --- a/patches/server/0032-Only-refresh-abilities-if-needed.patch +++ b/patches/server/0032-Only-refresh-abilities-if-needed.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7bcf858bf9a0ab97a89efc26a22376c46229d1ca..908cff4daf9c4218c8f93fdb7df9e9fa65b06d6f 100644 +index d5f858f07a0b93e439acf676f4c5eefa61f50db0..bd570b123d571437e8b2af8c1e68e0d5d66ee37b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1877,12 +1877,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1909,12 +1909,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setFlying(boolean value) { diff --git a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch index d6af279094..c26fe860cd 100644 --- a/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch +++ b/patches/server/0045-Implement-PlayerLocaleChangeEvent.patch @@ -30,10 +30,10 @@ index 1ef48b8415242942f00c6a76faa1de2865e11358..bcf0d4cfbfbae254bc74ad6389af372a this.locale = packet.language; // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 908cff4daf9c4218c8f93fdb7df9e9fa65b06d6f..705734e2f26f8deab8ac9ad929d7b5e29181ace3 100644 +index bd570b123d571437e8b2af8c1e68e0d5d66ee37b..f5e4713bd9f6d0661f4e8d45c0b7cfffcb2bce57 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2202,8 +2202,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2234,8 +2234,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public String getLocale() { diff --git a/patches/server/0052-Ensure-commands-are-not-ran-async.patch b/patches/server/0052-Ensure-commands-are-not-ran-async.patch index 1c3081a40c..cbf81f326b 100644 --- a/patches/server/0052-Ensure-commands-are-not-ran-async.patch +++ b/patches/server/0052-Ensure-commands-are-not-ran-async.patch @@ -21,10 +21,10 @@ character. Co-authored-by: Jake Potrebic <[email protected]> diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 142ffdf61b8f69e9d948b75a424de97ee31e1a87..bd6b4a13b18bd13a6024c92a247503a87102e7c5 100644 +index 713cd247615f91fc0f762e59eae35a376ffce754..c69a2da951af082b8dc90baf35b7e020ffda0b5e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2044,7 +2044,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2046,7 +2046,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return true; } @@ -33,7 +33,7 @@ index 142ffdf61b8f69e9d948b75a424de97ee31e1a87..bd6b4a13b18bd13a6024c92a247503a8 for (int i = 0; i < message.length(); ++i) { if (!SharedConstants.isAllowedChatCharacter(message.charAt(i))) { return true; -@@ -2061,7 +2061,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2063,7 +2063,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } OutgoingChatMessage outgoing = OutgoingChatMessage.create(original); @@ -42,7 +42,7 @@ index 142ffdf61b8f69e9d948b75a424de97ee31e1a87..bd6b4a13b18bd13a6024c92a247503a8 this.handleCommand(s); } else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) { // Do nothing, this is coming from a plugin -@@ -2151,7 +2151,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2147,7 +2147,29 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } @@ -74,10 +74,10 @@ index 142ffdf61b8f69e9d948b75a424de97ee31e1a87..bd6b4a13b18bd13a6024c92a247503a8 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 68692c36a0db6ac3048dcfac91c154974e5e917f..06bb2fd95dd0193101f8ee4e9082df0c079a3dd7 100644 +index 9b725fe12c6f81b02ebea7a12a7c1312a27c6cb1..40c874d8f6a4d281078aadc34602bfbc6389df2a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -885,6 +885,28 @@ public final class CraftServer implements Server { +@@ -886,6 +886,28 @@ public final class CraftServer implements Server { Preconditions.checkArgument(commandLine != null, "commandLine cannot be null"); org.spigotmc.AsyncCatcher.catchOp("command dispatch"); // Spigot @@ -107,10 +107,10 @@ index 68692c36a0db6ac3048dcfac91c154974e5e917f..06bb2fd95dd0193101f8ee4e9082df0c 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 705734e2f26f8deab8ac9ad929d7b5e29181ace3..d96e0bb4277d83602d4062dc33e6e420a28bf2da 100644 +index f5e4713bd9f6d0661f4e8d45c0b7cfffcb2bce57..d9031a89cc087fef8c39bcb93c68d07b8b2ab474 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -490,7 +490,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -492,7 +492,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; diff --git a/patches/server/0054-Expose-server-CommandMap.patch b/patches/server/0054-Expose-server-CommandMap.patch index 630c4232a6..59d197fc04 100644 --- a/patches/server/0054-Expose-server-CommandMap.patch +++ b/patches/server/0054-Expose-server-CommandMap.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 06bb2fd95dd0193101f8ee4e9082df0c079a3dd7..bb7f5364a3aa9680cd0cef1bd3e12ccf69491358 100644 +index 40c874d8f6a4d281078aadc34602bfbc6389df2a..a4d530e81a319ea53122760e352083b9708f9f04 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2034,6 +2034,7 @@ public final class CraftServer implements Server { +@@ -2035,6 +2035,7 @@ public final class CraftServer implements Server { return this.helpMap; } diff --git a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch index 0f3a1843f3..6fadafb931 100644 --- a/patches/server/0056-Player-Tab-List-and-Title-APIs.patch +++ b/patches/server/0056-Player-Tab-List-and-Title-APIs.patch @@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4 // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d96e0bb4277d83602d4062dc33e6e420a28bf2da..268cd764c1543a9a7e43013f47a81aaa5a55d108 100644 +index d9031a89cc087fef8c39bcb93c68d07b8b2ab474..b6f8885196f806174f7d611c778fc1f74129d6d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,6 @@ @@ -73,7 +73,7 @@ index d96e0bb4277d83602d4062dc33e6e420a28bf2da..268cd764c1543a9a7e43013f47a81aaa import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.io.BaseEncoding; -@@ -332,6 +333,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -334,6 +335,100 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/server/0058-Add-velocity-warnings.patch b/patches/server/0058-Add-velocity-warnings.patch index 9212f03f1f..ddd530562c 100644 --- a/patches/server/0058-Add-velocity-warnings.patch +++ b/patches/server/0058-Add-velocity-warnings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add velocity warnings diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index bb7f5364a3aa9680cd0cef1bd3e12ccf69491358..bc8d567d549ae8fb3a972cb93b50de82daf9fb49 100644 +index a4d530e81a319ea53122760e352083b9708f9f04..81758ba9193fad39a291c635c41d2cdbef34c1c2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -298,6 +298,7 @@ public final class CraftServer implements Server { +@@ -299,6 +299,7 @@ public final class CraftServer implements Server { public boolean ignoreVanillaPermissions = false; private final List<CraftPlayer> playerView; public int reloadCount; diff --git a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch index a6d5ccab2c..1e45747e48 100644 --- a/patches/server/0059-Configurable-inter-world-teleportation-safety.patch +++ b/patches/server/0059-Configurable-inter-world-teleportation-safety.patch @@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended This only is the case if the player is teleporting between worlds. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 268cd764c1543a9a7e43013f47a81aaa5a55d108..78d31da062792c12f069e929ebe89ab5a624b7d8 100644 +index b6f8885196f806174f7d611c778fc1f74129d6d4..3ec282a272257996fad17c3ac23b334aca344bb0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1158,7 +1158,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1160,7 +1160,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { entity.connection.teleport(to); } else { // The respawn reason should never be used if the passed location is non null. diff --git a/patches/server/0065-Complete-resource-pack-API.patch b/patches/server/0065-Complete-resource-pack-API.patch index 0c45491c5d..e1dea6c95b 100644 --- a/patches/server/0065-Complete-resource-pack-API.patch +++ b/patches/server/0065-Complete-resource-pack-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bd6b4a13b18bd13a6024c92a247503a87102e7c5..f4972161eace2af0c857374a7fa36a98fa0fb857 100644 +index c69a2da951af082b8dc90baf35b7e020ffda0b5e..cad7df80d4914b533ce9db1a10b5923b5ffe578b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1758,8 +1758,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1760,8 +1760,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName()); this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect")); } @@ -23,10 +23,10 @@ index bd6b4a13b18bd13a6024c92a247503a87102e7c5..f4972161eace2af0c857374a7fa36a98 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 78d31da062792c12f069e929ebe89ab5a624b7d8..c64bc467994609d6cc49c598435cac997ea619e5 100644 +index 3ec282a272257996fad17c3ac23b334aca344bb0..87c597ad5e7cc76db7a5da4e3d97e044ce9f8594 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -187,6 +187,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -189,6 +189,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private double healthScale = 20; private CraftWorldBorder clientWorldBorder = null; private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener(); @@ -37,7 +37,7 @@ index 78d31da062792c12f069e929ebe89ab5a624b7d8..c64bc467994609d6cc49c598435cac99 public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); -@@ -2325,6 +2329,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2357,6 +2361,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean getAffectsSpawning() { return this.getHandle().affectsSpawning; } diff --git a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch index 016734009a..ff1052ed5c 100644 --- a/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch +++ b/patches/server/0066-Default-loading-permissions.yml-before-plugins.patch @@ -16,10 +16,10 @@ modify that. Under the previous logic, plugins were unable (cleanly) override pe A config option has been added for those who depend on the previous behavior, but I don't expect that. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index bc8d567d549ae8fb3a972cb93b50de82daf9fb49..7ad781b0270b95bae7f28fdad1e94a1ea75090fc 100644 +index 81758ba9193fad39a291c635c41d2cdbef34c1c2..49dada0a2b97552f080cda0b928f284ff02a25a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -459,6 +459,7 @@ public final class CraftServer implements Server { +@@ -460,6 +460,7 @@ public final class CraftServer implements Server { if (type == PluginLoadOrder.STARTUP) { this.helpMap.clear(); this.helpMap.initializeGeneralTopics(); @@ -27,7 +27,7 @@ index bc8d567d549ae8fb3a972cb93b50de82daf9fb49..7ad781b0270b95bae7f28fdad1e94a1e } Plugin[] plugins = this.pluginManager.getPlugins(); -@@ -478,7 +479,7 @@ public final class CraftServer implements Server { +@@ -479,7 +480,7 @@ public final class CraftServer implements Server { this.commandMap.registerServerAliases(); DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); diff --git a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch index 889bfaa12d..9f92b3f146 100644 --- a/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch +++ b/patches/server/0067-Allow-Reloading-of-Custom-Permissions.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions https://github.com/PaperMC/Paper/issues/49 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7ad781b0270b95bae7f28fdad1e94a1ea75090fc..89ba5fb4be6ae481b1765506ed6a0bd37faaa9b6 100644 +index 49dada0a2b97552f080cda0b928f284ff02a25a3..3ce3ecec506930910c0c39a16d89e94ab79ae6f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2638,5 +2638,23 @@ public final class CraftServer implements Server { +@@ -2639,5 +2639,23 @@ public final class CraftServer implements Server { } return this.adventure$audiences; } diff --git a/patches/server/0068-Remove-Metadata-on-reload.patch b/patches/server/0068-Remove-Metadata-on-reload.patch index 170bae4de0..e2a0ea4a9a 100644 --- a/patches/server/0068-Remove-Metadata-on-reload.patch +++ b/patches/server/0068-Remove-Metadata-on-reload.patch @@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive This will remove metadata on reload so it does not crash everything if a plugin uses it. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 89ba5fb4be6ae481b1765506ed6a0bd37faaa9b6..05cb57584949679130bf7c5d7d3524463d6c9e7b 100644 +index 3ce3ecec506930910c0c39a16d89e94ab79ae6f3..7d6b5007c386ec174ccaf0abc48862f2f7cd8789 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -972,8 +972,16 @@ public final class CraftServer implements Server { +@@ -973,8 +973,16 @@ public final class CraftServer implements Server { world.spigotConfig.init(); // Spigot } diff --git a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch index edebc4ad01..0d40e0bab2 100644 --- a/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch +++ b/patches/server/0069-Handle-Item-Meta-Inconsistencies.patch @@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the ItemMeta API equivalents, and should deprecate the old API's. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c2b93eaf73ce038559611c272b6e3ecc2bcb903b..940caf9b7526019ace656ff88146f198ba6b62ed 100644 +index 3f18fb61a47dda559a6997af9c6c043423dd206a..c33660718c0ea281d7bcdb15df0568d4d46547e2 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -156,6 +156,23 @@ public final class ItemStack { @@ -53,7 +53,7 @@ index c2b93eaf73ce038559611c272b6e3ecc2bcb903b..940caf9b7526019ace656ff88146f198 this.getItem().verifyTagAfterLoad(this.tag); } -@@ -810,6 +828,7 @@ public final class ItemStack { +@@ -814,6 +832,7 @@ public final class ItemStack { public void setTag(@Nullable CompoundTag nbt) { this.tag = nbt; @@ -61,7 +61,7 @@ index c2b93eaf73ce038559611c272b6e3ecc2bcb903b..940caf9b7526019ace656ff88146f198 if (this.getItem().canBeDepleted()) { this.setDamageValue(this.getDamageValue()); } -@@ -1107,6 +1126,7 @@ public final class ItemStack { +@@ -1111,6 +1130,7 @@ public final class ItemStack { ListTag nbttaglist = this.tag.getList("Enchantments", 10); nbttaglist.add(EnchantmentHelper.storeEnchantment(EnchantmentHelper.getEnchantmentId(enchantment), (byte) level)); diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 685c26f0e1..a9bb4ac32a 100644 --- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,10 +44,10 @@ index d8ecc90465dfc54319d7f2478979e9aaee42f5a2..45a93601ff9ec79db0ceefb92eecfc97 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c64bc467994609d6cc49c598435cac997ea619e5..8b594be03e0627789e5b724cbc08329795ed46e5 100644 +index 87c597ad5e7cc76db7a5da4e3d97e044ce9f8594..875784e3d1d89c8fd5e4e3f9cec2e37c93e17570 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2122,6 +2122,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2154,6 +2154,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setRealHealth(double health) { diff --git a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch index d91e65ee95..8e81fc3161 100644 --- a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch @@ -22,10 +22,10 @@ index a5d57cc862036012d83b090bb1b3ccf4115a88b3..21068f766b75c414d5818073b7dca083 static final ServerboundInteractPacket.Action ATTACK_ACTION = new ServerboundInteractPacket.Action() { @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b6e86042d050cf95c8c9a94809bcf49736e5bd9a..3fb87f80087747c6f888e8bb0bf3deb40aa9419e 100644 +index cad7df80d4914b533ce9db1a10b5923b5ffe578b..ae66a8a222bc27986bab0f7896e0eacfd6044b31 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2544,8 +2544,37 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2543,8 +2543,37 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic }); } } diff --git a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch index 702880edc6..896a2f68aa 100644 --- a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch +++ b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch @@ -43,10 +43,10 @@ index da98f074ccd5a40c635824112c97fd174c393cb1..6599f874d9f97e9ef4862039ecad7277 } else { String[] astring1 = astring; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 05cb57584949679130bf7c5d7d3524463d6c9e7b..a8b26d4360f57665afe8e39ab1ba87a7d6d15867 100644 +index 7d6b5007c386ec174ccaf0abc48862f2f7cd8789..0a0ea4d8159a5ee8ca640d8c39f2ff78889a4712 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1743,7 +1743,7 @@ public final class CraftServer implements Server { +@@ -1744,7 +1744,7 @@ public final class CraftServer implements Server { // Spigot Start GameProfile profile = null; // Only fetch an online UUID in online mode diff --git a/patches/server/0107-Configurable-packet-in-spam-threshold.patch b/patches/server/0107-Configurable-packet-in-spam-threshold.patch index 43dcb64cef..3691d66528 100644 --- a/patches/server/0107-Configurable-packet-in-spam-threshold.patch +++ b/patches/server/0107-Configurable-packet-in-spam-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable packet in spam threshold diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3fb87f80087747c6f888e8bb0bf3deb40aa9419e..50872f8d2a9046f7fee57b5d0e9c5af48927dafc 100644 +index ae66a8a222bc27986bab0f7896e0eacfd6044b31..a73395c9c599f4f83738672a925e2852ca784cf7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1598,13 +1598,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1600,13 +1600,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Spigot start - limit place/interactions private int limitedPackets; private long lastLimitedPacket = -1; diff --git a/patches/server/0108-Configurable-flying-kick-messages.patch b/patches/server/0108-Configurable-flying-kick-messages.patch index a7a46a8d7b..3f30166732 100644 --- a/patches/server/0108-Configurable-flying-kick-messages.patch +++ b/patches/server/0108-Configurable-flying-kick-messages.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable flying kick messages diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3ac549815895e6cbb43cbfc04377337f8b7ebd43..c33b94701a8c4f3198671405d32467d9645bf87f 100644 +index a73395c9c599f4f83738672a925e2852ca784cf7..631eaf856daa09151e62e192296ba143213d6f29 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -355,7 +355,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -357,7 +357,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.clientIsFloating && !this.player.isSleeping() && !this.player.isPassenger() && !this.player.isDeadOrDying()) { if (++this.aboveGroundTickCount > 80) { ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating too long!", this.player.getName().getString()); @@ -17,7 +17,7 @@ index 3ac549815895e6cbb43cbfc04377337f8b7ebd43..c33b94701a8c4f3198671405d32467d9 return; } } else { -@@ -374,7 +374,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -376,7 +376,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.clientVehicleIsFloating && this.player.getRootVehicle().getControllingPassenger() == this.player) { if (++this.aboveGroundVehicleTickCount > 80) { ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getName().getString()); diff --git a/patches/server/0109-Add-EntityZapEvent.patch b/patches/server/0109-Add-EntityZapEvent.patch index 6b94eb3102..bf45bb8885 100644 --- a/patches/server/0109-Add-EntityZapEvent.patch +++ b/patches/server/0109-Add-EntityZapEvent.patch @@ -28,10 +28,10 @@ index f9704b20e71564ac721a24655b2792c689edf6ba..e04f3f1159c5d5fa2e3956a36e95f8af entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) null); entitywitch.setNoAi(this.isNoAi()); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 8c9e545b8508172be51c9f244d7067509d32aef9..e9355d4594d1a3d1dbbdd7be5207f1a384546d5d 100644 +index db30af9b6b9e737066c8a011e4dfe377f800f523..3849e30f8fad46feefaa901283ad776a93561e23 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1212,6 +1212,14 @@ public class CraftEventFactory { +@@ -1238,6 +1238,14 @@ public class CraftEventFactory { return !event.isCancelled(); } diff --git a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch index 55dce61ef3..fd3f5a08a8 100644 --- a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch +++ b/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a8b26d4360f57665afe8e39ab1ba87a7d6d15867..9acc18ca45cc4e55bcd8a1624f27245a7ae81096 100644 +index 0a0ea4d8159a5ee8ca640d8c39f2ff78889a4712..6014cf7de9a6a41b0c5ff03bfd2c88d55edd53e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2664,5 +2664,24 @@ public final class CraftServer implements Server { +@@ -2665,5 +2665,24 @@ public final class CraftServer implements Server { DefaultPermissions.registerCorePermissions(); CraftDefaultPermissions.registerCorePermissions(); } diff --git a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch index f3b78dba30..319781402a 100644 --- a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch +++ b/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch @@ -18,10 +18,10 @@ index 93c83cfedc7d3a169ad0504aa6e63f600873501b..9dffdfe5bbd0517e9a2c6a6770eea07b --this.count; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e9355d4594d1a3d1dbbdd7be5207f1a384546d5d..5fe27d6aad6d904234543bd5fc8fe3d7c1852840 100644 +index 3849e30f8fad46feefaa901283ad776a93561e23..505f4658dc7b92bf22071e43963ce66f5f2f655b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1165,6 +1165,17 @@ public class CraftEventFactory { +@@ -1191,6 +1191,17 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0114-Add-ProjectileCollideEvent.patch b/patches/server/0114-Add-ProjectileCollideEvent.patch index 594a0fd09b..57c4eb52fe 100644 --- a/patches/server/0114-Add-ProjectileCollideEvent.patch +++ b/patches/server/0114-Add-ProjectileCollideEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add ProjectileCollideEvent Deprecated now and replaced with ProjectileHitEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5fe27d6aad6d904234543bd5fc8fe3d7c1852840..515e8886d04668598b6725ba11f75f40ed35d4e7 100644 +index 505f4658dc7b92bf22071e43963ce66f5f2f655b..ceb8d024888425248cb40eb3fbbe39fc4be1207b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1309,6 +1309,17 @@ public class CraftEventFactory { +@@ -1335,6 +1335,17 @@ public class CraftEventFactory { return CraftItemStack.asNMSCopy(bitem); } @@ -27,7 +27,7 @@ index 5fe27d6aad6d904234543bd5fc8fe3d7c1852840..515e8886d04668598b6725ba11f75f40 public static ProjectileLaunchEvent callProjectileLaunchEvent(Entity entity) { Projectile bukkitEntity = (Projectile) entity.getBukkitEntity(); ProjectileLaunchEvent event = new ProjectileLaunchEvent(bukkitEntity); -@@ -1333,8 +1344,15 @@ public class CraftEventFactory { +@@ -1359,8 +1370,15 @@ public class CraftEventFactory { if (position.getType() == HitResult.Type.ENTITY) { hitEntity = ((EntityHitResult) position).getEntity().getBukkitEntity(); } diff --git a/patches/server/0120-String-based-Action-Bar-API.patch b/patches/server/0120-String-based-Action-Bar-API.patch index e4226df63e..2d13d5e023 100644 --- a/patches/server/0120-String-based-Action-Bar-API.patch +++ b/patches/server/0120-String-based-Action-Bar-API.patch @@ -26,10 +26,10 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8b594be03e0627789e5b724cbc08329795ed46e5..1ad53070a0725daa0622598de82382dd3e26624d 100644 +index 875784e3d1d89c8fd5e4e3f9cec2e37c93e17570..bef8c20e784244acf17128a68adfe5612812a612 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -338,6 +338,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -340,6 +340,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper start diff --git a/patches/server/0121-Properly-fix-item-duplication-bug.patch b/patches/server/0121-Properly-fix-item-duplication-bug.patch index fdbc6ba392..025a46dc3e 100644 --- a/patches/server/0121-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0121-Properly-fix-item-duplication-bug.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Properly fix item duplication bug Credit to prplz for figuring out the real issue diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b4ea4c63a6cd767684d6c3c68a192a90c82d2e91..6051ad00973c80ad3478e2ff9063c268489f358b 100644 +index 9e182c4cdf54c9ca7701660df72052d5c8936a55..5c855a15f7847ca37c263755f643eeb1fd79668b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2392,7 +2392,7 @@ public class ServerPlayer extends Player { @@ -19,10 +19,10 @@ index b4ea4c63a6cd767684d6c3c68a192a90c82d2e91..6051ad00973c80ad3478e2ff9063c268 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2deb6ba6ec38314d65500a1ef15269401d90a1c2..38d8a2d5fa3e911c99e3e06c99ea18afbe89c0b3 100644 +index 631eaf856daa09151e62e192296ba143213d6f29..12ce6ef8163fa46c1f5bc1f88011cd862b8bad89 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3152,7 +3152,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3160,7 +3160,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } public final boolean isDisconnected() { diff --git a/patches/server/0122-Firework-API-s.patch b/patches/server/0122-Firework-API-s.patch index ac1814d178..16b867bd75 100644 --- a/patches/server/0122-Firework-API-s.patch +++ b/patches/server/0122-Firework-API-s.patch @@ -44,10 +44,10 @@ index b16add0be6ac782a7e40be0cdeea4c1829a19d4e..288910fb168ddc5d3a61971778b8038a @Override diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index da12a95c230129a3a57dc3d2d7d64012dd8bbae6..9bea5e94c246d843f3d67680ffb57075bd9d3467 100644 +index ac7371882d15746e9353865635d0bb716f890c53..ba570f1c9654e1004e068a1efe2118f36c954505 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java -@@ -221,6 +221,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { +@@ -217,6 +217,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { if (flag1) { object = new FireworkRocketEntity(world, projectile, shooter, shooter.getX(), shooter.getEyeY() - 0.15000000596046448D, shooter.getZ(), true); diff --git a/patches/server/0131-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0131-Add-option-to-make-parrots-stay-on-shoulders-despite.patch index 86d217d44d..08e8aee95b 100644 --- a/patches/server/0131-Add-option-to-make-parrots-stay-on-shoulders-despite.patch +++ b/patches/server/0131-Add-option-to-make-parrots-stay-on-shoulders-despite.patch @@ -14,10 +14,10 @@ To be converted into a Paper-API event at some point in the future? public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7a4b763e4b7005cf7df75ca9217897faed433b39..c5df103a1addefb1c11132a4b406bcdf3e8f455f 100644 +index 12ce6ef8163fa46c1f5bc1f88011cd862b8bad89..42994574854cae3ca288c8ab7698a95a44693314 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2332,6 +2332,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2331,6 +2331,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic switch (packet.getAction()) { case PRESS_SHIFT_KEY: this.player.setShiftKeyDown(true); diff --git a/patches/server/0132-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0132-Add-configuration-option-to-prevent-player-names-fro.patch index 6913a31864..aa6e08e49e 100644 --- a/patches/server/0132-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/patches/server/0132-Add-configuration-option-to-prevent-player-names-fro.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add configuration option to prevent player names from being diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9acc18ca45cc4e55bcd8a1624f27245a7ae81096..fd608bb0423b7dc2076035210cb816134c9ce4c0 100644 +index 6014cf7de9a6a41b0c5ff03bfd2c88d55edd53e3..14d51e174f6acdc3606faa5ccd6ba3f1e8cf4749 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2683,5 +2683,10 @@ public final class CraftServer implements Server { +@@ -2684,5 +2684,10 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); return true; } diff --git a/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch index 09fbbbb252..4a6fe9c6d3 100644 --- a/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0133-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -389,10 +389,10 @@ index bc96f426d488d2a206b763dccdc4034fe24f269d..82db70c548336ada2af556251b8ae8d1 this.bans = new UserBanList(PlayerList.USERBANLIST_FILE); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd608bb0423b7dc2076035210cb816134c9ce4c0..059d43512dae19515abdeeb49c36c7e8b7f64cf5 100644 +index 14d51e174f6acdc3606faa5ccd6ba3f1e8cf4749..8f407e9abe705a18e8b47902291ece9c42eab51c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -43,7 +43,6 @@ import java.util.logging.Level; +@@ -44,7 +44,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; import javax.imageio.ImageIO; @@ -400,7 +400,7 @@ index fd608bb0423b7dc2076035210cb816134c9ce4c0..059d43512dae19515abdeeb49c36c7e8 import net.minecraft.advancements.Advancement; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; -@@ -1311,9 +1310,13 @@ public final class CraftServer implements Server { +@@ -1312,9 +1311,13 @@ public final class CraftServer implements Server { return this.logger; } @@ -415,7 +415,7 @@ index fd608bb0423b7dc2076035210cb816134c9ce4c0..059d43512dae19515abdeeb49c36c7e8 @Override public PluginCommand getPluginCommand(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index b74b300fbb27fe93b150ecba874e05dfa57a1371..21b1636ca97865c05de26dfca7e4f86b8e66dee8 100644 +index 4646911b65129d49b2398c7d86f2d6aa9213fe97..c5a403bc04fcb7a0fbc1dd1fe9ebf374e6a62af3 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -13,7 +13,6 @@ import java.util.logging.Logger; diff --git a/patches/server/0139-Add-UnknownCommandEvent.patch b/patches/server/0139-Add-UnknownCommandEvent.patch index 170735d169..0397d711b1 100644 --- a/patches/server/0139-Add-UnknownCommandEvent.patch +++ b/patches/server/0139-Add-UnknownCommandEvent.patch @@ -83,10 +83,10 @@ index 2fdfc17ef3daf9fb5cc32c807292c71e256d5356..e3394864e29357fec036f9e616472aea b1 = 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 059d43512dae19515abdeeb49c36c7e8b7f64cf5..e72b64dd855a824a2bb8b8791df845f1d9f000e1 100644 +index 8f407e9abe705a18e8b47902291ece9c42eab51c..06c215af9d6d4e73cd2bb6d799c35b890cc48e50 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -525,6 +525,7 @@ public final class CraftServer implements Server { +@@ -526,6 +526,7 @@ public final class CraftServer implements Server { } node = clone; } @@ -94,7 +94,7 @@ index 059d43512dae19515abdeeb49c36c7e8b7f64cf5..e72b64dd855a824a2bb8b8791df845f1 dispatcher.getDispatcher().getRoot().addChild(node); } else { -@@ -914,7 +915,13 @@ public final class CraftServer implements Server { +@@ -915,7 +916,13 @@ public final class CraftServer implements Server { // Spigot start if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) { diff --git a/patches/server/0140-Basic-PlayerProfile-API.patch b/patches/server/0140-Basic-PlayerProfile-API.patch index 39ae6dc72a..c00b0cb45f 100644 --- a/patches/server/0140-Basic-PlayerProfile-API.patch +++ b/patches/server/0140-Basic-PlayerProfile-API.patch @@ -631,10 +631,10 @@ index 4038bb76339d43f18770624bd7fecc79b8d7f2a9..2456edc11b29a92b1648937cd3dd6a9a String s1 = name.toLowerCase(Locale.ROOT); GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e72b64dd855a824a2bb8b8791df845f1d9f000e1..2bed3141b49789324e4e7bbec802f50ac3745edf 100644 +index 06c215af9d6d4e73cd2bb6d799c35b890cc48e50..648c29d0c06655e88f450872e8bc672f38eaec26 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -260,6 +260,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; +@@ -261,6 +261,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; import net.md_5.bungee.api.chat.BaseComponent; // Spigot @@ -644,7 +644,7 @@ index e72b64dd855a824a2bb8b8791df845f1d9f000e1..2bed3141b49789324e4e7bbec802f50a public final class CraftServer implements Server { private final String serverName = "Paper"; // Paper private final String serverVersion; -@@ -302,6 +305,7 @@ public final class CraftServer implements Server { +@@ -303,6 +306,7 @@ public final class CraftServer implements Server { static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); ConfigurationSerialization.registerClass(CraftPlayerProfile.class); @@ -652,7 +652,7 @@ index e72b64dd855a824a2bb8b8791df845f1d9f000e1..2bed3141b49789324e4e7bbec802f50a CraftItemFactory.instance(); } -@@ -2698,5 +2702,37 @@ public final class CraftServer implements Server { +@@ -2699,5 +2703,37 @@ public final class CraftServer implements Server { public boolean suggestPlayerNamesWhenNullTabCompletions() { return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions; } diff --git a/patches/server/0146-Implement-ensureServerConversions-API.patch b/patches/server/0146-Implement-ensureServerConversions-API.patch index 439122668f..2567b6e615 100644 --- a/patches/server/0146-Implement-ensureServerConversions-API.patch +++ b/patches/server/0146-Implement-ensureServerConversions-API.patch @@ -7,18 +7,18 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index b187c4f436ac44a529675869dbf5bfddc4fac86f..878f69460aed825d5d3204030af2aaa731a99875 100644 +index 45872e28cabc655c170bee163d471acf5d913c00..7e9e365fdce960bb266a4616d4bdc6d434cb2187 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -449,5 +449,11 @@ public final class CraftItemFactory implements ItemFactory { - public [email protected] Component displayName(@org.jetbrains.annotations.NotNull ItemStack itemStack) { +@@ -469,4 +469,11 @@ public final class CraftItemFactory implements ItemFactory { return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName()); } + // Paper end - Adventure + -+ // Paper start ++ // Paper start - ensure server conversions API + @Override + public ItemStack ensureServerConversions(ItemStack item) { + return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item)); + } - // Paper end ++ // Paper end - ensure server conversions API } diff --git a/patches/server/0147-Implement-getI18NDisplayName.patch b/patches/server/0147-Implement-getI18NDisplayName.patch index 4f1cfccf20..57dc64608b 100644 --- a/patches/server/0147-Implement-getI18NDisplayName.patch +++ b/patches/server/0147-Implement-getI18NDisplayName.patch @@ -8,14 +8,15 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 878f69460aed825d5d3204030af2aaa731a99875..f8475390d69bef6f3eca5a57d5f44021fabf4942 100644 +index 7e9e365fdce960bb266a4616d4bdc6d434cb2187..5aece14ec931f4c564e847a2797e92da8ffb569b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -455,5 +455,18 @@ public final class CraftItemFactory implements ItemFactory { - public ItemStack ensureServerConversions(ItemStack item) { +@@ -476,4 +476,19 @@ public final class CraftItemFactory implements ItemFactory { return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item)); } + // Paper end - ensure server conversions API + ++ // Paper start - add getI18NDisplayName + @Override + public String getI18NDisplayName(ItemStack item) { + net.minecraft.world.item.ItemStack nms = null; @@ -28,5 +29,5 @@ index 878f69460aed825d5d3204030af2aaa731a99875..f8475390d69bef6f3eca5a57d5f44021 + + return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null; + } - // Paper end ++ // Paper end - add getI18NDisplayName } diff --git a/patches/server/0149-Fix-this-stupid-bullshit.patch b/patches/server/0149-Fix-this-stupid-bullshit.patch index 9bf2cda44e..9280b6f54a 100644 --- a/patches/server/0149-Fix-this-stupid-bullshit.patch +++ b/patches/server/0149-Fix-this-stupid-bullshit.patch @@ -31,12 +31,12 @@ index 8ff786c366332588a2df053438f23cc9fb7e2b84..c887d34171f89c731d76c4ca92c70be2 Bootstrap.isBootstrapped = true; Instant instant = Instant.now(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 21b1636ca97865c05de26dfca7e4f86b8e66dee8..65c7b9bd1f8dcbe87f75967f35ac91b6a2016844 100644 +index c5a403bc04fcb7a0fbc1dd1fe9ebf374e6a62af3..c79afabed432ca9094967ae0e48b04133dc4c51b 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -257,10 +257,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -7); + deadline.add(Calendar.DAY_OF_YEAR, -21); if (buildDate.before(deadline.getTime())) { - System.err.println("*** Error, this build is outdated ***"); + // Paper start - This is some stupid bullshit diff --git a/patches/server/0156-Add-PlayerJumpEvent.patch b/patches/server/0156-Add-PlayerJumpEvent.patch index 996b320854..cfc42eb3af 100644 --- a/patches/server/0156-Add-PlayerJumpEvent.patch +++ b/patches/server/0156-Add-PlayerJumpEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c5df103a1addefb1c11132a4b406bcdf3e8f455f..c720c85361110083b2dd622ab52791ded1f784a1 100644 +index 42994574854cae3ca288c8ab7698a95a44693314..79769e770e04f0852fabed7dc7367e87bd5be310 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1292,7 +1292,34 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1294,7 +1294,34 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag = d7 > 0.0D; if (this.player.onGround() && !packet.isOnGround() && flag) { diff --git a/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch index 7855e7bce2..797cfb76b8 100644 --- a/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch +++ b/patches/server/0157-handle-ServerboundKeepAlivePacket-async.patch @@ -15,10 +15,10 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c720c85361110083b2dd622ab52791ded1f784a1..04bff597b77e37ee90abecc2dabf8919c1ef4082 100644 +index 79769e770e04f0852fabed7dc7367e87bd5be310..924f520702723b3f44ac990f6222102119d16e9c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3111,14 +3111,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3119,14 +3119,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch index aa06a97466..e0c54ccb61 100644 --- a/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch @@ -90,10 +90,10 @@ index 77d7f070cce1a47e41b5d4f5a1cc8c778352a126..a3b610cb1ed97a635677bc46ccdf0463 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1ad53070a0725daa0622598de82382dd3e26624d..afe1de50ef9123df5138f29b0cfc75a8a7923af1 100644 +index bef8c20e784244acf17128a68adfe5612812a612..1adad65a3a9a547a4383cc0caa21a6445d072200 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -284,6 +284,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -286,6 +286,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/server/0159-revert-serverside-behavior-of-keepalives.patch b/patches/server/0159-revert-serverside-behavior-of-keepalives.patch index fff61a500a..ac989d98a2 100644 --- a/patches/server/0159-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0159-revert-serverside-behavior-of-keepalives.patch @@ -17,10 +17,10 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 04bff597b77e37ee90abecc2dabf8919c1ef4082..e206753e5b34b6ab7bd241a77a67e0cdcfa662d1 100644 +index 924f520702723b3f44ac990f6222102119d16e9c..31bbd7f9db45f73e34b3cddcf4e66ccd034a1d10 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -259,7 +259,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -261,7 +261,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public ServerPlayer player; private int tickCount; private int ackBlockChangesUpTo = -1; @@ -29,7 +29,7 @@ index 04bff597b77e37ee90abecc2dabf8919c1ef4082..e206753e5b34b6ab7bd241a77a67e0cd private boolean keepAlivePending; private long keepAliveChallenge; // CraftBukkit start - multithreaded fields -@@ -297,6 +297,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -299,6 +299,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private final LastSeenMessagesValidator lastSeenMessages; private final MessageSignatureCache messageSignatureCache; private final FutureChain chatMessageChain; @@ -37,7 +37,7 @@ index 04bff597b77e37ee90abecc2dabf8919c1ef4082..e206753e5b34b6ab7bd241a77a67e0cd public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH); -@@ -388,18 +389,25 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -390,18 +391,25 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } this.server.getProfiler().push("keepAlive"); diff --git a/patches/server/0166-AsyncTabCompleteEvent.patch b/patches/server/0166-AsyncTabCompleteEvent.patch index a8ba5d754b..bc02f2631c 100644 --- a/patches/server/0166-AsyncTabCompleteEvent.patch +++ b/patches/server/0166-AsyncTabCompleteEvent.patch @@ -16,10 +16,10 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar <[email protected]> diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e206753e5b34b6ab7bd241a77a67e0cdcfa662d1..1d593c32abbae6ca59bad0075993c58e18a01c72 100644 +index 31bbd7f9db45f73e34b3cddcf4e66ccd034a1d10..e97e0ea9c44a959c17849eac3fcecf4eff04d275 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -788,12 +788,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -790,12 +790,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } @@ -38,7 +38,7 @@ index e206753e5b34b6ab7bd241a77a67e0cdcfa662d1..1d593c32abbae6ca59bad0075993c58e return; } // Paper start -@@ -804,18 +808,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -806,18 +810,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end // CraftBukkit end @@ -91,10 +91,10 @@ index e206753e5b34b6ab7bd241a77a67e0cdcfa662d1..1d593c32abbae6ca59bad0075993c58e @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2bed3141b49789324e4e7bbec802f50ac3745edf..ffeaa65893c576203c7b342a8689a45d3d0722bb 100644 +index 648c29d0c06655e88f450872e8bc672f38eaec26..57674358b958226ff575eafffa872e76d6f0f5fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2148,7 +2148,7 @@ public final class CraftServer implements Server { +@@ -2149,7 +2149,7 @@ public final class CraftServer implements Server { offers = this.tabCompleteChat(player, message); } diff --git a/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch index 48a291d844..353ed12fb2 100644 --- a/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch @@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index afe1de50ef9123df5138f29b0cfc75a8a7923af1..3abaf7072089b06287f959cbc356acc4c912605b 100644 +index 1adad65a3a9a547a4383cc0caa21a6445d072200..063150563e35a3eeb6999f1b5b34de3f60318f66 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1506,7 +1506,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1538,7 +1538,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override diff --git a/patches/server/0181-Player.setPlayerProfile-API.patch b/patches/server/0181-Player.setPlayerProfile-API.patch index 1c36c6a3f2..2a55311803 100644 --- a/patches/server/0181-Player.setPlayerProfile-API.patch +++ b/patches/server/0181-Player.setPlayerProfile-API.patch @@ -9,10 +9,10 @@ This can be useful for changing name or skins after a player has logged in. public-f net.minecraft.world.entity.player.Player gameProfile diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1d593c32abbae6ca59bad0075993c58e18a01c72..da4c4e917cb850d03a4eb51ec9777e93932b552c 100644 +index e97e0ea9c44a959c17849eac3fcecf4eff04d275..3580ce27843ab4e379360e2f63c8783e66384956 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1538,7 +1538,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1540,7 +1540,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.internalTeleport(dest.getX(), dest.getY(), dest.getZ(), dest.getYaw(), dest.getPitch(), Collections.emptySet()); } @@ -40,10 +40,10 @@ index 6b31b0894e52ad6fc397624e50587ec04e46c099..0c7f280bae81bbb492d5780a43e5ffda playerName = gameProfile.getName(); uniqueId = gameProfile.getId(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index f0a81fa99f5923813858b77c9a1c682418c928ff..712006c27570dcbcefe173484e74d1bb0763e926 100644 +index b17fe83bcd7bde44ee8c1f872fffa8bf40707c50..aac78c13361b19efa7b43a0c95458390f1ba8340 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -79,8 +79,8 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -81,8 +81,8 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa } @Override @@ -55,10 +55,10 @@ index f0a81fa99f5923813858b77c9a1c682418c928ff..712006c27570dcbcefe173484e74d1bb public Server getServer() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec58cc551b 100644 +index 063150563e35a3eeb6999f1b5b34de3f60318f66..f0c07965f129c17a3258964b7bf73f9f9b6fc63e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -86,6 +86,7 @@ import net.minecraft.world.food.FoodData; +@@ -88,6 +88,7 @@ import net.minecraft.world.food.FoodData; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.GameType; import net.minecraft.world.level.block.Blocks; @@ -66,7 +66,7 @@ index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec import net.minecraft.world.level.block.entity.SignBlockEntity; import net.minecraft.world.level.block.entity.SignText; import net.minecraft.world.level.border.BorderChangeListener; -@@ -267,11 +268,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -269,11 +270,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return server.getPlayer(getUniqueId()) != null; } @@ -78,7 +78,7 @@ index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec @Override public InetSocketAddress getAddress() { if (this.getHandle().connection == null) return null; -@@ -1656,8 +1652,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1688,8 +1684,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private void untrackAndHideEntity(org.bukkit.entity.Entity entity) { // Remove this entity from the hidden player's EntityTrackerEntry @@ -95,7 +95,7 @@ index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); if (entry != null) { entry.removePlayer(this.getHandle()); -@@ -1670,8 +1673,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1702,8 +1705,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new ClientboundPlayerInfoRemovePacket(List.of(otherPlayer.getUUID()))); } } @@ -104,7 +104,7 @@ index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec } void resetAndHideEntity(org.bukkit.entity.Entity entity) { -@@ -1748,8 +1749,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1780,8 +1781,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) { entry.updatePlayer(this.getHandle()); } @@ -144,7 +144,7 @@ index 3abaf7072089b06287f959cbc356acc4c912605b..39bf1e520f54abdf83dd9fd16d2f1aec } void resetAndShowEntity(org.bukkit.entity.Entity entity) { -@@ -1762,6 +1793,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1794,6 +1825,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.trackAndShowEntity(entity); } } diff --git a/patches/server/0182-getPlayerUniqueId-API.patch b/patches/server/0182-getPlayerUniqueId-API.patch index 43e520a130..4fc282154c 100644 --- a/patches/server/0182-getPlayerUniqueId-API.patch +++ b/patches/server/0182-getPlayerUniqueId-API.patch @@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ffeaa65893c576203c7b342a8689a45d3d0722bb..78a2fdb466c56d75568af5f7d5398baf4ba8532c 100644 +index 57674358b958226ff575eafffa872e76d6f0f5fa..b78c1362a2396f950f50e7ee093bbdd6ab1823f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1746,6 +1746,25 @@ public final class CraftServer implements Server { +@@ -1747,6 +1747,25 @@ public final class CraftServer implements Server { return recipients.size(); } diff --git a/patches/server/0186-Flag-to-disable-the-channel-limit.patch b/patches/server/0186-Flag-to-disable-the-channel-limit.patch index 8f153348d9..a7577e7da4 100644 --- a/patches/server/0186-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0186-Flag-to-disable-the-channel-limit.patch @@ -9,10 +9,10 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 39bf1e520f54abdf83dd9fd16d2f1aec58cc551b..b89714e6f136cb661b962911988c04481ddb0801 100644 +index f0c07965f129c17a3258964b7bf73f9f9b6fc63e..8dee7e74434356885b81e2a36664f8324ceacf57 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -191,6 +191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -193,6 +193,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; private String resourcePackHash; @@ -20,7 +20,7 @@ index 39bf1e520f54abdf83dd9fd16d2f1aec58cc551b..b89714e6f136cb661b962911988c0448 // Paper end public CraftPlayer(CraftServer server, ServerPlayer entity) { -@@ -2031,7 +2032,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2063,7 +2064,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end public void addChannel(String channel) { diff --git a/patches/server/0187-Add-openSign-method-to-HumanEntity.patch b/patches/server/0187-Add-openSign-method-to-HumanEntity.patch index 00dc3cdb02..239906049f 100644 --- a/patches/server/0187-Add-openSign-method-to-HumanEntity.patch +++ b/patches/server/0187-Add-openSign-method-to-HumanEntity.patch @@ -5,30 +5,19 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 6ca423ca58f486eec05c55faf055e0cdbabde709..f48b5204e59ab0c840fc08ecb9abf5facbae9be1 100644 +index a19504cf5c98b4d8070dc1ffe322b84e1896d84a..f1ba0fd5d17fb1a26cf09848d4125ecfab39eddb 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -120,7 +120,7 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< - super.applyTo(sign); - } - -- public static void openSign(Sign sign, Player player, Side side) { -+ public static void openSign(Sign sign, org.bukkit.entity.HumanEntity player, Side side) { // Paper - change move open sign to HumanEntity - Preconditions.checkArgument(sign != null, "sign == null"); - Preconditions.checkArgument(side != null, "side == null"); - Preconditions.checkArgument(sign.isPlaced(), "Sign must be placed"); -@@ -128,7 +128,8 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< - - SignBlockEntity handle = ((CraftSign<?>) sign).getTileEntity(); +@@ -134,6 +134,7 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< + return; + } -- ((CraftPlayer) player).getHandle().openTextEdit(handle, Side.FRONT == side); + handle.setAllowedPlayerEditor(player.getUniqueId()); // Paper -+ ((org.bukkit.craftbukkit.entity.CraftHumanEntity) player).getHandle().openTextEdit(handle, Side.FRONT == side); // Paper - change move open sign to HumanEntity + ((CraftPlayer) player).getHandle().openTextEdit(handle, Side.FRONT == side); } - // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 2f5704b19148f390402c0823030806ba96860286..f59733b6918dcbbb2190f76d8b8841a2d8818cdf 100644 +index 2f5704b19148f390402c0823030806ba96860286..74f1af3dccddf52965e5c91277be3592649e8cfa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -626,6 +626,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -38,7 +27,7 @@ index 2f5704b19148f390402c0823030806ba96860286..f59733b6918dcbbb2190f76d8b8841a2 + // Paper start - move open sign method to HumanEntity + @Override + public void openSign(final org.bukkit.block.Sign sign, final org.bukkit.block.sign.Side side) { -+ org.bukkit.craftbukkit.block.CraftSign.openSign(sign, this, side); ++ org.bukkit.craftbukkit.block.CraftSign.openSign(sign, (CraftPlayer) this, side); + } + // Paper end @Override diff --git a/patches/server/0213-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/server/0213-Add-config-to-disable-ender-dragon-legacy-check.patch index 36e5817b26..31b5023020 100644 --- a/patches/server/0213-Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/patches/server/0213-Add-config-to-disable-ender-dragon-legacy-check.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Add config to disable ender dragon legacy check diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index c2b0eaaa1c4b74d04ba1781711208cbebd7b356c..35304d7a60348a2b4e1eec43418086086502e4ab 100644 +index 077a3085045333551e67145e010c5074a35d1f9c..bf405efcd44b9d6fdc838d722d67ff7f78ceedce 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -97,6 +97,10 @@ public class EndDragonFight { - } - - public EndDragonFight(ServerLevel world, long gatewaysSeed, EndDragonFight.Data data, BlockPos origin) { +@@ -106,6 +106,10 @@ public class EndDragonFight { + this.ticksSinceLastPlayerScan = 21; + this.skipArenaLoadedCheck = false; + this.needsStateScanning = true; + // Paper start + this.needsStateScanning = world.paperConfig().entities.spawning.scanForLegacyEnderDragon; + if (!this.needsStateScanning) this.dragonKilled = true; + // Paper end this.level = world; this.origin = origin; - this.validPlayer = EntitySelector.ENTITY_STILL_ALIVE.and(EntitySelector.withinDistance((double)origin.getX(), (double)(128 + origin.getY()), (double)origin.getZ(), 192.0D)); + this.validPlayer = EntitySelector.ENTITY_STILL_ALIVE.and(EntitySelector.withinDistance((double) origin.getX(), (double) (128 + origin.getY()), (double) origin.getZ(), 192.0D)); diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch index 6dfe8b2c54..6177e8309a 100644 --- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch @@ -29,7 +29,7 @@ index 68257f257dd3b167e237482c8d149590103896b2..33ce550ea68d4862e0966ed827200cf4 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dda3b911fcaa294ec7b8e9d696880fcb8325f69c..8e2340ca473c8cacfe9d888091834986bad101ce 100644 +index 3842caf61e388aa65b3a18c587480a7dabb8341b..bd7b8ede44a5971b034ffb75fbddbadda8f42702 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -682,7 +682,7 @@ public class ServerPlayer extends Player { @@ -75,10 +75,10 @@ index dda3b911fcaa294ec7b8e9d696880fcb8325f69c..8e2340ca473c8cacfe9d888091834986 this.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index da4c4e917cb850d03a4eb51ec9777e93932b552c..c6a1b0b23d6591c482fc63abc15e5cdbce072a28 100644 +index 3580ce27843ab4e379360e2f63c8783e66384956..b87df5c04ad2c9abe112cccfde27c04f7e3a78e7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -220,6 +220,7 @@ import org.bukkit.event.inventory.ClickType; +@@ -222,6 +222,7 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; @@ -86,7 +86,7 @@ index da4c4e917cb850d03a4eb51ec9777e93932b552c..c6a1b0b23d6591c482fc63abc15e5cdb import org.bukkit.event.inventory.InventoryCreativeEvent; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.event.inventory.SmithItemEvent; -@@ -2682,10 +2683,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2681,10 +2682,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleContainerClose(ServerboundContainerClosePacket packet) { @@ -173,10 +173,10 @@ index f59733b6918dcbbb2190f76d8b8841a2d8818cdf..ba6105a970381d642cd7955754cc4713 @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b89714e6f136cb661b962911988c04481ddb0801..3bdb53c3a41da6d4d3a641f790741a3c79e1734a 100644 +index 8dee7e74434356885b81e2a36664f8324ceacf57..10493d2cced7603f1d3910ff6e428d23abc45c24 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1188,7 +1188,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1190,7 +1190,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Close any foreign inventory if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { @@ -186,10 +186,10 @@ index b89714e6f136cb661b962911988c04481ddb0801..3bdb53c3a41da6d4d3a641f790741a3c // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 515e8886d04668598b6725ba11f75f40ed35d4e7..251f09a79092cce312dc107c9f2f712cbb287ce9 100644 +index ceb8d024888425248cb40eb3fbbe39fc4be1207b..4942ea5a66af310eac646a6be20e997d53ab99fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1278,7 +1278,7 @@ public class CraftEventFactory { +@@ -1304,7 +1304,7 @@ public class CraftEventFactory { public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open @@ -198,7 +198,7 @@ index 515e8886d04668598b6725ba11f75f40ed35d4e7..251f09a79092cce312dc107c9f2f712c } CraftServer server = player.level().getCraftServer(); -@@ -1452,8 +1452,18 @@ public class CraftEventFactory { +@@ -1478,8 +1478,18 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch index 02d467825c..3155759687 100644 --- a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -16,10 +16,10 @@ Refresh the player inventory when PlayerInteractEntityEvent is cancelled to avoid this problem. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c6a1b0b23d6591c482fc63abc15e5cdbce072a28..c0c9c45dd550a323ae6c6dbe72de90a7d1258878 100644 +index b87df5c04ad2c9abe112cccfde27c04f7e3a78e7..189f6f41a09b09ba9fa2131857918898086256ba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2564,6 +2564,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2563,6 +2563,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (event.isCancelled()) { diff --git a/patches/server/0225-Vanished-players-don-t-have-rights.patch b/patches/server/0225-Vanished-players-don-t-have-rights.patch index bc2cfbc658..cfe16400a9 100644 --- a/patches/server/0225-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0225-Vanished-players-don-t-have-rights.patch @@ -89,10 +89,10 @@ index 1beff41c02fb4c22b5474da7c514be2f50f16055..8a53284a5846b25864352e18a5e6b2de public boolean isClientSide() { return this.isClientSide; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 251f09a79092cce312dc107c9f2f712cbb287ce9..6c64de07bda20df15809dadc69d0d8ad05028677 100644 +index 4942ea5a66af310eac646a6be20e997d53ab99fb..53af54ffecd7fdb20588d75a8c32003cb89a75b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1315,6 +1315,14 @@ public class CraftEventFactory { +@@ -1341,6 +1341,14 @@ public class CraftEventFactory { Projectile projectile = (Projectile) entity.getBukkitEntity(); org.bukkit.entity.Entity collided = position.getEntity().getBukkitEntity(); com.destroystokyo.paper.event.entity.ProjectileCollideEvent event = new com.destroystokyo.paper.event.entity.ProjectileCollideEvent(projectile, collided); diff --git a/patches/server/0232-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0232-Break-up-and-make-tab-spam-limits-configurable.patch index 5687cfb843..fe3c7bc317 100644 --- a/patches/server/0232-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0232-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,10 +22,10 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c0c9c45dd550a323ae6c6dbe72de90a7d1258878..7e9955db343f2539210c4f89cf566db1e4e3600d 100644 +index 189f6f41a09b09ba9fa2131857918898086256ba..739239c9ee8c3642a6d96238c11dddf7a848e4fd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -265,6 +265,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -267,6 +267,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private long keepAliveChallenge; // CraftBukkit start - multithreaded fields private final AtomicInteger chatSpamTickCount = new AtomicInteger(); @@ -33,7 +33,7 @@ index c0c9c45dd550a323ae6c6dbe72de90a7d1258878..7e9955db343f2539210c4f89cf566db1 // CraftBukkit end private int dropSpamTickCount; private double firstGoodX; -@@ -413,6 +414,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -415,6 +416,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.server.getProfiler().pop(); // CraftBukkit start for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ; @@ -41,7 +41,7 @@ index c0c9c45dd550a323ae6c6dbe72de90a7d1258878..7e9955db343f2539210c4f89cf566db1 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -797,7 +799,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -799,7 +801,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async // CraftBukkit start diff --git a/patches/server/0236-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0236-Add-Early-Warning-Feature-to-WatchDog.patch index 6236ac5d34..b6200046c0 100644 --- a/patches/server/0236-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0236-Add-Early-Warning-Feature-to-WatchDog.patch @@ -33,10 +33,10 @@ index 24f62f9c4d288297d7a324e806745cc1449d7b4c..29eadf85e11c2261218fa406b29455da com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 78a2fdb466c56d75568af5f7d5398baf4ba8532c..b4df2dccee19bc529bcd76698ce0009e35bc271d 100644 +index b78c1362a2396f950f50e7ee093bbdd6ab1823f7..2a4cddc0ed4d71b6db9112ff1397da5ddb433c1d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -934,6 +934,7 @@ public final class CraftServer implements Server { +@@ -935,6 +935,7 @@ public final class CraftServer implements Server { @Override public void reload() { @@ -44,7 +44,7 @@ index 78a2fdb466c56d75568af5f7d5398baf4ba8532c..b4df2dccee19bc529bcd76698ce0009e this.reloadCount++; this.configuration = YamlConfiguration.loadConfiguration(this.getConfigFile()); this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile()); -@@ -1023,6 +1024,7 @@ public final class CraftServer implements Server { +@@ -1024,6 +1025,7 @@ public final class CraftServer implements Server { this.enablePlugins(PluginLoadOrder.STARTUP); this.enablePlugins(PluginLoadOrder.POSTWORLD); this.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD)); diff --git a/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch index e04153cbce..42c4e5e940 100644 --- a/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3bdb53c3a41da6d4d3a641f790741a3c79e1734a..3421f446849bd4feded248406bd4748416e4d9fa 100644 +index 10493d2cced7603f1d3910ff6e428d23abc45c24..cd52349a272f4e0b440f6e1bc96e072687117e9f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2785,6 +2785,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2817,6 +2817,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.adventure$pointers; } diff --git a/patches/server/0252-Improve-death-events.patch b/patches/server/0252-Improve-death-events.patch index b3412cc1cf..92655f4be4 100644 --- a/patches/server/0252-Improve-death-events.patch +++ b/patches/server/0252-Improve-death-events.patch @@ -19,7 +19,7 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou public net.minecraft.world.entity.LivingEntity getSoundVolume()F diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8e2340ca473c8cacfe9d888091834986bad101ce..0282a467268564c55d9d6e10b0602f952b2ca7ae 100644 +index bd7b8ede44a5971b034ffb75fbddbadda8f42702..41e0b2826bae59e48fef7e35caeb3ce6e46031ea 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -243,6 +243,10 @@ public class ServerPlayer extends Player { @@ -392,10 +392,10 @@ index 719f68f96e58ddcdd3592131c691d21263c81915..a35a0952ce8e1fc42e92734786d531c7 this.gameEvent(GameEvent.ENTITY_DIE); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3421f446849bd4feded248406bd4748416e4d9fa..7db1f6ae9ee30293086f6b0d5fe86965f278c87e 100644 +index cd52349a272f4e0b440f6e1bc96e072687117e9f..2a4dff1b9bf64b5fc073bbc943def71b289f7730 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2285,7 +2285,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2317,7 +2317,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void sendHealthUpdate() { FoodData foodData = this.getHandle().getFoodData(); @@ -412,10 +412,10 @@ index 3421f446849bd4feded248406bd4748416e4d9fa..7db1f6ae9ee30293086f6b0d5fe86965 public void injectScaledMaxHealth(Collection<AttributeInstance> collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6c64de07bda20df15809dadc69d0d8ad05028677..9064f07fcbe0067c4b78cde026e58ae68f1aa4b9 100644 +index 53af54ffecd7fdb20588d75a8c32003cb89a75b1..eaca76dfec9cbe3cbb9972a0c9cf30599816fcda 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -837,9 +837,16 @@ public class CraftEventFactory { +@@ -863,9 +863,16 @@ public class CraftEventFactory { public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List<org.bukkit.inventory.ItemStack> drops) { CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); @@ -432,7 +432,7 @@ index 6c64de07bda20df15809dadc69d0d8ad05028677..9064f07fcbe0067c4b78cde026e58ae6 victim.expToDrop = event.getDroppedExp(); for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -@@ -856,8 +863,15 @@ public class CraftEventFactory { +@@ -882,8 +889,15 @@ public class CraftEventFactory { PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage, stringDeathMessage); // Paper - Adventure event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel @@ -448,7 +448,7 @@ index 6c64de07bda20df15809dadc69d0d8ad05028677..9064f07fcbe0067c4b78cde026e58ae6 victim.keepLevel = event.getKeepLevel(); victim.newLevel = event.getNewLevel(); -@@ -874,6 +888,31 @@ public class CraftEventFactory { +@@ -900,6 +914,31 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0253-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/server/0253-Allow-chests-to-be-placed-with-NBT-data.patch index 6ccfe198c9..1fad6b599e 100644 --- a/patches/server/0253-Allow-chests-to-be-placed-with-NBT-data.patch +++ b/patches/server/0253-Allow-chests-to-be-placed-with-NBT-data.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow chests to be placed with NBT data diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 940caf9b7526019ace656ff88146f198ba6b62ed..7d80eded30109982fd3a1b815ba5dff4b699689a 100644 +index c33660718c0ea281d7bcdb15df0568d4d46547e2..0caf3eeb7984e842f7a0bdfed3021d0b231a0dd0 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -377,6 +377,7 @@ public final class ItemStack { +@@ -381,6 +381,7 @@ public final class ItemStack { enuminteractionresult = InteractionResult.FAIL; // cancel placement // PAIL: Remove this when MC-99075 fixed placeEvent.getPlayer().updateInventory(); diff --git a/patches/server/0272-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0272-Add-option-to-prevent-players-from-moving-into-unloa.patch index 34528efa33..d9f09b7bcb 100644 --- a/patches/server/0272-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0272-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7e9955db343f2539210c4f89cf566db1e4e3600d..9a6caf7b445b033c30f8972ebcc9947b99fa44ef 100644 +index 739239c9ee8c3642a6d96238c11dddf7a848e4fd..67e423040969a175983dba5bacd675f6b57e88ff 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -567,9 +567,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -569,9 +569,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic double d0 = entity.getX(); double d1 = entity.getY(); double d2 = entity.getZ(); @@ -22,7 +22,7 @@ index 7e9955db343f2539210c4f89cf566db1e4e3600d..9a6caf7b445b033c30f8972ebcc9947b float f = Mth.wrapDegrees(packet.getYRot()); float f1 = Mth.wrapDegrees(packet.getXRot()); double d6 = d3 - this.vehicleFirstGoodX; -@@ -604,6 +604,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -606,6 +606,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } speed *= 2f; // TODO: Get the speed of the vehicle instead of the player @@ -39,7 +39,7 @@ index 7e9955db343f2539210c4f89cf566db1e4e3600d..9a6caf7b445b033c30f8972ebcc9947b if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8}); -@@ -1257,9 +1267,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1259,9 +1269,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.allowedPlayerTicks = 20; // CraftBukkit } else { this.awaitingTeleportTime = this.tickCount; @@ -52,7 +52,7 @@ index 7e9955db343f2539210c4f89cf566db1e4e3600d..9a6caf7b445b033c30f8972ebcc9947b float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot())); float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot())); -@@ -1314,6 +1324,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1316,6 +1326,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } else { speed = this.player.getAbilities().walkingSpeed * 10f; } diff --git a/patches/server/0277-Restore-custom-InventoryHolder-support.patch b/patches/server/0277-Restore-custom-InventoryHolder-support.patch index 47ca419c2a..dde06f4b18 100644 --- a/patches/server/0277-Restore-custom-InventoryHolder-support.patch +++ b/patches/server/0277-Restore-custom-InventoryHolder-support.patch @@ -161,7 +161,7 @@ index 0000000000000000000000000000000000000000..224d4b2cc45b0d02230a76caee9c8857 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java -index 301e89f638e38ad216d545a3cb5b7375695e6fe6..081e6c7ce4a0185ba75e48bbb581fd531cdb10a8 100644 +index 1b526fff47e5a3d9a5325c73966dd2bf3dbbdc19..633e6f4922ccaf59979a22885162f42c65bf628a 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -49,7 +49,7 @@ public class CraftContainer extends AbstractContainerMenu { @@ -182,7 +182,7 @@ index 301e89f638e38ad216d545a3cb5b7375695e6fe6..081e6c7ce4a0185ba75e48bbb581fd53 } // Paper end -@@ -246,6 +246,10 @@ public class CraftContainer extends AbstractContainerMenu { +@@ -247,6 +247,10 @@ public class CraftContainer extends AbstractContainerMenu { this.lastSlots = delegate.lastSlots; this.slots = delegate.slots; this.remoteSlots = delegate.remoteSlots; diff --git a/patches/server/0280-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0280-Don-t-allow-digging-into-unloaded-chunks.patch index 93d7118207..90e9493175 100644 --- a/patches/server/0280-Don-t-allow-digging-into-unloaded-chunks.patch +++ b/patches/server/0280-Don-t-allow-digging-into-unloaded-chunks.patch @@ -59,10 +59,10 @@ index 7adf7d1248680e591638298f13f5ae88788f5e4c..bdf11a98614c9c12d3112f437651be81 this.level.destroyBlockProgress(this.player.getId(), pos, -1); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9a6caf7b445b033c30f8972ebcc9947b99fa44ef..42ef3a732ae94502ad921b881f55d6882de2199c 100644 +index 67e423040969a175983dba5bacd675f6b57e88ff..f3a786825b76dc70170ec57db1b3baa9c5033c34 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1662,6 +1662,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1664,6 +1664,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic case START_DESTROY_BLOCK: case ABORT_DESTROY_BLOCK: case STOP_DESTROY_BLOCK: diff --git a/patches/server/0281-Make-the-default-permission-message-configurable.patch b/patches/server/0281-Make-the-default-permission-message-configurable.patch index c63565225d..98e26f28a4 100644 --- a/patches/server/0281-Make-the-default-permission-message-configurable.patch +++ b/patches/server/0281-Make-the-default-permission-message-configurable.patch @@ -18,10 +18,10 @@ index e3467aaf6d0c8d486b84362e3c20b3fe631b50ff..8f16640fc2f1233c10392d7e32a54d78 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b4df2dccee19bc529bcd76698ce0009e35bc271d..d8f53e9cefcd286687f092fd09714a62263567f1 100644 +index 2a4cddc0ed4d71b6db9112ff1397da5ddb433c1d..4b3749c20f0530f3b1268827dfe8f7ee898322fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2724,6 +2724,16 @@ public final class CraftServer implements Server { +@@ -2725,6 +2725,16 @@ public final class CraftServer implements Server { return io.papermc.paper.configuration.GlobalConfiguration.get().commands.suggestPlayerNamesWhenNullTabCompletions; } diff --git a/patches/server/0286-Book-Size-Limits.patch b/patches/server/0286-Book-Size-Limits.patch index e53230aea8..d00222c92d 100644 --- a/patches/server/0286-Book-Size-Limits.patch +++ b/patches/server/0286-Book-Size-Limits.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 42ef3a732ae94502ad921b881f55d6882de2199c..5b99f5147ae44b3e9f0310a2a133d8b1d6ab5614 100644 +index f3a786825b76dc70170ec57db1b3baa9c5033c34..d85f9e09820594edcf984cede8711069566ec5fe 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1124,6 +1124,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1126,6 +1126,45 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleEditBook(ServerboundEditBookPacket packet) { diff --git a/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index 74747f2574..5afc1b5ca0 100644 --- a/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -40,10 +40,10 @@ index 2bccba03bb12cf17a82c1e54c2bb10535b7c8964..5657493e215a17f3132f9d4114248751 GameProfileCache usercache = this.server.getProfileCache(); String s; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index 712006c27570dcbcefe173484e74d1bb0763e926..ef48315b98aa39ed245fb7619cf594bfb767931a 100644 +index aac78c13361b19efa7b43a0c95458390f1ba8340..f572a74b85df36a6da76b78ec29d807273867537 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -249,6 +249,61 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -261,6 +261,61 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa return this.getData() != null; } @@ -106,10 +106,10 @@ index 712006c27570dcbcefe173484e74d1bb0763e926..ef48315b98aa39ed245fb7619cf594bf public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7db1f6ae9ee30293086f6b0d5fe86965f278c87e..7afaa37d1d6d98fa79f91493897cfe68daf4698c 100644 +index 2a4dff1b9bf64b5fc073bbc943def71b289f7730..22b8b61f260f91d7c79b3772af3134a81db304ac 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -192,6 +192,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -194,6 +194,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; private String resourcePackHash; private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit @@ -117,7 +117,7 @@ index 7db1f6ae9ee30293086f6b0d5fe86965f278c87e..7afaa37d1d6d98fa79f91493897cfe68 // Paper end public CraftPlayer(CraftServer server, ServerPlayer entity) { -@@ -1903,6 +1904,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1935,6 +1936,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.firstPlayed = firstPlayed; } @@ -136,7 +136,7 @@ index 7db1f6ae9ee30293086f6b0d5fe86965f278c87e..7afaa37d1d6d98fa79f91493897cfe68 public void readExtraData(CompoundTag nbttagcompound) { this.hasPlayedBefore = true; if (nbttagcompound.contains("bukkit")) { -@@ -1925,6 +1938,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1957,6 +1970,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setExtraData(CompoundTag nbttagcompound) { @@ -145,7 +145,7 @@ index 7db1f6ae9ee30293086f6b0d5fe86965f278c87e..7afaa37d1d6d98fa79f91493897cfe68 if (!nbttagcompound.contains("bukkit")) { nbttagcompound.put("bukkit", new CompoundTag()); } -@@ -1939,6 +1954,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1971,6 +1986,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { data.putLong("firstPlayed", this.getFirstPlayed()); data.putLong("lastPlayed", System.currentTimeMillis()); data.putString("lastKnownName", handle.getScoreboardName()); diff --git a/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch index 006d672e57..21558cd9a9 100644 --- a/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch +++ b/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch @@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to be unintentional in the few cases we've seen so far. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7afaa37d1d6d98fa79f91493897cfe68daf4698c..de73f58180c083557a73078c45e57dbabf5429e8 100644 +index 22b8b61f260f91d7c79b3772af3134a81db304ac..4714d063f18806187fbd39315467ce467e30c6a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2832,6 +2832,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2864,6 +2864,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetCooldown() { getHandle().resetAttackStrengthTicker(); } diff --git a/patches/server/0294-Implement-Brigadier-Mojang-API.patch b/patches/server/0294-Implement-Brigadier-Mojang-API.patch index e6f44bc5b0..988c33f366 100644 --- a/patches/server/0294-Implement-Brigadier-Mojang-API.patch +++ b/patches/server/0294-Implement-Brigadier-Mojang-API.patch @@ -10,7 +10,7 @@ Adds CommandRegisteredEvent - Allows manipulating the CommandNode to add more children/metadata for the client diff --git a/build.gradle.kts b/build.gradle.kts -index cfaa988f64c4b994b918e2f947c58dd8743a9dfb..527e39bcd6aea7560b5d8ef37377c2f37da5c1ca 100644 +index e6d66db4b5fe4385c34329897c8277e4bc814129..6807a91d4d55dc90e2820caa855a44844c87b7e2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,6 +14,7 @@ val alsoShade: Configuration by configurations.creating @@ -131,10 +131,10 @@ index b7f1569c662df13f278fc704cabec0400ba7c382..87ce129e1d592bcf68169feb559f44d5 if (commandnode2.canUse(source)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5b99f5147ae44b3e9f0310a2a133d8b1d6ab5614..1dceea00a4299904b7205ef38f8993d092f5ff69 100644 +index d85f9e09820594edcf984cede8711069566ec5fe..9a134d65ebb4d004cc1a92fd832975e307667a03 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -840,8 +840,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -842,8 +842,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { @@ -149,7 +149,7 @@ index 5b99f5147ae44b3e9f0310a2a133d8b1d6ab5614..1dceea00a4299904b7205ef38f8993d0 }); }); } -@@ -856,7 +860,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -858,7 +862,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip())); } }); diff --git a/patches/server/0296-Limit-Client-Sign-length-more.patch b/patches/server/0296-Limit-Client-Sign-length-more.patch index 3d62de6f3b..9dc79d8f90 100644 --- a/patches/server/0296-Limit-Client-Sign-length-more.patch +++ b/patches/server/0296-Limit-Client-Sign-length-more.patch @@ -22,10 +22,10 @@ it only impacts data sent from the client. Set -DPaper.maxSignLength=XX to change limit or -1 to disable diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1dceea00a4299904b7205ef38f8993d092f5ff69..417852dd515f436aabb89468a2b282b044e5de06 100644 +index 9a134d65ebb4d004cc1a92fd832975e307667a03..9358e4edc7265326c0ec32e60f596b0f61ee690f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -300,6 +300,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -302,6 +302,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private final MessageSignatureCache messageSignatureCache; private final FutureChain chatMessageChain; private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit @@ -33,7 +33,7 @@ index 1dceea00a4299904b7205ef38f8993d092f5ff69..417852dd515f436aabb89468a2b282b0 public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH); -@@ -3201,7 +3202,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3209,7 +3210,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleSignUpdate(ServerboundSignUpdatePacket packet) { diff --git a/patches/server/0309-Fix-CB-call-to-changed-postToMainThread-method.patch b/patches/server/0309-Fix-CB-call-to-changed-postToMainThread-method.patch index e71d2edf34..3e9ba415e3 100644 --- a/patches/server/0309-Fix-CB-call-to-changed-postToMainThread-method.patch +++ b/patches/server/0309-Fix-CB-call-to-changed-postToMainThread-method.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix CB call to changed postToMainThread method diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 417852dd515f436aabb89468a2b282b044e5de06..bd70158d200f0bd9e52e46c9b5c8c7261a1646f5 100644 +index 9358e4edc7265326c0ec32e60f596b0f61ee690f..7f63eef706021e05ddb01ddc38ce672e5b0a5531 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -515,7 +515,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -517,7 +517,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Objects.requireNonNull(this.connection); // CraftBukkit - Don't wait diff --git a/patches/server/0314-Expose-the-internal-current-tick.patch b/patches/server/0314-Expose-the-internal-current-tick.patch index 140456ee75..c5f2e9e9d5 100644 --- a/patches/server/0314-Expose-the-internal-current-tick.patch +++ b/patches/server/0314-Expose-the-internal-current-tick.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose the internal current tick diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d8f53e9cefcd286687f092fd09714a62263567f1..7aa2682a8f6086550a3f27072dc7ec2425b3c116 100644 +index 4b3749c20f0530f3b1268827dfe8f7ee898322fb..7dae9866289e776c57e498121f79c1154809822d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2765,5 +2765,10 @@ public final class CraftServer implements Server { +@@ -2766,5 +2766,10 @@ public final class CraftServer implements Server { profile.getProperties().putAll(((CraftPlayer)player).getHandle().getGameProfile().getProperties()); return new com.destroystokyo.paper.profile.CraftPlayerProfile(profile); } diff --git a/patches/server/0342-Anti-Xray.patch b/patches/server/0342-Anti-Xray.patch index 8a99efafe2..a77dd1cfb2 100644 --- a/patches/server/0342-Anti-Xray.patch +++ b/patches/server/0342-Anti-Xray.patch @@ -1573,10 +1573,10 @@ index b738e1f7debac7d70910d5ac908ca9d4f60640d5..269ebe8e8826a0c89e471cb59b503900 public CraftChunk(net.minecraft.world.level.chunk.LevelChunk chunk) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7aa2682a8f6086550a3f27072dc7ec2425b3c116..3ad73272d67c1ffc0cdb1f119132490318c79abf 100644 +index 7dae9866289e776c57e498121f79c1154809822d..e5eedc1ff0b60414406bb0b131e3b0170991f046 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2294,7 +2294,7 @@ public final class CraftServer implements Server { +@@ -2295,7 +2295,7 @@ public final class CraftServer implements Server { public ChunkGenerator.ChunkData createChunkData(World world) { Preconditions.checkArgument(world != null, "World cannot be null"); ServerLevel handle = ((CraftWorld) world).getHandle(); diff --git a/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch index 4539f1ff9f..84df7607c8 100644 --- a/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0352-add-hand-to-BlockMultiPlaceEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9064f07fcbe0067c4b78cde026e58ae68f1aa4b9..2739c8424da929642d5ae029bfd75f8c302ac767 100644 +index eaca76dfec9cbe3cbb9972a0c9cf30599816fcda..ee7a7b80f96712830ea92daefb4454df70def170 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -374,13 +374,18 @@ public class CraftEventFactory { +@@ -399,13 +399,18 @@ public class CraftEventFactory { } org.bukkit.inventory.ItemStack item; diff --git a/patches/server/0358-Add-tick-times-API-and-mspt-command.patch b/patches/server/0358-Add-tick-times-API-and-mspt-command.patch index b605afbe92..1b6a0d57fc 100644 --- a/patches/server/0358-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0358-Add-tick-times-API-and-mspt-command.patch @@ -184,10 +184,10 @@ index cd57953e31c1f0f51553be113d84760f24b061b0..36112a1ab7306deb3cc38b103f22f7c1 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3ad73272d67c1ffc0cdb1f119132490318c79abf..286eb9b9618798e0937fc73c846b92b1d64bb8f3 100644 +index e5eedc1ff0b60414406bb0b131e3b0170991f046..6b7dc90df1d023d867f0eec30edd0e49f49899a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2549,6 +2549,16 @@ public final class CraftServer implements Server { +@@ -2550,6 +2550,16 @@ public final class CraftServer implements Server { net.minecraft.server.MinecraftServer.getServer().tps15.getAverage() }; } diff --git a/patches/server/0359-Expose-MinecraftServer-isRunning.patch b/patches/server/0359-Expose-MinecraftServer-isRunning.patch index 3bf1e4f1e8..ae812ac0f7 100644 --- a/patches/server/0359-Expose-MinecraftServer-isRunning.patch +++ b/patches/server/0359-Expose-MinecraftServer-isRunning.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose MinecraftServer#isRunning This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 286eb9b9618798e0937fc73c846b92b1d64bb8f3..97474f1835bb92446b2d63db40791310676d936c 100644 +index 6b7dc90df1d023d867f0eec30edd0e49f49899a1..8d104a58a5ebe4e019d398f17286527f2d33dac7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2780,5 +2780,10 @@ public final class CraftServer implements Server { +@@ -2781,5 +2781,10 @@ public final class CraftServer implements Server { public int getCurrentTick() { return net.minecraft.server.MinecraftServer.currentTick; } diff --git a/patches/server/0376-Implement-Player-Client-Options-API.patch b/patches/server/0376-Implement-Player-Client-Options-API.patch index 8f1008004a..a06124fba4 100644 --- a/patches/server/0376-Implement-Player-Client-Options-API.patch +++ b/patches/server/0376-Implement-Player-Client-Options-API.patch @@ -116,10 +116,10 @@ index 65d17836785774d0f196321ba741ffd05a9db36e..fd34a2ace2efc819b06674ceab44ff78 if (getMainArm() != packet.mainHand()) { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index de73f58180c083557a73078c45e57dbabf5429e8..0e5ff317d541a077f822bc0229e71915c2faf3c0 100644 +index 4714d063f18806187fbd39315467ce467e30c6a2..8094fbb1aa84c93cf6660e2c7a32772bfc3ec62f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -601,6 +601,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -603,6 +603,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message); } } diff --git a/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch index 8480bfdbdb..c89c279fdd 100644 --- a/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch +++ b/patches/server/0383-Fix-numerous-item-duplication-issues-and-teleport-is.patch @@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e1e9bc47e2e666ac5355d3b6a91a1a2dbd46e691..f5c1de9671bf823a7f2fa78acfa8f9065d6eb517 100644 +index d7cf9ca3a1002463b09ed709f3003d0528a3ff0b..ce4b2ec2ad6138b754ced976521d1c73eb4193a8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2449,11 +2449,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -135,10 +135,10 @@ index a35a0952ce8e1fc42e92734786d531c7e10b34d7..498c6664fcfb028111031691348bfa2e } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2739c8424da929642d5ae029bfd75f8c302ac767..9a9896e9424298c564a11a541448b54198461e62 100644 +index ee7a7b80f96712830ea92daefb4454df70def170..81c77354a856956283fc149980a9a09e99b544f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -840,6 +840,11 @@ public class CraftEventFactory { +@@ -866,6 +866,11 @@ public class CraftEventFactory { } public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List<org.bukkit.inventory.ItemStack> drops) { @@ -150,7 +150,7 @@ index 2739c8424da929642d5ae029bfd75f8c302ac767..9a9896e9424298c564a11a541448b541 CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); populateFields(victim, event); // Paper - make cancellable -@@ -853,11 +858,13 @@ public class CraftEventFactory { +@@ -879,11 +884,13 @@ public class CraftEventFactory { playDeathSound(victim, event); // Paper end victim.expToDrop = event.getDroppedExp(); diff --git a/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch index 500133b919..796c20196d 100644 --- a/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0385-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bd70158d200f0bd9e52e46c9b5c8c7261a1646f5..fbc5b78c0356d2bbe7a5eb48424e9d701251ac25 100644 +index 7f63eef706021e05ddb01ddc38ce672e5b0a5531..2f220a0b42aae276f9fb7a3f4ec5d2890b61af16 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -967,7 +967,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -969,7 +969,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handlePickItem(ServerboundPickItemPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0386-Expose-game-version.patch b/patches/server/0386-Expose-game-version.patch index bc91dbb336..579424680b 100644 --- a/patches/server/0386-Expose-game-version.patch +++ b/patches/server/0386-Expose-game-version.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 97474f1835bb92446b2d63db40791310676d936c..d0545e5543f60ca30ca885407cca442365644e84 100644 +index 8d104a58a5ebe4e019d398f17286527f2d33dac7..c3855d89f7d9b8c17b53d7ed34734d32f338fbc5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -579,6 +579,13 @@ public final class CraftServer implements Server { +@@ -580,6 +580,13 @@ public final class CraftServer implements Server { return this.bukkitVersion; } diff --git a/patches/server/0389-misc-debugging-dumps.patch b/patches/server/0389-misc-debugging-dumps.patch index a6b7eb769d..bd189e26bd 100644 --- a/patches/server/0389-misc-debugging-dumps.patch +++ b/patches/server/0389-misc-debugging-dumps.patch @@ -74,10 +74,10 @@ index 0c7f280bae81bbb492d5780a43e5ffda0f58756a..238a7bc87ab49da1f0fa3c733dd512fd this.connection.send(new ClientboundDisconnectPacket(ichatmutablecomponent)); this.connection.disconnect(ichatmutablecomponent); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d0545e5543f60ca30ca885407cca442365644e84..11a254484d078769085b278eb338d320d30b5a5a 100644 +index c3855d89f7d9b8c17b53d7ed34734d32f338fbc5..704572fb2b62afccf0a130b8430c78d306587b65 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1025,6 +1025,7 @@ public final class CraftServer implements Server { +@@ -1026,6 +1026,7 @@ public final class CraftServer implements Server { plugin.getDescription().getFullName(), "This plugin is not properly shutting down its async tasks when it is being reloaded. This may cause conflicts with the newly loaded version of the plugin" )); diff --git a/patches/server/0390-Prevent-teleporting-dead-entities.patch b/patches/server/0390-Prevent-teleporting-dead-entities.patch index a19b886516..b71bb4acbf 100644 --- a/patches/server/0390-Prevent-teleporting-dead-entities.patch +++ b/patches/server/0390-Prevent-teleporting-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent teleporting dead entities diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fbc5b78c0356d2bbe7a5eb48424e9d701251ac25..5257f7f32f5fea130fb391e32300d803a7fbb3a8 100644 +index 2f220a0b42aae276f9fb7a3f4ec5d2890b61af16..b7c1bc87b91c1056419681a09624efefc924815f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1615,6 +1615,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1617,6 +1617,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper diff --git a/patches/server/0392-Implement-Mob-Goal-API.patch b/patches/server/0392-Implement-Mob-Goal-API.patch index 0cc6e5c1f4..bde7867729 100644 --- a/patches/server/0392-Implement-Mob-Goal-API.patch +++ b/patches/server/0392-Implement-Mob-Goal-API.patch @@ -792,10 +792,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31 LOOK, JUMP, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 11a254484d078769085b278eb338d320d30b5a5a..94f938225f665a9b75e910ae2c8bb4617191d0aa 100644 +index 704572fb2b62afccf0a130b8430c78d306587b65..900e38b7ac712cdbc64ec580ee7f2e09e1ceccc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2793,5 +2793,11 @@ public final class CraftServer implements Server { +@@ -2794,5 +2794,11 @@ public final class CraftServer implements Server { public boolean isStopping() { return net.minecraft.server.MinecraftServer.getServer().hasStopped(); } diff --git a/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch index 4758b635d4..fcbdeef565 100644 --- a/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/patches/server/0394-Option-for-maximum-exp-value-when-merging-orbs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for maximum exp value when merging orbs diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9a9896e9424298c564a11a541448b54198461e62..274c88c8bc2b1936e4db003709c17bcc73cf6b27 100644 +index 81c77354a856956283fc149980a9a09e99b544f5..f120e9f2fa6919419f354f164d415a16a19ea9b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -661,16 +661,30 @@ public class CraftEventFactory { +@@ -686,16 +686,30 @@ public class CraftEventFactory { net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity; double radius = world.spigotConfig.expMerge; if (radius > 0) { diff --git a/patches/server/0395-ExperienceOrbMergeEvent.patch b/patches/server/0395-ExperienceOrbMergeEvent.patch index ba42e31bb5..464fea9bcf 100644 --- a/patches/server/0395-ExperienceOrbMergeEvent.patch +++ b/patches/server/0395-ExperienceOrbMergeEvent.patch @@ -9,10 +9,10 @@ Plugins can cancel this if they want to ensure experience orbs do not lose impor metadata such as spawn reason, or conditionally move data from source to target. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 274c88c8bc2b1936e4db003709c17bcc73cf6b27..722160b12bbeb2f4ffe1c0a2916042f5a0bad6d5 100644 +index f120e9f2fa6919419f354f164d415a16a19ea9b0..10eb0eed4bf0cc93e4e32c282735c2863f10837c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -671,7 +671,7 @@ public class CraftEventFactory { +@@ -696,7 +696,7 @@ public class CraftEventFactory { if (e instanceof net.minecraft.world.entity.ExperienceOrb) { net.minecraft.world.entity.ExperienceOrb loopItem = (net.minecraft.world.entity.ExperienceOrb) e; // Paper start diff --git a/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch index 7ba39bcc93..77d4f566df 100644 --- a/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0399-Wait-for-Async-Tasks-during-shutdown.patch @@ -22,10 +22,10 @@ index f4ad35b55cacd5c1c3e4d81d4a9cf9675349ce79..53876c0d957e2d151e93744eff606060 // CraftBukkit end if (this.getConnection() != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 94f938225f665a9b75e910ae2c8bb4617191d0aa..3f94c9aa16ba5a6bba0f7711acf6eae3201666fd 100644 +index 900e38b7ac712cdbc64ec580ee7f2e09e1ceccc3..6134dfb1b64c8ab88053f62aea5341ead2563db7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1035,6 +1035,31 @@ public final class CraftServer implements Server { +@@ -1036,6 +1036,31 @@ public final class CraftServer implements Server { org.spigotmc.WatchdogThread.hasStarted = true; // Paper - Disable watchdog early timeout on reload } diff --git a/patches/server/0412-Prevent-position-desync-in-playerconnection-causing-.patch b/patches/server/0412-Prevent-position-desync-in-playerconnection-causing-.patch index ed135cb3c3..36409ceb07 100644 --- a/patches/server/0412-Prevent-position-desync-in-playerconnection-causing-.patch +++ b/patches/server/0412-Prevent-position-desync-in-playerconnection-causing-.patch @@ -14,10 +14,10 @@ behaviour, we need to move all of this dangerous logic outside of the move call and into an appropriate place in the tick method. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5257f7f32f5fea130fb391e32300d803a7fbb3a8..ae91463a28de87f939ad7dde1674dcb1139ef197 100644 +index b7c1bc87b91c1056419681a09624efefc924815f..7e2f2c503f0af6b63ae496beb7cd9b34e61b16c9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1441,6 +1441,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1443,6 +1443,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move diff --git a/patches/server/0416-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0416-Add-and-implement-PlayerRecipeBookClickEvent.patch index 59a4e9be18..ec8e865f9b 100644 --- a/patches/server/0416-Add-and-implement-PlayerRecipeBookClickEvent.patch +++ b/patches/server/0416-Add-and-implement-PlayerRecipeBookClickEvent.patch @@ -5,25 +5,51 @@ Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ae91463a28de87f939ad7dde1674dcb1139ef197..d48dfd41d81ccd0931a410b9e2b9a11b604a451b 100644 +index 7e2f2c503f0af6b63ae496beb7cd9b34e61b16c9..dbae4102766837af9b173773c3d1a09439a1d606 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3117,9 +3117,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3116,16 +3116,40 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.containerMenu.stillValid(this.player)) { ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu); } else { -- this.server.getRecipeManager().byKey(packet.getRecipe()).ifPresent((irecipe) -> { -- ((RecipeBookMenu) this.player.containerMenu).handlePlacement(packet.isShiftDown(), irecipe, this.player); -- }); -+ // Paper start - fire event for clicking recipes in the recipe book -+ com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent event = new com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent( -+ player.getBukkitEntity(), org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(packet.getRecipe()), packet.isShiftDown()); -+ if (event.callEvent() && this.player.containerMenu instanceof RecipeBookMenu<?> recipeBookMenu) { // check if inventory changed during event handling -+ this.server.getRecipeManager().byKey(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(event.getRecipe())).ifPresent((irecipe) -> { -+ recipeBookMenu.handlePlacement(event.isMakeAll(), irecipe, this.player); -+ }); ++ // Paper start ++ ResourceLocation recipeName = packet.getRecipe(); ++ boolean makeAll = packet.isShiftDown(); ++ com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent paperEvent = new com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent( ++ this.player.getBukkitEntity(), org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(recipeName), makeAll ++ ); ++ if (!paperEvent.callEvent()) { ++ return; + } ++ recipeName = CraftNamespacedKey.toMinecraft(paperEvent.getRecipe()); ++ makeAll = paperEvent.isMakeAll(); ++ if (org.bukkit.event.player.PlayerRecipeBookClickEvent.getHandlerList().getRegisteredListeners().length > 0) { + // Paper end + // CraftBukkit start - implement PlayerRecipeBookClickEvent +- org.bukkit.inventory.Recipe recipe = this.cserver.getRecipe(CraftNamespacedKey.fromMinecraft(packet.getRecipe())); ++ org.bukkit.inventory.Recipe recipe = this.cserver.getRecipe(CraftNamespacedKey.fromMinecraft(recipeName)); // Paper + if (recipe == null) { + return; + } +- org.bukkit.event.player.PlayerRecipeBookClickEvent event = CraftEventFactory.callRecipeBookClickEvent(this.player, recipe, packet.isShiftDown()); ++ // Paper start ++ org.bukkit.event.player.PlayerRecipeBookClickEvent event = CraftEventFactory.callRecipeBookClickEvent(this.player, recipe, makeAll); ++ recipeName = CraftNamespacedKey.toMinecraft(((org.bukkit.Keyed) event.getRecipe()).getKey()); ++ makeAll = event.isShiftClick(); ++ } ++ if (!(this.player.containerMenu instanceof RecipeBookMenu<?>)) { ++ return; ++ } ++ // Paper end + + // Cast to keyed should be safe as the recipe will never be a MerchantRecipe. +- this.server.getRecipeManager().byKey(CraftNamespacedKey.toMinecraft(((org.bukkit.Keyed) event.getRecipe()).getKey())).ifPresent((irecipe) -> { +- ((RecipeBookMenu) this.player.containerMenu).handlePlacement(event.isShiftClick(), irecipe, this.player); ++ // Paper start ++ final boolean finalMakeAll = makeAll; ++ this.server.getRecipeManager().byKey(recipeName).ifPresent((irecipe) -> { ++ ((RecipeBookMenu) this.player.containerMenu).handlePlacement(finalMakeAll, irecipe, this.player); ++ // Paper end + }); + // CraftBukkit end } - } - } diff --git a/patches/server/0418-Add-permission-for-command-blocks.patch b/patches/server/0418-Add-permission-for-command-blocks.patch index 81c928a4ad..83a241e57c 100644 --- a/patches/server/0418-Add-permission-for-command-blocks.patch +++ b/patches/server/0418-Add-permission-for-command-blocks.patch @@ -18,10 +18,10 @@ index 58a1a54b676922ef0862dcab98e7aada5de80311..cf47536a2e37d53406fc9cb3f09095e0 return false; } else if (this.player.blockActionRestricted(this.level, pos, this.gameModeForPlayer)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d48dfd41d81ccd0931a410b9e2b9a11b604a451b..bd7407f9c294fc5157ec2644e9440f799a19935e 100644 +index dbae4102766837af9b173773c3d1a09439a1d606..f7c21abf2a783dc69c7fbe5719b4ca563a9deb65 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -878,7 +878,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -880,7 +880,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (!this.server.isCommandBlockEnabled()) { this.player.sendSystemMessage(Component.translatable("advMode.notEnabled")); @@ -30,7 +30,7 @@ index d48dfd41d81ccd0931a410b9e2b9a11b604a451b..bd7407f9c294fc5157ec2644e9440f79 this.player.sendSystemMessage(Component.translatable("advMode.notAllowed")); } else { BaseCommandBlock commandblocklistenerabstract = null; -@@ -945,7 +945,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -947,7 +947,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (!this.server.isCommandBlockEnabled()) { this.player.sendSystemMessage(Component.translatable("advMode.notEnabled")); diff --git a/patches/server/0420-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0420-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 10a3d145c0..743a59c8ce 100644 --- a/patches/server/0420-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0420-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,7 +8,7 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 53876c0d957e2d151e93744eff60606096f02e66..53c0246acda9fe1242710260e250429ae51eceb8 100644 +index 7668cceb6dcf0eafbd00abb24deaefe9729d261a..d1555152399221947283a68c2054cf4a93377666 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -798,7 +798,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -76,7 +76,7 @@ index 6a4c7783146ff6b6703e9ae814134a8d1086cf7f..1ffd3854239862414e6ceecf2764ba3d @Override diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6dcac005b57234983d0ed05fe825a16c98eb4557..2040b2defecb484ee7b46a885e924483387ee8fe 100644 +index 15a70bad66eb2508f58ff184061c2d19e45297e1..f80645fe0e1f9ad2a70ea33c5dc6a8c02ff262ec 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1203,7 +1203,7 @@ public class ServerPlayer extends Player { @@ -89,10 +89,10 @@ index 6dcac005b57234983d0ed05fe825a16c98eb4557..2040b2defecb484ee7b46a885e924483 playerlist.sendPlayerPermissionLevel(this); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bd7407f9c294fc5157ec2644e9440f799a19935e..087278f151c5ae45b64cf3b7318528bd90155b24 100644 +index f7c21abf2a783dc69c7fbe5719b4ca563a9deb65..a3d7f9cc074ce83815938a77c6119af95790d7e7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3355,7 +3355,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3381,7 +3381,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleChangeDifficulty(ServerboundChangeDifficultyPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.hasPermissions(2) || this.isSingleplayerOwner()) { @@ -102,10 +102,10 @@ index bd7407f9c294fc5157ec2644e9440f799a19935e..087278f151c5ae45b64cf3b7318528bd } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3f94c9aa16ba5a6bba0f7711acf6eae3201666fd..0135e667fc745015882a00248a523396814093e6 100644 +index 6134dfb1b64c8ab88053f62aea5341ead2563db7..a910974f8e6f6f5a4cc63d8060a62ac21dfe0d01 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -974,8 +974,8 @@ public final class CraftServer implements Server { +@@ -975,8 +975,8 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); for (ServerLevel world : this.console.getAllLevels()) { diff --git a/patches/server/0424-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0424-Add-Plugin-Tickets-to-API-Chunk-Methods.patch index 27f64b8902..a992c7b86e 100644 --- a/patches/server/0424-Add-Plugin-Tickets-to-API-Chunk-Methods.patch +++ b/patches/server/0424-Add-Plugin-Tickets-to-API-Chunk-Methods.patch @@ -22,10 +22,10 @@ wants it to collect even faster, they can restore that setting back to 1 instead Not adding it to .getType() though to keep behavior consistent with vanilla for performance reasons. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0135e667fc745015882a00248a523396814093e6..bc809752e187b3b2e5ecdc514e19596a5ec4c338 100644 +index a910974f8e6f6f5a4cc63d8060a62ac21dfe0d01..878fab611ed590e815f268af11dff27cef8d7fde 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -379,7 +379,7 @@ public final class CraftServer implements Server { +@@ -380,7 +380,7 @@ public final class CraftServer implements Server { this.overrideSpawnLimits(); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); @@ -34,7 +34,7 @@ index 0135e667fc745015882a00248a523396814093e6..bc809752e187b3b2e5ecdc514e19596a this.minimumAPI = this.configuration.getString("settings.minimum-api"); this.loadIcon(); -@@ -954,7 +954,7 @@ public final class CraftServer implements Server { +@@ -955,7 +955,7 @@ public final class CraftServer implements Server { this.console.setMotd(config.motd); this.overrideSpawnLimits(); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); diff --git a/patches/server/0436-Add-PrepareResultEvent.patch b/patches/server/0436-Add-PrepareResultEvent.patch index 531bf60a72..ba35d9fc85 100644 --- a/patches/server/0436-Add-PrepareResultEvent.patch +++ b/patches/server/0436-Add-PrepareResultEvent.patch @@ -94,10 +94,10 @@ index 8734a129244271b370f965fcbf488a14ce04684a..00f01ab2eff69c18b50ec07b7623af66 private void setupRecipeList(Container input, ItemStack stack) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 722160b12bbeb2f4ffe1c0a2916042f5a0bad6d5..ad14e77c163c52e57bd21a60aee4cc729ed1236d 100644 +index 10eb0eed4bf0cc93e4e32c282735c2863f10837c..7dc806760dbb26befde605d991d57660862484a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1641,26 +1641,53 @@ public class CraftEventFactory { +@@ -1667,26 +1667,53 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0448-Brand-support.patch b/patches/server/0448-Brand-support.patch index e184ab9da4..857acc4848 100644 --- a/patches/server/0448-Brand-support.patch +++ b/patches/server/0448-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 087278f151c5ae45b64cf3b7318528bd90155b24..435f02e4189754c60f589d13feae8fbc138e4afc 100644 +index a3d7f9cc074ce83815938a77c6119af95790d7e7..6f43de26f3d757dc14572c2d42dd8b6694e9fb0a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -302,6 +302,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -304,6 +304,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper @@ -17,7 +17,7 @@ index 087278f151c5ae45b64cf3b7318528bd90155b24..435f02e4189754c60f589d13feae8fbc public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player) { this.lastChatTimeStamp = new AtomicReference(Instant.EPOCH); this.lastSeenMessages = new LastSeenMessagesValidator(20); -@@ -3310,6 +3312,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3336,6 +3338,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_REGISTER = new ResourceLocation("register"); private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); @@ -26,7 +26,7 @@ index 087278f151c5ae45b64cf3b7318528bd90155b24..435f02e4189754c60f589d13feae8fbc @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); -@@ -3337,6 +3341,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3363,6 +3367,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic try { byte[] data = new byte[packet.data.readableBytes()]; packet.data.readBytes(data); @@ -42,7 +42,7 @@ index 087278f151c5ae45b64cf3b7318528bd90155b24..435f02e4189754c60f589d13feae8fbc this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); -@@ -3346,6 +3359,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3372,6 +3385,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } @@ -56,10 +56,10 @@ index 087278f151c5ae45b64cf3b7318528bd90155b24..435f02e4189754c60f589d13feae8fbc return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0e5ff317d541a077f822bc0229e71915c2faf3c0..d6bf91d33b4491a051ae977d24f90c68dcfb433c 100644 +index 8094fbb1aa84c93cf6660e2c7a32772bfc3ec62f..82229144f798eab2aacadb71250765c4e956b701 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2949,6 +2949,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2981,6 +2981,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end }; diff --git a/patches/server/0454-Add-BellRingEvent.patch b/patches/server/0454-Add-BellRingEvent.patch index 5d94e91a63..fd04ce804b 100644 --- a/patches/server/0454-Add-BellRingEvent.patch +++ b/patches/server/0454-Add-BellRingEvent.patch @@ -7,10 +7,10 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a village bell. Passes along the bell block and the player who rang it. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ad14e77c163c52e57bd21a60aee4cc729ed1236d..0104ccb2bede7c2297261c022e04ffec6327eb85 100644 +index 7dc806760dbb26befde605d991d57660862484a1..ab6f24426031d47d25fcf94421569a3276cdca9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -340,10 +340,11 @@ public class CraftEventFactory { +@@ -365,10 +365,11 @@ public class CraftEventFactory { return tradeSelectEvent; } diff --git a/patches/server/0459-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0459-PortalCreateEvent-needs-to-know-its-entity.patch index d4898a5e3e..c6b3bbabfa 100644 --- a/patches/server/0459-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/patches/server/0459-PortalCreateEvent-needs-to-know-its-entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] PortalCreateEvent needs to know its entity diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index dcb01c399d2b30d907bfc51584215d9300b6d23e..5ebc5e760ac43b88678977ced06b8d72f8358a68 100644 +index ee274fb9c8292a807e438902cc5d7f49c30d6627..34e54233d54f21cf4304c39e53aa6a7fb06a67cf 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -448,7 +448,7 @@ public final class ItemStack { +@@ -452,7 +452,7 @@ public final class ItemStack { net.minecraft.world.level.block.state.BlockState block = world.getBlockState(newblockposition); if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically diff --git a/patches/server/0462-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0462-Create-HoverEvent-from-ItemStack-Entity.patch index 042efb92e7..c1ff218feb 100644 --- a/patches/server/0462-Create-HoverEvent-from-ItemStack-Entity.patch +++ b/patches/server/0462-Create-HoverEvent-from-ItemStack-Entity.patch @@ -5,14 +5,15 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index f8475390d69bef6f3eca5a57d5f44021fabf4942..21f5c0f2fc10b5f5752e214a08e858227bdcf2ce 100644 +index 5aece14ec931f4c564e847a2797e92da8ffb569b..ff05e29bdc8d21e9e6ddb4cb23f8fc9396481ffc 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -468,5 +468,40 @@ public final class CraftItemFactory implements ItemFactory { - +@@ -491,4 +491,41 @@ public final class CraftItemFactory implements ItemFactory { return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null; } + // Paper end - add getI18NDisplayName + ++ // Paper start - bungee hover events + @Override + public net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(ItemStack itemStack) { + net.md_5.bungee.api.chat.ItemTag itemTag = net.md_5.bungee.api.chat.ItemTag.ofNbt(CraftItemStack.asNMSCopy(itemStack).getOrCreateTag().toString()); @@ -47,5 +48,5 @@ index f8475390d69bef6f3eca5a57d5f44021fabf4942..21f5c0f2fc10b5f5752e214a08e85822 + entity.getUniqueId().toString(), + new net.md_5.bungee.api.chat.TextComponent(customName)); + } - // Paper end ++ // Paper end - bungee hover events } diff --git a/patches/server/0464-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0464-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 9334e3beb9..b9058e61ed 100644 --- a/patches/server/0464-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0464-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -9,10 +9,10 @@ as this is how Vanilla teleports entities. Cancel any pending motion when teleported. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 435f02e4189754c60f589d13feae8fbc138e4afc..be4e9a35b8bf557d254ca63376ec3a0d2882a807 100644 +index 6f43de26f3d757dc14572c2d42dd8b6694e9fb0a..4341fdd364194690a4f2329bbf4415c455a144bf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -760,7 +760,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -762,7 +762,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } @@ -21,7 +21,7 @@ index 435f02e4189754c60f589d13feae8fbc138e4afc..be4e9a35b8bf557d254ca63376ec3a0d this.lastGoodX = this.awaitingPositionFromClient.x; this.lastGoodY = this.awaitingPositionFromClient.y; this.lastGoodZ = this.awaitingPositionFromClient.z; -@@ -1659,7 +1659,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1661,7 +1661,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // CraftBukkit end this.awaitingTeleportTime = this.tickCount; @@ -31,7 +31,7 @@ index 435f02e4189754c60f589d13feae8fbc138e4afc..be4e9a35b8bf557d254ca63376ec3a0d } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a40aa3e70b5d38fb2be4c916fcb6f7fded5e5ccc..4cac7ae766e71fedfd2be8d17741ffd40ae1cee4 100644 +index ffd7e11b16604050e87a6b8aac08948fd3311bd1..fca862584439c87b049af4cdd9f79fe4ee30ea40 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -159,6 +159,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/server/0469-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0469-Lazily-track-plugin-scoreboards-by-default.patch index 37ef8c7f81..6716cd5857 100644 --- a/patches/server/0469-Lazily-track-plugin-scoreboards-by-default.patch +++ b/patches/server/0469-Lazily-track-plugin-scoreboards-by-default.patch @@ -14,7 +14,7 @@ this breaks your workflow you can always force all scoreboards to be tracked wit settings.track-plugin-scoreboards in paper.yml. diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java -index 2471a6d0b7a8086cf4c0a41b10c05ed50d790d11..e233eef291f64622947b0b6c4559639e510c087f 100644 +index 3f09420ba9268ac1dc5440c0739744370c0de319..052389310826ee6b97cf27dfd952e0101fb2d097 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java @@ -18,6 +18,7 @@ import org.bukkit.scoreboard.Team; @@ -29,17 +29,17 @@ index 2471a6d0b7a8086cf4c0a41b10c05ed50d790d11..e233eef291f64622947b0b6c4559639e Preconditions.checkArgument(renderType != null, "RenderType cannot be null"); Preconditions.checkArgument(name.length() <= Short.MAX_VALUE, "The name '%s' is longer than the limit of 32767 characters (%s)", name, name.length()); Preconditions.checkArgument(this.board.getObjective(name) == null, "An objective of name '%s' already exists", name); -+ // Paper start - the block comment from the old registerNewObjective didnt cause a conflict when rebasing, so this block wasn't added to the adventure registerNewObjective ++ // Paper start - lazily track plugin scoreboards + if (((CraftCriteria) criteria).criteria != net.minecraft.world.scores.criteria.ObjectiveCriteria.DUMMY && !this.registeredGlobally) { + net.minecraft.server.MinecraftServer.getServer().server.getScoreboardManager().registerScoreboardForVanilla(this); + this.registeredGlobally = true; + } + // Paper end - net.minecraft.world.scores.Objective objective = board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType)); + net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType)); return new CraftObjective(this, objective); } diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java -index d3855731f9b63357ebe4f8f4d5941b5353dff935..6fcb2356b471c5a61faa0813a891c3898683d01f 100644 +index 282cb5e41fed48df890eaa30e42563289e065caa..afc43b52698db4bf7d89a576c2cbca0ddc9e04e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardManager.java @@ -30,6 +30,7 @@ public final class CraftScoreboardManager implements ScoreboardManager { diff --git a/patches/server/0473-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0473-Reset-Ender-Crystals-on-Dragon-Spawn.patch index b1477cf8eb..7835fd9104 100644 --- a/patches/server/0473-Reset-Ender-Crystals-on-Dragon-Spawn.patch +++ b/patches/server/0473-Reset-Ender-Crystals-on-Dragon-Spawn.patch @@ -11,14 +11,14 @@ This ensures the crystals/pillars are in expected state when the dragon spawns. See #3522 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 35304d7a60348a2b4e1eec43418086086502e4ab..cae4c52e239bdbb916d69e14617814fd08279f1b 100644 +index bf405efcd44b9d6fdc838d722d67ff7f78ceedce..f39344cb45f3134ef368d7569b24ba68308268db 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -412,6 +412,7 @@ public class EndDragonFight { - enderDragon.moveTo((double)this.origin.getX(), (double)(128 + this.origin.getY()), (double)this.origin.getZ(), this.level.random.nextFloat() * 360.0F, 0.0F); - this.level.addFreshEntity(enderDragon); - this.dragonUUID = enderDragon.getUUID(); +@@ -467,6 +467,7 @@ public class EndDragonFight { + entityenderdragon.moveTo((double) this.origin.getX(), (double) (128 + this.origin.getY()), (double) this.origin.getZ(), this.level.random.nextFloat() * 360.0F, 0.0F); + this.level.addFreshEntity(entityenderdragon); + this.dragonUUID = entityenderdragon.getUUID(); + this.resetSpikeCrystals(); // Paper } - return enderDragon; + return entityenderdragon; diff --git a/patches/server/0474-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0474-Fix-for-large-move-vectors-crashing-server.patch index e2509eb52e..2191615073 100644 --- a/patches/server/0474-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0474-Fix-for-large-move-vectors-crashing-server.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index be4e9a35b8bf557d254ca63376ec3a0d2882a807..20ab6c5736abeb6978c8f09ce0ff624a4ba3a978 100644 +index 4341fdd364194690a4f2329bbf4415c455a144bf..7d70b03b7b5e283ce5cbeb99d2cb61a48cc70932 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -567,9 +567,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -569,9 +569,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (entity != this.player && entity.getControllingPassenger() == this.player && entity == this.lastVehicle) { ServerLevel worldserver = this.player.serverLevel(); @@ -22,7 +22,7 @@ index be4e9a35b8bf557d254ca63376ec3a0d2882a807..20ab6c5736abeb6978c8f09ce0ff624a double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX()); final double toX = d3; // Paper - OBFHELPER double d4 = ServerGamePacketListenerImpl.clampVertical(packet.getY()); final double toY = d4; // Paper - OBFHELPER double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ()); final double toZ = d5; // Paper - OBFHELPER -@@ -579,8 +579,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -581,8 +581,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic double d7 = d4 - this.vehicleFirstGoodY; double d8 = d5 - this.vehicleFirstGoodZ; double d9 = entity.getDeltaMovement().lengthSqr(); @@ -44,7 +44,7 @@ index be4e9a35b8bf557d254ca63376ec3a0d2882a807..20ab6c5736abeb6978c8f09ce0ff624a // CraftBukkit start - handle custom speeds and skipped ticks this.allowedPlayerTicks += (System.currentTimeMillis() / 50) - this.lastTick; -@@ -626,9 +637,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -628,9 +639,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag = worldserver.noCollision(entity, entity.getBoundingBox().deflate(0.0625D)); @@ -57,7 +57,7 @@ index be4e9a35b8bf557d254ca63376ec3a0d2882a807..20ab6c5736abeb6978c8f09ce0ff624a boolean flag1 = entity.verticalCollisionBelow; if (entity instanceof LivingEntity) { -@@ -1351,7 +1362,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1353,7 +1364,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic double d7 = d1 - this.firstGoodY; double d8 = d2 - this.firstGoodZ; double d9 = this.player.getDeltaMovement().lengthSqr(); @@ -77,7 +77,7 @@ index be4e9a35b8bf557d254ca63376ec3a0d2882a807..20ab6c5736abeb6978c8f09ce0ff624a if (this.player.isSleeping()) { if (d10 > 1.0D) { -@@ -1403,9 +1425,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1405,9 +1427,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = this.player.getBoundingBox(); diff --git a/patches/server/0480-Player-elytra-boost-API.patch b/patches/server/0480-Player-elytra-boost-API.patch index 9f36308d6e..3eccd760ac 100644 --- a/patches/server/0480-Player-elytra-boost-API.patch +++ b/patches/server/0480-Player-elytra-boost-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d6bf91d33b4491a051ae977d24f90c68dcfb433c..aae9a897ce3abd045fb2d17f565ef2e38490257a 100644 +index 82229144f798eab2aacadb71250765c4e956b701..800c6da91f6a2bdb932cc7192bde7b974fce83f9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -623,6 +623,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -625,6 +625,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } throw new RuntimeException("Unknown settings type"); } diff --git a/patches/server/0483-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0483-Add-getOfflinePlayerIfCached-String.patch index c60b3e54b4..f7825d907e 100644 --- a/patches/server/0483-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0483-Add-getOfflinePlayerIfCached-String.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index bc809752e187b3b2e5ecdc514e19596a5ec4c338..62d44490887480b522d811befb4c104e1cee9663 100644 +index 878fab611ed590e815f268af11dff27cef8d7fde..1dc93c013eb34b395e7a0523ccd185ec1372be19 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1830,6 +1830,28 @@ public final class CraftServer implements Server { +@@ -1831,6 +1831,28 @@ public final class CraftServer implements Server { return result; } diff --git a/patches/server/0485-Toggle-for-removing-existing-dragon.patch b/patches/server/0485-Toggle-for-removing-existing-dragon.patch index 3ea483fce0..5d91962290 100644 --- a/patches/server/0485-Toggle-for-removing-existing-dragon.patch +++ b/patches/server/0485-Toggle-for-removing-existing-dragon.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Toggle for removing existing dragon diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index cae4c52e239bdbb916d69e14617814fd08279f1b..58823aeb8316628be716051b74307b01c37ad8a0 100644 +index f39344cb45f3134ef368d7569b24ba68308268db..1fad121f0559cf5c40ccbf7290bfb600b17dc219 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -195,7 +195,7 @@ public class EndDragonFight { - this.dragonUUID = enderDragon.getUUID(); - LOGGER.info("Found that there's a dragon still alive ({})", (Object)enderDragon); +@@ -209,7 +209,7 @@ public class EndDragonFight { + this.dragonUUID = entityenderdragon.getUUID(); + EndDragonFight.LOGGER.info("Found that there's a dragon still alive ({})", entityenderdragon); this.dragonKilled = false; -- if (!bl) { -+ if (!bl && this.level.paperConfig().entities.behavior.shouldRemoveDragon) { - LOGGER.info("But we didn't have a portal, let's remove it."); - enderDragon.discard(); +- if (!flag) { ++ if (!flag && this.level.paperConfig().entities.behavior.shouldRemoveDragon) { + EndDragonFight.LOGGER.info("But we didn't have a portal, let's remove it."); + entityenderdragon.discard(); this.dragonUUID = null; diff --git a/patches/server/0490-Add-API-for-quit-reason.patch b/patches/server/0490-Add-API-for-quit-reason.patch index e332954472..f58db3c972 100644 --- a/patches/server/0490-Add-API-for-quit-reason.patch +++ b/patches/server/0490-Add-API-for-quit-reason.patch @@ -25,7 +25,7 @@ index 959d39e81cdde6fda90fcc95f842146448b4c6e4..a1467e8edd3ca66c306d01e0688a9fec Connection.LOGGER.debug("Failed to sent packet", throwable); ConnectionProtocol enumprotocol = this.getCurrentProtocol(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c22acc5e6333f8cc9b734bff48bb9ff7a00bfd4d..abde8074da754667d65f3894097ad2255c97f3f0 100644 +index e087b62f88157d57eb037feb0d39c076b286f755..0b81878a951643af1ce785b3adcca9b3eec7f1c3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -275,6 +275,7 @@ public class ServerPlayer extends Player { @@ -37,10 +37,10 @@ index c22acc5e6333f8cc9b734bff48bb9ff7a00bfd4d..abde8074da754667d65f3894097ad225 private final java.util.concurrent.atomic.AtomicReference<io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances> viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); public io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 20ab6c5736abeb6978c8f09ce0ff624a4ba3a978..f5850d85aa5c3917ed058b41cfeb32089f9d392e 100644 +index 7d70b03b7b5e283ce5cbeb99d2cb61a48cc70932..c6a1e8246ac22e83121cb17eee8e00ab1dd48306 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -507,6 +507,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -509,6 +509,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic final Component ichatbasecomponent = PaperAdventure.asVanilla(event.reason()); // Paper - Adventure // CraftBukkit end diff --git a/patches/server/0494-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0494-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 49268e0324..6a7ef09afd 100644 --- a/patches/server/0494-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0494-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index aae9a897ce3abd045fb2d17f565ef2e38490257a..6c6e5e296f000ff031efe8ec2e334edaf9630210 100644 +index 800c6da91f6a2bdb932cc7192bde7b974fce83f9..7d64f73867f76ecd61cb14dfd8b15ddce918574d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2478,7 +2478,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2510,7 +2510,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (data != null) { Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType()); } diff --git a/patches/server/0503-Limit-recipe-packets.patch b/patches/server/0503-Limit-recipe-packets.patch index 68ca8f357c..9cc31e1551 100644 --- a/patches/server/0503-Limit-recipe-packets.patch +++ b/patches/server/0503-Limit-recipe-packets.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f5850d85aa5c3917ed058b41cfeb32089f9d392e..15e98935d333a5538438ed239fe8f4a590d4fe97 100644 +index c6a1e8246ac22e83121cb17eee8e00ab1dd48306..c1636c313994dc4b3ae4c19fc66137bd080a501c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -268,6 +268,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // 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 @@ -16,7 +16,7 @@ index f5850d85aa5c3917ed058b41cfeb32089f9d392e..15e98935d333a5538438ed239fe8f4a5 // CraftBukkit end private int dropSpamTickCount; private double firstGoodX; -@@ -418,6 +419,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -420,6 +421,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // CraftBukkit start for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ; if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - split to seperate variable @@ -24,7 +24,7 @@ index f5850d85aa5c3917ed058b41cfeb32089f9d392e..15e98935d333a5538438ed239fe8f4a5 /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -3136,6 +3138,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3135,6 +3137,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { diff --git a/patches/server/0508-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0508-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index 5b29675101..2615ae803b 100644 --- a/patches/server/0508-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0508-Add-OBSTRUCTED-reason-to-BedEnterResult.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0104ccb2bede7c2297261c022e04ffec6327eb85..f92346b735967b488bc19ac5727338df75186248 100644 +index ab6f24426031d47d25fcf94421569a3276cdca9a..a82a5fd54a962fdcf86f2bc139085ed526cade5e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -275,6 +275,10 @@ public class CraftEventFactory { +@@ -300,6 +300,10 @@ public class CraftEventFactory { return BedEnterResult.TOO_FAR_AWAY; case NOT_SAFE: return BedEnterResult.NOT_SAFE; diff --git a/patches/server/0520-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0520-Fix-interact-event-not-being-called-sometimes.patch index b43e990cdf..9637f2fe59 100644 --- a/patches/server/0520-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0520-Fix-interact-event-not-being-called-sometimes.patch @@ -11,10 +11,10 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry <[email protected]> diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 15e98935d333a5538438ed239fe8f4a590d4fe97..9e8f22b9c5d445afb20a467e94d54c1da3549d50 100644 +index c1636c313994dc4b3ae4c19fc66137bd080a501c..ec1d92a71518b9329e81f12bc8ccef846fefc168 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1837,7 +1837,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1839,7 +1839,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED); this.player.sendSystemMessage(ichatmutablecomponent, true); @@ -23,13 +23,15 @@ index 15e98935d333a5538438ed239fe8f4a590d4fe97..9e8f22b9c5d445afb20a467e94d54c1d this.player.swing(enumhand, true); } } -@@ -2471,11 +2471,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic - +@@ -2468,13 +2468,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic double d3 = player.gameMode.getGameModeForPlayer() == GameType.CREATIVE ? 5.0D : 4.5D; // SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time -- org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.1, entity -> entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity)); -+ org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.0, entity -> entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity)); // Paper - change raySize from 0.1 to 0.0 - + // SPIGOT-7429: Make sure to call PlayerInteractEvent for spectators and non-pickable entities +- org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.1, entity -> { ++ org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.0, entity -> { // Paper - change raySize from 0.1 to 0.0 + Entity handle = ((CraftEntity) entity).getHandle(); + return entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity) && !handle.isSpectator() && handle.isPickable() && !handle.isPassengerOfSameVehicle(player); + }); if (result == null) { CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_AIR, this.player.getInventory().getSelected(), InteractionHand.MAIN_HAND); - } diff --git a/patches/server/0527-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0527-Implemented-BlockFailedDispenseEvent.patch index 9767db1a25..02c992577a 100644 --- a/patches/server/0527-Implemented-BlockFailedDispenseEvent.patch +++ b/patches/server/0527-Implemented-BlockFailedDispenseEvent.patch @@ -32,10 +32,10 @@ index 1415ad60163f6584619cc7caa61f1848d6ebaa93..801c4c120e98584bcf218a4ef9bd66d7 } else { ItemStack itemstack = tileentitydispenser.getItem(i); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f92346b735967b488bc19ac5727338df75186248..a7a58cd44238f2eb9d472667abe9e230cad8e9bd 100644 +index a82a5fd54a962fdcf86f2bc139085ed526cade5e..5c6650892892228dd8e9b4fbd62f4f014d6ddff3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1962,4 +1962,12 @@ public class CraftEventFactory { +@@ -1995,4 +1995,12 @@ public class CraftEventFactory { Bukkit.getPluginManager().callEvent(event); return event; } diff --git a/patches/server/0534-Add-sendOpLevel-API.patch b/patches/server/0534-Add-sendOpLevel-API.patch index d64b8c3468..0e04617c8e 100644 --- a/patches/server/0534-Add-sendOpLevel-API.patch +++ b/patches/server/0534-Add-sendOpLevel-API.patch @@ -32,10 +32,10 @@ index 13e2fb9e48ed8722b68b2ce2994d9d84bb22cee4..600bb44d97b477960108ea8cd84a8e73 public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6c6e5e296f000ff031efe8ec2e334edaf9630210..7a11d68ee2a1f0f57d9e1f9e98b704e05f5d773c 100644 +index 7d64f73867f76ecd61cb14dfd8b15ddce918574d..2ab0c6561fc79eee25538d6ffcb3a14eb6442373 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -637,6 +637,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -639,6 +639,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ? (org.bukkit.entity.Firework) entity.getBukkitEntity() : null; } diff --git a/patches/server/0542-Implement-BlockPreDispenseEvent.patch b/patches/server/0542-Implement-BlockPreDispenseEvent.patch index 0289f22d94..22f893a72f 100644 --- a/patches/server/0542-Implement-BlockPreDispenseEvent.patch +++ b/patches/server/0542-Implement-BlockPreDispenseEvent.patch @@ -17,10 +17,10 @@ index 9ec043ff2cd38e589066a3eb7f42834e4e7592cf..4720b884e1e311f44a012f1219fe648a tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack)); } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a7a58cd44238f2eb9d472667abe9e230cad8e9bd..215aec90e2915a5ab38d6b3c612f90dc1f42730c 100644 +index 5c6650892892228dd8e9b4fbd62f4f014d6ddff3..1886310fe234ec615055d49ac0c2c77bc4fc7a60 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1969,5 +1969,11 @@ public class CraftEventFactory { +@@ -2002,5 +2002,11 @@ public class CraftEventFactory { io.papermc.paper.event.block.BlockFailedDispenseEvent event = new io.papermc.paper.event.block.BlockFailedDispenseEvent(block); return event.callEvent(); } diff --git a/patches/server/0544-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0544-Add-toggle-for-always-placing-the-dragon-egg.patch index 76a5cc04c4..19801f064b 100644 --- a/patches/server/0544-Add-toggle-for-always-placing-the-dragon-egg.patch +++ b/patches/server/0544-Add-toggle-for-always-placing-the-dragon-egg.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for always placing the dragon egg diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 58823aeb8316628be716051b74307b01c37ad8a0..2be95e545ca85cf94b1e847ff452cd586c4eea05 100644 +index 1fad121f0559cf5c40ccbf7290bfb600b17dc219..f88e0480972abe41e71227d36505e11d6b9aa992 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -356,7 +356,7 @@ public class EndDragonFight { +@@ -407,7 +407,7 @@ public class EndDragonFight { this.dragonEvent.setVisible(false); this.spawnExitPortal(true); this.spawnNewGateway(); diff --git a/patches/server/0546-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0546-Add-dropLeash-variable-to-EntityUnleashEvent.patch index 41c6f9f0ca..bc6c44b2e2 100644 --- a/patches/server/0546-Add-dropLeash-variable-to-EntityUnleashEvent.patch +++ b/patches/server/0546-Add-dropLeash-variable-to-EntityUnleashEvent.patch @@ -122,10 +122,10 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63 flag1 = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 215aec90e2915a5ab38d6b3c612f90dc1f42730c..4010be07b2cd47e12081bfc8bbb18b274742eec0 100644 +index 1886310fe234ec615055d49ac0c2c77bc4fc7a60..e7e113b9d45dda50a38215088a846cc468a53344 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1564,8 +1564,10 @@ public class CraftEventFactory { +@@ -1590,8 +1590,10 @@ public class CraftEventFactory { return itemInHand; } diff --git a/patches/server/0548-add-DragonEggFormEvent.patch b/patches/server/0548-add-DragonEggFormEvent.patch index e4abf96236..7a813b289f 100644 --- a/patches/server/0548-add-DragonEggFormEvent.patch +++ b/patches/server/0548-add-DragonEggFormEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add DragonEggFormEvent diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 2be95e545ca85cf94b1e847ff452cd586c4eea05..eab54838ba540f41cc59a359dd00ba80d82c771e 100644 +index f88e0480972abe41e71227d36505e11d6b9aa992..b5d69bde512f832374acd5e6b94268ea327b01b2 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -356,9 +356,23 @@ public class EndDragonFight { +@@ -407,9 +407,23 @@ public class EndDragonFight { this.dragonEvent.setVisible(false); this.spawnExitPortal(true); this.spawnNewGateway(); diff --git a/patches/server/0552-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0552-Allow-adding-items-to-BlockDropItemEvent.patch index 09853a2cb3..fa629d404f 100644 --- a/patches/server/0552-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0552-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 4010be07b2cd47e12081bfc8bbb18b274742eec0..f7d078f557b0be8db0b2ef7e5ff2094909686047 100644 +index e7e113b9d45dda50a38215088a846cc468a53344..ecf0a23435532cc6a771ef04787bbef190699edb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -424,13 +424,30 @@ public class CraftEventFactory { +@@ -449,13 +449,30 @@ public class CraftEventFactory { } public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List<ItemEntity> items) { diff --git a/patches/server/0567-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0567-Allow-using-signs-inside-spawn-protection.patch index d01c202ac6..29a0c08e20 100644 --- a/patches/server/0567-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0567-Allow-using-signs-inside-spawn-protection.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d52c0a729a98cac6250d40232cea816f050599f1..a45ff8591eb87c228f6cc535bef3e8d88537916f 100644 +index ec1d92a71518b9329e81f12bc8ccef846fefc168..bf80dda7cb227f56a3a38bbd821e2ec57bcbcec6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1829,7 +1829,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1831,7 +1831,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int i = this.player.level().getMaxBuildHeight(); if (blockposition.getY() < i) { diff --git a/patches/server/0568-Expand-world-key-API.patch b/patches/server/0568-Expand-world-key-API.patch index b9a2b26e88..8ab718d7fd 100644 --- a/patches/server/0568-Expand-world-key-API.patch +++ b/patches/server/0568-Expand-world-key-API.patch @@ -20,10 +20,10 @@ index 0452a59d6eec947589b4791c977327046f7b0d6e..f50d48d737aa7a6561a8868a607a68dc // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 62d44490887480b522d811befb4c104e1cee9663..8fd06d9ad547ba45b46674e6e432b6a28abbcfe2 100644 +index 1dc93c013eb34b395e7a0523ccd185ec1372be19..7326ed1b913c6d9b1e122564101bd67b6bdc489a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1156,9 +1156,15 @@ public final class CraftServer implements Server { +@@ -1157,9 +1157,15 @@ public final class CraftServer implements Server { File folder = new File(this.getWorldContainer(), name); World world = this.getWorld(name); @@ -41,7 +41,7 @@ index 62d44490887480b522d811befb4c104e1cee9663..8fd06d9ad547ba45b46674e6e432b6a2 if (folder.exists()) { Preconditions.checkArgument(folder.isDirectory(), "File (%s) exists and isn't a folder", name); -@@ -1245,7 +1251,7 @@ public final class CraftServer implements Server { +@@ -1246,7 +1252,7 @@ public final class CraftServer implements Server { } else if (name.equals(levelName + "_the_end")) { worldKey = net.minecraft.world.level.Level.END; } else { @@ -50,7 +50,7 @@ index 62d44490887480b522d811befb4c104e1cee9663..8fd06d9ad547ba45b46674e6e432b6a2 } ServerLevel internal = (ServerLevel) new ServerLevel(this.console, console.executor, worldSession, worlddata, worldKey, worlddimension, this.getServer().progressListenerFactory.create(11), -@@ -1337,6 +1343,15 @@ public final class CraftServer implements Server { +@@ -1338,6 +1344,15 @@ public final class CraftServer implements Server { return null; } diff --git a/patches/server/0573-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0573-Don-t-ignore-result-of-PlayerEditBookEvent.patch index f4f8bb0888..f3a44549e3 100644 --- a/patches/server/0573-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0573-Don-t-ignore-result-of-PlayerEditBookEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a45ff8591eb87c228f6cc535bef3e8d88537916f..b78ce824bba3ce690a41059af0929c443e91fa12 100644 +index bf80dda7cb227f56a3a38bbd821e2ec57bcbcec6..36ca9558a4c8d40e7220b69f0ae0a65ffe74eaee 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1290,7 +1290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1292,7 +1292,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } itemstack.addTagElement("pages", nbttaglist); diff --git a/patches/server/0583-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0583-fix-PlayerItemHeldEvent-firing-twice.patch index 4522f422b5..8f552e3404 100644 --- a/patches/server/0583-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0583-fix-PlayerItemHeldEvent-firing-twice.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b78ce824bba3ce690a41059af0929c443e91fa12..2f9fe15fe34f44825d21ae840708fcbd89b76732 100644 +index 36ca9558a4c8d40e7220b69f0ae0a65ffe74eaee..25eefd856fb228b939b6ee4ae87f676e7419d9f4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2045,6 +2045,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.isImmobile()) return; // CraftBukkit if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) { diff --git a/patches/server/0591-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0591-add-RespawnFlags-to-PlayerRespawnEvent.patch index 6064ddb356..f261f7cf6c 100644 --- a/patches/server/0591-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0591-add-RespawnFlags-to-PlayerRespawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 736838326f88e87fcb4586bd372661051375fba2..948666f36c4e2f8571e8ceb7703566d9db233616 100644 +index 25eefd856fb228b939b6ee4ae87f676e7419d9f4..e95574ecd4cee2515920f1445d8812b0fba7dc5e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2790,7 +2790,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2789,7 +2789,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic case PERFORM_RESPAWN: if (this.player.wonGame) { this.player.wonGame = false; diff --git a/patches/server/0601-Add-basic-Datapack-API.patch b/patches/server/0601-Add-basic-Datapack-API.patch index 05edf9cc94..cbac98f237 100644 --- a/patches/server/0601-Add-basic-Datapack-API.patch +++ b/patches/server/0601-Add-basic-Datapack-API.patch @@ -92,10 +92,10 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8fd06d9ad547ba45b46674e6e432b6a28abbcfe2..46ce9117dc88b2b32d4914dc22547ed36f48c3cb 100644 +index 7326ed1b913c6d9b1e122564101bd67b6bdc489a..112ec37cbb7b3ad262cce8d624f0da313935f8d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -300,6 +300,7 @@ public final class CraftServer implements Server { +@@ -301,6 +301,7 @@ public final class CraftServer implements Server { public boolean ignoreVanillaPermissions = false; private final List<CraftPlayer> playerView; public int reloadCount; @@ -103,7 +103,7 @@ index 8fd06d9ad547ba45b46674e6e432b6a28abbcfe2..46ce9117dc88b2b32d4914dc22547ed3 public static Exception excessiveVelEx; // Paper - Velocity warnings static { -@@ -387,6 +388,7 @@ public final class CraftServer implements Server { +@@ -388,6 +389,7 @@ public final class CraftServer implements Server { if (this.configuration.getBoolean("settings.use-map-color-cache")) { MapPalette.setMapColorCache(new CraftMapColorCache(this.logger)); } @@ -111,7 +111,7 @@ index 8fd06d9ad547ba45b46674e6e432b6a28abbcfe2..46ce9117dc88b2b32d4914dc22547ed3 } public boolean getCommandBlockOverride(String command) { -@@ -2861,5 +2863,11 @@ public final class CraftServer implements Server { +@@ -2862,5 +2864,11 @@ public final class CraftServer implements Server { public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return mobGoals; } diff --git a/patches/server/0603-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0603-additions-to-PlayerGameModeChangeEvent.patch index 891ac72cc7..fbe09ff2fe 100644 --- a/patches/server/0603-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0603-additions-to-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fba3ac571fafd5c738d0dcfd5492112817c443e3..a340a190b223efb6fafba3c7c9e996818709d6e9 100644 +index 03bb3c6a7cca2c5363d8c4a8836fea865b571df0..0162c504673f5809b28ca58177773c005460f039 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1885,8 +1885,16 @@ public class ServerPlayer extends Player { @@ -131,10 +131,10 @@ index c256423e9dc9d1837b847da44fb2920c58842c8b..0cb9803e30702de1cc530c1205fe9bbb } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 948666f36c4e2f8571e8ceb7703566d9db233616..27b3b8f53eb0ba62bf17b8b685a04fa4701844c7 100644 +index e95574ecd4cee2515920f1445d8812b0fba7dc5e..363e16f3d8069d2828cd7437c7aed4cccccd9002 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2799,7 +2799,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2798,7 +2798,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { @@ -144,10 +144,10 @@ index 948666f36c4e2f8571e8ceb7703566d9db233616..27b3b8f53eb0ba62bf17b8b685a04fa4 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7a11d68ee2a1f0f57d9e1f9e98b704e05f5d773c..a31e3681d76c114165a32de521380698c01656e9 100644 +index 2ab0c6561fc79eee25538d6ffcb3a14eb6442373..e446bfc7e61889df964643e9928771fd4b2c2fdd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1531,7 +1531,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1563,7 +1563,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { Preconditions.checkArgument(mode != null, "GameMode cannot be null"); if (this.getHandle().connection == null) return; diff --git a/patches/server/0606-Move-range-check-for-block-placing-up.patch b/patches/server/0606-Move-range-check-for-block-placing-up.patch index 64e172aeba..bffb7846e3 100644 --- a/patches/server/0606-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0606-Move-range-check-for-block-placing-up.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0f3f1a9ac004127e58fe18958158826bd648bac9..8a5a8da2962b51e0a8c83ce045eb8e86929c820d 100644 +index 363e16f3d8069d2828cd7437c7aed4cccccd9002..5156aed4bc166898aa1cbc30d70b802d0b2ac4b7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1815,6 +1815,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1817,6 +1817,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (itemstack.isItemEnabled(worldserver.enabledFeatures())) { BlockHitResult movingobjectpositionblock = packet.getHitResult(); Vec3 vec3d = movingobjectpositionblock.getLocation(); diff --git a/patches/server/0607-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0607-Fix-and-optimise-world-force-upgrading.patch index 64b71f7df2..b3ba746299 100644 --- a/patches/server/0607-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0607-Fix-and-optimise-world-force-upgrading.patch @@ -275,7 +275,7 @@ index 98385550084c9f975e494668961bac6ccb0700ab..1147044f2c4c2e9510cb6e5c38b6abe8 Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 39dd0ef9af89d4a752f101740ae58797fb2adc4d..5fa98801e2e64d4e2d948af5f131ed32b96c0510 100644 +index aa23f1c88d91b9476c276e644572c20c17b3855c..5fa98801e2e64d4e2d948af5f131ed32b96c0510 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -552,11 +552,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -285,7 +285,7 @@ index 39dd0ef9af89d4a752f101740ae58797fb2adc4d..5fa98801e2e64d4e2d948af5f131ed32 - if (this.options.has("forceUpgrade")) { - net.minecraft.server.Main.forceUpgrade(worldSession, DataFixers.getDataFixer(), this.options.has("eraseCache"), () -> { - return true; -- }, iregistry); +- }, dimensions); - } + // Paper - move down @@ -362,10 +362,10 @@ index 29da08c58200c24fd03003937d30eb41234cabc9..d3d4d10a77af51cff4da201201bac325 public synchronized RegionFile getRegionFileIfLoaded(ChunkPos chunkcoordintpair) { return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ())); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 46ce9117dc88b2b32d4914dc22547ed36f48c3cb..dae06c2e4da219000f532293a0d31902d81ab187 100644 +index 112ec37cbb7b3ad262cce8d624f0da313935f8d9..ff3fcaa91b7cd50eaff3bdb1ae15d222b197ba97 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1233,9 +1233,7 @@ public final class CraftServer implements Server { +@@ -1234,9 +1234,7 @@ public final class CraftServer implements Server { worlddata.checkName(name); worlddata.setModdedInfo(this.console.getServerModName(), this.console.getModdedStatus().shouldReportAsModified()); @@ -376,7 +376,7 @@ index 46ce9117dc88b2b32d4914dc22547ed36f48c3cb..dae06c2e4da219000f532293a0d31902 long j = BiomeManager.obfuscateSeed(creator.seed()); List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); -@@ -1246,6 +1244,13 @@ public final class CraftServer implements Server { +@@ -1247,6 +1245,13 @@ public final class CraftServer implements Server { biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/patches/server/0609-Add-Unix-domain-socket-support.patch b/patches/server/0609-Add-Unix-domain-socket-support.patch index 430b2c8d62..594680e9a3 100644 --- a/patches/server/0609-Add-Unix-domain-socket-support.patch +++ b/patches/server/0609-Add-Unix-domain-socket-support.patch @@ -91,10 +91,10 @@ index 29a0a720f22f56ca3d844efef1ecde3980fb1c12..838244e3680ea6020701e10bafbde7f5 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 49e950a285fb9d09ce9fedf0f9ed091ae7a516a7..be48014d35f0f661e8ca829217bd7c7c99b2d5dc 100644 +index 5156aed4bc166898aa1cbc30d70b802d0b2ac4b7..0f8c29375790599f75d3d4535a417bafba916396 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2634,6 +2634,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2633,6 +2633,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Spigot Start public SocketAddress getRawAddress() { diff --git a/patches/server/0615-Add-PlayerKickEvent-causes.patch b/patches/server/0615-Add-PlayerKickEvent-causes.patch index 24b260aace..757630a677 100644 --- a/patches/server/0615-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0615-Add-PlayerKickEvent-causes.patch @@ -88,10 +88,10 @@ index c68bac4727f6b2ca95fc8c438303097af14286f2..bb629ec263959c8268de88ca807bddb6 return Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason); }, true); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31ff7709fe 100644 +index 0f8c29375790599f75d3d4535a417bafba916396..bc609a16fed44f0a96025fb3b75eec039107338c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -362,7 +362,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -364,7 +364,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.clientIsFloating && !this.player.isSleeping() && !this.player.isPassenger() && !this.player.isDeadOrDying()) { if (++this.aboveGroundTickCount > 80) { ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating too long!", this.player.getName().getString()); @@ -100,7 +100,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } } else { -@@ -381,7 +381,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -383,7 +383,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.clientVehicleIsFloating && this.player.getRootVehicle().getControllingPassenger() == this.player) { if (++this.aboveGroundVehicleTickCount > 80) { ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getName().getString()); @@ -109,7 +109,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } } else { -@@ -403,7 +403,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -405,7 +405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic 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 @@ -118,7 +118,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } else { if (elapsedTime >= 15000L) { // 15 seconds -@@ -433,7 +433,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -435,7 +435,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L) { this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 @@ -127,7 +127,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -456,16 +456,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -458,16 +458,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return this.server.isSingleplayerOwner(this.player.getGameProfile()); } @@ -157,7 +157,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 // Paper end // CraftBukkit start - fire PlayerKickEvent if (this.processedDisconnect) { -@@ -475,7 +485,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -477,7 +487,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Waitable waitable = new Waitable() { @Override protected Object evaluate() { @@ -166,7 +166,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return null; } }; -@@ -494,7 +504,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -496,7 +506,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic net.kyori.adventure.text.Component leaveMessage = net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? this.player.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(this.player.getScoreboardName())); // Paper - Adventure @@ -175,7 +175,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); -@@ -564,7 +574,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -566,7 +576,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleMoveVehicle(ServerboundMoveVehiclePacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(), packet.getY(), packet.getZ(), packet.getYRot(), packet.getXRot())) { @@ -184,7 +184,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { Entity entity = this.player.getRootVehicle(); -@@ -770,7 +780,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -772,7 +782,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (packet.getId() == this.awaitingTeleport) { if (this.awaitingPositionFromClient == null) { @@ -193,7 +193,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } -@@ -827,13 +837,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -829,13 +839,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -209,7 +209,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } // Paper end -@@ -986,7 +996,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -988,7 +998,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start - validate pick item position if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -218,7 +218,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -@@ -1169,7 +1179,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1171,7 +1181,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -227,7 +227,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } byteTotal += byteLength; -@@ -1192,14 +1202,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1194,14 +1204,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -244,7 +244,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -1323,7 +1333,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1325,7 +1335,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) { @@ -253,7 +253,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { ServerLevel worldserver = this.player.serverLevel(); -@@ -1737,7 +1747,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1739,7 +1749,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); @@ -262,7 +262,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } } -@@ -1949,7 +1959,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1951,7 +1961,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) { ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName()); @@ -271,7 +271,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]; -@@ -2065,7 +2075,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2067,7 +2077,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -280,7 +280,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -2078,7 +2088,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2080,7 +2090,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -289,7 +289,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2112,7 +2122,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2114,7 +2124,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -298,7 +298,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2167,7 +2177,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2169,7 +2179,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void handleMessageDecodeFailure(SignedMessageChain.DecodeException exception) { if (exception.shouldDisconnect()) { @@ -307,7 +307,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED)); } -@@ -2198,7 +2208,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2200,7 +2210,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); @@ -316,7 +316,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return Optional.empty(); } else { Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(acknowledgment); -@@ -2221,7 +2231,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2223,7 +2233,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (optional.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -325,7 +325,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } return optional; -@@ -2444,7 +2454,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2440,7 +2450,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // this.chatSpamTickCount += 20; if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // CraftBukkit end @@ -334,7 +334,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -2456,7 +2466,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2452,7 +2462,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic synchronized (this.lastSeenMessages) { if (!this.lastSeenMessages.applyOffset(packet.offset())) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -343,7 +343,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -2606,7 +2616,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2605,7 +2615,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (i > 4096) { @@ -352,7 +352,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -2652,7 +2662,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2651,7 +2661,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { @@ -361,7 +361,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } // Spigot End -@@ -2751,7 +2761,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2750,7 +2760,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // CraftBukkit end } } else { @@ -370,7 +370,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } } -@@ -3160,7 +3170,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3159,7 +3169,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -379,7 +379,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 return; } } -@@ -3331,7 +3341,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3357,7 +3367,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } else if (!this.isSingleplayerOwner()) { // Paper start - This needs to be handled on the main thread for plugins server.submit(() -> { @@ -388,7 +388,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 }); // Paper end } -@@ -3377,7 +3387,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3403,7 +3413,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex); @@ -397,7 +397,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } else if (packet.identifier.equals(CUSTOM_UNREGISTER)) { try { -@@ -3387,7 +3397,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3413,7 +3423,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); @@ -406,7 +406,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } else { try { -@@ -3405,7 +3415,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3431,7 +3441,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), packet.identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); @@ -415,7 +415,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } } -@@ -3447,7 +3457,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3473,7 +3483,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) { if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) { @@ -424,7 +424,7 @@ index be48014d35f0f661e8ca829217bd7c7c99b2d5dc..8906946d79737b6b03e5570ad3a90c31 } else { try { SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator(); -@@ -3460,7 +3470,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3486,7 +3496,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); @@ -491,10 +491,10 @@ index 984c288abf94d9fe47fada33722fea035b832f3b..addd20237b87c9a87bb09fd7addb101a } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a31e3681d76c114165a32de521380698c01656e9..4d469a85d573493e2fe972e060165e9776ce74f9 100644 +index e446bfc7e61889df964643e9928771fd4b2c2fdd..0177065e849d25954737712cb0156fdb79a89156 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -583,7 +583,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -585,7 +585,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot if (this.getHandle().connection == null) return; @@ -503,7 +503,7 @@ index a31e3681d76c114165a32de521380698c01656e9..4d469a85d573493e2fe972e060165e97 } // Paper start -@@ -595,10 +595,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -597,10 +597,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void kick(final net.kyori.adventure.text.Component message) { @@ -520,7 +520,7 @@ index a31e3681d76c114165a32de521380698c01656e9..4d469a85d573493e2fe972e060165e97 } } -@@ -669,7 +674,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -671,7 +676,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start - improve chat handling if (ServerGamePacketListenerImpl.isChatMessageIllegal(msg)) { diff --git a/patches/server/0632-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0632-Ensure-disconnect-for-book-edit-is-called-on-main.patch index b08d7c49e9..f7d9bc80b7 100644 --- a/patches/server/0632-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0632-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d71ccba82dd3ce23c10b519290d80cf42accc748..463759c91432294701954c49d5978b9e26607b4d 100644 +index bc609a16fed44f0a96025fb3b75eec039107338c..e7d8f3521de27ef6886f4ed2affd0066e55c9de1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1209,7 +1209,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1211,7 +1211,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper end // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { diff --git a/patches/server/0636-Adds-PlayerArmSwingEvent.patch b/patches/server/0636-Adds-PlayerArmSwingEvent.patch index e8f8b219c9..f83880d135 100644 --- a/patches/server/0636-Adds-PlayerArmSwingEvent.patch +++ b/patches/server/0636-Adds-PlayerArmSwingEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Adds PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 606304a3079eba252ef5e54afcc8935986308c16..cfedfc023c91e714f2ae574539939b73da342108 100644 +index e7d8f3521de27ef6886f4ed2affd0066e55c9de1..c0c74f9b851bacc4079bc156b80bc7e2950c45e3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2501,7 +2501,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2500,7 +2500,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end // Arm swing animation diff --git a/patches/server/0637-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0637-Fixes-kick-event-leave-message-not-being-sent.patch index 01f0b23ee1..ea5bf61f81 100644 --- a/patches/server/0637-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0637-Fixes-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fixes kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7d5de33442fe4ba53c51cc7356323622c2c3022f..478dbba3519f8d2fdd4b203756403761ccad553b 100644 +index e100534a676bd950513f3b9217e4949b65f20960..0a25e2bb95fa249fa5cde1a174702bb311a45171 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -270,7 +270,6 @@ public class ServerPlayer extends Player { @@ -17,10 +17,10 @@ index 7d5de33442fe4ba53c51cc7356323622c2c3022f..478dbba3519f8d2fdd4b203756403761 public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> 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 482655fb5d6b84cd7969b1443a8dcd247dd5c9c4..e2870dbcd41063d0386e14576a12acaa8b21976a 100644 +index c0c74f9b851bacc4079bc156b80bc7e2950c45e3..5ed9ab2e261d64234c388d4bfdc27d31cf112117 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -514,7 +514,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -516,7 +516,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Do not kick the player return; } @@ -28,7 +28,7 @@ index 482655fb5d6b84cd7969b1443a8dcd247dd5c9c4..e2870dbcd41063d0386e14576a12acaa // Send the possibly modified leave message final Component ichatbasecomponent = PaperAdventure.asVanilla(event.reason()); // Paper - Adventure // CraftBukkit end -@@ -523,7 +522,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -525,7 +524,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> { this.connection.disconnect(ichatbasecomponent); })); @@ -37,7 +37,7 @@ index 482655fb5d6b84cd7969b1443a8dcd247dd5c9c4..e2870dbcd41063d0386e14576a12acaa this.connection.setReadOnly(); MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; -@@ -1986,6 +1985,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1988,6 +1987,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void onDisconnect(Component reason) { @@ -49,7 +49,7 @@ index 482655fb5d6b84cd7969b1443a8dcd247dd5c9c4..e2870dbcd41063d0386e14576a12acaa // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; -@@ -2003,7 +2007,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2005,7 +2009,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.disconnect(); // Paper start - Adventure diff --git a/patches/server/0645-Add-System.out-err-catcher.patch b/patches/server/0645-Add-System.out-err-catcher.patch index 89031ed58b..d386ddaed0 100644 --- a/patches/server/0645-Add-System.out-err-catcher.patch +++ b/patches/server/0645-Add-System.out-err-catcher.patch @@ -105,10 +105,10 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dae06c2e4da219000f532293a0d31902d81ab187..f7f37c9dc14d87c0d2fa89a0f6e0e47dc51abcea 100644 +index ff3fcaa91b7cd50eaff3bdb1ae15d222b197ba97..fc8d0b81054cad7dbfebd29b2d92a52952357fc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -302,6 +302,7 @@ public final class CraftServer implements Server { +@@ -303,6 +303,7 @@ public final class CraftServer implements Server { public int reloadCount; private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper public static Exception excessiveVelEx; // Paper - Velocity warnings diff --git a/patches/server/0649-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0649-Prevent-AFK-kick-while-watching-end-credits.patch index 4bf9873939..9dccdbeb2b 100644 --- a/patches/server/0649-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0649-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent AFK kick while watching end credits. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e2870dbcd41063d0386e14576a12acaa8b21976a..9d6107e014e424dc786f33c3d3685e36746799e2 100644 +index 5ed9ab2e261d64234c388d4bfdc27d31cf112117..d4f989c409d16864ffc0535afed546a2a7325ffc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -431,7 +431,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -433,7 +433,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic --this.dropSpamTickCount; } diff --git a/patches/server/0651-Add-PlayerSetSpawnEvent.patch b/patches/server/0651-Add-PlayerSetSpawnEvent.patch index fe57c76d30..4bb614bbbf 100644 --- a/patches/server/0651-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0651-Add-PlayerSetSpawnEvent.patch @@ -187,10 +187,10 @@ index 1a27b7faa22e6b3dc5fce329ed06425de56c4315..b9903c29bdea8d1e3b6fce0e97be6bd9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4d469a85d573493e2fe972e060165e9776ce74f9..002ea991ba890d4e2f2485b3da75b53d7127c89c 100644 +index 0177065e849d25954737712cb0156fdb79a89156..a8da7ff2f8e2cf0195731f5034afa94fcd248340 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1320,9 +1320,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1322,9 +1322,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setBedSpawnLocation(Location location, boolean override) { if (location == null) { diff --git a/patches/server/0655-Added-EntityDamageItemEvent.patch b/patches/server/0655-Added-EntityDamageItemEvent.patch index ebccfbe78e..d53c44314c 100644 --- a/patches/server/0655-Added-EntityDamageItemEvent.patch +++ b/patches/server/0655-Added-EntityDamageItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added EntityDamageItemEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 5ebc5e760ac43b88678977ced06b8d72f8358a68..037d9a64772b42ab3852a1a1d8b3532cbb0d161f 100644 +index 34e54233d54f21cf4304c39e53aa6a7fb06a67cf..afbf619feb35751046131e7b22791e789d16427f 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -592,7 +592,7 @@ public final class ItemStack { +@@ -596,7 +596,7 @@ public final class ItemStack { return this.getItem().getMaxDamage(); } @@ -17,7 +17,7 @@ index 5ebc5e760ac43b88678977ced06b8d72f8358a68..037d9a64772b42ab3852a1a1d8b3532c if (!this.isDamageableItem()) { return false; } else { -@@ -610,8 +610,8 @@ public final class ItemStack { +@@ -614,8 +614,8 @@ public final class ItemStack { amount -= k; // CraftBukkit start @@ -28,7 +28,7 @@ index 5ebc5e760ac43b88678977ced06b8d72f8358a68..037d9a64772b42ab3852a1a1d8b3532c event.getPlayer().getServer().getPluginManager().callEvent(event); if (amount != event.getDamage() || event.isCancelled()) { -@@ -622,6 +622,14 @@ public final class ItemStack { +@@ -626,6 +626,14 @@ public final class ItemStack { } amount = event.getDamage(); @@ -43,7 +43,7 @@ index 5ebc5e760ac43b88678977ced06b8d72f8358a68..037d9a64772b42ab3852a1a1d8b3532c } // CraftBukkit end if (amount <= 0) { -@@ -629,8 +637,8 @@ public final class ItemStack { +@@ -633,8 +641,8 @@ public final class ItemStack { } } @@ -54,7 +54,7 @@ index 5ebc5e760ac43b88678977ced06b8d72f8358a68..037d9a64772b42ab3852a1a1d8b3532c } j = this.getDamageValue() + amount; -@@ -642,7 +650,7 @@ public final class ItemStack { +@@ -646,7 +654,7 @@ public final class ItemStack { public <T extends LivingEntity> void hurtAndBreak(int amount, T entity, Consumer<T> breakCallback) { if (!entity.level().isClientSide && (!(entity instanceof net.minecraft.world.entity.player.Player) || !((net.minecraft.world.entity.player.Player) entity).getAbilities().instabuild)) { if (this.isDamageableItem()) { diff --git a/patches/server/0670-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0670-Add-ItemFactory-getSpawnEgg-API.patch index b9440112fb..e5dbfedc65 100644 --- a/patches/server/0670-Add-ItemFactory-getSpawnEgg-API.patch +++ b/patches/server/0670-Add-ItemFactory-getSpawnEgg-API.patch @@ -5,16 +5,18 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 21f5c0f2fc10b5f5752e214a08e858227bdcf2ce..583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90 100644 +index ff05e29bdc8d21e9e6ddb4cb23f8fc9396481ffc..3b02bf4e5b657af9debb432ab412fe50e1f7b922 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -503,5 +503,17 @@ public final class CraftItemFactory implements ItemFactory { - entity.getUniqueId().toString(), +@@ -528,4 +528,19 @@ public final class CraftItemFactory implements ItemFactory { new net.md_5.bungee.api.chat.TextComponent(customName)); } + // Paper end - bungee hover events + -+ @Override -+ public ItemStack getSpawnEgg(org.bukkit.entity.EntityType type) { ++ // Paper start - old getSpawnEgg API ++ // @Override // used to override, upstream added conflicting method, is called via Commodore now ++ @Deprecated ++ public ItemStack getSpawnEgg0(org.bukkit.entity.EntityType type) { + if (type == null) { + return null; + } @@ -24,5 +26,26 @@ index 21f5c0f2fc10b5f5752e214a08e858227bdcf2ce..583cd4726a1b60e8f11bf8a28cc3c655 + net.minecraft.world.item.SpawnEggItem eggItem = net.minecraft.world.item.SpawnEggItem.byId(nmsType); + return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); + } - // Paper end ++ // Paper end } +diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +index cacd9b59741c31e70e898e7af91a1a6ed3f87f07..b7d09079411f70353f44df3c623a0076367cf603 100644 +--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java ++++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +@@ -467,6 +467,16 @@ public class Commodore + return; + } + // Paper end ++ ++ // Paper start - ItemFactory#getSpawnEgg (paper had original method that returned ItemStack, upstream added identical but returned Material) ++ if (owner.equals("org/bukkit/inventory/ItemFactory") && name.equals("getSpawnEgg") && desc.equals("(Lorg/bukkit/entity/EntityType;)Lorg/bukkit/inventory/ItemStack;")) { ++ super.visitInsn(Opcodes.SWAP); // has 1 param, this moves the owner instance to the top for the checkcast ++ super.visitTypeInsn(Opcodes.CHECKCAST, CB_PACKAGE + "/inventory/CraftItemFactory"); ++ super.visitInsn(Opcodes.SWAP); // moves param back to the the top of stack ++ super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CB_PACKAGE + "/inventory/CraftItemFactory", "getSpawnEgg0", desc, false); ++ return; ++ } ++ // Paper end - ItemFactory#getSpawnEgg + if ( modern ) + { + if ( owner.equals( "org/bukkit/Material" ) ) diff --git a/patches/server/0671-Add-critical-damage-API.patch b/patches/server/0671-Add-critical-damage-API.patch index ba7fd6474f..97a7c92c89 100644 --- a/patches/server/0671-Add-critical-damage-API.patch +++ b/patches/server/0671-Add-critical-damage-API.patch @@ -71,10 +71,10 @@ index a0d688128a1268fa1acf7c339cde15df5dce1c82..372b9ec0c8eddf4a01b4b8203a88401d int k = entity.getRemainingFireTicks(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f7d078f557b0be8db0b2ef7e5ff2094909686047..f40ff2f248e3cacc924d90e9f90692b5bde7ea53 100644 +index ecf0a23435532cc6a771ef04787bbef190699edb..b46a37bab1ddab70dc0567df26668e28d5844469 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -990,7 +990,7 @@ public class CraftEventFactory { +@@ -1016,7 +1016,7 @@ public class CraftEventFactory { } else { damageCause = DamageCause.ENTITY_EXPLOSION; } @@ -83,7 +83,7 @@ index f7d078f557b0be8db0b2ef7e5ff2094909686047..f40ff2f248e3cacc924d90e9f90692b5 } event.setCancelled(cancelled); -@@ -1022,7 +1022,7 @@ public class CraftEventFactory { +@@ -1048,7 +1048,7 @@ public class CraftEventFactory { cause = DamageCause.SONIC_BOOM; } @@ -92,7 +92,7 @@ index f7d078f557b0be8db0b2ef7e5ff2094909686047..f40ff2f248e3cacc924d90e9f90692b5 } else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) { EntityDamageEvent event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.VOID, modifiers, modifierFunctions); event.setCancelled(cancelled); -@@ -1092,7 +1092,7 @@ public class CraftEventFactory { +@@ -1118,7 +1118,7 @@ public class CraftEventFactory { } else { throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.getMsgId())); } @@ -101,7 +101,7 @@ index f7d078f557b0be8db0b2ef7e5ff2094909686047..f40ff2f248e3cacc924d90e9f90692b5 event.setCancelled(cancelled); CraftEventFactory.callEvent(event); if (!event.isCancelled()) { -@@ -1141,20 +1141,28 @@ public class CraftEventFactory { +@@ -1167,20 +1167,28 @@ public class CraftEventFactory { } if (cause != null) { diff --git a/patches/server/0680-Improve-and-expand-AsyncCatcher.patch b/patches/server/0680-Improve-and-expand-AsyncCatcher.patch index 88f2cca0de..8cffa38f71 100644 --- a/patches/server/0680-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0680-Improve-and-expand-AsyncCatcher.patch @@ -17,10 +17,10 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic <[email protected]> diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9d6107e014e424dc786f33c3d3685e36746799e2..a1114ae100a5216883756822b8d0f2df077b819d 100644 +index d4f989c409d16864ffc0535afed546a2a7325ffc..03d75644a2f2a76022bb8f18d64ccbd35fc93d4a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1656,6 +1656,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1658,6 +1658,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper diff --git a/patches/server/0681-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0681-Add-paper-mobcaps-and-paper-playermobcaps.patch index afc492a031..4e8ee012ce 100644 --- a/patches/server/0681-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0681-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -278,10 +278,10 @@ index a3461824fd2162d509facf6f64c5008e3f0fd42b..d4f99f4592a86e2d8344bc2c44711fef // Paper start - add parameters and int ret type spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f7f37c9dc14d87c0d2fa89a0f6e0e47dc51abcea..18feaee5cbc2ad9440e8183b19cb5dbb2b24df25 100644 +index fc8d0b81054cad7dbfebd29b2d92a52952357fc2..eb221cd9fff4f5fd6c30ba36dc43434d791d4956 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2200,6 +2200,11 @@ public final class CraftServer implements Server { +@@ -2201,6 +2201,11 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { diff --git a/patches/server/0713-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0713-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index 538d614beb..b27c7a7e6e 100644 --- a/patches/server/0713-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0713-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a1114ae100a5216883756822b8d0f2df077b819d..87c97beb46fdd0b8b78713ce3a64dd98ea3eead0 100644 +index 03d75644a2f2a76022bb8f18d64ccbd35fc93d4a..bf854ded3a13bbabb78ec521c1a1ac12195dc383 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -847,6 +847,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -849,6 +849,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end // CraftBukkit end diff --git a/patches/server/0716-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0716-Prevent-softlocked-end-exit-portal-generation.patch index 4b7141d625..9cbe871fbc 100644 --- a/patches/server/0716-Prevent-softlocked-end-exit-portal-generation.patch +++ b/patches/server/0716-Prevent-softlocked-end-exit-portal-generation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent softlocked end exit portal generation diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index eab54838ba540f41cc59a359dd00ba80d82c771e..17b5386d147dc007c487da3561ea5a5d3cd6db22 100644 +index b5d69bde512f832374acd5e6b94268ea327b01b2..f67fcaff1994e5eb1195d1ec6d5a27d01c12d7a7 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -412,6 +412,11 @@ public class EndDragonFight { +@@ -466,6 +466,11 @@ public class EndDragonFight { } } @@ -17,6 +17,6 @@ index eab54838ba540f41cc59a359dd00ba80d82c771e..17b5386d147dc007c487da3561ea5a5d + this.portalLocation = this.portalLocation.atY(this.level.getMinBuildHeight() + 1); + } + // Paper end - endPodiumFeature.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation); + worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation); } diff --git a/patches/server/0735-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0735-Hide-unnecessary-itemmeta-from-clients.patch index 20f2fdc55f..ee0b7d16fb 100644 --- a/patches/server/0735-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0735-Hide-unnecessary-itemmeta-from-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Hide unnecessary itemmeta from clients diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 485ed6cfdb2bb0c06dd639f6cad26cd3112c618d..3212a4cfb0c7e0003981097e813ebbe2601cdfec 100644 +index 24f0d61a2fa9ac95dd26443a978209b53baf10b1..31fa0f4fbf195d0db7a89a060b1cc4fd30dc5ab0 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -340,7 +340,7 @@ public class ServerEntity { @@ -18,10 +18,10 @@ index 485ed6cfdb2bb0c06dd639f6cad26cd3112c618d..3212a4cfb0c7e0003981097e813ebbe2 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c199598128c5d1be4f2953e0a67634cb5b22dec8..53a994606253e502e8427f11108c5427b8b6b8b4 100644 +index bf854ded3a13bbabb78ec521c1a1ac12195dc383..3a59cbb7fdd9b5fc75ed850d049caecf47b600b8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2715,8 +2715,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2714,8 +2714,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Refresh the current entity metadata entity.getEntityData().refresh(player); // SPIGOT-7136 - Allays diff --git a/patches/server/0740-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0740-Allow-delegation-to-vanilla-chunk-gen.patch index e8d1e04124..d3760b7cf2 100644 --- a/patches/server/0740-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0740-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 18feaee5cbc2ad9440e8183b19cb5dbb2b24df25..e6b70fcd96b99558342de82a1235c6de923219fe 100644 +index eb221cd9fff4f5fd6c30ba36dc43434d791d4956..d55a300b11fcdf7f0c502f95ae7c992cf3e13aff 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2380,6 +2380,88 @@ public final class CraftServer implements Server { +@@ -2381,6 +2381,88 @@ public final class CraftServer implements Server { return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters } diff --git a/patches/server/0742-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0742-Optimise-collision-checking-in-player-move-packet-ha.patch index 8343f3caa3..d938d49277 100644 --- a/patches/server/0742-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0742-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,10 +8,10 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac301efe79 100644 +index 3a59cbb7fdd9b5fc75ed850d049caecf47b600b8..60950d7d3ef288da4e3ea9a6cde3e31c06d33557 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -647,7 +647,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -649,7 +649,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } @@ -20,7 +20,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above -@@ -663,6 +663,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -665,6 +665,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); @@ -28,7 +28,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac double d11 = d7; d6 = d3 - entity.getX(); -@@ -676,16 +677,24 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -678,16 +679,24 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag2 = false; if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot @@ -56,7 +56,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac entity.absMoveTo(d0, d1, d2, f, f1); this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit this.connection.send(new ClientboundMoveVehiclePacket(entity)); -@@ -771,7 +780,32 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -773,7 +782,32 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } private boolean noBlocksAround(Entity entity) { @@ -90,7 +90,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac } @Override -@@ -1347,7 +1381,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1349,7 +1383,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (this.awaitingPositionFromClient != null) { @@ -99,7 +99,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac this.awaitingTeleportTime = this.tickCount; this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); } -@@ -1440,7 +1474,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1442,7 +1476,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } @@ -108,7 +108,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above -@@ -1482,6 +1516,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1484,6 +1518,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move @@ -116,7 +116,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac // Paper start - prevent position desync if (this.awaitingPositionFromClient != null) { return; // ... thanks Mojang for letting move calls teleport across dimensions. -@@ -1500,11 +1535,23 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1502,11 +1537,23 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean flag2 = false; if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot @@ -142,7 +142,7 @@ index 913cd79d9a382d9464ce20a95f91f0e0122fc71b..58ee55afb11b0c64b78014424bbcb5ac this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); } else { -@@ -1590,6 +1637,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1592,6 +1639,26 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } diff --git a/patches/server/0748-Improve-scoreboard-entries.patch b/patches/server/0748-Improve-scoreboard-entries.patch index 561724f7cd..441d410c2b 100644 --- a/patches/server/0748-Improve-scoreboard-entries.patch +++ b/patches/server/0748-Improve-scoreboard-entries.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve scoreboard entries diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java -index de5f382656f9fd08f6ae1795c69743c604d62d5c..97cb29beea1d133f683d7cff7a26805b09f63096 100644 +index ef1b0b716b11327a8f2856f51545aaba355ce74e..442ed17a4c91fe5ccf567f2af518569b945aa36c 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java -@@ -146,6 +146,14 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective +@@ -145,6 +145,14 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective return new CraftScore(this, entry); } @@ -21,10 +21,10 @@ index de5f382656f9fd08f6ae1795c69743c604d62d5c..97cb29beea1d133f683d7cff7a26805b + // Paper end + @Override - public void unregister() throws IllegalStateException { + public void unregister() { CraftScoreboard scoreboard = this.checkState(); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java -index e233eef291f64622947b0b6c4559639e510c087f..13190c4265bb83e682dede7e982ebcd19d80e334 100644 +index 052389310826ee6b97cf27dfd952e0101fb2d097..a8c5bfc54ed2b8bd873f124c7080d73fe73a86ad 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java @@ -233,4 +233,23 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { @@ -52,10 +52,10 @@ index e233eef291f64622947b0b6c4559639e510c087f..13190c4265bb83e682dede7e982ebcd1 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -index 772206a43950db2726bd79911438e2aec2d7189c..47031a6f1b7e261bb034968f83c0c496b89d1361 100644 +index baff11728120fda1740d5e15163760f50fe1cd1d..4d65d1a0dd52aaeeeef8acf2b0023f27257f60a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -@@ -309,6 +309,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { +@@ -304,6 +304,26 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { } } diff --git a/patches/server/0760-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0760-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index c53d96847b..63f9d7fecc 100644 --- a/patches/server/0760-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0760-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -18,10 +18,10 @@ index ebd092a3f3c745b3a2f69fd72c04be7a2ab214a2..91a66fb66e9df5d5878315afa9d357a3 biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e6b70fcd96b99558342de82a1235c6de923219fe..6ecaf821a908b68182879b5da1cbbd82939a785b 100644 +index d55a300b11fcdf7f0c502f95ae7c992cf3e13aff..65e8f35f9bec25f8d21e35af95d021b31f47075e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1240,7 +1240,7 @@ public final class CraftServer implements Server { +@@ -1241,7 +1241,7 @@ public final class CraftServer implements Server { List<CustomSpawner> list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = iregistry.get(actualDimension); diff --git a/patches/server/0763-Multiple-Entries-with-Scoreboards.patch b/patches/server/0763-Multiple-Entries-with-Scoreboards.patch index 66769fb534..2a4558b8f3 100644 --- a/patches/server/0763-Multiple-Entries-with-Scoreboards.patch +++ b/patches/server/0763-Multiple-Entries-with-Scoreboards.patch @@ -70,10 +70,10 @@ index 610d312b9c8f6c8d1f102e8ba2fe9fc2cc3e98c5..3a4a0727ad44322e3ba85512cd077808 public void onObjectiveAdded(Objective objective) { super.onObjectiveAdded(objective); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -index 47031a6f1b7e261bb034968f83c0c496b89d1361..7098b77fe4275e39694ed7d8fb031b9397302b9f 100644 +index 4d65d1a0dd52aaeeeef8acf2b0023f27257f60a2..9c3520524cfb903da6a5401760394ec1b49a1825 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -@@ -234,6 +234,21 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { +@@ -229,6 +229,21 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { scoreboard.board.addPlayerToTeam(entry, team); } @@ -93,9 +93,9 @@ index 47031a6f1b7e261bb034968f83c0c496b89d1361..7098b77fe4275e39694ed7d8fb031b93 + // Paper end + @Override - public boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException { + public boolean removePlayer(OfflinePlayer player) { Preconditions.checkArgument(player != null, "OfflinePlayer cannot be null"); -@@ -253,6 +268,28 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { +@@ -248,6 +263,28 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { return true; } diff --git a/patches/server/0768-Kick-on-main-for-illegal-chat.patch b/patches/server/0768-Kick-on-main-for-illegal-chat.patch index c621bcc64c..08406201d7 100644 --- a/patches/server/0768-Kick-on-main-for-illegal-chat.patch +++ b/patches/server/0768-Kick-on-main-for-illegal-chat.patch @@ -7,10 +7,10 @@ Makes the PlayerKickEvent fire on the main thread for illegal characters or chat out-of-order errors. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 58ee55afb11b0c64b78014424bbcb5ac301efe79..69cec44550b8d7ac14498f410e48a5d82056f174 100644 +index 60950d7d3ef288da4e3ea9a6cde3e31c06d33557..aeabaa196d5347dd070e9132fd869e00c9792276 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2165,7 +2165,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2167,7 +2167,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -20,7 +20,7 @@ index 58ee55afb11b0c64b78014424bbcb5ac301efe79..69cec44550b8d7ac14498f410e48a5d8 } else { Optional<LastSeenMessages> optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2199,7 +2201,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2201,7 +2203,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -30,7 +30,7 @@ index 58ee55afb11b0c64b78014424bbcb5ac301efe79..69cec44550b8d7ac14498f410e48a5d8 } else { Optional<LastSeenMessages> optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2285,7 +2289,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2287,7 +2291,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); diff --git a/patches/server/0769-Multi-Block-Change-API-Implementation.patch b/patches/server/0769-Multi-Block-Change-API-Implementation.patch index 0600bd3ec8..7dbdf083cf 100644 --- a/patches/server/0769-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0769-Multi-Block-Change-API-Implementation.patch @@ -24,10 +24,10 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a public void write(FriendlyByteBuf buf) { buf.writeLong(this.sectionPos.asLong()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 002ea991ba890d4e2f2485b3da75b53d7127c89c..32266b6e1011c21510a13a53ab1568988ce73522 100644 +index a8da7ff2f8e2cf0195731f5034afa94fcd248340..22bb914d65bec1a324f14a44a0fb946fd64cd4ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -888,6 +888,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -890,6 +890,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/server/0775-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0775-API-for-creating-command-sender-which-forwards-feedb.patch index 15535c8e38..63b75b6f2b 100644 --- a/patches/server/0775-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0775-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6ecaf821a908b68182879b5da1cbbd82939a785b..c0c88a974955e378c1df678a00d345a61e7f9336 100644 +index 65e8f35f9bec25f8d21e35af95d021b31f47075e..3d9bf78a1a0f04d96008a2601c1f82c8af690094 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2031,6 +2031,13 @@ public final class CraftServer implements Server { +@@ -2032,6 +2032,13 @@ public final class CraftServer implements Server { return console.console; } diff --git a/patches/server/0778-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0778-Fix-cancelled-powdered-snow-bucket-placement.patch index b6ede7ccfc..a17a9169aa 100644 --- a/patches/server/0778-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0778-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -20,19 +20,19 @@ index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b0204af850ee182773ad458208cccd94 } return InteractionResult.FAIL; diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 037d9a64772b42ab3852a1a1d8b3532cbb0d161f..671af924e54e96e91a284103d5f347853ce338b6 100644 +index afbf619feb35751046131e7b22791e789d16427f..f62585f3112886c927f1f65f982b9db9194457e9 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -352,7 +352,7 @@ public final class ItemStack { +@@ -353,7 +353,7 @@ public final class ItemStack { int oldCount = this.getCount(); ServerLevel world = (ServerLevel) context.getLevel(); -- if (!(this.getItem() instanceof BucketItem || this.getItem() instanceof SolidBucketItem)) { // if not bucket -+ if (!(this.getItem() instanceof BucketItem/* || this.getItem() instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets +- if (!(item instanceof BucketItem || item instanceof SolidBucketItem)) { // if not bucket ++ if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets world.captureBlockStates = true; // special case bonemeal - if (this.getItem() == Items.BONE_MEAL) { -@@ -408,7 +408,7 @@ public final class ItemStack { + if (item == Items.BONE_MEAL) { +@@ -412,7 +412,7 @@ public final class ItemStack { world.capturedBlockStates.clear(); if (blocks.size() > 1) { placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ()); diff --git a/patches/server/0779-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0779-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index b86e8e3be8..8c367b0d11 100644 --- a/patches/server/0779-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0779-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c0c88a974955e378c1df678a00d345a61e7f9336..f5c267c9f58f1e4580cd6dfd29e0cd4e089b236c 100644 +index 3d9bf78a1a0f04d96008a2601c1f82c8af690094..a294fc8019f95059a1c6a2d300d63319d53496af 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2208,6 +2208,8 @@ public final class CraftServer implements Server { +@@ -2209,6 +2209,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { // Paper start diff --git a/patches/server/0780-Add-GameEvent-tags.patch b/patches/server/0780-Add-GameEvent-tags.patch index 221575f12c..afeb377743 100644 --- a/patches/server/0780-Add-GameEvent-tags.patch +++ b/patches/server/0780-Add-GameEvent-tags.patch @@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f5c267c9f58f1e4580cd6dfd29e0cd4e089b236c..98d6e9dd76c30d5688605a4086afd01457669628 100644 +index a294fc8019f95059a1c6a2d300d63319d53496af..b5ebe75bf670e949dbc01cff67738b0686b78371 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2629,6 +2629,15 @@ public final class CraftServer implements Server { +@@ -2630,6 +2630,15 @@ public final class CraftServer implements Server { return (org.bukkit.Tag<T>) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } @@ -65,7 +65,7 @@ index f5c267c9f58f1e4580cd6dfd29e0cd4e089b236c..98d6e9dd76c30d5688605a4086afd014 default -> throw new IllegalArgumentException(); } -@@ -2661,6 +2670,13 @@ public final class CraftServer implements Server { +@@ -2662,6 +2671,13 @@ public final class CraftServer implements Server { net.minecraft.core.Registry<EntityType<?>> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag<T>) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } diff --git a/patches/server/0786-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0786-Put-world-into-worldlist-before-initing-the-world.patch index 5435f60e03..8642fd9b72 100644 --- a/patches/server/0786-Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/0786-Put-world-into-worldlist-before-initing-the-world.patch @@ -23,10 +23,10 @@ index a9240274b903f23a5d0b2414b3bc7a984845b6cd..9b720d3407802eac986c2044892d5b70 if (worlddata.getCustomBossEvents() != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 98d6e9dd76c30d5688605a4086afd01457669628..fd7cc379ebc762133e14a4cc3c464f17ec706cfa 100644 +index b5ebe75bf670e949dbc01cff67738b0686b78371..0576d449f353e9cb93f613f85bef0e93e51f5bab 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1269,10 +1269,11 @@ public final class CraftServer implements Server { +@@ -1270,10 +1270,11 @@ public final class CraftServer implements Server { return null; } diff --git a/patches/server/0788-Custom-Potion-Mixes.patch b/patches/server/0788-Custom-Potion-Mixes.patch index 8316a53631..aa329b1411 100644 --- a/patches/server/0788-Custom-Potion-Mixes.patch +++ b/patches/server/0788-Custom-Potion-Mixes.patch @@ -164,10 +164,10 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd7cc379ebc762133e14a4cc3c464f17ec706cfa..6e9f3db637a61d29e3ef8b3e390e143d2ad281ee 100644 +index 0576d449f353e9cb93f613f85bef0e93e51f5bab..575c4a4baaecbcbd16727138a96aab8bcaee6795 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -303,6 +303,7 @@ public final class CraftServer implements Server { +@@ -304,6 +304,7 @@ public final class CraftServer implements Server { private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper public static Exception excessiveVelEx; // Paper - Velocity warnings private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper @@ -175,7 +175,7 @@ index fd7cc379ebc762133e14a4cc3c464f17ec706cfa..6e9f3db637a61d29e3ef8b3e390e143d static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); -@@ -330,7 +331,7 @@ public final class CraftServer implements Server { +@@ -331,7 +332,7 @@ public final class CraftServer implements Server { Enchantments.SHARPNESS.getClass(); org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations(); @@ -184,7 +184,7 @@ index fd7cc379ebc762133e14a4cc3c464f17ec706cfa..6e9f3db637a61d29e3ef8b3e390e143d MobEffects.BLINDNESS.getClass(); PotionEffectType.stopAcceptingRegistrations(); // Ugly hack :( -@@ -2988,5 +2989,10 @@ public final class CraftServer implements Server { +@@ -2989,5 +2990,10 @@ public final class CraftServer implements Server { return datapackManager; } diff --git a/patches/server/0795-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0795-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 1f7066313d..f2d111af4d 100644 --- a/patches/server/0795-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0795-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,10 +7,10 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 69cec44550b8d7ac14498f410e48a5d82056f174..a5f6fed7774c7ea3b9cae59f72d2ea4b435af641 100644 +index aeabaa196d5347dd070e9132fd869e00c9792276..655dc1cda9a498466ffef68d41bde5030dfe53c3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -576,6 +576,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -578,6 +578,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause } else { Entity entity = this.player.getRootVehicle(); diff --git a/patches/server/0798-Implement-enchantWithLevels-API.patch b/patches/server/0798-Implement-enchantWithLevels-API.patch index ffa67d357d..6999d72cfe 100644 --- a/patches/server/0798-Implement-enchantWithLevels-API.patch +++ b/patches/server/0798-Implement-enchantWithLevels-API.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Implement enchantWithLevels API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 583cd4726a1b60e8f11bf8a28cc3c655fa8c1b90..849e93a8a0645de4c3e6ab8047815d78a722d4f6 100644 +index 3b02bf4e5b657af9debb432ab412fe50e1f7b922..4c0b250bb9e3cf52173b563b36fd27d9e893e154 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -439,6 +439,21 @@ public final class CraftItemFactory implements ItemFactory { +@@ -458,6 +458,21 @@ public final class CraftItemFactory implements ItemFactory { } - // Paper start + // Paper start - Adventure + @Override + public ItemStack enchantWithLevels(ItemStack itemStack, int levels, boolean allowTreasure, java.util.Random random) { + Preconditions.checkArgument(itemStack != null, "Argument 'itemStack' must not be null"); diff --git a/patches/server/0799-Fix-saving-in-unloadWorld.patch b/patches/server/0799-Fix-saving-in-unloadWorld.patch index 4c76d650b2..d047059e5f 100644 --- a/patches/server/0799-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0799-Fix-saving-in-unloadWorld.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6e9f3db637a61d29e3ef8b3e390e143d2ad281ee..884a7dd2ee3e0dc671cb111a9493bd1a8d3f7d0a 100644 +index 575c4a4baaecbcbd16727138a96aab8bcaee6795..cc85f098bca750a6511477c0a57f2f75af182f0f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1317,7 +1317,7 @@ public final class CraftServer implements Server { +@@ -1318,7 +1318,7 @@ public final class CraftServer implements Server { try { if (save) { diff --git a/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 83e3a32637..26f87acfb8 100644 --- a/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -196,10 +196,10 @@ index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449ab } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f40ff2f248e3cacc924d90e9f90692b5bde7ea53..ff4dc2a8ab7a158f985599e37da5999cae97d42d 100644 +index b46a37bab1ddab70dc0567df26668e28d5844469..7ec74be4ac660c85a3c9a1d60de45dfa374c9c1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1357,11 +1357,11 @@ public class CraftEventFactory { +@@ -1383,11 +1383,11 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0810-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0810-Prevent-tile-entity-copies-loading-chunks.patch index 75d7222fff..6803da9cc1 100644 --- a/patches/server/0810-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0810-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 66ac999f9dda064136dea32542b6ff662ff7979c..94af08c8b3bc8e47e0c0f9347b256e02b6a29242 100644 +index 655dc1cda9a498466ffef68d41bde5030dfe53c3..4700a1f41a1ff97076bb837fd2b3bc226512b3e2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3318,7 +3318,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3344,7 +3344,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/server/0813-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0813-Pass-ServerLevel-for-gamerule-callbacks.patch index 31e9312196..e546b9e9fd 100644 --- a/patches/server/0813-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0813-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -18,10 +18,10 @@ index 9a45921cbb1e7a39e6ef46cc93c14766ee8229ad..8115cf64a30b6438721769df6045e1b7 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 94af08c8b3bc8e47e0c0f9347b256e02b6a29242..c4b67ed3b1bdedc21d75883d9ed6fd0244f3390f 100644 +index 4700a1f41a1ff97076bb837fd2b3bc226512b3e2..92f9ee5897045e052c51805112c8478d32380c08 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2908,7 +2908,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2907,7 +2907,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper diff --git a/patches/server/0814-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0814-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch index 12659c668e..6566872ef6 100644 --- a/patches/server/0814-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch +++ b/patches/server/0814-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add pre-unbreaking amount to PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 671af924e54e96e91a284103d5f347853ce338b6..90e4f8d21822cb0dc8bda586803f8c086f0fbeee 100644 +index f62585f3112886c927f1f65f982b9db9194457e9..cc58df88fc3788dcfb7e429ef899b3d558a931cc 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -608,10 +608,11 @@ public final class ItemStack { +@@ -612,10 +612,11 @@ public final class ItemStack { } } diff --git a/patches/server/0815-WorldCreator-keepSpawnLoaded.patch b/patches/server/0815-WorldCreator-keepSpawnLoaded.patch index 76eb1a946a..900a92ca9e 100644 --- a/patches/server/0815-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0815-WorldCreator-keepSpawnLoaded.patch @@ -5,10 +5,10 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 884a7dd2ee3e0dc671cb111a9493bd1a8d3f7d0a..c27fc3c75c55fdc418dce8aef98faa237af4c727 100644 +index cc85f098bca750a6511477c0a57f2f75af182f0f..2282d0ae19c3428a32d4645caaa2d543cbd866fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1276,6 +1276,7 @@ public final class CraftServer implements Server { +@@ -1277,6 +1277,7 @@ public final class CraftServer implements Server { internal.setSpawnSettings(true, true); // Paper - move up diff --git a/patches/server/0823-Do-not-accept-invalid-client-settings.patch b/patches/server/0823-Do-not-accept-invalid-client-settings.patch index f1ed4ee86f..c2c5f72c55 100644 --- a/patches/server/0823-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0823-Do-not-accept-invalid-client-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c4b67ed3b1bdedc21d75883d9ed6fd0244f3390f..c9e29f3e455f9a04ede1713feea885ec71cae5e6 100644 +index 92f9ee5897045e052c51805112c8478d32380c08..aae750e2b6067a8fccff7e70b3b0422bd609904a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3460,6 +3460,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3486,6 +3486,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleClientInformation(ServerboundClientInformationPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0825-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0825-Fix-OfflinePlayer-getBedSpawnLocation.patch index 450ba848ef..13111af547 100644 --- a/patches/server/0825-Fix-OfflinePlayer-getBedSpawnLocation.patch +++ b/patches/server/0825-Fix-OfflinePlayer-getBedSpawnLocation.patch @@ -8,10 +8,10 @@ instance of CraftOfflinePlayer the world was incorrect due to the logic for reading the NBT not being up-to-date. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index ef48315b98aa39ed245fb7619cf594bfb767931a..2856b861a1207ef94ae5671c5898f08fedd14475 100644 +index f572a74b85df36a6da76b78ec29d807273867537..aa070258c1f2546ac68869cb62c8752c80c758ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -34,6 +34,7 @@ import org.bukkit.profile.PlayerProfile; +@@ -36,6 +36,7 @@ import org.bukkit.profile.PlayerProfile; @SerializableAs("Player") public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializable { @@ -19,7 +19,7 @@ index ef48315b98aa39ed245fb7619cf594bfb767931a..2856b861a1207ef94ae5671c5898f08f private final GameProfile profile; private final CraftServer server; private final PlayerDataStorage storage; -@@ -318,11 +319,20 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -330,11 +331,20 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa if (data == null) return null; if (data.contains("SpawnX") && data.contains("SpawnY") && data.contains("SpawnZ")) { diff --git a/patches/server/0830-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0830-Throw-exception-on-world-create-while-being-ticked.patch index 4df4344992..fbdcc9b82f 100644 --- a/patches/server/0830-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0830-Throw-exception-on-world-create-while-being-ticked.patch @@ -45,10 +45,10 @@ index 910523399b1fae64808b292cfb45bed56719fcb3..66bb92ca535b559d3bca89b9bc841f8f this.profiler.popPush("connection"); MinecraftTimings.connectionTimer.startTiming(); // Spigot diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c27fc3c75c55fdc418dce8aef98faa237af4c727..398812a53abaad6a3551d45b624ec9340b5f52dd 100644 +index 2282d0ae19c3428a32d4645caaa2d543cbd866fb..48130600572c216f071893e2925dd1758e143751 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -871,6 +871,11 @@ public final class CraftServer implements Server { +@@ -872,6 +872,11 @@ public final class CraftServer implements Server { return new ArrayList<World>(this.worlds.values()); } @@ -60,7 +60,7 @@ index c27fc3c75c55fdc418dce8aef98faa237af4c727..398812a53abaad6a3551d45b624ec934 public DedicatedPlayerList getHandle() { return this.playerList; } -@@ -1152,6 +1157,7 @@ public final class CraftServer implements Server { +@@ -1153,6 +1158,7 @@ public final class CraftServer implements Server { @Override public World createWorld(WorldCreator creator) { Preconditions.checkState(this.console.getAllLevels().iterator().hasNext(), "Cannot create additional worlds on STARTUP"); @@ -68,7 +68,7 @@ index c27fc3c75c55fdc418dce8aef98faa237af4c727..398812a53abaad6a3551d45b624ec934 Preconditions.checkArgument(creator != null, "WorldCreator cannot be null"); String name = creator.name(); -@@ -1291,6 +1297,7 @@ public final class CraftServer implements Server { +@@ -1292,6 +1298,7 @@ public final class CraftServer implements Server { @Override public boolean unloadWorld(World world, boolean save) { diff --git a/patches/server/0837-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0837-Don-t-broadcast-messages-to-command-blocks.patch index d85fba5cc7..70b52ee7b4 100644 --- a/patches/server/0837-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0837-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,10 +20,10 @@ index e05eb08a9c229b371887676da510df948b896a85..ceeedbd88c56c08ec8b047c9ca2f14cc Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 398812a53abaad6a3551d45b624ec9340b5f52dd..295d6bec7b2fc943197b315ebd09b159ea670a79 100644 +index 48130600572c216f071893e2925dd1758e143751..f5f69968aa80c58b5325d4b6a3d03439149b7375 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1793,7 +1793,7 @@ public final class CraftServer implements Server { +@@ -1794,7 +1794,7 @@ public final class CraftServer implements Server { // Paper end Set<CommandSender> recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { diff --git a/patches/server/0840-Don-t-print-component-in-resource-pack-rejection-mes.patch b/patches/server/0840-Don-t-print-component-in-resource-pack-rejection-mes.patch index 917c4e14fe..4a218bdcb8 100644 --- a/patches/server/0840-Don-t-print-component-in-resource-pack-rejection-mes.patch +++ b/patches/server/0840-Don-t-print-component-in-resource-pack-rejection-mes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't print component in resource pack rejection message diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 45cd5a5026ba5a1221adac51755522357f204b61..0661f0a2f4a58092ca059027defa0842eb921473 100644 +index aae750e2b6067a8fccff7e70b3b0422bd609904a..ae7e333ff9da224422b61b3b8c2d409144f18b9d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2035,7 +2035,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2037,7 +2037,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) { diff --git a/patches/server/0844-Add-some-minimal-debug-information-to-chat-packet-er.patch b/patches/server/0844-Add-some-minimal-debug-information-to-chat-packet-er.patch index 5788af2cc9..b47f885404 100644 --- a/patches/server/0844-Add-some-minimal-debug-information-to-chat-packet-er.patch +++ b/patches/server/0844-Add-some-minimal-debug-information-to-chat-packet-er.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add some minimal debug information to chat packet errors TODO: potentially add some kick leeway diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0661f0a2f4a58092ca059027defa0842eb921473..ddde8721ca8dee386a54040f5fc57f25de71d2a2 100644 +index ae7e333ff9da224422b61b3b8c2d409144f18b9d..7b42f4be71566f9d91496ae05177e5d5f398ac9a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2293,7 +2293,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2295,7 +2295,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private Optional<LastSeenMessages> tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { diff --git a/patches/server/0846-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0846-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index 3f308e6f71..3b8b782960 100644 --- a/patches/server/0846-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0846-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ddde8721ca8dee386a54040f5fc57f25de71d2a2..f30c7b2dfd7b768dd98f4dfa532d54da8a1d9257 100644 +index 7b42f4be71566f9d91496ae05177e5d5f398ac9a..81ba625e01dad1373ef7d5377bb28f9f0b0ae34e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2540,7 +2540,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2536,7 +2536,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Spigot end // this.chatSpamTickCount += 20; diff --git a/patches/server/0847-More-Teleport-API.patch b/patches/server/0847-More-Teleport-API.patch index 097c59bec2..4c0b9328b2 100644 --- a/patches/server/0847-More-Teleport-API.patch +++ b/patches/server/0847-More-Teleport-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] More Teleport API public net.minecraft.server.network.ServerGamePacketListenerImpl internalTeleport(DDDFFLjava/util/Set;Z)V diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f30c7b2dfd7b768dd98f4dfa532d54da8a1d9257..94d78b8854deba8cf7c862ab1a095c576209ea6e 100644 +index 81ba625e01dad1373ef7d5377bb28f9f0b0ae34e..9a5ec7667b99ab271ff9824d3f250c11d5836ac3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1711,11 +1711,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1713,11 +1713,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return false; // CraftBukkit - Return event status } @@ -74,10 +74,10 @@ index cc72d960d9a5f9481ec2214b1549a344907a68da..94b41e9e3abe9cfbe09af67b03bc841f // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 32266b6e1011c21510a13a53ab1568988ce73522..8c98546d13ded3142cc3250391db86694e5835f4 100644 +index 22bb914d65bec1a324f14a44a0fb946fd64cd4ab..38ffa052f3d900c518c6689bae93e8e34ee52cb9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1209,13 +1209,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1211,13 +1211,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setRotation(float yaw, float pitch) { @@ -180,7 +180,7 @@ index 32266b6e1011c21510a13a53ab1568988ce73522..8c98546d13ded3142cc3250391db8669 location.checkFinite(); ServerPlayer entity = this.getHandle(); -@@ -1228,7 +1316,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1230,7 +1318,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return false; } @@ -189,7 +189,7 @@ index 32266b6e1011c21510a13a53ab1568988ce73522..8c98546d13ded3142cc3250391db8669 return false; } -@@ -1246,7 +1334,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1248,7 +1336,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // If this player is riding another entity, we must dismount before teleporting. @@ -198,7 +198,7 @@ index 32266b6e1011c21510a13a53ab1568988ce73522..8c98546d13ded3142cc3250391db8669 // SPIGOT-5509: Wakeup, similar to riding if (this.isSleeping()) { -@@ -1262,13 +1350,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1264,13 +1352,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { ServerLevel toWorld = ((CraftWorld) to.getWorld()).getHandle(); // Close any foreign inventory diff --git a/patches/server/0850-Send-block-entities-after-destroy-prediction.patch b/patches/server/0850-Send-block-entities-after-destroy-prediction.patch index 4e14c8d078..6c5d93fca7 100644 --- a/patches/server/0850-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0850-Send-block-entities-after-destroy-prediction.patch @@ -57,10 +57,10 @@ index 96fde7b84ce4d195d0c54deff71df9fcf8447979..6cc9c28032cafd15d884223a01208ce6 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 94d78b8854deba8cf7c862ab1a095c576209ea6e..c60906e122e058a19248b0e629531d8ec27146ca 100644 +index 9a5ec7667b99ab271ff9824d3f250c11d5836ac3..11e37de9481d82bcc9de4aae82a04acd6659f869 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1857,8 +1857,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1859,8 +1859,28 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } // Paper end - Don't allow digging in unloaded chunks diff --git a/patches/server/0852-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0852-Custom-Chat-Completion-Suggestions-API.patch index 7b67326aff..fbdc7eb48d 100644 --- a/patches/server/0852-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0852-Custom-Chat-Completion-Suggestions-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8c98546d13ded3142cc3250391db86694e5835f4..d7327b7e57c5075eb687331c7244d0aae1ac7c98 100644 +index 38ffa052f3d900c518c6689bae93e8e34ee52cb9..689a4b5768f57b3705d72a345a64b9c0094197b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -649,6 +649,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -651,6 +651,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false); } diff --git a/patches/server/0857-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0857-Add-Velocity-IP-Forwarding-Support.patch index b793e34155..6ec422b4fb 100644 --- a/patches/server/0857-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0857-Add-Velocity-IP-Forwarding-Support.patch @@ -213,10 +213,10 @@ index 3fcd7bfdb8945b276c94a263e9da6b85ce470366..3431b1132e55c53cda7cf47f021f2306 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 295d6bec7b2fc943197b315ebd09b159ea670a79..7f955f8a42b6c917dbd6f3533927a7295c1c5e20 100644 +index f5f69968aa80c58b5325d4b6a3d03439149b7375..cd4c2e4c0d9d9003273fe04bbe9a61b3024547dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -800,7 +800,7 @@ public final class CraftServer implements Server { +@@ -801,7 +801,7 @@ public final class CraftServer implements Server { @Override public long getConnectionThrottle() { // Spigot Start - Automatically set connection throttle for bungee configurations diff --git a/patches/server/0869-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0869-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch index 793883a2f4..c9938548a4 100644 --- a/patches/server/0869-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch +++ b/patches/server/0869-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type TODO: Remove in 1.21? diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index cacd9b59741c31e70e898e7af91a1a6ed3f87f07..2ee82c316c3a6a79e1d722dfd00c22baa83c0299 100644 +index b7d09079411f70353f44df3c623a0076367cf603..d2f4d7d129c692d92de74598dd94ea2d6a9f0d28 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java @@ -466,6 +466,12 @@ public class Commodore @@ -21,5 +21,5 @@ index cacd9b59741c31e70e898e7af91a1a6ed3f87f07..2ee82c316c3a6a79e1d722dfd00c22ba + return; + } // Paper end - if ( modern ) - { + + // Paper start - ItemFactory#getSpawnEgg (paper had original method that returned ItemStack, upstream added identical but returned Material) diff --git a/patches/server/0877-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0877-Correctly-handle-interactions-with-items-on-cooldown.patch index ab58d7ba9d..1aa068e733 100644 --- a/patches/server/0877-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0877-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -30,10 +30,10 @@ index 14bbc86bbaad49b2af16f3b171eb667c28eda702..34ecfb89372f459117db99d57a7edd6f this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f40ff2f248e3cacc924d90e9f90692b5bde7ea53..295014956cd50054d1c039e0de4dfe54c43a5835 100644 +index 7ec74be4ac660c85a3c9a1d60de45dfa374c9c1f..e2a346d2cd813dd64ab61403e531f9ebf221d4b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -517,7 +517,13 @@ public class CraftEventFactory { +@@ -542,7 +542,13 @@ public class CraftEventFactory { return CraftEventFactory.callPlayerInteractEvent(who, action, position, direction, itemstack, false, hand, null); } @@ -47,7 +47,7 @@ index f40ff2f248e3cacc924d90e9f90692b5bde7ea53..295014956cd50054d1c039e0de4dfe54 Player player = (who == null) ? null : (Player) who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); -@@ -552,6 +558,11 @@ public class CraftEventFactory { +@@ -577,6 +583,11 @@ public class CraftEventFactory { if (cancelledBlock) { event.setUseInteractedBlock(Event.Result.DENY); } diff --git a/patches/server/0879-Elder-Guardian-appearance-API.patch b/patches/server/0879-Elder-Guardian-appearance-API.patch index 82b78ed56e..8d5a7f4e0a 100644 --- a/patches/server/0879-Elder-Guardian-appearance-API.patch +++ b/patches/server/0879-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d7327b7e57c5075eb687331c7244d0aae1ac7c98..0c5ba227bd1bd6eec15e8b3f0acfb082eacd2e02 100644 +index 689a4b5768f57b3705d72a345a64b9c0094197b6..fc9f386c07a0e99b6424420a13aba712070eeca6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3112,6 +3112,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3144,6 +3144,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end diff --git a/patches/server/0894-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0894-ensure-reset-EnderDragon-boss-event-name.patch index 0f1fd322ef..1f9fc08b58 100644 --- a/patches/server/0894-ensure-reset-EnderDragon-boss-event-name.patch +++ b/patches/server/0894-ensure-reset-EnderDragon-boss-event-name.patch @@ -6,20 +6,27 @@ Subject: [PATCH] ensure reset EnderDragon boss event name Fix MC-257487 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 17b5386d147dc007c487da3561ea5a5d3cd6db22..e2cd77d9de9709aa50f4b6febabe21bfcf94dc5d 100644 +index f67fcaff1994e5eb1195d1ec6d5a27d01c12d7a7..02d5a5b799bfe90993bc6868369d31f43d5b7fd6 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -69,7 +69,8 @@ public class EndDragonFight { +@@ -73,6 +73,7 @@ public class EndDragonFight { private static final int GATEWAY_DISTANCE = 96; public static final int DRAGON_SPAWN_Y = 128; private final Predicate<Entity> validPlayer; -- public final ServerBossEvent dragonEvent = (ServerBossEvent)(new ServerBossEvent(Component.translatable("entity.minecraft.ender_dragon"), BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); + private static final Component DEFAULT_BOSS_EVENT_NAME = Component.translatable("entity.minecraft.ender_dragon"); // Paper -+ public final ServerBossEvent dragonEvent = (ServerBossEvent)(new ServerBossEvent(DEFAULT_BOSS_EVENT_NAME, BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); // Paper + public final ServerBossEvent dragonEvent; public final ServerLevel level; private final BlockPos origin; - private final ObjectArrayList<Integer> gateways = new ObjectArrayList<>(); -@@ -443,6 +444,10 @@ public class EndDragonFight { +@@ -101,7 +102,7 @@ public class EndDragonFight { + } + + public EndDragonFight(ServerLevel world, long gatewaysSeed, EndDragonFight.Data data, BlockPos origin) { +- this.dragonEvent = (ServerBossEvent) (new ServerBossEvent(Component.translatable("entity.minecraft.ender_dragon"), BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); ++ this.dragonEvent = (ServerBossEvent) (new ServerBossEvent(DEFAULT_BOSS_EVENT_NAME, BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); // Paper + this.gateways = new ObjectArrayList(); + this.ticksSinceLastPlayerScan = 21; + this.skipArenaLoadedCheck = false; +@@ -498,6 +499,10 @@ public class EndDragonFight { this.ticksSinceDragonSeen = 0; if (dragon.hasCustomName()) { this.dragonEvent.setName(dragon.getDisplayName()); diff --git a/patches/server/0896-Add-Player-Warden-Warning-API.patch b/patches/server/0896-Add-Player-Warden-Warning-API.patch index 8fa41762ef..1293f8183e 100644 --- a/patches/server/0896-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0896-Add-Player-Warden-Warning-API.patch @@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0c5ba227bd1bd6eec15e8b3f0acfb082eacd2e02..d1db06cab4c74610f5e3815ae615e9423b92c124 100644 +index fc9f386c07a0e99b6424420a13aba712070eeca6..84e8a147db89bf2f962aeb9b9cddf3abbf67a2b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3117,6 +3117,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3149,6 +3149,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void showElderGuardian(boolean silent) { if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F)); } diff --git a/patches/server/0908-Properly-resend-entities.patch b/patches/server/0908-Properly-resend-entities.patch index db1b7f6ee1..1f77d5ced5 100644 --- a/patches/server/0908-Properly-resend-entities.patch +++ b/patches/server/0908-Properly-resend-entities.patch @@ -82,10 +82,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..15add3f4dfd718ec09bb1db4f2222346 public static class DataItem<T> { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 172892b1e40916c26fdaf203543f6d456f69f4c4..62099692e5c19b2061e0b96b7e562452698d5710 100644 +index 11e37de9481d82bcc9de4aae82a04acd6659f869..afdef7501e6071932d569657d60a39305f5ca4be 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2806,7 +2806,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2805,7 +2805,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { diff --git a/patches/server/0910-fix-Instruments.patch b/patches/server/0910-fix-Instruments.patch index 177350915b..05b603bf71 100644 --- a/patches/server/0910-fix-Instruments.patch +++ b/patches/server/0910-fix-Instruments.patch @@ -6,10 +6,10 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d1db06cab4c74610f5e3815ae615e9423b92c124..1b776dc69369c1ce8042e379e8064c00f17f0c43 100644 +index 84e8a147db89bf2f962aeb9b9cddf3abbf67a2b4..3f1ac596a4f20245e6a128451e9811bfbcd111f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -723,29 +723,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -725,29 +725,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (this.getHandle().connection == null) return; diff --git a/patches/server/0915-Improve-logging-and-errors.patch b/patches/server/0915-Improve-logging-and-errors.patch index e740800baa..e07c007658 100644 --- a/patches/server/0915-Improve-logging-and-errors.patch +++ b/patches/server/0915-Improve-logging-and-errors.patch @@ -22,10 +22,10 @@ index f6e423a76d4c9cf639f1d44af80d33cf3072f6b5..135fc81414446f24c3adad71f5199c78 Properties properties; Properties properties1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 62099692e5c19b2061e0b96b7e562452698d5710..fc5369ba071434ab4fd6a5192a7cfa6709934a0f 100644 +index afdef7501e6071932d569657d60a39305f5ca4be..3d2ca3ae49a85a91773510ca93d60b9b098e39ba 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3595,7 +3595,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3621,7 +3621,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator, Duration.ZERO)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { diff --git a/patches/server/0918-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0918-Add-missing-SpigotConfig-logCommands-check.patch index 0a9fb0d1c1..1a4d7c4c10 100644 --- a/patches/server/0918-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0918-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a53d44f26c3cf51ae4a4219a0e9ecec50666e53d..8cfde7c8b2e45fd2856e7d7bdae75dd379f464f8 100644 +index 3d2ca3ae49a85a91773510ca93d60b9b098e39ba..4947265c3b7a9da8782be3ae8d35ef99c5836e81 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2257,7 +2257,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2259,7 +2259,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) { // CraftBukkit start String command = "/" + packet.command(); diff --git a/patches/server/0920-Flying-Fall-Damage.patch b/patches/server/0920-Flying-Fall-Damage.patch index 64788275cc..28abd420c8 100644 --- a/patches/server/0920-Flying-Fall-Damage.patch +++ b/patches/server/0920-Flying-Fall-Damage.patch @@ -26,10 +26,10 @@ index 53487f0a4fe672298c3b83d24a2a603641afcde8..58152160d609d0e9d105153aeb166a56 } 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 1b776dc69369c1ce8042e379e8064c00f17f0c43..34512d3b4ba2d6e4f7a07536c65d40c2a7cf24aa 100644 +index 3f1ac596a4f20245e6a128451e9811bfbcd111f8..0464b29dbad466f0e80a8b42284731a6798eab02 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2334,6 +2334,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2366,6 +2366,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().onUpdateAbilities(); } diff --git a/patches/server/0921-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0921-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index 3297569e90..807bc860c2 100644 --- a/patches/server/0921-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0921-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -130,10 +130,10 @@ index da4609caecc8183d02c301c7cedbca52ed39323f..716021520c228b5bbced525b751f5d41 // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity) private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f55705610aa9b12bca8a7ae280ea271aee38daa4..44212a65f0943e72b56e7654e2d181e6d825899d 100644 +index e2a346d2cd813dd64ab61403e531f9ebf221d4b4..ee382cae3feca1de40d95faf6af023c8a7df05b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -992,7 +992,7 @@ public class CraftEventFactory { +@@ -1018,7 +1018,7 @@ public class CraftEventFactory { CraftEventFactory.entityDamage = null; EntityDamageEvent event; if (damager == null) { diff --git a/patches/server/0924-Use-single-player-info-update-packet-on-join.patch b/patches/server/0924-Use-single-player-info-update-packet-on-join.patch index 54a1d392bf..139aa8bdd8 100644 --- a/patches/server/0924-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0924-Use-single-player-info-update-packet-on-join.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f69e7b30517b6ea328f61426ce55b31ae2f1dfdb..4269fe1437f477411be563ff9b578453ecfd21fe 100644 +index 4947265c3b7a9da8782be3ae8d35ef99c5836e81..c072cccb0a80019ce2f6c9e73f965ca26f8bc42c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3610,7 +3610,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3636,7 +3636,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID()); this.chatMessageChain.append((executor) -> { this.player.setChatSession(session); diff --git a/patches/server/0926-Win-Screen-API.patch b/patches/server/0926-Win-Screen-API.patch index 9c090fc443..ac16a7c152 100644 --- a/patches/server/0926-Win-Screen-API.patch +++ b/patches/server/0926-Win-Screen-API.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 34512d3b4ba2d6e4f7a07536c65d40c2a7cf24aa..0a20b01493ee742e1203b4cc69300ddc98a128ce 100644 +index 0464b29dbad466f0e80a8b42284731a6798eab02..9e9d810c934c0d33c2903077fb0870f2273ef85b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1212,6 +1212,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1214,6 +1214,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/server/0932-Add-EntityFertilizeEggEvent.patch b/patches/server/0932-Add-EntityFertilizeEggEvent.patch index 190472324b..d32f3e6081 100644 --- a/patches/server/0932-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0932-Add-EntityFertilizeEggEvent.patch @@ -69,10 +69,10 @@ index c0f19138c6a00ce6ae837c972ae4af522ddd2895..a6d98f64910c816a5c11867d12698f5c world.addFreshEntity(entityitem); } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 295014956cd50054d1c039e0de4dfe54c43a5835..b118d412e5b98973af63b89d8b4f6420b404e06f 100644 +index ee382cae3feca1de40d95faf6af023c8a7df05b9..3362ded586f723ef1f89ad6dfa872ae468f92933 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2014,4 +2014,29 @@ public class CraftEventFactory { +@@ -2047,4 +2047,29 @@ public class CraftEventFactory { return event.callEvent(); } // Paper end diff --git a/patches/server/0937-Fix-text-display-error-on-spawn.patch b/patches/server/0937-Fix-text-display-error-on-spawn.patch index cb6ccd7e5e..4849e726e6 100644 --- a/patches/server/0937-Fix-text-display-error-on-spawn.patch +++ b/patches/server/0937-Fix-text-display-error-on-spawn.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Fix text display error on spawn diff --git a/src/main/java/net/minecraft/world/entity/Display.java b/src/main/java/net/minecraft/world/entity/Display.java -index a291b809e39483ab350a1c861d160cb514281695..b7e77397c3c20d8112e17c8aed24e2186c1a72bc 100644 +index f7eeccbcb4c119f46ebb82284a109f48008c68cd..2a5a4027e5d0d9d48a727834f3f5af65ea83aa23 100644 --- a/src/main/java/net/minecraft/world/entity/Display.java +++ b/src/main/java/net/minecraft/world/entity/Display.java -@@ -800,7 +800,7 @@ public abstract class Display extends Entity { - byte b = loadFlag((byte)0, nbt, "shadow", (byte)1); - b = loadFlag(b, nbt, "see_through", (byte)2); - b = loadFlag(b, nbt, "default_background", (byte)4); -- Optional<Display.TextDisplay.Align> optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).resultOrPartial(Util.prefix("Display entity", Display.LOGGER::error)).map(Pair::getFirst); -+ Optional<Display.TextDisplay.Align> optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).result().map(Pair::getFirst); // Paper +@@ -694,7 +694,7 @@ public abstract class Display extends Entity { + Logger logger = Display.LOGGER; + + Objects.requireNonNull(logger); +- Optional<Display.TextDisplay.Align> optional = dataresult.resultOrPartial(Util.prefix("Display entity", logger::error)).map(Pair::getFirst); ++ Optional<Display.TextDisplay.Align> optional = dataresult.result().map(Pair::getFirst); // Paper - hide error message + if (optional.isPresent()) { - byte var10000; - switch ((Display.TextDisplay.Align)optional.get()) { + byte b1; diff --git a/patches/server/0942-Optimize-Hoppers.patch b/patches/server/0942-Optimize-Hoppers.patch index ff204328c0..6265c6bf6a 100644 --- a/patches/server/0942-Optimize-Hoppers.patch +++ b/patches/server/0942-Optimize-Hoppers.patch @@ -25,10 +25,10 @@ index c5f3dc74888919e82e2ffbb8d648b7640aa6b690..80cf4852e4010eeeadaf920ab927a40d this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 90e4f8d21822cb0dc8bda586803f8c086f0fbeee..22e148867a2832035546148fc5aa27b9d4de3c64 100644 +index cc58df88fc3788dcfb7e429ef899b3d558a931cc..b3c99bb1da54209a21b090d31713167fd9729654 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -719,10 +719,16 @@ public final class ItemStack { +@@ -723,10 +723,16 @@ public final class ItemStack { } public ItemStack copy() { diff --git a/patches/server/0943-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0943-Fix-beehives-generating-from-using-bonemeal.patch index 73fe5e036a..f6e73d0190 100644 --- a/patches/server/0943-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0943-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 22e148867a2832035546148fc5aa27b9d4de3c64..6a25b768ea2e99acdda781cdc0ab7bf80b45912c 100644 +index b3c99bb1da54209a21b090d31713167fd9729654..c9363f01b3c2369d5c63e50977c28a3fa760bae1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -392,6 +392,7 @@ public final class ItemStack { +@@ -396,6 +396,7 @@ public final class ItemStack { } for (CraftBlockState blockstate : blocks) { world.setBlock(blockstate.getPosition(),blockstate.getHandle(), blockstate.getFlag()); // SPIGOT-7248 - manual update to avoid physics where appropriate diff --git a/patches/server/0945-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0945-Treat-sequence-violations-like-they-should-be.patch index ff6e249616..c73068144d 100644 --- a/patches/server/0945-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0945-Treat-sequence-violations-like-they-should-be.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 65c768a911b2e634ae4c8ee4f210a031731e357d..d9161ccea1c0af96e2718defba68e098c22082a3 100644 +index c072cccb0a80019ce2f6c9e73f965ca26f8bc42c..54ea5cfdb6fba3c66349b80e21e66b44c4dbba53 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2127,6 +2127,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2129,6 +2129,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { diff --git a/patches/server/0947-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0947-Prevent-causing-expired-keys-from-impacting-new-join.patch index bff86d9c16..a5713a5087 100644 --- a/patches/server/0947-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0947-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,10 +24,10 @@ index 23e0e6937e28f09271a4ec7c35e0076a576cf3d3..4aa8b483841028fbcc43f9ed47730881 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 57ae23b3f3982f21908d7bbb3be9f7ff20b57e5c..819d043c6cbf304a9348e05bc868d1d821bcc568 100644 +index 54ea5cfdb6fba3c66349b80e21e66b44c4dbba53..7ee70536cfb621702388bd13dddf08f0224ba6bb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -296,6 +296,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -298,6 +298,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private final AtomicReference<Instant> lastChatTimeStamp; @Nullable private RemoteChatSession chatSession; @@ -35,7 +35,7 @@ index 57ae23b3f3982f21908d7bbb3be9f7ff20b57e5c..819d043c6cbf304a9348e05bc868d1d8 private SignedMessageChain.Decoder signedMessageDecoder; private final LastSeenMessagesValidator lastSeenMessages; private final MessageSignatureCache messageSignatureCache; -@@ -436,6 +437,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -438,6 +439,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } @@ -49,7 +49,7 @@ index 57ae23b3f3982f21908d7bbb3be9f7ff20b57e5c..819d043c6cbf304a9348e05bc868d1d8 } public void resetPosition() { -@@ -3608,6 +3616,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3634,6 +3642,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; diff --git a/patches/server/0954-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0954-Fix-DamageCause-for-Falling-Blocks.patch index b351a0532e..8704b34118 100644 --- a/patches/server/0954-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0954-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b118d412e5b98973af63b89d8b4f6420b404e06f..e78e41fe5e3721b0cc465009984d4816c9d809eb 100644 +index 3362ded586f723ef1f89ad6dfa872ae468f92933..32587ddf2440cbb16884ed8140f8827357a44cba 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1032,6 +1032,11 @@ public class CraftEventFactory { +@@ -1058,6 +1058,11 @@ public class CraftEventFactory { } else if (source.is(DamageTypes.SONIC_BOOM)) { cause = DamageCause.SONIC_BOOM; } diff --git a/patches/server/0960-Expand-PlayerItemMendEvent.patch b/patches/server/0960-Expand-PlayerItemMendEvent.patch index e085643456..caafa86ce8 100644 --- a/patches/server/0960-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0960-Expand-PlayerItemMendEvent.patch @@ -33,10 +33,10 @@ index 8d8fe55a05eea237a8af99ed15ab16d6167daa77..eca634792d2a7cc649675e3394e84dba return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0a20b01493ee742e1203b4cc69300ddc98a128ce..5b201d2c21f04e0223970035e0631f8f92ea0d3a 100644 +index 9e9d810c934c0d33c2903077fb0870f2273ef85b..25a35d7273fdb1f472b4ea92cebf93ff8e39c79a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1704,11 +1704,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1736,11 +1736,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { orb.setPosRaw(handle.getX(), handle.getY(), handle.getZ()); int i = Math.min(orb.xpToDurability(amount), itemstack.getDamageValue()); @@ -51,10 +51,10 @@ index 0a20b01493ee742e1203b4cc69300ddc98a128ce..5b201d2c21f04e0223970035e0631f8f } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e78e41fe5e3721b0cc465009984d4816c9d809eb..85885b835cd661d6dcacf7f6501cc6b1ffb9f137 100644 +index 32587ddf2440cbb16884ed8140f8827357a44cba..36027749504b239285c57630c0500dfb5a6126ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1268,10 +1268,10 @@ public class CraftEventFactory { +@@ -1294,10 +1294,10 @@ public class CraftEventFactory { return event; } diff --git a/patches/server/0963-Fix-block-place-logic.patch b/patches/server/0963-Fix-block-place-logic.patch index fb08ea3804..2d077f1757 100644 --- a/patches/server/0963-Fix-block-place-logic.patch +++ b/patches/server/0963-Fix-block-place-logic.patch @@ -22,10 +22,10 @@ index b0204af850ee182773ad458208cccd946ad148d5..ebee8de2ed831755b6fd154f6cc77ac9 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6a25b768ea2e99acdda781cdc0ab7bf80b45912c..5f0e01060e1d8716e7514a25cbe68b732efaa8ef 100644 +index c9363f01b3c2369d5c63e50977c28a3fa760bae1..6f00794aec16db3e7a466f4b446d38bdb2623e8b 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -463,13 +463,7 @@ public final class ItemStack { +@@ -467,13 +467,7 @@ public final class ItemStack { if (tileentity instanceof JukeboxBlockEntity) { JukeboxBlockEntity tileentityjukebox = (JukeboxBlockEntity) tileentity; diff --git a/patches/server/0964-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0964-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index bb91243734..af0d52e28f 100644 --- a/patches/server/0964-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0964-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 5f0e01060e1d8716e7514a25cbe68b732efaa8ef..ae9b821d71d2868ba4eb3c73558fdcd6caf264e3 100644 +index 6f00794aec16db3e7a466f4b446d38bdb2623e8b..2223aba0841280c5205ab0963c406449f85fa433 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -514,7 +514,11 @@ public final class ItemStack { +@@ -518,7 +518,11 @@ public final class ItemStack { // SPIGOT-1288 - play sound stripped from ItemBlock if (this.item instanceof BlockItem) { diff --git a/patches/server/0967-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0967-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index e9017a42c1..608f9bea3f 100644 --- a/patches/server/0967-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0967-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7f955f8a42b6c917dbd6f3533927a7295c1c5e20..d5c7b4292b244e0e3c12491c3facc90066425f15 100644 +index cd4c2e4c0d9d9003273fe04bbe9a61b3024547dd..144e843191bc955d37ee1524746304fbe0d79149 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -354,7 +354,11 @@ public final class CraftServer implements Server { +@@ -355,7 +355,11 @@ public final class CraftServer implements Server { } this.commandsConfiguration = YamlConfiguration.loadConfiguration(this.getCommandsConfigFile()); this.commandsConfiguration.options().copyDefaults(true); diff --git a/patches/server/0972-Folia-scheduler-and-owned-region-API.patch b/patches/server/0972-Folia-scheduler-and-owned-region-API.patch index 230a05b965..1c46bd1009 100644 --- a/patches/server/0972-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0972-Folia-scheduler-and-owned-region-API.patch @@ -1158,7 +1158,7 @@ index 8547e7ff2f1f5b7701fb0f3c3010c14601a5f83e..fff7ad7a45f310783ac96b44575ad3db this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8218169014a7af183e6b0058fe08af18ca047448..131d88eed13741a5438910b9acc7ffa53d56e86a 100644 +index 1e5d17f955f4c46973928310db987119c15c707b..99e28690aa8705da91e6def598e11a1c98612fa9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -246,11 +246,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -1224,10 +1224,10 @@ index 8218169014a7af183e6b0058fe08af18ca047448..131d88eed13741a5438910b9acc7ffa5 public void setLevelCallback(EntityInLevelCallback changeListener) { this.levelCallback = changeListener; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d5c7b4292b244e0e3c12491c3facc90066425f15..a05c1bc8874ef5e380544a6a344c848e37da49c4 100644 +index 144e843191bc955d37ee1524746304fbe0d79149..d62cdda5ef3691a54ce34729920bad8e16c7a883 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -305,6 +305,76 @@ public final class CraftServer implements Server { +@@ -306,6 +306,76 @@ public final class CraftServer implements Server { private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper diff --git a/patches/server/0974-Properly-Cancel-Usable-Items.patch b/patches/server/0974-Properly-Cancel-Usable-Items.patch index a51b429994..3ec9d65f4f 100644 --- a/patches/server/0974-Properly-Cancel-Usable-Items.patch +++ b/patches/server/0974-Properly-Cancel-Usable-Items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 1635fee928d64f4d2c336dca6675ed4641918830..afcee1e5bf1f735f3c893ec0b835dc5cd9759b7b 100644 +index 34ecfb89372f459117db99d57a7edd6f681bbe8a..baf3e79489e310f443788bc917c553ae7ea86c89 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -562,6 +562,7 @@ public class ServerPlayerGameMode { @@ -34,10 +34,10 @@ index 1635fee928d64f4d2c336dca6675ed4641918830..afcee1e5bf1f735f3c893ec0b835dc5c return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1d0e439c00ac4ab72dc656038c9271b1240acc88..b777547cb9f8edf4e7b3c2cfb894f8cd1b1a35a5 100644 +index 7ee70536cfb621702388bd13dddf08f0224ba6bb..75bd92e1d40588d3bc40fa7837943eec9f2062a6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2029,6 +2029,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2031,6 +2031,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (cancelled) { diff --git a/patches/server/0975-Add-event-for-player-editing-sign.patch b/patches/server/0975-Add-event-for-player-editing-sign.patch index 1225fb56a9..9e06a54123 100644 --- a/patches/server/0975-Add-event-for-player-editing-sign.patch +++ b/patches/server/0975-Add-event-for-player-editing-sign.patch @@ -5,66 +5,88 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ae9b821d71d2868ba4eb3c73558fdcd6caf264e3..86304357ca687036cf2448f8cd7c639bdc309e25 100644 +index 2223aba0841280c5205ab0963c406449f85fa433..879cc823d56625867eb73bb621db6a13f40ad81c 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -493,7 +493,7 @@ public final class ItemStack { +@@ -497,7 +497,7 @@ public final class ItemStack { try { if (world.getBlockEntity(SignItem.openSign) instanceof SignBlockEntity tileentitysign) { if (world.getBlockState(SignItem.openSign).getBlock() instanceof SignBlock blocksign) { -- blocksign.openTextEdit(entityhuman, tileentitysign, true); +- blocksign.openTextEdit(entityhuman, tileentitysign, true, org.bukkit.event.player.PlayerSignOpenEvent.Cause.PLACE); // Craftbukkit + blocksign.openTextEdit(entityhuman, tileentitysign, true, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.PLACE); // Paper } } } finally { diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 5ab7df0042391cb621ed78a187dc20333e344186..1bc8fbb66c43e9844c66bce26cd349d7fcbc4cfe 100644 +index 1733744691e843891fc22991f8da57877a1b14f3..b01cdfe3c62c609e953aa5007e6557cfec0d5a5f 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java -@@ -97,7 +97,7 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo - } else if (bl3) { +@@ -115,7 +115,7 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo + } else if (flag2) { return InteractionResult.SUCCESS; - } else if (!this.otherPlayerIsEditingSign(player, signBlockEntity) && player.mayBuild() && this.hasEditableText(player, signBlockEntity, bl2)) { -- this.openTextEdit(player, signBlockEntity, bl2); -+ this.openTextEdit(player, signBlockEntity, bl2, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.INTERACT); // Paper + } else if (!this.otherPlayerIsEditingSign(player, tileentitysign) && player.mayBuild() && this.hasEditableText(player, tileentitysign, flag1)) { +- this.openTextEdit(player, tileentitysign, flag1, org.bukkit.event.player.PlayerSignOpenEvent.Cause.INTERACT); // CraftBukkit ++ this.openTextEdit(player, tileentitysign, flag1, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.INTERACT); // Paper return InteractionResult.SUCCESS; } else { return InteractionResult.PASS; -@@ -143,7 +143,22 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo - return woodType; +@@ -163,16 +163,33 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo + return blockpropertywood; } + @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper public void openTextEdit(Player player, SignBlockEntity blockEntity, boolean front) { -+ // Paper start +- // Craftbukkit start +- this.openTextEdit(player, blockEntity, front, org.bukkit.event.player.PlayerSignOpenEvent.Cause.UNKNOWN); ++ // Paper start - PlayerOpenSignEvent + this.openTextEdit(player, blockEntity, front, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.UNKNOWN); -+ } -+ public void openTextEdit(Player player, SignBlockEntity blockEntity, boolean front, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause cause) { -+ org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) player.getBukkitEntity(); -+ org.bukkit.block.Block bukkitBlock = org.bukkit.craftbukkit.block.CraftBlock.at(blockEntity.getLevel(), blockEntity.getBlockPos()); + } +- +- public void openTextEdit(Player entityhuman, SignBlockEntity tileentitysign, boolean flag, org.bukkit.event.player.PlayerSignOpenEvent.Cause cause) { +- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerSignOpenEvent(entityhuman, tileentitysign, flag, cause)) { ++ public void openTextEdit(Player entityhuman, SignBlockEntity tileentitysign, boolean flag, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause cause) { ++ org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) entityhuman.getBukkitEntity(); ++ org.bukkit.block.Block bukkitBlock = org.bukkit.craftbukkit.block.CraftBlock.at(tileentitysign.getLevel(), tileentitysign.getBlockPos()); + org.bukkit.craftbukkit.block.CraftSign<?> bukkitSign = (org.bukkit.craftbukkit.block.CraftSign<?>) org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(bukkitBlock); + io.papermc.paper.event.player.PlayerOpenSignEvent event = new io.papermc.paper.event.player.PlayerOpenSignEvent( + bukkitPlayer, + bukkitSign, -+ front ? org.bukkit.block.sign.Side.FRONT : org.bukkit.block.sign.Side.BACK, ++ flag ? org.bukkit.block.sign.Side.FRONT : org.bukkit.block.sign.Side.BACK, + cause); + if (!event.callEvent()) return; -+ // Paper end - blockEntity.setAllowedPlayerEditor(player.getUUID()); - player.openTextEdit(blockEntity, front); ++ if (org.bukkit.event.player.PlayerSignOpenEvent.getHandlerList().getRegisteredListeners().length > 0) { ++ final org.bukkit.event.player.PlayerSignOpenEvent.Cause legacyCause = switch (cause) { ++ case PLACE -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.PLACE; ++ case PLUGIN -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.PLUGIN; ++ case INTERACT -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.INTERACT; ++ case UNKNOWN -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.UNKNOWN; ++ }; ++ // Paper end - PlayerOpenSignEvent ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerSignOpenEvent(entityhuman, tileentitysign, flag, legacyCause)) { // Paper + return; + } +- // Craftbukkit end ++ } // Paper + tileentitysign.setAllowedPlayerEditor(entityhuman.getUUID()); + entityhuman.openTextEdit(tileentitysign, flag); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index f48b5204e59ab0c840fc08ecb9abf5facbae9be1..ed29fd2271585a100c1933b787005e9be54bd715 100644 +index f1ba0fd5d17fb1a26cf09848d4125ecfab39eddb..02c4c9142a197aabfe7b8aaca8a88bba10b83b6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -128,6 +128,10 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< +@@ -130,9 +130,15 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< SignBlockEntity handle = ((CraftSign<?>) sign).getTileEntity(); + // Paper start + io.papermc.paper.event.player.PlayerOpenSignEvent event = new io.papermc.paper.event.player.PlayerOpenSignEvent((Player) player, sign, side, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.PLUGIN); + if (!event.callEvent()) return; -+ // Paper end ++ if (PlayerSignOpenEvent.getHandlerList().getRegisteredListeners().length > 0) { ++ // Paper end + if (!CraftEventFactory.callPlayerSignOpenEvent(player, sign, side, PlayerSignOpenEvent.Cause.PLUGIN)) { + return; + } ++ } // Paper + handle.setAllowedPlayerEditor(player.getUniqueId()); // Paper - ((org.bukkit.craftbukkit.entity.CraftHumanEntity) player).getHandle().openTextEdit(handle, Side.FRONT == side); // Paper - change move open sign to HumanEntity - } + ((CraftPlayer) player).getHandle().openTextEdit(handle, Side.FRONT == side); diff --git a/patches/server/0979-Call-missing-BlockDispenseEvent.patch b/patches/server/0979-Call-missing-BlockDispenseEvent.patch index 3ee461383b..b86bb0ea64 100644 --- a/patches/server/0979-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0979-Call-missing-BlockDispenseEvent.patch @@ -50,10 +50,10 @@ index b4f5dbe9022dd20437c15c4f6fbe2ac06dacbadb..70aade6a8d36f8376cc567800258ea6f for (int k = 0; k < 5; ++k) { worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 85885b835cd661d6dcacf7f6501cc6b1ffb9f137..a6edbb5cde568d8138af568122d5d11243f3fb07 100644 +index 36027749504b239285c57630c0500dfb5a6126ef..c514795dee0c54ae4fc1592dab5b69c39631c9ad 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2020,6 +2020,32 @@ public class CraftEventFactory { +@@ -2053,6 +2053,32 @@ public class CraftEventFactory { } // Paper end diff --git a/patches/server/0982-Add-Sign-getInteractableSideFor.patch b/patches/server/0982-Add-Sign-getInteractableSideFor.patch index 2ed442f103..479f8e4001 100644 --- a/patches/server/0982-Add-Sign-getInteractableSideFor.patch +++ b/patches/server/0982-Add-Sign-getInteractableSideFor.patch @@ -30,10 +30,10 @@ index e34f7426df5d6c94fcc4101b28702e6c1d9fccff..9eea2982e92e9bc7a53962dc6b21de60 float f1 = (float) (Mth.atan2(d1, d0) * 57.2957763671875D) - 90.0F; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index ed29fd2271585a100c1933b787005e9be54bd715..3b9078bad9c0bccc37f44224aa6653d827057a3a 100644 +index fa562d3a9705981524f82b575a3e0760aa40a787..2dcc9b2704a41f7acbdd182512ca05d103ad00cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -@@ -150,6 +150,14 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< +@@ -158,6 +158,14 @@ public class CraftSign<T extends SignBlockEntity> extends CraftBlockEntityState< } // Paper end diff --git a/patches/server/0984-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0984-fix-item-meta-for-tadpole-buckets.patch index 666154a130..0f7042779b 100644 --- a/patches/server/0984-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0984-fix-item-meta-for-tadpole-buckets.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 849e93a8a0645de4c3e6ab8047815d78a722d4f6..b4850f4da500771e890247d9ed7f7d027460a718 100644 +index 4c0b250bb9e3cf52173b563b36fd27d9e893e154..3f4e55bb9a4134e54adddca3c662285164068d95 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -344,6 +344,7 @@ public final class CraftItemFactory implements ItemFactory { +@@ -348,6 +348,7 @@ public final class CraftItemFactory implements ItemFactory { case COD_BUCKET: case PUFFERFISH_BUCKET: case SALMON_BUCKET: diff --git a/patches/server/0986-Fix-BanList-API.patch b/patches/server/0986-Fix-BanList-API.patch index ba1a3a1d00..748d4de7b9 100644 --- a/patches/server/0986-Fix-BanList-API.patch +++ b/patches/server/0986-Fix-BanList-API.patch @@ -5,18 +5,30 @@ Subject: [PATCH] Fix BanList API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -index 2856b861a1207ef94ae5671c5898f08fedd14475..0857c22236080df80d06e2c50eb43c9e05cc8d24 100644 +index aa070258c1f2546ac68869cb62c8752c80c758ab..c6129dc565b8f874b73e2fefcabd4be1c221fd73 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java -@@ -112,7 +112,7 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa +@@ -114,17 +114,17 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa } @Override - public BanEntry<PlayerProfile> ban(String reason, Date expires, String source) { -+ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source) { // Paper ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source) { // Paper - fix ban list API return ((ProfileBanList) this.server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, expires, source); } + @Override +- public BanEntry<PlayerProfile> ban(String reason, Instant expires, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Instant expires, String source) { // Paper - fix ban list API + return ((ProfileBanList) this.server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, expires, source); + } + + @Override +- public BanEntry<PlayerProfile> ban(String reason, Duration duration, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Duration duration, String source) { // Paper - fix ban list API + return ((ProfileBanList) this.server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, duration, source); + } + diff --git a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanEntry.java b/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanEntry.java index 13e5e44b069121e51b9486c445902937f1d6c6d8..4a37c8172b42b10472bb90c9310c7ae3eeaa3481 100644 --- a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanEntry.java @@ -42,10 +54,10 @@ index 13e5e44b069121e51b9486c445902937f1d6c6d8..4a37c8172b42b10472bb90c9310c7ae3 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java b/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java -index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b9e5661de 100644 +index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57bb2b1424 100644 --- a/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java +++ b/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java -@@ -22,32 +22,58 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -24,42 +24,80 @@ public class CraftProfileBanList implements ProfileBanList { } @Override @@ -64,7 +76,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b - return this.getBanEntry(((CraftPlayerProfile) target).buildGameProfile()); + return this.getBanEntry(((com.destroystokyo.paper.profile.SharedPlayerProfile) target).buildGameProfile()); // Paper + } -+ // Paper start ++ // Paper start - fix ban list API + @Override + public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> getBanEntry(final com.destroystokyo.paper.profile.PlayerProfile target) { + Preconditions.checkArgument(target != null, "target cannot be null"); @@ -78,10 +90,9 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b + Preconditions.checkArgument(target.getId() != null, "The PlayerProfile UUID cannot be null"); + + return this.addBan(((com.destroystokyo.paper.profile.SharedPlayerProfile) target).buildGameProfile(), reason, expires, source); - } - - @Override -- public BanEntry<PlayerProfile> addBan(String target, String reason, Date expires, String source) { ++ } ++ ++ @Override + public boolean isBanned(final com.destroystokyo.paper.profile.PlayerProfile target) { + return this.isBanned((com.destroystokyo.paper.profile.SharedPlayerProfile) target); + } @@ -89,11 +100,24 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b + @Override + public void pardon(final com.destroystokyo.paper.profile.PlayerProfile target) { + this.pardon((com.destroystokyo.paper.profile.SharedPlayerProfile) target); + } + + @Override +- public BanEntry<PlayerProfile> addBan(String target, String reason, Date expires, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(final com.destroystokyo.paper.profile.PlayerProfile target, final String reason, final Instant expires, final String source) { ++ Date date = expires != null ? Date.from(expires) : null; ++ return this.addBan(target, reason, date, source); + } -+ // Paper end + + @Override -+ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(String target, String reason, Date expires, String source) { // Paper ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(final com.destroystokyo.paper.profile.PlayerProfile target, final String reason, final Duration duration, final String source) { ++ Instant instant = duration != null ? Instant.now().plus(duration) : null; ++ return this.addBan(target, reason, instant, source); ++ } ++ // Paper end - fix ban list API ++ ++ @Override ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(String target, String reason, Date expires, String source) { // Paper - fix ban list API Preconditions.checkArgument(target != null, "Ban target cannot be null"); return this.addBan(CraftProfileBanList.getProfileByName(target), reason, expires, source); @@ -101,7 +125,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b @Override - public BanEntry<PlayerProfile> addBan(PlayerProfile target, String reason, Date expires, String source) { -+ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(PlayerProfile target, String reason, Date expires, String source) { // Paper ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(PlayerProfile target, String reason, Date expires, String source) { // Paper - fix ban list API Preconditions.checkArgument(target != null, "PlayerProfile cannot be null"); Preconditions.checkArgument(target.getUniqueId() != null, "The PlayerProfile UUID cannot be null"); @@ -110,7 +134,19 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b } @Override -@@ -62,8 +88,8 @@ public class CraftProfileBanList implements ProfileBanList { +- public BanEntry<PlayerProfile> addBan(PlayerProfile target, String reason, Instant expires, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(PlayerProfile target, String reason, Instant expires, String source) { // Paper - fix ban list API + Date date = expires != null ? Date.from(expires) : null; + return this.addBan(target, reason, date, source); + } + + @Override +- public BanEntry<PlayerProfile> addBan(PlayerProfile target, String reason, Duration duration, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> addBan(PlayerProfile target, String reason, Duration duration, String source) { // Paper - fix ban list API + Instant instant = duration != null ? Instant.now().plus(duration) : null; + return this.addBan(target, reason, instant, source); + } +@@ -76,8 +114,8 @@ public class CraftProfileBanList implements ProfileBanList { } @Override @@ -121,7 +157,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b for (UserBanListEntry entry : this.list.getEntries()) { GameProfile profile = entry.getUser(); builder.add(new CraftProfileBanEntry(profile, entry, this.list)); -@@ -74,9 +100,14 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -88,9 +126,14 @@ public class CraftProfileBanList implements ProfileBanList { @Override public boolean isBanned(PlayerProfile target) { @@ -137,7 +173,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b } @Override -@@ -88,9 +119,14 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -102,9 +145,14 @@ public class CraftProfileBanList implements ProfileBanList { @Override public void pardon(PlayerProfile target) { @@ -153,7 +189,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b } @Override -@@ -100,7 +136,7 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -114,7 +162,7 @@ public class CraftProfileBanList implements ProfileBanList { this.pardon(CraftProfileBanList.getProfile(target)); } @@ -162,7 +198,7 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b if (profile == null) { return null; } -@@ -113,7 +149,7 @@ public class CraftProfileBanList implements ProfileBanList { +@@ -127,7 +175,7 @@ public class CraftProfileBanList implements ProfileBanList { return new CraftProfileBanEntry(profile, entry, this.list); } @@ -172,26 +208,53 @@ index b143b6a43da875caf938865a062e2f30019f7788..6b479a11cb15b7d1d468b2ea1eff547b return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5b201d2c21f04e0223970035e0631f8f92ea0d3a..dbdeb913e228651cadf5dbd7ec98afc738c80522 100644 +index 25a35d7273fdb1f472b4ea92cebf93ff8e39c79a..5bbded65095dccfadaf7576fc41b5f62974878b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1632,13 +1632,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1634,23 +1634,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } @Override - public BanEntry<PlayerProfile> ban(String reason, Date expires, String source) { -+ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source) { // Paper ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source) { // Paper - fix ban list API return this.ban(reason, expires, source, true); } @Override +- public BanEntry<PlayerProfile> ban(String reason, Instant expires, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Instant expires, String source) { // Paper - fix ban list API + return this.ban(reason, expires != null ? Date.from(expires) : null, source); + } + + @Override +- public BanEntry<PlayerProfile> ban(String reason, Duration duration, String source) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Duration duration, String source) { // Paper - fix ban list API + return this.ban(reason, duration != null ? Instant.now().plus(duration) : null, source); + } + + @Override - public BanEntry<PlayerProfile> ban(String reason, Date expires, String source, boolean kickPlayer) { - BanEntry<PlayerProfile> banEntry = ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, expires, source); -+ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source, boolean kickPlayer) { // Paper -+ BanEntry<com.destroystokyo.paper.profile.PlayerProfile> banEntry = ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, expires, source); // Paper ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Date expires, String source, boolean kickPlayer) { // Paper - fix ban list API ++ BanEntry<com.destroystokyo.paper.profile.PlayerProfile> banEntry = ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(this.getPlayerProfile(), reason, expires, source); // Paper - fix ban list API if (kickPlayer) { this.kickPlayer(reason); } +@@ -1658,12 +1658,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + } + + @Override +- public BanEntry<PlayerProfile> ban(String reason, Instant instant, String source, boolean kickPlayer) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Instant instant, String source, boolean kickPlayer) { // Paper - fix ban list API + return this.ban(reason, instant != null ? Date.from(instant) : null, source, kickPlayer); + } + + @Override +- public BanEntry<PlayerProfile> ban(String reason, Duration duration, String source, boolean kickPlayer) { ++ public BanEntry<com.destroystokyo.paper.profile.PlayerProfile> ban(String reason, Duration duration, String source, boolean kickPlayer) { // Paper - fix ban list API + return this.ban(reason, duration != null ? Instant.now().plus(duration) : null, source, kickPlayer); + } + diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java index d1aab4742b605e8807b0e4ca148abe0ed95039f4..58ea78d3917d2f264515c41f4df2f9ff6f8e4667 100644 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java diff --git a/patches/server/0989-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0989-ExperienceOrb-should-call-EntitySpawnEvent.patch index 0052598a45..313bf5ec8c 100644 --- a/patches/server/0989-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0989-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9b9a9606e5be94b394606f2306e7b7a5ed781e1d..acb38f927c2418c91adf91c7b790ea6869835537 100644 +index c514795dee0c54ae4fc1592dab5b69c39631c9ad..26e1a9002d675245d4cf91e6682605314b078fb2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -693,7 +693,10 @@ public class CraftEventFactory { +@@ -718,7 +718,10 @@ public class CraftEventFactory { } else if (entity instanceof net.minecraft.world.entity.ExperienceOrb) { net.minecraft.world.entity.ExperienceOrb xp = (net.minecraft.world.entity.ExperienceOrb) entity; double radius = world.spigotConfig.expMerge; diff --git a/patches/server/0990-Don-t-tick-signs.patch b/patches/server/0990-Don-t-tick-signs.patch index 869532e222..27884b4048 100644 --- a/patches/server/0990-Don-t-tick-signs.patch +++ b/patches/server/0990-Don-t-tick-signs.patch @@ -21,10 +21,10 @@ index 6c9d163b9f857806461dc72e54713f1a4f3a5c31..0bd8ea3143b2e9755d492af4596622d1 } } diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 1bc8fbb66c43e9844c66bce26cd349d7fcbc4cfe..e20c24c86db023ad269f15fe04963608e3fb3fe5 100644 +index b01cdfe3c62c609e953aa5007e6557cfec0d5a5f..1122090792e9ee98bf8498e8907c5abbbcbcd6d6 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java -@@ -171,6 +171,6 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo +@@ -203,6 +203,6 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo @Nullable @Override public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) { diff --git a/work/Bukkit b/work/Bukkit -Subproject 01aa02eb531ba554701b02986193c874ccb7635 +Subproject 82af5dc60eae0a6223be15ea4f69c560521c97a diff --git a/work/CraftBukkit b/work/CraftBukkit -Subproject b60a95c8cf3ca3a6353be1ecf2a6baa6f9072c5 +Subproject d548daac2f99b1b570f9d229464f55d10d9a58b diff --git a/work/Spigot b/work/Spigot -Subproject 9ebce8afbf14ba4b857ce5befe716fecbd6d887 +Subproject b41c46db51ec4aca746def5ac9080ec319c4abd |